1 #ifndef _STRUCT_TIMESPEC64_H
2 #define _STRUCT_TIMESPEC64_H
3 
4 #if __TIMESIZE == 64
5 # define __timespec64 timespec
6 #else
7 #include <endian.h>
8 /* The glibc Y2038-proof struct __timespec64 structure for a time value.
9    To keep things Posix-ish, we keep the nanoseconds field a 32-bit
10    signed long, but since the Linux field is a 64-bit signed int, we
11    pad our tv_nsec with a 32-bit unnamed bit-field padding.
12 
13    As a general rule the Linux kernel is ignoring upper 32 bits of
14    tv_nsec field.  */
15 struct __timespec64
16 {
17   __time64_t tv_sec;         /* Seconds */
18 # if BYTE_ORDER == BIG_ENDIAN
19   __int32_t :32;             /* Padding */
20   __int32_t tv_nsec;         /* Nanoseconds */
21 # else
22   __int32_t tv_nsec;         /* Nanoseconds */
23   __int32_t :32;             /* Padding */
24 # endif
25 };
26 #endif
27 #endif /* _STRUCT_TIMESPEC64_H  */
28