diff options
author | Danny Smith <dannysmith@users.sourceforge.net> | 2004-03-26 14:30:24 +0300 |
---|---|---|
committer | Danny Smith <dannysmith@users.sourceforge.net> | 2004-03-26 14:30:24 +0300 |
commit | ff9f5c83307da538c7e00fcbd06a2ae5ce75bf79 (patch) | |
tree | 7e939d187e592f5e3ab8aa7e8ed2b03a8ea01af9 /winsup/mingw | |
parent | 27ec638b258b73c00cc9a7d8dc147d3a0579f300 (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/ChangeLog | 48 | ||||
-rw-r--r-- | winsup/mingw/include/_mingw.h | 5 | ||||
-rw-r--r-- | winsup/mingw/include/io.h | 34 | ||||
-rw-r--r-- | winsup/mingw/include/malloc.h | 10 | ||||
-rw-r--r-- | winsup/mingw/include/math.h | 6 | ||||
-rw-r--r-- | winsup/mingw/include/string.h | 6 | ||||
-rw-r--r-- | winsup/mingw/include/sys/stat.h | 43 | ||||
-rw-r--r-- | winsup/mingw/include/sys/timeb.h | 13 | ||||
-rw-r--r-- | winsup/mingw/include/sys/types.h | 5 | ||||
-rw-r--r-- | winsup/mingw/include/sys/utime.h | 21 | ||||
-rw-r--r-- | winsup/mingw/include/time.h | 54 | ||||
-rw-r--r-- | winsup/mingw/include/wchar.h | 59 |
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 |