summary refs log tree commit diff stats
path: root/tinyc/win32/include/sys/utime.h
diff options
context:
space:
mode:
Diffstat (limited to 'tinyc/win32/include/sys/utime.h')
-rw-r--r--tinyc/win32/include/sys/utime.h195
1 files changed, 126 insertions, 69 deletions
diff --git a/tinyc/win32/include/sys/utime.h b/tinyc/win32/include/sys/utime.h
index 049524bed..fec8304ff 100644
--- a/tinyc/win32/include/sys/utime.h
+++ b/tinyc/win32/include/sys/utime.h
@@ -1,89 +1,146 @@
-/*
- * utime.h
- *
- * Support for the utime function.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- *  Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
- *
- *  THIS SOFTWARE IS NOT COPYRIGHTED
- *
- *  This source code is offered for use in the public domain. You may
- *  use, modify or distribute it freely.
- *
- *  This code is distributed in the hope that it will be useful but
- *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAIMED. This includes but is not limited to warranties of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.2 $
- * $Author: bellard $
- * $Date: 2005/04/17 13:14:29 $
- *
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
  */
+#ifndef _INC_UTIME
+#define _INC_UTIME
 
-#ifndef	__STRICT_ANSI__
-
-#ifndef	_UTIME_H_
-#define	_UTIME_H_
+#ifndef _WIN32
+#error Only Win32 target is supported!
+#endif
 
-/* All the headers include this file. */
 #include <_mingw.h>
 
-#define __need_wchar_t
-#define __need_size_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif	/* Not RC_INVOKED */
-#include <sys/types.h>
+#pragma pack(push,_CRT_PACKING)
 
-#ifndef	RC_INVOKED
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-/*
- * Structure used by _utime function.
- */
-struct _utimbuf
-{
-	time_t	actime;		/* Access time */
-	time_t	modtime;	/* Modification time */
-};
+#ifndef _CRTIMP
+#define _CRTIMP __declspec(dllimport)
+#endif
 
+#ifndef _WCHAR_T_DEFINED
+  typedef unsigned short wchar_t;
+#define _WCHAR_T_DEFINED
+#endif
 
-#ifndef	_NO_OLDNAMES
-/* NOTE: Must be the same as _utimbuf above. */
-struct utimbuf
-{
-	time_t	actime;
-	time_t	modtime;
-};
-#endif	/* Not _NO_OLDNAMES */
+#ifndef __TINYC__ /* gr */
+#ifdef _USE_32BIT_TIME_T
+#ifdef _WIN64
+#undef _USE_32BIT_TIME_T
+#endif
+#else
+#if _INTEGRAL_MAX_BITS < 64
+#define _USE_32BIT_TIME_T
+#endif
+#endif
+#endif
 
+#ifndef _TIME32_T_DEFINED
+#define _TIME32_T_DEFINED
+  typedef long __time32_t;
+#endif
 
-#ifdef	__cplusplus
-extern "C" {
+#ifndef _TIME64_T_DEFINED
+#define _TIME64_T_DEFINED
+#if _INTEGRAL_MAX_BITS >= 64
+  typedef __int64 __time64_t;
+#endif
+#endif
+
+#ifndef _TIME_T_DEFINED
+#define _TIME_T_DEFINED
+#ifdef _USE_32BIT_TIME_T
+  typedef __time32_t time_t;
+#else
+  typedef __time64_t time_t;
+#endif
 #endif
 
-int	_utime (const char*, struct _utimbuf*);
-int	_futime (int, struct _utimbuf*);
+#ifndef _UTIMBUF_DEFINED
+#define _UTIMBUF_DEFINED
 
-/* The wide character version, only available for MSVCRT versions of the
- * C runtime library. */
-#ifdef __MSVCRT__
-int	_wutime (const wchar_t*, struct _utimbuf*);
-#endif /* MSVCRT runtime */
-#ifndef	_NO_OLDNAMES
-int	utime (const char*, struct utimbuf*);
-#endif	/* Not _NO_OLDNAMES */
+  struct _utimbuf {
+    time_t actime;
+    time_t modtime;
+  };
 
-#ifdef	__cplusplus
-}
+  struct __utimbuf32 {
+    __time32_t actime;
+    __time32_t modtime;
+  };
+
+#if _INTEGRAL_MAX_BITS >= 64
+  struct __utimbuf64 {
+    __time64_t actime;
+    __time64_t modtime;
+  };
+#endif
+
+#ifndef	NO_OLDNAMES
+  struct utimbuf {
+    time_t actime;
+    time_t modtime;
+  };
+
+  struct utimbuf32 {
+    __time32_t actime;
+    __time32_t modtime;
+  };
+#endif
 #endif
 
-#endif	/* Not RC_INVOKED */
+  _CRTIMP int __cdecl _utime32(const char *_Filename,struct __utimbuf32 *_Time);
+  _CRTIMP int __cdecl _futime32(int _FileDes,struct __utimbuf32 *_Time);
+  _CRTIMP int __cdecl _wutime32(const wchar_t *_Filename,struct __utimbuf32 *_Time);
+#if _INTEGRAL_MAX_BITS >= 64
+  _CRTIMP int __cdecl _utime64(const char *_Filename,struct __utimbuf64 *_Time);
+  _CRTIMP int __cdecl _futime64(int _FileDes,struct __utimbuf64 *_Time);
+  _CRTIMP int __cdecl _wutime64(const wchar_t *_Filename,struct __utimbuf64 *_Time);
+#endif
 
-#endif	/* Not _UTIME_H_ */
+#ifndef RC_INVOKED
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE int __cdecl _utime(const char *_Filename,struct _utimbuf *_Utimbuf) {
+  return _utime32(_Filename,(struct __utimbuf32 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _futime(int _Desc,struct _utimbuf *_Utimbuf) {
+  return _futime32(_Desc,(struct __utimbuf32 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Utimbuf) {
+  return _wutime32(_Filename,(struct __utimbuf32 *)_Utimbuf);
+}
+#else
+__CRT_INLINE int __cdecl _utime(const char *_Filename,struct _utimbuf *_Utimbuf) {
+  return _utime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _futime(int _Desc,struct _utimbuf *_Utimbuf) {
+  return _futime64(_Desc,(struct __utimbuf64 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Utimbuf) {
+  return _wutime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
+}
+#endif
+
+#ifndef	NO_OLDNAMES
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE int __cdecl utime(const char *_Filename,struct utimbuf *_Utimbuf) {
+  return _utime32(_Filename,(struct __utimbuf32 *)_Utimbuf);
+}
+#else
+__CRT_INLINE int __cdecl utime(const char *_Filename,struct utimbuf *_Utimbuf) {
+  return _utime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
+}
+#endif
+#endif
+#endif
 
-#endif	/* Not __STRICT_ANSI__ */
+#ifdef __cplusplus
+}
+#endif
 
+#pragma pack(pop)
+#endif