libc/unix/linux_like/linux/
align.rs

1macro_rules! expand_align {
2    () => {
3        s! {
4            #[cfg_attr(any(target_pointer_width = "32",
5                           target_arch = "x86_64",
6                           target_arch = "powerpc64",
7                           target_arch = "mips64",
8                           target_arch = "s390x",
9                           target_arch = "sparc64",
10                           target_arch = "aarch64"),
11                       repr(align(4)))]
12            #[cfg_attr(not(any(target_pointer_width = "32",
13                               target_arch = "x86_64",
14                               target_arch = "powerpc64",
15                               target_arch = "mips64",
16                               target_arch = "s390x",
17                               target_arch = "sparc64",
18                               target_arch = "aarch64")),
19                       repr(align(8)))]
20            pub struct pthread_mutexattr_t {
21                #[doc(hidden)]
22                size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
23            }
24
25            #[cfg_attr(any(target_env = "musl", target_pointer_width = "32"),
26                       repr(align(4)))]
27            #[cfg_attr(all(not(target_env = "musl"),
28                           target_pointer_width = "64"),
29                       repr(align(8)))]
30            pub struct pthread_rwlockattr_t {
31                #[doc(hidden)]
32                size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T],
33            }
34
35            #[repr(align(4))]
36            pub struct pthread_condattr_t {
37                #[doc(hidden)]
38                size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
39            }
40        }
41
42        s_no_extra_traits! {
43            #[cfg_attr(all(target_env = "musl",
44                           target_pointer_width = "32"),
45                       repr(align(4)))]
46            #[cfg_attr(all(target_env = "musl",
47                           target_pointer_width = "64"),
48                       repr(align(8)))]
49            #[cfg_attr(all(not(target_env = "musl"),
50                           target_arch = "x86"),
51                       repr(align(4)))]
52            #[cfg_attr(all(not(target_env = "musl"),
53                           not(target_arch = "x86")),
54                       repr(align(8)))]
55            pub struct pthread_cond_t {
56                #[doc(hidden)]
57                size: [u8; ::__SIZEOF_PTHREAD_COND_T],
58            }
59
60            #[cfg_attr(all(target_pointer_width = "32",
61                           any(target_arch = "mips",
62                               target_arch = "arm",
63                               target_arch = "hexagon",
64                               target_arch = "powerpc",
65                               target_arch = "sparc",
66                               target_arch = "x86_64",
67                               target_arch = "x86")),
68                       repr(align(4)))]
69            #[cfg_attr(any(target_pointer_width = "64",
70                           not(any(target_arch = "mips",
71                                   target_arch = "arm",
72                                   target_arch = "hexagon",
73                                   target_arch = "powerpc",
74                                   target_arch = "sparc",
75                                   target_arch = "x86_64",
76                                   target_arch = "x86"))),
77                       repr(align(8)))]
78            pub struct pthread_mutex_t {
79                #[doc(hidden)]
80                size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T],
81            }
82
83            #[cfg_attr(all(target_pointer_width = "32",
84                           any(target_arch = "mips",
85                               target_arch = "arm",
86                               target_arch = "hexagon",
87                               target_arch = "powerpc",
88                               target_arch = "sparc",
89                               target_arch = "x86_64",
90                               target_arch = "x86")),
91                       repr(align(4)))]
92            #[cfg_attr(any(target_pointer_width = "64",
93                           not(any(target_arch = "mips",
94                                   target_arch = "arm",
95                                   target_arch = "hexagon",
96                                   target_arch = "powerpc",
97                                   target_arch = "sparc",
98                                   target_arch = "x86_64",
99                                   target_arch = "x86"))),
100                       repr(align(8)))]
101            pub struct pthread_rwlock_t {
102                size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
103            }
104        }
105    };
106}