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