riscv: fix abi for struct stat
extern "C" {
#endif
+#if defined(__x86_64__) || defined(__aarch64__)
+
+// TODO: Is this correct for AArch64?
struct stat {
dev_t st_dev;
ino_t st_ino;
@@ -60,6 +63,30 @@ struct stat {
long __unused[3];
};
+#elif defined(__riscv) && __riscv_xlen == 64
+
+struct stat {
+ dev_t st_dev;
+ ino_t st_ino;
+ mode_t st_mode;
+ nlink_t st_nlink;
+ uid_t st_uid;
+ gid_t st_gid;
+ dev_t st_rdev;
+ unsigned long __pad1;
+ off_t st_size;
+ blksize_t st_blksize;
+ int __pad2;
+ blkcnt_t st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+
+#endif
+
#ifdef __cplusplus
}
#endif
