zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

struct___timespec64.h (832B) - Raw


      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  */