Skip to content

Commit 157ac25

Browse files
committed
fuchsia: add definitions for riscv64
1 parent 88740ef commit 157ac25

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

src/fuchsia/aarch64.rs

+1
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,6 @@ s! {
6262
}
6363
}
6464

65+
// From https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/third_party/ulib/musl/include/bits/signal.h;l=20-21;drc=0827b18ab9540c46f8037f407d17ea15a79e9ba7
6566
pub const MINSIGSTKSZ: ::size_t = 6144;
6667
pub const SIGSTKSZ: ::size_t = 12288;

src/fuchsia/mod.rs

+3
Original file line numberDiff line numberDiff line change
@@ -4260,6 +4260,9 @@ cfg_if! {
42604260
} else if #[cfg(any(target_arch = "x86_64"))] {
42614261
mod x86_64;
42624262
pub use self::x86_64::*;
4263+
} else if #[cfg(any(target_arch = "riscv64"))] {
4264+
mod riscv64;
4265+
pub use self::riscv64::*;
42634266
} else {
42644267
// Unknown target_arch
42654268
}

src/fuchsia/riscv64.rs

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// From psABI Calling Convention for RV64
2+
pub type c_char = u8;
3+
pub type __u64 = ::c_ulonglong;
4+
pub type wchar_t = i32;
5+
6+
pub type nlink_t = ::c_ulong;
7+
pub type blksize_t = ::c_long;
8+
9+
pub type stat64 = stat;
10+
s! {
11+
pub struct stat {
12+
pub st_dev: ::dev_t,
13+
pub st_ino: ::ino_t,
14+
pub st_nlink: ::nlink_t,
15+
pub st_mode: ::mode_t,
16+
pub st_uid: ::uid_t,
17+
pub st_gid: ::gid_t,
18+
__pad0: ::c_int,
19+
pub st_rdev: ::dev_t,
20+
pub st_size: ::off_t,
21+
pub st_blksize: ::blksize_t,
22+
pub st_blocks: ::blkcnt_t,
23+
pub st_atime: ::time_t,
24+
pub st_atime_nsec: ::c_long,
25+
pub st_mtime: ::time_t,
26+
pub st_mtime_nsec: ::c_long,
27+
pub st_ctime: ::time_t,
28+
pub st_ctime_nsec: ::c_long,
29+
__unused: [::c_long; 3],
30+
}
31+
32+
// Not actually used, IPC calls just return ENOSYS
33+
pub struct ipc_perm {
34+
pub __ipc_perm_key: ::key_t,
35+
pub uid: ::uid_t,
36+
pub gid: ::gid_t,
37+
pub cuid: ::uid_t,
38+
pub cgid: ::gid_t,
39+
pub mode: ::mode_t,
40+
pub __seq: ::c_ushort,
41+
__unused1: ::c_ulong,
42+
__unused2: ::c_ulong,
43+
}
44+
}

0 commit comments

Comments
 (0)