Home | History | Annotate | Download | only in sys
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_UTIME
      7 #define _INC_UTIME
      8 
      9 #ifndef _WIN32
     10 #error Only Win32 target is supported!
     11 #endif
     12 
     13 #include <crtdefs.h>
     14 
     15 #pragma pack(push,_CRT_PACKING)
     16 
     17 #ifdef __cplusplus
     18 extern "C" {
     19 #endif
     20 
     21 #ifndef _CRTIMP
     22 #define _CRTIMP __declspec(dllimport)
     23 #endif
     24 
     25 #ifndef _WCHAR_T_DEFINED
     26   typedef unsigned short wchar_t;
     27 #define _WCHAR_T_DEFINED
     28 #endif
     29 
     30 #ifdef _USE_32BIT_TIME_T
     31 #ifdef _WIN64
     32 #undef _USE_32BIT_TIME_T
     33 #endif
     34 #endif
     35 
     36 #ifndef _TIME32_T_DEFINED
     37 #define _TIME32_T_DEFINED
     38   typedef long __time32_t;
     39 #endif
     40 
     41 #ifndef _TIME64_T_DEFINED
     42 #define _TIME64_T_DEFINED
     43   __MINGW_EXTENSION typedef __int64 __time64_t;
     44 #endif
     45 
     46 #ifndef _TIME_T_DEFINED
     47 #define _TIME_T_DEFINED
     48 #ifdef _USE_32BIT_TIME_T
     49   typedef __time32_t time_t;
     50 #else
     51   typedef __time64_t time_t;
     52 #endif
     53 #endif
     54 
     55 #ifndef _UTIMBUF_DEFINED
     56 #define _UTIMBUF_DEFINED
     57 
     58   struct _utimbuf {
     59     time_t actime;
     60     time_t modtime;
     61   };
     62 
     63   struct __utimbuf32 {
     64     __time32_t actime;
     65     __time32_t modtime;
     66   };
     67 
     68   struct __utimbuf64 {
     69     __time64_t actime;
     70     __time64_t modtime;
     71   };
     72 
     73 #ifndef	NO_OLDNAMES
     74   struct utimbuf {
     75     time_t actime;
     76     time_t modtime;
     77   };
     78 
     79   struct utimbuf32 {
     80     __time32_t actime;
     81     __time32_t modtime;
     82   };
     83 #endif
     84 #endif
     85 
     86   _CRTIMP int __cdecl _utime32(const char *_Filename,struct __utimbuf32 *_Time);
     87   _CRTIMP int __cdecl _futime32(int _FileDes,struct __utimbuf32 *_Time);
     88   _CRTIMP int __cdecl _wutime32(const wchar_t *_Filename,struct __utimbuf32 *_Time);
     89   _CRTIMP int __cdecl _utime64(const char *_Filename,struct __utimbuf64 *_Time);
     90   _CRTIMP int __cdecl _futime64(int _FileDes,struct __utimbuf64 *_Time);
     91   _CRTIMP int __cdecl _wutime64(const wchar_t *_Filename,struct __utimbuf64 *_Time);
     92 
     93 #ifndef RC_INVOKED
     94 int __cdecl _utime(const char *,struct _utimbuf *);
     95 int __cdecl _futime(int,struct _utimbuf *);
     96 int __cdecl _wutime(const wchar_t *,struct _utimbuf *);
     97 #ifndef __CRT__NO_INLINE
     98 #ifndef _USE_32BIT_TIME_T
     99 __CRT_INLINE int __cdecl _utime(const char *_Filename,struct _utimbuf *_Utimbuf) {
    100   return _utime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
    101 }
    102 __CRT_INLINE int __cdecl _futime(int _Desc,struct _utimbuf *_Utimbuf) {
    103   return _futime64(_Desc,(struct __utimbuf64 *)_Utimbuf);
    104 }
    105 __CRT_INLINE int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Utimbuf) {
    106   return _wutime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
    107 }
    108 #endif
    109 #endif /* !__CRT__NO_INLINE */
    110 
    111 #ifndef	NO_OLDNAMES
    112   int __cdecl utime(const char *, struct utimbuf *);
    113 #ifndef __CRT__NO_INLINE
    114 #ifndef _USE_32BIT_TIME_T
    115 __CRT_INLINE int __cdecl utime(const char *_Filename,struct utimbuf *_Utimbuf) {
    116   return _utime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
    117 }
    118 #endif /* !_USE_32BIT_TIME_T */
    119 #endif /* !__CRT__NO_INLINE */
    120 #endif
    121 #endif
    122 
    123 #ifdef __cplusplus
    124 }
    125 #endif
    126 
    127 #pragma pack(pop)
    128 #endif
    129