Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2004-03-26 14:30:24 +0300
committerDanny Smith <dannysmith@users.sourceforge.net>2004-03-26 14:30:24 +0300
commitff9f5c83307da538c7e00fcbd06a2ae5ce75bf79 (patch)
tree7e939d187e592f5e3ab8aa7e8ed2b03a8ea01af9 /winsup/mingw
parent27ec638b258b73c00cc9a7d8dc147d3a0579f300 (diff)
Add prototypes for new msvcrt.dll versions
* include/_mingw.h (__MSVCRT_VERSION__): Define default as 0x0600. * include/time.h (__time64_t): Add typedef. (_mktime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601. (_ctime64): Likewise. (_wctime64): Likewise. (_gmtime64): Likewise. (_localtime64): Likewise. (wcsftime): Move into _WTIME_DEFINED block. Regroup non-ANSI prototypes. * include/io.h: Include <stdint.h>. (__finddata64_t): Add struct definition. (__wfinddata64_t): Likewise. (_findfirst64): Add prototype for __MSVCRT_VERSION__ >= 0x0601. (_findnext64): Likewise. (_wfindfirst64): Likewise. (_wfindnext64): Likewise. * include/sys/timeb.h (__timeb64): Add struct definition. (_ftime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601. * include/sys/utime.h (__utimbuf64): Add struct definition. (_utime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601. (_futime64): Likewise. (_wutime64): Likewise. * include/sys/stat.h (__stat64): Add struct definition. (_fstat64): Add prototype for __MSVCRT_VERSION__ >= 0x0601. (_stat64): Likewise. (_wstat64): Likwise. * include/sys/types.h (__time64_t): Add typedef. * include/wchar.h (__wfinddata64_t): Add structure definition. (__stat64): Likewise. (_wctime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601. (_wfindfirst64): Likewise. (_wfindnext64): Likewise. (_wutime64): Likewise. (_wstat64): Likwise. * include/malloc.h (_aligned_free): Add prototype for __MSVCRT_VERSION__ >= 0x0700. (_aligned_malloc): Likewise. (_aligned_offset_malloc): Likewise. (_aligned_offset_realloc): Likewise. (_aligned_realloc): Likewise. * include/string.h (_wcserror): Add prototype for __MSVCRT_VERSION__ >= 0x0700. (__wcserror): Likewise. * include/math.h (_set_SSE2_enable): Add prototype for __MSVCRT_VERSION__ >= 0x0701.
Diffstat (limited to 'winsup/mingw')
-rw-r--r--winsup/mingw/ChangeLog48
-rw-r--r--winsup/mingw/include/_mingw.h5
-rw-r--r--winsup/mingw/include/io.h34
-rw-r--r--winsup/mingw/include/malloc.h10
-rw-r--r--winsup/mingw/include/math.h6
-rw-r--r--winsup/mingw/include/string.h6
-rw-r--r--winsup/mingw/include/sys/stat.h43
-rw-r--r--winsup/mingw/include/sys/timeb.h13
-rw-r--r--winsup/mingw/include/sys/types.h5
-rw-r--r--winsup/mingw/include/sys/utime.h21
-rw-r--r--winsup/mingw/include/time.h54
-rw-r--r--winsup/mingw/include/wchar.h59
12 files changed, 254 insertions, 50 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
index 01419435d..65641bbc4 100644
--- a/winsup/mingw/ChangeLog
+++ b/winsup/mingw/ChangeLog
@@ -1,5 +1,53 @@
2004-03-25 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/_mingw.h (__MSVCRT_VERSION__): Define default as 0x0600.
+ * include/time.h (__time64_t): Add typedef.
+ (_mktime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
+ (_ctime64): Likewise.
+ (_wctime64): Likewise.
+ (_gmtime64): Likewise.
+ (_localtime64): Likewise.
+ (wcsftime): Move into _WTIME_DEFINED block.
+ Regroup non-ANSI prototypes.
+ * include/io.h: Include <stdint.h>.
+ (__finddata64_t): Add struct definition.
+ (__wfinddata64_t): Likewise.
+ (_findfirst64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
+ (_findnext64): Likewise.
+ (_wfindfirst64): Likewise.
+ (_wfindnext64): Likewise.
+ * include/sys/timeb.h (__timeb64): Add struct definition.
+ (_ftime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
+ * include/sys/utime.h (__utimbuf64): Add struct definition.
+ (_utime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
+ (_futime64): Likewise.
+ (_wutime64): Likewise.
+ * include/sys/stat.h (__stat64): Add struct definition.
+ (_fstat64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
+ (_stat64): Likewise.
+ (_wstat64): Likwise.
+ * include/sys/types.h (__time64_t): Add typedef.
+ * include/wchar.h (__wfinddata64_t): Add structure definition.
+ (__stat64): Likewise.
+ (_wctime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
+ (_wfindfirst64): Likewise.
+ (_wfindnext64): Likewise.
+ (_wutime64): Likewise.
+ (_wstat64): Likwise.
+ * include/malloc.h (_aligned_free): Add prototype for
+ __MSVCRT_VERSION__ >= 0x0700.
+ (_aligned_malloc): Likewise.
+ (_aligned_offset_malloc): Likewise.
+ (_aligned_offset_realloc): Likewise.
+ (_aligned_realloc): Likewise.
+ * include/string.h (_wcserror): Add prototype for
+ __MSVCRT_VERSION__ >= 0x0700.
+ (__wcserror): Likewise.
+ * include/math.h (_set_SSE2_enable): Add prototype for
+ __MSVCRT_VERSION__ >= 0x0701.
+
+2004-03-25 Danny Smith <dannysmith@users.sourceforge.net>
+
* include/stdio.h (_fsopen): Add prototype.
* include/tchar.h (_tfsopen): Add defines.
Thanks to "Gerik" <gerikr at users dot sourceforge dot net>
diff --git a/winsup/mingw/include/_mingw.h b/winsup/mingw/include/_mingw.h
index d606aa1db..e71d146f1 100644
--- a/winsup/mingw/include/_mingw.h
+++ b/winsup/mingw/include/_mingw.h
@@ -117,6 +117,11 @@
# endif
#endif
+#ifndef __MSVCRT_VERSION__
+/* High byte is the major version, low byte is the minor. */
+# define __MSVCRT_VERSION__ 0x0600
+#endif
+
#define __MINGW32_VERSION 4.0
#define __MINGW32_MAJOR_VERSION 4
#define __MINGW32_MINOR_VERSION 0
diff --git a/winsup/mingw/include/io.h b/winsup/mingw/include/io.h
index 433aa57ab..83498044f 100644
--- a/winsup/mingw/include/io.h
+++ b/winsup/mingw/include/io.h
@@ -33,7 +33,8 @@
* NOTE: This also defines off_t, the file offset type, through
* an inclusion of sys/types.h */
-#include <sys/types.h> /* To get time_t. */
+#include <sys/types.h> /* To get time_t. */
+#include <stdint.h> /* For intptr_t. */
/*
* Attributes of files as returned by _findfirst et al.
@@ -86,6 +87,14 @@ struct _finddatai64_t {
char name[FILENAME_MAX];
};
+struct __finddata64_t {
+ unsigned attrib;
+ __time64_t time_create;
+ __time64_t time_access;
+ __time64_t time_write;
+ _fsize_t size;
+ char name[FILENAME_MAX];
+};
#ifndef _WFINDDATA_T_DEFINED
struct _wfinddata_t {
@@ -96,6 +105,7 @@ struct _wfinddata_t {
_fsize_t size;
wchar_t name[FILENAME_MAX]; /* may include spaces. */
};
+
struct _wfinddatai64_t {
unsigned attrib;
time_t time_create;
@@ -105,6 +115,15 @@ struct _wfinddatai64_t {
wchar_t name[FILENAME_MAX];
};
+struct __wfinddata64_t {
+ unsigned attrib;
+ __time64_t time_create;
+ __time64_t time_access;
+ __time64_t time_write;
+ _fsize_t size;
+ wchar_t name[FILENAME_MAX];
+};
+
#define _WFINDDATA_T_DEFINED
#endif
@@ -118,6 +137,7 @@ extern "C" {
* _findclose calls. _findnext also returns -1 if no match could be found,
* and 0 if a match was found. Call _findclose when you are finished.
*/
+/* FIXME: Should these all use intptr_t, as per recent MSDN docs? */
_CRTIMP int __cdecl _findfirst (const char*, struct _finddata_t*);
_CRTIMP int __cdecl _findnext (int, struct _finddata_t*);
_CRTIMP int __cdecl _findclose (int);
@@ -129,16 +149,19 @@ _CRTIMP char* __cdecl _mktemp (char*);
_CRTIMP int __cdecl _rmdir (const char*);
_CRTIMP int __cdecl _chmod (const char*, int);
-
#ifdef __MSVCRT__
_CRTIMP __int64 __cdecl _filelengthi64(int);
_CRTIMP long __cdecl _findfirsti64(const char*, struct _finddatai64_t*);
_CRTIMP int __cdecl _findnexti64(long, struct _finddatai64_t*);
_CRTIMP __int64 __cdecl _lseeki64(int, __int64, int);
_CRTIMP __int64 __cdecl _telli64(int);
+/* These require newer versions of msvcrt.dll (6.1 or higher). */
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP intptr_t __cdecl _findfirst64(const char*, struct __finddata64_t*);
+_CRTIMP intptr_t __cdecl _findnext64(intptr_t, struct __finddata64_t*);
+#endif /* __MSVCRT_VERSION__ >= 0x0601 */
#endif /* __MSVCRT__ */
-
#ifndef _NO_OLDNAMES
#ifndef _UWIN
@@ -162,7 +185,6 @@ _CRTIMP int __cdecl chmod (const char*, int);
* it the same as FOPEN_MAX. */
#define HANDLE_MAX FOPEN_MAX
-
/* Some defines for _access nAccessMode (MS doesn't define them, but
* it doesn't seem to hurt to add them). */
#define F_OK 0 /* Check for file existence */
@@ -238,6 +260,10 @@ _CRTIMP int __cdecl _wsopen(const wchar_t*, int, int, ...);
_CRTIMP wchar_t * __cdecl _wmktemp(wchar_t*);
_CRTIMP long __cdecl _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
_CRTIMP int __cdecl _wfindnexti64(long, struct _wfinddatai64_t*);
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP intptr_t __cdecl _wfindfirst64(const wchar_t*, struct __wfinddata64_t*);
+_CRTIMP intptr_t __cdecl _wfindnext64(intptr_t, struct __wfinddata64_t*);
+#endif
#endif /* defined (__MSVCRT__) */
#define _WIO_DEFINED
#endif /* _WIO_DEFINED */
diff --git a/winsup/mingw/include/malloc.h b/winsup/mingw/include/malloc.h
index 06bfcf4b0..a1a38f5b3 100644
--- a/winsup/mingw/include/malloc.h
+++ b/winsup/mingw/include/malloc.h
@@ -79,6 +79,16 @@ _CRTIMP size_t __cdecl _get_sbh_threshold (void);
_CRTIMP int __cdecl _set_sbh_threshold (size_t);
_CRTIMP void* __cdecl _expand (void*, size_t);
+/* These require msvcr70.dll or higher. */
+#if __MSVCRT_VERSION__ >= 0x0700
+_CRTIMP void * __cdecl _aligned_offset_malloc(size_t, size_t, size_t);
+_CRTIMP void * __cdecl _aligned_offset_realloc(void*, size_t, size_t, size_t);
+
+_CRTIMP void* __cdecl _aligned_malloc (size_t, size_t);
+_CRTIMP void* __cdecl _aligned_realloc (void*, size_t, size_t);
+_CRTIMP void __cdecl _aligned_free (void*);
+#endif /* __MSVCRT_VERSION__ >= 0x0700 */
+
#ifdef __cplusplus
}
#endif
diff --git a/winsup/mingw/include/math.h b/winsup/mingw/include/math.h
index 96405229d..919646f04 100644
--- a/winsup/mingw/include/math.h
+++ b/winsup/mingw/include/math.h
@@ -236,6 +236,12 @@ _CRTIMP int __cdecl fpclass (double);
#endif /* Not _NO_OLDNAMES */
+/* This require msvcr70.dll or higher. */
+#if __MSVCRT_VERSION__ >= 0x0700
+_CRTIMP int __cdecl _set_SSE2_enable (int);
+#endif /* __MSVCRT_VERSION__ >= 0x0700 */
+
+
#endif /* __STRICT_ANSI__ */
diff --git a/winsup/mingw/include/string.h b/winsup/mingw/include/string.h
index afedab717..790ccba23 100644
--- a/winsup/mingw/include/string.h
+++ b/winsup/mingw/include/string.h
@@ -140,7 +140,11 @@ _CRTIMP wchar_t* __cdecl _wcsupr (wchar_t*);
#ifdef __MSVCRT__
_CRTIMP int __cdecl _wcsncoll(const wchar_t*, const wchar_t*, size_t);
-_CRTIMP int __cdecl _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
+_CRTIMP int __cdecl _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
+#if __MSVCRT_VERSION__ >= 0x0700
+_CRTIMP wchar_t* __cdecl _wcserror(int);
+_CRTIMP wchar_t* __cdecl __wcserror(const wchar_t*);
+#endif
#endif
diff --git a/winsup/mingw/include/sys/stat.h b/winsup/mingw/include/sys/stat.h
index f782d2fa1..3d24c61e9 100644
--- a/winsup/mingw/include/sys/stat.h
+++ b/winsup/mingw/include/sys/stat.h
@@ -130,6 +130,7 @@ struct stat
time_t st_mtime; /* Modified time */
time_t st_ctime; /* Creation time */
};
+
#if defined (__MSVCRT__)
struct _stati64 {
_dev_t st_dev;
@@ -144,6 +145,21 @@ struct _stati64 {
time_t st_mtime;
time_t st_ctime;
};
+
+struct __stat64
+{
+ _dev_t st_dev;
+ _ino_t st_ino;
+ _mode_t st_mode;
+ short st_nlink;
+ short st_uid;
+ short st_gid;
+ _dev_t st_rdev;
+ _off_t st_size;
+ __time64_t st_atime;
+ __time64_t st_mtime;
+ __time64_t st_ctime;
+};
#endif /* __MSVCRT__ */
#define _STAT_DEFINED
#endif /* _STAT_DEFINED */
@@ -156,16 +172,6 @@ _CRTIMP int __cdecl _fstat (int, struct _stat*);
_CRTIMP int __cdecl _chmod (const char*, int);
_CRTIMP int __cdecl _stat (const char*, struct _stat*);
-#if defined (__MSVCRT__)
-_CRTIMP int __cdecl _fstati64(int, struct _stati64 *);
-_CRTIMP int __cdecl _stati64(const char *, struct _stati64 *);
-#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */
-_CRTIMP int __cdecl _wstat(const wchar_t*, struct _stat*);
-_CRTIMP int __cdecl _wstati64 (const wchar_t*, struct _stati64*);
-#define _WSTAT_DEFINED
-#endif /* _WSTAT_DEFIND */
-#endif /* __MSVCRT__ */
-
#ifndef _NO_OLDNAMES
/* These functions live in liboldnames.a. */
@@ -175,6 +181,23 @@ _CRTIMP int __cdecl stat (const char*, struct stat*);
#endif /* Not _NO_OLDNAMES */
+#if defined (__MSVCRT__)
+_CRTIMP int __cdecl _fstati64(int, struct _stati64 *);
+_CRTIMP int __cdecl _stati64(const char *, struct _stati64 *);
+/* These require newer versions of msvcrt.dll (6.10 or higher). */
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP int __cdecl _fstat64 (int, struct __stat64*);
+_CRTIMP int __cdecl _stat64 (const char*, struct __stat64*);
+#endif /* __MSVCRT_VERSION__ >= 0x0601 */
+#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */
+_CRTIMP int __cdecl _wstat(const wchar_t*, struct _stat*);
+_CRTIMP int __cdecl _wstati64 (const wchar_t*, struct _stati64*);
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP int __cdecl _wstat64 (const wchar_t*, struct __stat64*);
+#endif /* __MSVCRT_VERSION__ >= 0x0601 */
+#define _WSTAT_DEFINED
+#endif /* _WSTAT_DEFIND */
+#endif /* __MSVCRT__ */
#ifdef __cplusplus
}
diff --git a/winsup/mingw/include/sys/timeb.h b/winsup/mingw/include/sys/timeb.h
index 4e5b1bfae..a09310467 100644
--- a/winsup/mingw/include/sys/timeb.h
+++ b/winsup/mingw/include/sys/timeb.h
@@ -29,6 +29,7 @@
/* All the headers include this file. */
#include <_mingw.h>
+#include <sys/types.h>
#ifndef RC_INVOKED
@@ -56,6 +57,13 @@ struct timeb
};
#endif
+struct __timeb64
+{
+ __time64_t time;
+ short millitm;
+ short timezone;
+ short dstflag;
+};
#ifdef __cplusplus
extern "C" {
@@ -68,6 +76,11 @@ _CRTIMP void __cdecl _ftime (struct _timeb*);
_CRTIMP void __cdecl ftime (struct timeb*);
#endif /* Not _NO_OLDNAMES */
+/* This requires newer versions of msvcrt.dll (6.10 or higher). */
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP void __cdecl _ftime64 (struct __timeb64*);
+#endif /* __MSVCRT_VERSION__ >= 0x0601 */
+
#ifdef __cplusplus
}
#endif
diff --git a/winsup/mingw/include/sys/types.h b/winsup/mingw/include/sys/types.h
index a1f66abdb..ba512526b 100644
--- a/winsup/mingw/include/sys/types.h
+++ b/winsup/mingw/include/sys/types.h
@@ -45,6 +45,10 @@ typedef long time_t;
#define _TIME_T_DEFINED
#endif
+#ifndef _TIME64_T_DEFINED
+typedef __int64 __time64_t;
+#define _TIME64_T_DEFINED
+#endif
#ifndef _OFF_T_
#define _OFF_T_
@@ -118,6 +122,7 @@ typedef _ssize_t ssize_t;
#endif
#endif /* Not _SSIZE_T_ */
+
#endif /* Not RC_INVOKED */
#endif /* Not _TYPES_H_ */
diff --git a/winsup/mingw/include/sys/utime.h b/winsup/mingw/include/sys/utime.h
index f95ec8485..14a2870de 100644
--- a/winsup/mingw/include/sys/utime.h
+++ b/winsup/mingw/include/sys/utime.h
@@ -57,12 +57,23 @@ struct utimbuf
};
#endif /* Not _NO_OLDNAMES */
+struct __utimbuf64
+{
+ __time64_t actime;
+ __time64_t modtime;
+};
+
#ifdef __cplusplus
extern "C" {
#endif
_CRTIMP int __cdecl _utime (const char*, struct _utimbuf*);
+
+#ifndef _NO_OLDNAMES
+_CRTIMP int __cdecl utime (const char*, struct utimbuf*);
+#endif /* Not _NO_OLDNAMES */
+
_CRTIMP int __cdecl _futime (int, struct _utimbuf*);
/* The wide character version, only available for MSVCRT versions of the
@@ -70,9 +81,13 @@ _CRTIMP int __cdecl _futime (int, struct _utimbuf*);
#ifdef __MSVCRT__
_CRTIMP int __cdecl _wutime (const wchar_t*, struct _utimbuf*);
#endif /* MSVCRT runtime */
-#ifndef _NO_OLDNAMES
-_CRTIMP int __cdecl utime (const char*, struct utimbuf*);
-#endif /* Not _NO_OLDNAMES */
+
+/* These require newer versions of msvcrt.dll (6.10 or higher). */
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP int __cdecl _utime64 (const char*, struct __utimbuf64*);
+_CRTIMP int __cdecl _wutime64 (const wchar_t*, struct __utimbuf64*);
+_CRTIMP int __cdecl _futime64 (int, struct __utimbuf64*);
+#endif /* __MSVCRT_VERSION__ >= 0x0601 */
#ifdef __cplusplus
}
diff --git a/winsup/mingw/include/time.h b/winsup/mingw/include/time.h
index 45d6b0e1c..2a75e18cb 100644
--- a/winsup/mingw/include/time.h
+++ b/winsup/mingw/include/time.h
@@ -62,6 +62,13 @@ typedef long time_t;
#define _TIME_T_DEFINED
#endif
+#ifndef __STRICT_ANSI__
+/* A 64-bit time_t to get to Y3K */
+#ifndef _TIME64_T_DEFINED
+typedef __int64 __time64_t
+#define _TIME64_T_DEFINED
+#endif
+#endif
/*
* A type for measuring processor time (in clock ticks).
*/
@@ -70,7 +77,6 @@ typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
-
/*
* A structure for storing all kinds of useful information about the
* current (or another) time.
@@ -113,12 +119,10 @@ _CRTIMP char* __cdecl ctime (const time_t*);
_CRTIMP struct tm* __cdecl gmtime (const time_t*);
_CRTIMP struct tm* __cdecl localtime (const time_t*);
-
-_CRTIMP size_t __cdecl strftime (char*, size_t, const char*, const struct tm*);
-
-_CRTIMP size_t __cdecl wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
+_CRTIMP size_t __cdecl strftime (char*, size_t, const char*, const struct tm*);
#ifndef __STRICT_ANSI__
+
extern _CRTIMP void __cdecl _tzset (void);
#ifndef _NO_OLDNAMES
@@ -128,7 +132,14 @@ extern _CRTIMP void __cdecl tzset (void);
_CRTIMP char* __cdecl _strdate(char*);
_CRTIMP char* __cdecl _strtime(char*);
-#endif /* Not __STRICT_ANSI__ */
+/* These require newer versions of msvcrt.dll (6.10 or higher). */
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP __time64_t __cdecl _time64( __time64_t);
+_CRTIMP __time64_t __cdecl _mktime64 (struct tm*);
+_CRTIMP char* __cdecl _ctime64 (const __time64_t*);
+_CRTIMP struct tm* __cdecl _gmtime64 (const __time64_t*);
+_CRTIMP struct tm* __cdecl _localtime64 (const __time64_t*);
+#endif /* __MSVCRT_VERSION__ >= 0x0601 */
/*
* _daylight: non zero if daylight savings time is used.
@@ -181,19 +192,6 @@ __MINGW_IMPORT int daylight;
__MINGW_IMPORT long timezone;
__MINGW_IMPORT char *tzname[2];
-#ifndef _WTIME_DEFINED
-
-/* wide function prototypes, also declared in wchar.h */
-
-_CRTIMP wchar_t* __cdecl _wasctime(const struct tm*);
-_CRTIMP wchar_t* __cdecl _wctime(const time_t*);
-_CRTIMP wchar_t* __cdecl _wstrdate(wchar_t*);
-_CRTIMP wchar_t* __cdecl _wstrtime(wchar_t*);
-
-#define _WTIME_DEFINED
-#endif /* _WTIME_DEFINED */
-
-
#else /* not __MSVCRT__ */
/* CRTDLL is royally messed up when it comes to these macros.
@@ -208,6 +206,24 @@ __MINGW_IMPORT char *tzname[2];
#endif /* not __MSVCRT__ */
#endif /* Not _NO_OLDNAMES */
+#endif /* Not __STRICT_ANSI__ */
+
+#ifndef __STRICT_ANSI__
+#ifndef _WTIME_DEFINED
+/* wide function prototypes, also declared in wchar.h */
+#ifdef __MSVCRT__
+_CRTIMP wchar_t* __cdecl _wasctime(const struct tm*);
+_CRTIMP wchar_t* __cdecl _wctime(const time_t*);
+_CRTIMP wchar_t* __cdecl _wstrdate(wchar_t*);
+_CRTIMP wchar_t* __cdecl _wstrtime(wchar_t*);
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP wchar_t* __cdecl _wctime64 (const __time64_t*);
+#endif
+#endif /* __MSVCRT__ */
+_CRTIMP size_t __cdecl wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
+#define _WTIME_DEFINED
+#endif /* _WTIME_DEFINED */
+#endif /* __STRICT_ANSI__ */
#ifdef __cplusplus
}
diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h
index d4367c5de..7a297ec7e 100644
--- a/winsup/mingw/include/wchar.h
+++ b/winsup/mingw/include/wchar.h
@@ -36,6 +36,7 @@
#include <string.h>
#include <time.h>
#include <sys/types.h>
+#include <stdint.h>
#define __need_size_t
#define __need_wint_t
@@ -62,20 +63,28 @@ typedef unsigned long _fsize_t;
#ifndef _WFINDDATA_T_DEFINED
struct _wfinddata_t {
- unsigned attrib;
- time_t time_create; /* -1 for FAT file systems */
- time_t time_access; /* -1 for FAT file systems */
- time_t time_write;
- _fsize_t size;
- wchar_t name[FILENAME_MAX]; /* may include spaces. */
+ unsigned attrib;
+ time_t time_create; /* -1 for FAT file systems */
+ time_t time_access; /* -1 for FAT file systems */
+ time_t time_write;
+ _fsize_t size;
+ wchar_t name[FILENAME_MAX]; /* may include spaces. */
};
struct _wfinddatai64_t {
- unsigned attrib;
- time_t time_create;
- time_t time_access;
- time_t time_write;
- __int64 size;
- wchar_t name[FILENAME_MAX];
+ unsigned attrib;
+ time_t time_create;
+ time_t time_access;
+ time_t time_write;
+ __int64 size;
+ wchar_t name[FILENAME_MAX];
+};
+struct __wfinddata64_t {
+ unsigned attrib;
+ __time64_t time_create;
+ __time64_t time_access;
+ __time64_t time_write;
+ _fsize_t size;
+ wchar_t name[FILENAME_MAX];
};
#define _WFINDDATA_T_DEFINED
#endif
@@ -96,6 +105,10 @@ _CRTIMP int __cdecl _wsopen (const wchar_t*, int, int, ...);
_CRTIMP wchar_t* __cdecl _wmktemp (wchar_t*);
_CRTIMP long __cdecl _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*);
_CRTIMP int __cdecl _wfindnexti64 (long, struct _wfinddatai64_t*);
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP intptr_t __cdecl _wfindfirst64(const wchar_t*, struct __wfinddata64_t*);
+_CRTIMP intptr_t __cdecl _wfindnext64(intptr_t, struct __wfinddata64_t*);
+#endif
#endif /* defined (__MSVCRT__) */
#define _WIO_DEFINED
#endif /* _WIO_DEFINED */
@@ -218,6 +231,21 @@ struct _stati64 {
time_t st_mtime;
time_t st_ctime;
};
+
+struct __stat64
+{
+ _dev_t st_dev;
+ _ino_t st_ino;
+ _mode_t st_mode;
+ short st_nlink;
+ short st_uid;
+ short st_gid;
+ _dev_t st_rdev;
+ _off_t st_size;
+ __time64_t st_atime;
+ __time64_t st_mtime;
+ __time64_t st_ctime;
+};
#endif /* __MSVCRT__ */
#define _STAT_DEFINED
#endif /* _STAT_DEFINED */
@@ -227,6 +255,9 @@ struct _stati64 {
#if defined __MSVCRT__
_CRTIMP int __cdecl _wstat (const wchar_t*, struct _stat*);
_CRTIMP int __cdecl _wstati64 (const wchar_t*, struct _stati64*);
+#if __MSVCRT_VERSION__ >= 0x0601
+_CRTIMP int __cdecl _wstat64 (const wchar_t*, struct __stat64*);
+#endif /* __MSVCRT_VERSION__ >= 0x0601 */
#endif /* __MSVCRT__ */
#define _WSTAT_DEFINED
#endif /* ! _WSTAT_DEFIND */
@@ -238,6 +269,9 @@ _CRTIMP wchar_t* __cdecl _wasctime (const struct tm*);
_CRTIMP wchar_t* __cdecl _wctime (const time_t*);
_CRTIMP wchar_t* __cdecl _wstrdate (wchar_t*);
_CRTIMP wchar_t* __cdecl _wstrtime (wchar_t*);
+#if __MSVCRT_VERSION__ >= 0x601
+_CRTIMP wchar_t* __cdecl _wctime64 (const __time64_t*);
+#endif
#endif /* __MSVCRT__ */
_CRTIMP size_t __cdecl wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
#define _WTIME_DEFINED
@@ -314,7 +348,6 @@ unsigned long long __cdecl wcstoull(const wchar_t* __restrict__ nptr,
wchar_t ** __restrict__ endptr, int base);
#endif /* __NO_ISOCEXT */
-
#ifdef __cplusplus
} /* end of extern "C" */
#endif