zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit d966fe63190de2992d6a7985bc492b9d9699d253 (tree)
parent 21c81360ba40d645768d061723522116b6408d48
Author: Joran Dirk Greef <joran@ronomon.com>
Date:   Thu, 17 Sep 2020 19:53:34 +0200

Add IORING_SQ_CQ_OVERFLOW to std/os/bits/linux.zig

Diffstat:
Mlib/std/io_uring.zig | 5+----
Mlib/std/os/bits/linux.zig | 3+++
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git 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 @@ -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,