Piotr Caban : msvcrt: Move _fstat32 and _fstat64i32 functions to msvcrt.
Alexandre Julliard
julliard at winehq.org
Tue Apr 30 12:51:28 CDT 2013
Module: wine
Branch: master
Commit: f99742a5393e296581a07c6aef115d8248f83b17
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f99742a5393e296581a07c6aef115d8248f83b17
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Apr 30 14:29:59 2013 +0200
msvcrt: Move _fstat32 and _fstat64i32 functions to msvcrt.
---
dlls/msvcr100/msvcr100.c | 32 +-----------------------
dlls/msvcr100/msvcr100.spec | 4 +-
dlls/msvcr110/msvcr110.spec | 4 +-
dlls/msvcr80/msvcr80.spec | 4 +-
dlls/msvcr90/msvcr90.spec | 4 +-
dlls/msvcrt/file.c | 54 +++++++++++++++++++++++++++++++++++++++++++
dlls/msvcrt/msvcrt.spec | 2 +
7 files changed, 66 insertions(+), 38 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.c b/dlls/msvcr100/msvcr100.c
index 4449310..149f132 100644
--- a/dlls/msvcr100/msvcr100.c
+++ b/dlls/msvcr100/msvcr100.c
@@ -78,8 +78,8 @@ typedef void (__cdecl *free_func_t)(void*);
extern char* __cdecl __unDName(char *,const char*,int,malloc_func_t,free_func_t,unsigned short int);
/*********************************************************************
- * * stat64_to_stat32 [internal]
- * */
+ * stat64_to_stat32 [internal]
+ */
static void stat64_to_stat32(const struct _stat64 *buf64, struct _stat32 *buf)
{
buf->st_dev = buf64->st_dev;
@@ -210,20 +210,6 @@ void* CDECL _recalloc(void* mem, size_t num, size_t size)
}
/*********************************************************************
- * _fstat32 (MSVCR100.@)
- */
-int CDECL _fstat32(int fd, struct _stat32* buf)
-{
- int ret;
- struct _stat64 buf64;
-
- ret = _fstat64(fd, &buf64);
- if (!ret)
- stat64_to_stat32(&buf64, buf);
- return ret;
-}
-
-/*********************************************************************
* _stat32 (MSVCR100.@)
*/
int CDECL _stat32(const char *path, struct _stat32* buf)
@@ -310,20 +296,6 @@ static void stat64_to_stat64i32(const struct _stat64 *buf64, struct _stat64i32 *
}
/*********************************************************************
- * _fstat64i32 (MSVCR100.@)
- */
-int CDECL _fstat64i32(int fd, struct _stat64i32* buf)
-{
- int ret;
- struct _stat64 buf64;
-
- ret = _fstat64(fd, &buf64);
- if (!ret)
- stat64_to_stat64i32(&buf64, buf);
- return ret;
-}
-
-/*********************************************************************
* _stat64i32 (MSVCR100.@)
*/
int CDECL _stat64i32(const char* path, struct _stat64i32 * buf)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index e60e0fb..370feb2 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -841,10 +841,10 @@
@ cdecl _fseeki64(ptr int64 long) msvcrt._fseeki64
@ stub _fseeki64_nolock
@ cdecl _fsopen(str str long) msvcrt._fsopen
-@ cdecl _fstat32(long ptr)
+@ cdecl _fstat32(long ptr) msvcrt._fstat32
@ stub _fstat32i64
@ cdecl _fstat64(long ptr) msvcrt._fstat64
-@ cdecl _fstat64i32(long ptr)
+@ cdecl _fstat64i32(long ptr) msvcrt._fstat64i32
@ stub _ftell_nolock
@ cdecl -ret64 _ftelli64(ptr) msvcrt._ftelli64
@ stub _ftelli64_nolock
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 9f36dad..12fc808 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1193,10 +1193,10 @@
@ cdecl _fseeki64(ptr int64 long) msvcrt._fseeki64
@ stub _fseeki64_nolock
@ cdecl _fsopen(str str long) msvcrt._fsopen
-@ cdecl _fstat32(long ptr) msvcr100._fstat32
+@ cdecl _fstat32(long ptr) msvcrt._fstat32
@ stub _fstat32i64
@ cdecl _fstat64(long ptr) msvcrt._fstat64
-@ cdecl _fstat64i32(long ptr) msvcr100._fstat64i32
+@ cdecl _fstat64i32(long ptr) msvcrt._fstat64i32
@ stub _ftell_nolock
@ cdecl -ret64 _ftelli64(ptr) msvcrt._ftelli64
@ stub _ftelli64_nolock
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index a8490e1..47bf34f 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -507,10 +507,10 @@
@ cdecl _fseeki64(ptr int64 long) msvcrt._fseeki64
@ stub _fseeki64_nolock
@ cdecl _fsopen(str str long) msvcrt._fsopen
-@ cdecl _fstat32(long ptr) msvcr100._fstat32
+@ cdecl _fstat32(long ptr) msvcrt._fstat32
@ stub _fstat32i64
@ cdecl _fstat64(long ptr) msvcrt._fstat64
-@ cdecl _fstat64i32(long ptr) msvcr100._fstat64i32
+@ cdecl _fstat64i32(long ptr) msvcrt._fstat64i32
@ stub _ftell_nolock
@ cdecl -ret64 _ftelli64(ptr) msvcrt._ftelli64
@ stub _ftelli64_nolock
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 9783c2f..d76ab73 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -489,10 +489,10 @@
@ cdecl _fseeki64(ptr int64 long) msvcrt._fseeki64
@ stub _fseeki64_nolock
@ cdecl _fsopen(str str long) msvcrt._fsopen
-@ cdecl _fstat32(long ptr) msvcr100._fstat32
+@ cdecl _fstat32(long ptr) msvcrt._fstat32
@ stub _fstat32i64
@ cdecl _fstat64(long ptr) msvcrt._fstat64
-@ cdecl _fstat64i32(long ptr) msvcr100._fstat64i32
+@ cdecl _fstat64i32(long ptr) msvcrt._fstat64i32
@ stub _ftell_nolock
@ cdecl -ret64 _ftelli64(ptr) msvcrt._ftelli64
@ stub _ftelli64_nolock
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index c8863b3..c0c7124 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -177,6 +177,36 @@ static void msvcrt_stat64_to_stati64(const struct MSVCRT__stat64 *buf64, struct
buf->st_ctime = buf64->st_ctime;
}
+static void msvcrt_stat64_to_stat32(const struct MSVCRT__stat64 *buf64, struct MSVCRT__stat32 *buf)
+{
+ buf->st_dev = buf64->st_dev;
+ buf->st_ino = buf64->st_ino;
+ buf->st_mode = buf64->st_mode;
+ buf->st_nlink = buf64->st_nlink;
+ buf->st_uid = buf64->st_uid;
+ buf->st_gid = buf64->st_gid;
+ buf->st_rdev = buf64->st_rdev;
+ buf->st_size = buf64->st_size;
+ buf->st_atime = buf64->st_atime;
+ buf->st_mtime = buf64->st_mtime;
+ buf->st_ctime = buf64->st_ctime;
+}
+
+static void msvcrt_stat64_to_stat64i32(const struct MSVCRT__stat64 *buf64, struct MSVCRT__stat64i32 *buf)
+{
+ buf->st_dev = buf64->st_dev;
+ buf->st_ino = buf64->st_ino;
+ buf->st_mode = buf64->st_mode;
+ buf->st_nlink = buf64->st_nlink;
+ buf->st_uid = buf64->st_uid;
+ buf->st_gid = buf64->st_gid;
+ buf->st_rdev = buf64->st_rdev;
+ buf->st_size = buf64->st_size;
+ buf->st_atime = buf64->st_atime;
+ buf->st_mtime = buf64->st_mtime;
+ buf->st_ctime = buf64->st_ctime;
+}
+
static void time_to_filetime( MSVCRT___time64_t time, FILETIME *ft )
{
/* 1601 to 1970 is 369 years plus 89 leap days */
@@ -1558,6 +1588,30 @@ int CDECL MSVCRT__fstat(int fd, struct MSVCRT__stat* buf)
return ret;
}
+/* _fstat32 - not exported in native msvcrt */
+int CDECL _fstat32(int fd, struct MSVCRT__stat32* buf)
+{
+ int ret;
+ struct MSVCRT__stat64 buf64;
+
+ ret = MSVCRT__fstat64(fd, &buf64);
+ if (!ret)
+ msvcrt_stat64_to_stat32(&buf64, buf);
+ return ret;
+}
+
+/* _fstat64i32 - not exported in native msvcrt */
+int CDECL _fstat64i32(int fd, struct MSVCRT__stat64i32* buf)
+{
+ int ret;
+ struct MSVCRT__stat64 buf64;
+
+ ret = MSVCRT__fstat64(fd, &buf64);
+ if (!ret)
+ msvcrt_stat64_to_stat64i32(&buf64, buf);
+ return ret;
+}
+
/*********************************************************************
* _futime64 (MSVCRT.@)
*/
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 43d3c45..55ebba9 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1532,3 +1532,5 @@
@ cdecl _set_printf_count_output(long) MSVCRT__set_printf_count_output
@ cdecl _getptd()
@ cdecl fread_s(ptr long long long ptr)
+@ cdecl _fstat32(long ptr)
+@ cdecl _fstat64i32(long ptr)
More information about the wine-cvs
mailing list