diff options
Diffstat (limited to 'libc/src/unix/uclibc/x86_64')
| -rw-r--r-- | libc/src/unix/uclibc/x86_64/l4re.rs | 1 | ||||
| -rw-r--r-- | libc/src/unix/uclibc/x86_64/mod.rs | 83 | ||||
| -rw-r--r-- | libc/src/unix/uclibc/x86_64/other.rs | 4 | 
3 files changed, 76 insertions, 12 deletions
diff --git a/libc/src/unix/uclibc/x86_64/l4re.rs b/libc/src/unix/uclibc/x86_64/l4re.rs index f047a82..4f5811d 100644 --- a/libc/src/unix/uclibc/x86_64/l4re.rs +++ b/libc/src/unix/uclibc/x86_64/l4re.rs @@ -4,6 +4,7 @@  /// libc and hence we should provide them here.  pub type l4_umword_t = ::c_ulong; // Unsigned machine word. +pub type pthread_t = *mut ::c_void;  s! {      /// CPU sets. diff --git a/libc/src/unix/uclibc/x86_64/mod.rs b/libc/src/unix/uclibc/x86_64/mod.rs index 7d08258..bc6571a 100644 --- a/libc/src/unix/uclibc/x86_64/mod.rs +++ b/libc/src/unix/uclibc/x86_64/mod.rs @@ -133,6 +133,7 @@ s! {  //  //    pub struct in6_addr {  //        pub s6_addr: [u8; 16], +//        #[cfg(not(feature = "align"))]  //        __align: [u32; 0],  //    } @@ -204,51 +205,106 @@ s! {          pub c_cc: [::cc_t; ::NCCS],      } +    #[cfg_attr(all(feature = "align", target_pointer_width = "32"), +               repr(align(4)))] +    #[cfg_attr(all(feature = "align", target_pointer_width = "64"), +               repr(align(8)))]      pub struct sem_t { // ToDo          #[cfg(target_pointer_width = "32")]          __size: [::c_char; 16],          #[cfg(target_pointer_width = "64")]          __size: [::c_char; 32], +        #[cfg(not(feature = "align"))]          __align: [::c_long; 0],      } +    #[cfg_attr(all(feature = "align", +                   target_pointer_width = "32", +                   any(target_arch = "mips", +                       target_arch = "arm", +                       target_arch = "powerpc")), +               repr(align(4)))] +    #[cfg_attr(all(feature = "align", +                   any(target_pointer_width = "64", +                       not(any(target_arch = "mips", +                               target_arch = "arm", +                               target_arch = "powerpc")))), +               repr(align(8)))]      pub struct pthread_mutex_t { // ToDo -        #[cfg(any(target_arch = "mips", target_arch = "arm", -                  target_arch = "powerpc"))] +        #[cfg(all(not(feature = "align"), +                  any(target_arch = "mips", +                      target_arch = "arm", +                      target_arch = "powerpc")))]          __align: [::c_long; 0], -        #[cfg(not(any(target_arch = "mips", target_arch = "arm", +        #[cfg(not(any(feature = "align", +                      target_arch = "mips", +                      target_arch = "arm",                        target_arch = "powerpc")))]          __align: [::c_longlong; 0],          size: [u8; __SIZEOF_PTHREAD_MUTEX_T],      } +    #[cfg_attr(all(feature = "align", +                   any(target_pointer_width = "32", +                       target_arch = "x86_64", target_arch = "powerpc64", +                       target_arch = "mips64", target_arch = "s390x", +                       target_arch = "sparc64")), +               repr(align(4)))] +    #[cfg_attr(all(feature = "align", +                   not(any(target_pointer_width = "32", +                           target_arch = "x86_64", target_arch = "powerpc64", +                           target_arch = "mips64", target_arch = "s390x", +                           target_arch = "sparc64"))), +               repr(align(8)))]      pub struct pthread_mutexattr_t { // ToDo -        #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", -                  target_arch = "mips64", target_arch = "s390x", -                  target_arch = "sparc64"))] -        __align: [::c_int; 0], -        #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", +        #[cfg(all(not(feature = "align"), +                  any(target_arch = "x86_64", target_arch = "powerpc64",                        target_arch = "mips64", target_arch = "s390x",                        target_arch = "sparc64")))] +        __align: [::c_int; 0], +        #[cfg(all(not(feature = "align"), +                  not(any(target_arch = "x86_64", target_arch = "powerpc64", +                          target_arch = "mips64", target_arch = "s390x", +                          target_arch = "sparc64"))))]          __align: [::c_long; 0],          size: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T],      } +    #[cfg_attr(feature = "align", repr(align(8)))]      pub struct pthread_cond_t { // ToDo +        #[cfg(not(feature = "align"))]          __align: [::c_longlong; 0],          size: [u8; __SIZEOF_PTHREAD_COND_T],      } +    #[cfg_attr(feature = "align", repr(align(4)))]      pub struct pthread_condattr_t { // ToDo +        #[cfg(not(feature = "align"))]          __align: [::c_int; 0],          size: [u8; __SIZEOF_PTHREAD_CONDATTR_T],      } +    #[cfg_attr(all(feature = "align", +                   target_pointer_width = "32", +                   any(target_arch = "mips", +                       target_arch = "arm", +                       target_arch = "powerpc")), +               repr(align(4)))] +    #[cfg_attr(all(feature = "align", +                   any(target_pointer_width = "64", +                       not(any(target_arch = "mips", +                               target_arch = "arm", +                               target_arch = "powerpc")))), +               repr(align(8)))]      pub struct pthread_rwlock_t { // ToDo -        #[cfg(any(target_arch = "mips", target_arch = "arm", -                  target_arch = "powerpc"))] +        #[cfg(all(not(feature = "align"), +                  any(target_arch = "mips", +                      target_arch = "arm", +                      target_arch = "powerpc")))]          __align: [::c_long; 0], -        #[cfg(not(any(target_arch = "mips", target_arch = "arm", +        #[cfg(not(any(feature = "align", +                      target_arch = "mips", +                      target_arch = "arm",                        target_arch = "powerpc")))]          __align: [::c_longlong; 0],          size: [u8; __SIZEOF_PTHREAD_RWLOCK_T], @@ -352,6 +408,9 @@ cfg_if! {      if #[cfg(target_os = "l4re")] {          mod l4re;          pub use self::l4re::*; -    } else { } +    } else { +        mod other; +        pub use other::*; +    }  } diff --git a/libc/src/unix/uclibc/x86_64/other.rs b/libc/src/unix/uclibc/x86_64/other.rs new file mode 100644 index 0000000..1cc521d --- /dev/null +++ b/libc/src/unix/uclibc/x86_64/other.rs @@ -0,0 +1,4 @@ +// Thestyle checker discourages the use of #[cfg], so this has to go into a +// separate module +pub type pthread_t = ::c_ulong; +  | 
