Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
ad5b148
IoUring: use typed Flags and Features for IoUring
bernardassan Sep 28, 2025
11d4647
replace some more fn flags with Typed Flags
bernardassan Sep 29, 2025
6e89bdf
move Flags that were mistakenly tagged as constants
bernardassan Sep 30, 2025
fd025d7
Replace STATX_* with StatxMask & StatxAttr
bernardassan Sep 30, 2025
eaec25f
Improve organization of fn and structs in IoUring
bernardassan Oct 1, 2025
d0170b0
Replace AT,W,SHUT,SOCK with a packed struct Flag type
bernardassan Oct 1, 2025
a1f9d89
update some syscall APIs to use the new flags
bernardassan Oct 2, 2025
4eb4435
Restore deprecated contants using new Flag types
bernardassan Oct 5, 2025
832fa7d
Replace MSG with Packed Struct Flags
bernardassan Oct 6, 2025
da498c4
Get test passing for all the newly introduced flags
bernardassan Oct 7, 2025
c816881
Add So and Sol typed flags
bernardassan Oct 9, 2025
e875167
Replace EPOLL struct with an EpollOp enum and Epoll packed struct type
bernardassan Oct 9, 2025
bb83797
fix error of setting some fields in Epoll to true by default
bernardassan Oct 10, 2025
0d3fadc
Remove io_uring_sqe.zig from CMakeLists
bernardassan Oct 10, 2025
6fe99c3
Use lower case identifiers for IoUring flags and enums
bernardassan Oct 10, 2025
60346da
replace direct set of some flags with link_next and set_flags calls
bernardassan Oct 10, 2025
6487c61
Remove io_uring bit and pieces from linux.zig
bernardassan Oct 11, 2025
ed18797
Fix posix.W in process/Child.zig
bernardassan Oct 11, 2025
1b16ad0
Add mips defination for Epoll
bernardassan Oct 12, 2025
73b5e0b
Add and improve comments
bernardassan Oct 12, 2025
910372d
Remove unnecessary use of @as coercion
bernardassan Oct 12, 2025
3fc2cb3
Implement more IoUring register functions
bernardassan Oct 12, 2025
7bee4c9
Remove unnecessary null to optional anyopaque coercion
bernardassan Oct 12, 2025
cf0e567
Move buf_ring_* functions into BufferRing type as methods
bernardassan Oct 13, 2025
7174dc7
Implement some more IoUring operations
bernardassan Oct 14, 2025
d3cee98
add IoUring send_bundle, send_to, recv_multishot, sync_file_range
bernardassan Oct 15, 2025
9938d8a
add msg_ring_*, setxattr and getxattr IoUring operations
bernardassan Oct 17, 2025
487ba41
IoUring: Implement set_iowait functionality
bernardassan Oct 17, 2025
fbaa458
Add XattrSource to decide how to prepare set/getxattr operations
bernardassan Oct 18, 2025
a24547d
IoUring: futex operations
bernardassan Oct 19, 2025
2593e60
Add a Futex2 `Bitset` type for futex2 wake and wait syscalls
bernardassan Oct 21, 2025
98c6742
IoUring: Working on Pipe2 flags
bernardassan Oct 23, 2025
3478eb7
IoUring: implement pipe and pipe_direct operations
bernardassan Oct 23, 2025
1ed5998
Merge archs that have the same Pipe2 flags
bernardassan Oct 24, 2025
f4d7826
Use linux types directly since IoUring is only supported on linux
bernardassan Oct 24, 2025
84fdf89
IoUring: implement outstanding flags and enumerations
bernardassan Oct 24, 2025
fb3c91e
IoUring: use the splice flags type for splice and tee
bernardassan Oct 25, 2025
b0dcde4
IoUring: fix and remove TODOs
bernardassan Oct 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,6 @@ set(ZIG_STAGE2_SOURCES
lib/std/os/linux.zig
lib/std/os/linux.zig
lib/std/os/linux/IoUring.zig
lib/std/os/linux/io_uring_sqe.zig
lib/std/os/linux/x86_64.zig
lib/std/os/linux/x86_64.zig
lib/std/os/windows.zig
Expand Down
2 changes: 1 addition & 1 deletion lib/std/Thread.zig
Original file line number Diff line number Diff line change
Expand Up @@ -1615,7 +1615,7 @@ const LinuxThreadImpl = struct {
if (tid == 0) break;

switch (linux.E.init(linux.futex_4arg(
&self.thread.child_tid.raw,
@ptrCast(&self.thread.child_tid.raw),
.{ .cmd = .WAIT, .private = false },
@bitCast(tid),
null,
Expand Down
10 changes: 8 additions & 2 deletions lib/std/fs/Dir.zig
Original file line number Diff line number Diff line change
Expand Up @@ -2811,8 +2811,14 @@ pub fn statFile(self: Dir, sub_path: []const u8) StatFileError!Stat {
const rc = linux.statx(
self.fd,
&sub_path_c,
linux.AT.NO_AUTOMOUNT,
linux.STATX_TYPE | linux.STATX_MODE | linux.STATX_ATIME | linux.STATX_MTIME | linux.STATX_CTIME,
.{ .no_automount = true },
.{
.type = true,
.mode = true,
.atime = true,
.mtime = true,
.ctime = true,
},
&stx,
);

Expand Down
10 changes: 8 additions & 2 deletions lib/std/fs/File.zig
Original file line number Diff line number Diff line change
Expand Up @@ -564,8 +564,14 @@ pub fn stat(self: File) StatError!Stat {
const rc = linux.statx(
self.handle,
"",
linux.AT.EMPTY_PATH,
linux.STATX_TYPE | linux.STATX_MODE | linux.STATX_ATIME | linux.STATX_MTIME | linux.STATX_CTIME,
.{ .empty_path = true },
.{
.type = true,
.mode = true,
.atime = true,
.mtime = true,
.ctime = true,
},
&stx,
);

Expand Down
Loading