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