Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › os › linux › IoUring › register_buf_ring Private Function register_buf_ring Doc Source Private Function std.os.linux.IoUring.register_buf_ring
fn register_buf_ring (
fd : linux .fd_t ,
addr : u64 ,
entries : u32 ,
group_id : u16 ,
flags : linux .io_uring_buf_reg .Flags ,
) !void Params fd : linux .fd_t addr : u64 entries : u32 group_id : u16 flags : linux .io_uring_buf_reg .Flags File os/linux/IoUring.zig: 1767
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788 fn register_buf_ring (
fd : linux .fd_t ,
addr : u64 ,
entries : u32 ,
group_id : u16 ,
flags : linux .io_uring_buf_reg .Flags ,
) !void {
var reg = std .mem .zeroInit (linux .io_uring_buf_reg , .{
.ring_addr = addr ,
.ring_entries = entries ,
.bgid = group_id ,
.flags = flags ,
});
var res = linux .io_uring_register (fd , .REGISTER_PBUF_RING , @as (*const anyopaque , @ptrCast (® )), 1 );
if (linux .errno (res ) == .INVAL and reg .flags .inc ) {
// Retry without incremental buffer consumption.
// It is available since kernel 6.12. returns INVAL on older.
reg .flags .inc = false ;
res = linux .io_uring_register (fd , .REGISTER_PBUF_RING , @as (*const anyopaque , @ptrCast (® )), 1 );
}
try handle_register_buf_ring_result (res );
}