summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-12-03 01:22:57 +0000
committerbors <bors@rust-lang.org>2022-12-03 01:22:57 +0000
commit9c311b4f482abab3ee1bc2ce1e2d1520adc6d567 (patch)
treea61541100930566252e6f07283301981ece658d5
parent2eea8737bfec1d5819eaa6e08c602361cbf82e1a (diff)
parent73a70cb4933692a1b005e6291f33b89d73a03e29 (diff)
downloadrust-libc-9c311b4f482abab3ee1bc2ce1e2d1520adc6d567.tar.gz
Auto merge of #3024 - redox-os:redox-0.2.137, r=JohnTitor
redox: long is 32-bits on 32-bit systems This ensures that 32-bit systems use i32 for c_long and u32 for c_ulong. I have also adjusted off_t and time_t to be `long long`, which is what they are in `relibc` now.
-rw-r--r--src/unix/redox/mod.rs20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs
index 3bb7b044d0..afba677277 100644
--- a/src/unix/redox/mod.rs
+++ b/src/unix/redox/mod.rs
@@ -1,8 +1,20 @@
pub type c_char = i8;
-pub type c_long = i64;
-pub type c_ulong = u64;
pub type wchar_t = i32;
+cfg_if! {
+ if #[cfg(target_pointer_width = "32")] {
+ pub type c_long = i32;
+ pub type c_ulong = u32;
+ }
+}
+
+cfg_if! {
+ if #[cfg(target_pointer_width = "64")] {
+ pub type c_long = i64;
+ pub type c_ulong = u64;
+ }
+}
+
pub type blkcnt_t = ::c_ulong;
pub type blksize_t = ::c_long;
pub type clock_t = ::c_long;
@@ -14,7 +26,7 @@ pub type ino_t = ::c_ulong;
pub type mode_t = ::c_int;
pub type nfds_t = ::c_ulong;
pub type nlink_t = ::c_ulong;
-pub type off_t = ::c_long;
+pub type off_t = ::c_longlong;
pub type pthread_t = *mut ::c_void;
pub type pthread_attr_t = *mut ::c_void;
pub type pthread_cond_t = *mut ::c_void;
@@ -34,7 +46,7 @@ pub type socklen_t = u32;
pub type speed_t = u32;
pub type suseconds_t = ::c_int;
pub type tcflag_t = u32;
-pub type time_t = ::c_long;
+pub type time_t = ::c_longlong;
#[cfg_attr(feature = "extra_traits", derive(Debug))]
pub enum timezone {}