| ... | @@ -207,6 +207,16 @@ pub const passwd = switch (native_os) { | ... | @@ -207,6 +207,16 @@ pub const passwd = switch (native_os) { |
| 207 | else => void, | 207 | else => void, |
| 208 | }; | 208 | }; |
| 209 | | 209 | |
| | 210 | pub const group = switch (native_os) { |
| | 211 | .linux, .freebsd, .openbsd, .dragonfly, .netbsd, .macos => extern struct { |
| | 212 | name: ?[*:0]const u8, |
| | 213 | passwd: ?[*:0]const u8, |
| | 214 | gid: gid_t, |
| | 215 | mem: [*:null]?[*:0]const u8, |
| | 216 | }, |
| | 217 | else => void, |
| | 218 | }; |
| | 219 | |
| 210 | pub const blkcnt_t = switch (native_os) { | 220 | pub const blkcnt_t = switch (native_os) { |
| 211 | .linux => linux.blkcnt_t, | 221 | .linux => linux.blkcnt_t, |
| 212 | .emscripten => emscripten.blkcnt_t, | 222 | .emscripten => emscripten.blkcnt_t, |
| ... | @@ -3291,8 +3301,8 @@ pub const T = switch (native_os) { | ... | @@ -3291,8 +3301,8 @@ pub const T = switch (native_os) { |
| 3291 | .macos, .ios, .tvos, .watchos, .visionos => struct { | 3301 | .macos, .ios, .tvos, .watchos, .visionos => struct { |
| 3292 | pub const IOCGWINSZ = ior(0x40000000, 't', 104, @sizeOf(winsize)); | 3302 | pub const IOCGWINSZ = ior(0x40000000, 't', 104, @sizeOf(winsize)); |
| 3293 | | 3303 | |
| 3294 | fn ior(inout: u32, group: usize, num: usize, len: usize) usize { | 3304 | fn ior(inout: u32, group_arg: usize, num: usize, len: usize) usize { |
| 3295 | return (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num)); | 3305 | return (inout | ((len & IOCPARM_MASK) << 16) | ((group_arg) << 8) | (num)); |
| 3296 | } | 3306 | } |
| 3297 | }, | 3307 | }, |
| 3298 | .freebsd => struct { | 3308 | .freebsd => struct { |
| ... | @@ -10264,6 +10274,13 @@ pub const fstatat = switch (native_os) { | ... | @@ -10264,6 +10274,13 @@ pub const fstatat = switch (native_os) { |
| 10264 | | 10274 | |
| 10265 | pub extern "c" fn getpwnam(name: [*:0]const u8) ?*passwd; | 10275 | pub extern "c" fn getpwnam(name: [*:0]const u8) ?*passwd; |
| 10266 | pub extern "c" fn getpwuid(uid: uid_t) ?*passwd; | 10276 | pub extern "c" fn getpwuid(uid: uid_t) ?*passwd; |
| | 10277 | pub extern "c" fn getgrent() ?*group; |
| | 10278 | pub extern "c" fn setgrent() void; |
| | 10279 | pub extern "c" fn endgrent() void; |
| | 10280 | pub extern "c" fn getgrnam(name: [*:0]const u8) ?*passwd; |
| | 10281 | pub extern "c" fn getgrnam_r(name: [*:0]const u8, grp: *group, buf: [*]u8, buflen: usize, result: *?*group) c_int; |
| | 10282 | pub extern "c" fn getgrgid(gid: gid_t) ?*group; |
| | 10283 | pub extern "c" fn getgrgid_r(gid: gid_t, grp: *group, buf: [*]u8, buflen: usize, result: *?*group) c_int; |
| 10267 | pub extern "c" fn getrlimit64(resource: rlimit_resource, rlim: *rlimit) c_int; | 10284 | pub extern "c" fn getrlimit64(resource: rlimit_resource, rlim: *rlimit) c_int; |
| 10268 | pub extern "c" fn lseek64(fd: fd_t, offset: i64, whence: c_int) i64; | 10285 | pub extern "c" fn lseek64(fd: fd_t, offset: i64, whence: c_int) i64; |
| 10269 | pub extern "c" fn mmap64(addr: ?*align(page_size) anyopaque, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: i64) *anyopaque; | 10286 | pub extern "c" fn mmap64(addr: ?*align(page_size) anyopaque, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: i64) *anyopaque; |