aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorJoran Dirk Greef <joran@ronomon.com>2020-09-17 19:53:34 +0200
committerJoran Dirk Greef <joran@ronomon.com>2020-09-17 19:53:34 +0200
commitd966fe63190de2992d6a7985bc492b9d9699d253 (patch)
tree22ba92c09c7190f4d3ae802ccb8feb5fb9d243fc /lib/std
parent21c81360ba40d645768d061723522116b6408d48 (diff)
downloadzig-d966fe63190de2992d6a7985bc492b9d9699d253.tar.gz
zig-d966fe63190de2992d6a7985bc492b9d9699d253.zip
Add IORING_SQ_CQ_OVERFLOW to std/os/bits/linux.zig
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/io_uring.zig5
-rw-r--r--lib/std/os/bits/linux.zig3
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/std/io_uring.zig b/lib/std/io_uring.zig
index af9c545e09..40ebb9017c 100644
--- a/lib/std/io_uring.zig
+++ b/lib/std/io_uring.zig
@@ -38,9 +38,6 @@ pub const io_uring_sqe = extern struct {
options: [2]u64 = [2]u64{ 0, 0 }
};
-// TODO Add to zig/std/os/bits/linux.zig:
-const IORING_SQ_CQ_OVERFLOW = 1 << 1;
-
comptime {
assert(@sizeOf(io_uring_params) == 120);
assert(@sizeOf(io_uring_sqe) == 64);
@@ -315,7 +312,7 @@ pub const IO_Uring = struct {
// Matches the implementation of cq_ring_needs_flush() in liburing.
fn cq_ring_needs_flush(self: *IO_Uring) bool {
- return (@atomicLoad(u32, self.sq.flags, .Unordered) & IORING_SQ_CQ_OVERFLOW) != 0;
+ return (@atomicLoad(u32, self.sq.flags, .Unordered) & linux.IORING_SQ_CQ_OVERFLOW) != 0;
}
/// For advanced use cases only that implement custom completion queue methods.
diff --git a/lib/std/os/bits/linux.zig b/lib/std/os/bits/linux.zig
index df31bc32fd..c5f272c042 100644
--- a/lib/std/os/bits/linux.zig
+++ b/lib/std/os/bits/linux.zig
@@ -1251,6 +1251,9 @@ pub const io_sqring_offsets = extern struct {
/// needs io_uring_enter wakeup
pub const IORING_SQ_NEED_WAKEUP = 1 << 0;
+/// kernel has cqes waiting beyond the cq ring
+pub const IORING_SQ_CQ_OVERFLOW = 1 << 1;
+
pub const io_cqring_offsets = extern struct {
head: u32,
tail: u32,