Piotr Caban : msvcrt: Added _resetstkoflw implementation.

Alexandre Julliard julliard at winehq.org
Thu Apr 21 11:17:48 CDT 2011


Module: wine
Branch: master
Commit: 18b8f951bfe8fab2726e7ac47b4d3917d3e2281e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=18b8f951bfe8fab2726e7ac47b4d3917d3e2281e

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Apr 20 12:37:56 2011 +0200

msvcrt: Added _resetstkoflw implementation.

---

 dlls/msvcr100/msvcr100.spec |    2 +-
 dlls/msvcr70/msvcr70.spec   |    2 +-
 dlls/msvcr71/msvcr71.spec   |    2 +-
 dlls/msvcr80/msvcr80.spec   |    2 +-
 dlls/msvcr90/msvcr90.spec   |    2 +-
 dlls/msvcrt/misc.c          |   12 +++++++++++-
 dlls/msvcrt/msvcrt.spec     |    2 +-
 7 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index cf5b3e1..6d7718c 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1045,7 +1045,7 @@
 @ cdecl _realloc_crt(ptr long) msvcrt.realloc
 @ cdecl _recalloc(ptr long long) msvcr90._recalloc
 @ stub _recalloc_crt
-@ stub _resetstkoflw
+@ cdecl _resetstkoflw() msvcrt._resetstkoflw
 @ cdecl _rmdir(str) msvcrt._rmdir
 @ cdecl _rmtmp() msvcrt._rmtmp
 @ cdecl _rotl(long long) msvcrt._rotl
diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec
index 9df4d9c..a48003b 100644
--- a/dlls/msvcr70/msvcr70.spec
+++ b/dlls/msvcr70/msvcr70.spec
@@ -499,7 +499,7 @@
 @ cdecl _putws(wstr) msvcrt._putws
 @ stub _pwctype
 @ cdecl _read(long ptr long) msvcrt._read
-@ stub _resetstkoflw
+@ cdecl _resetstkoflw() msvcrt._resetstkoflw
 @ cdecl _rmdir(str) msvcrt._rmdir
 @ cdecl _rmtmp() msvcrt._rmtmp
 @ cdecl _rotl(long long) msvcrt._rotl
diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec
index 7949a4b..9caefb7 100644
--- a/dlls/msvcr71/msvcr71.spec
+++ b/dlls/msvcr71/msvcr71.spec
@@ -494,7 +494,7 @@
 @ cdecl _putws(wstr) msvcrt._putws
 @ extern _pwctype msvcrt._pwctype
 @ cdecl _read(long ptr long) msvcrt._read
-@ stub _resetstkoflw
+@ cdecl _resetstkoflw() msvcrt._resetstkoflw
 @ cdecl _rmdir(str) msvcrt._rmdir
 @ cdecl _rmtmp() msvcrt._rmtmp
 @ cdecl _rotl(long long) msvcrt._rotl
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index e2aec87..fa2a271 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -893,7 +893,7 @@
 @ cdecl _realloc_crt(ptr long) msvcrt.realloc
 @ cdecl _recalloc(ptr long long) msvcr90._recalloc
 @ stub _recalloc_crt
-@ stub _resetstkoflw
+@ cdecl _resetstkoflw() msvcrt._resetstkoflw
 @ cdecl _rmdir(str) msvcrt._rmdir
 @ cdecl _rmtmp() msvcrt._rmtmp
 @ cdecl _rotl(long long) msvcrt._rotl
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 36c7bdb..cbf4f74 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -879,7 +879,7 @@
 @ cdecl _realloc_crt(ptr long) msvcrt.realloc
 @ cdecl _recalloc(ptr long long)
 @ stub _recalloc_crt
-@ stub _resetstkoflw
+@ cdecl _resetstkoflw() msvcrt._resetstkoflw
 @ cdecl _rmdir(str) msvcrt._rmdir
 @ cdecl _rmtmp() msvcrt._rmtmp
 @ cdecl _rotl(long long) msvcrt._rotl
diff --git a/dlls/msvcrt/misc.c b/dlls/msvcrt/misc.c
index b32fdb9..a572636 100644
--- a/dlls/msvcrt/misc.c
+++ b/dlls/msvcrt/misc.c
@@ -256,9 +256,19 @@ void CDECL MSVCRT_qsort_s(void *base, MSVCRT_size_t nmemb, MSVCRT_size_t size,
 
 /*********************************************************************
  * _get_output_format (MSVCRT.@)
- *
  */
 unsigned int CDECL _get_output_format(void)
 {
    return 0;
 }
+
+/*********************************************************************
+ * _resetstkoflw (MSVCRT.@)
+ */
+int CDECL _resetstkoflw(void)
+{
+    int stack_addr;
+
+    /* causes stack fault that updates NtCurrentTeb()->Tib.StackLimit */
+    return VirtualProtect( &stack_addr, 1, PAGE_GUARD|PAGE_READWRITE, NULL );
+}
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 9777e32..aaaca94 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -827,7 +827,7 @@
 # extern _pwctype
 @ cdecl _read(long ptr long) MSVCRT__read
 # stub _realloc_dbg
-# stub _resetstkoflw
+@ cdecl _resetstkoflw()
 @ cdecl _rmdir(str) MSVCRT__rmdir
 @ cdecl _rmtmp()
 @ cdecl _rotl(long long)




More information about the wine-cvs mailing list