xref: /rust-libc-0.2.174/src/trusty.rs (revision bb10d5f7)
1 use crate::prelude::*;
2 pub type size_t = usize;
3 pub type ssize_t = isize;
4 
5 pub type off_t = i64;
6 
7 pub type c_uint8_t = u8;
8 pub type c_uint16_t = u16;
9 pub type c_uint32_t = u32;
10 pub type c_uint64_t = u64;
11 
12 pub type c_int8_t = i8;
13 pub type c_int16_t = i16;
14 pub type c_int32_t = i32;
15 pub type c_int64_t = i64;
16 
17 pub type intptr_t = isize;
18 pub type uintptr_t = usize;
19 
20 pub type time_t = c_long;
21 
22 pub type clockid_t = c_int;
23 
24 s! {
25     pub struct iovec {
26         pub iov_base: *mut c_void,
27         pub iov_len: size_t,
28     }
29 
30     pub struct timespec {
31         pub tv_sec: time_t,
32         pub tv_nsec: c_long,
33     }
34 }
35 
36 pub const PROT_READ: i32 = 1;
37 pub const PROT_WRITE: i32 = 2;
38 
39 // Trusty only supports `CLOCK_BOOTTIME`.
40 pub const CLOCK_BOOTTIME: clockid_t = 7;
41 
42 pub const STDOUT_FILENO: c_int = 1;
43 pub const STDERR_FILENO: c_int = 2;
44 
45 pub const AT_PAGESZ: c_ulong = 6;
46 
47 pub const MAP_FAILED: *mut c_void = !0 as *mut c_void;
48 
49 extern "C" {
50     pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void;
51     pub fn malloc(size: size_t) -> *mut c_void;
52     pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void;
53     pub fn free(p: *mut c_void);
54     pub fn memalign(align: size_t, size: size_t) -> *mut c_void;
55     pub fn posix_memalign(memptr: *mut *mut c_void, align: size_t, size: size_t) -> c_int;
56     pub fn write(fd: c_int, buf: *const c_void, count: size_t) -> ssize_t;
57     pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t;
58     pub fn close(fd: c_int) -> c_int;
59     pub fn strlen(cs: *const c_char) -> size_t;
60     pub fn getauxval(type_: c_ulong) -> c_ulong;
61     pub fn mmap(
62         addr: *mut c_void,
63         len: size_t,
64         prot: c_int,
65         flags: c_int,
66         fd: c_int,
67         offset: off_t,
68     ) -> *mut c_void;
69     pub fn munmap(addr: *mut c_void, len: size_t) -> c_int;
70     pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int;
71     pub fn nanosleep(rqtp: *const crate::timespec, rmtp: *mut crate::timespec) -> c_int;
72 }
73