Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit 702f85e

Browse files
committed
RISCV: Fix stat_t definition to match AArch64
1 parent 5a32892 commit 702f85e

File tree

1 file changed

+76
-18
lines changed

1 file changed

+76
-18
lines changed

src/core/sys/posix/sys/stat.d

Lines changed: 76 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -453,26 +453,84 @@ version (CRuntime_Glibc)
453453
}
454454
else version (RISCV_Any)
455455
{
456+
private
457+
{
458+
alias __dev_t = ulong;
459+
alias __ino_t = c_ulong;
460+
alias __ino64_t = ulong;
461+
alias __mode_t = uint;
462+
alias __nlink_t = uint;
463+
alias __uid_t = uint;
464+
alias __gid_t = uint;
465+
alias __off_t = c_long;
466+
alias __off64_t = long;
467+
alias __blksize_t = int;
468+
alias __blkcnt_t = c_long;
469+
alias __blkcnt64_t = long;
470+
alias __timespec = timespec;
471+
alias __time_t = time_t;
472+
}
456473
struct stat_t
457474
{
458-
dev_t st_dev;
459-
ino_t st_ino;
460-
mode_t st_mode;
461-
nlink_t st_nlink;
462-
uid_t st_uid;
463-
gid_t st_gid;
464-
dev_t st_rdev;
465-
dev_t __pad1;
466-
off_t st_size;
467-
blksize_t st_blksize;
468-
int __pad2;
469-
time_t st_atime;
470-
c_ulong st_atime_nsec;
471-
time_t st_mtime;
472-
c_ulong st_mtime_nsec;
473-
time_t st_ctime;
474-
c_ulong st_ctime_nsec;
475-
int[2] __reserved;
475+
__dev_t st_dev;
476+
477+
static if (__USE_FILE_OFFSET64)
478+
{
479+
__ino64_t st_ino;
480+
}
481+
else
482+
{
483+
__ino_t st_ino;
484+
}
485+
__mode_t st_mode;
486+
__nlink_t st_nlink;
487+
__uid_t st_uid;
488+
__gid_t st_gid;
489+
__dev_t st_rdev;
490+
__dev_t __pad1;
491+
492+
static if (__USE_FILE_OFFSET64)
493+
{
494+
__off64_t st_size;
495+
}
496+
else
497+
{
498+
__off_t st_size;
499+
}
500+
__blksize_t st_blksize;
501+
int __pad2;
502+
503+
static if (__USE_FILE_OFFSET64)
504+
{
505+
__blkcnt64_t st_blocks;
506+
}
507+
else
508+
{
509+
__blkcnt_t st_blocks;
510+
}
511+
512+
static if (__USE_MISC)
513+
{
514+
__timespec st_atim;
515+
__timespec st_mtim;
516+
__timespec st_ctim;
517+
extern(D)
518+
{
519+
@property ref time_t st_atime() { return st_atim.tv_sec; }
520+
@property ref time_t st_mtime() { return st_mtim.tv_sec; }
521+
@property ref time_t st_ctime() { return st_ctim.tv_sec; }
522+
}
523+
}
524+
else
525+
{
526+
__time_t st_atime;
527+
c_ulong st_atimensec;
528+
__time_t st_mtime;
529+
c_ulong st_mtimensec;
530+
__time_t st_ctime;
531+
c_ulong st_ctimensec;
532+
}
533+
int[2] __unused;
476534
}
477535
}
478536
else version (ARM)

0 commit comments

Comments
 (0)