1 /* NB: Include guard matches what <linux/time.h> uses. */ 2 #ifndef _STRUCT_TIMESPEC 3 #define _STRUCT_TIMESPEC 1 4 5 #include <bits/types.h> 6 #include <bits/endian.h> 7 #include <bits/types/time_t.h> 8 9 /* POSIX.1b structure for a time value. This is like a `struct timeval' but 10 has nanoseconds instead of microseconds. */ 11 struct timespec 12 { 13 #ifdef __USE_TIME_BITS64 14 __time64_t tv_sec; /* Seconds. */ 15 #else 16 __time_t tv_sec; /* Seconds. */ 17 #endif 18 #if __WORDSIZE == 64 \ 19 || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ 20 || (__TIMESIZE == 32 && !defined __USE_TIME_BITS64) 21 __syscall_slong_t tv_nsec; /* Nanoseconds. */ 22 #else 23 # if __BYTE_ORDER == __BIG_ENDIAN 24 int: 32; /* Padding. */ 25 long int tv_nsec; /* Nanoseconds. */ 26 # else 27 long int tv_nsec; /* Nanoseconds. */ 28 int: 32; /* Padding. */ 29 # endif 30 #endif 31 }; 32 33 #endif 34