authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-16 11:07:01+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-18 07:27:23+02:00
loge2a4d7acfcf063a66ee1bb6be59a57835caf3193
tree18014ff85d33849fe528887f35fecd8c8d743a1b
parentea38009f3d0476867d945c3f14f5053206ec87f9

std.c: Fix Stat struct for mips/mips64 on linux.


1 files changed, 95 insertions(+), 3 deletions(-)

lib/std/c.zig+95-3
...@@ -6326,16 +6326,46 @@ pub const Stat = switch (native_os) {...@@ -6326,16 +6326,46 @@ pub const Stat = switch (native_os) {
6326 return self.ctim;6326 return self.ctim;
6327 }6327 }
6328 },6328 },
6329 .mips, .mipsel => extern struct {6329 .mips, .mipsel => if (builtin.target.isMusl()) extern struct {
6330 dev: dev_t,6330 dev: dev_t,
6331 __pad0: [2]u32,6331 __pad0: [2]i32,
6332 ino: ino_t,6332 ino: ino_t,
6333 mode: mode_t,6333 mode: mode_t,
6334 nlink: nlink_t,6334 nlink: nlink_t,
6335 uid: uid_t,6335 uid: uid_t,
6336 gid: gid_t,6336 gid: gid_t,
6337 rdev: dev_t,6337 rdev: dev_t,
6338 __pad1: [2]u32,6338 __pad1: [2]i32,
6339 size: off_t,
6340 atim: timespec,
6341 mtim: timespec,
6342 ctim: timespec,
6343 blksize: blksize_t,
6344 __pad3: i32,
6345 blocks: blkcnt_t,
6346 __pad4: [14]i32,
6347
6348 pub fn atime(self: @This()) timespec {
6349 return self.atim;
6350 }
6351
6352 pub fn mtime(self: @This()) timespec {
6353 return self.mtim;
6354 }
6355
6356 pub fn ctime(self: @This()) timespec {
6357 return self.ctim;
6358 }
6359 } else extern struct {
6360 dev: dev_t,
6361 __pad0: [3]u32,
6362 ino: ino_t,
6363 mode: mode_t,
6364 nlink: nlink_t,
6365 uid: uid_t,
6366 gid: gid_t,
6367 rdev: dev_t,
6368 __pad1: [3]u32,
6339 size: off_t,6369 size: off_t,
6340 atim: timespec,6370 atim: timespec,
6341 mtim: timespec,6371 mtim: timespec,
...@@ -6357,6 +6387,68 @@ pub const Stat = switch (native_os) {...@@ -6357,6 +6387,68 @@ pub const Stat = switch (native_os) {
6357 return self.ctim;6387 return self.ctim;
6358 }6388 }
6359 },6389 },
6390 .mips64, .mips64el => if (builtin.target.isMusl()) extern struct {
6391 dev: dev_t,
6392 __pad0: [3]i32,
6393 ino: ino_t,
6394 mode: mode_t,
6395 nlink: nlink_t,
6396 uid: uid_t,
6397 gid: gid_t,
6398 rdev: dev_t,
6399 __pad1: [2]u32,
6400 size: off_t,
6401 __pad2: i32,
6402 atim: timespec,
6403 mtim: timespec,
6404 ctim: timespec,
6405 blksize: blksize_t,
6406 __pad3: u32,
6407 blocks: blkcnt_t,
6408 __pad4: [14]i32,
6409
6410 pub fn atime(self: @This()) timespec {
6411 return self.atim;
6412 }
6413
6414 pub fn mtime(self: @This()) timespec {
6415 return self.mtim;
6416 }
6417
6418 pub fn ctime(self: @This()) timespec {
6419 return self.ctim;
6420 }
6421 } else extern struct {
6422 dev: dev_t,
6423 __pad0: [3]u32,
6424 ino: ino_t,
6425 mode: mode_t,
6426 nlink: nlink_t,
6427 uid: uid_t,
6428 gid: gid_t,
6429 rdev: dev_t,
6430 __pad1: [3]u32,
6431 size: off_t,
6432 atim: timespec,
6433 mtim: timespec,
6434 ctim: timespec,
6435 blksize: blksize_t,
6436 __pad3: u32,
6437 blocks: blkcnt_t,
6438 __pad4: [14]i32,
6439
6440 pub fn atime(self: @This()) timespec {
6441 return self.atim;
6442 }
6443
6444 pub fn mtime(self: @This()) timespec {
6445 return self.mtim;
6446 }
6447
6448 pub fn ctime(self: @This()) timespec {
6449 return self.ctim;
6450 }
6451 },
63606452
6361 else => std.os.linux.Stat, // libc stat is the same as kernel stat.6453 else => std.os.linux.Stat, // libc stat is the same as kernel stat.
6362 },6454 },