]>
Commit | Line | Data |
---|---|---|
390b5a47 LM |
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 */ |