msvcp100: Add stdext::threads::_Mtx_* implementation.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2016-10-11 15:51:23 +02:00 committed by Alexandre Julliard
parent 988cf549fc
commit a941841556
7 changed files with 99 additions and 40 deletions

View File

@ -1126,14 +1126,14 @@
@ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc @ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc
@ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ stub -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z @ cdecl -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z(ptr) threads__Mtx_new
@ stub -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z @ cdecl -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z(ptr) threads__Mtx_new
@ stub -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_unlock
@ stub -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_unlock
@ cdecl -arch=win32 ?_Mutex_Lock@_Mutex@std@@CAXPAV12@@Z(ptr) mutex_mutex_lock @ cdecl -arch=win32 ?_Mutex_Lock@_Mutex@std@@CAXPAV12@@Z(ptr) mutex_mutex_lock
@ cdecl -arch=win64 ?_Mutex_Lock@_Mutex@std@@CAXPEAV12@@Z(ptr) mutex_mutex_lock @ cdecl -arch=win64 ?_Mutex_Lock@_Mutex@std@@CAXPEAV12@@Z(ptr) mutex_mutex_lock
@ cdecl -arch=win32 ?_Mutex_Unlock@_Mutex@std@@CAXPAV12@@Z(ptr) mutex_mutex_unlock @ cdecl -arch=win32 ?_Mutex_Unlock@_Mutex@std@@CAXPAV12@@Z(ptr) mutex_mutex_unlock

View File

@ -1629,14 +1629,14 @@
@ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc @ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc
@ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ stub -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z @ cdecl -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z(ptr) threads__Mtx_new
@ stub -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z @ cdecl -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z(ptr) threads__Mtx_new
@ stub -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_unlock
@ stub -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_unlock
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) locale__Locimp__New_Locimp @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) locale__Locimp__New_Locimp
@ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) locale__Locimp__New_Locimp @ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) locale__Locimp__New_Locimp
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) locale__Locimp__New_Locimp_transparent @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) locale__Locimp__New_Locimp_transparent

View File

@ -1590,14 +1590,14 @@
@ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc @ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc
@ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ stub -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z @ cdecl -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z(ptr) threads__Mtx_new
@ stub -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z @ cdecl -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z(ptr) threads__Mtx_new
@ stub -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_unlock
@ stub -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_unlock
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) locale__Locimp__New_Locimp @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) locale__Locimp__New_Locimp
@ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) locale__Locimp__New_Locimp @ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) locale__Locimp__New_Locimp
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) locale__Locimp__New_Locimp_transparent @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) locale__Locimp__New_Locimp_transparent

View File

@ -279,6 +279,11 @@ static _Pad* (__thiscall *p__Pad_op_assign)(_Pad*, const _Pad*);
static void (__thiscall *p__Pad__Launch)(_Pad*, _Thrd_t*); static void (__thiscall *p__Pad__Launch)(_Pad*, _Thrd_t*);
static void (__thiscall *p__Pad__Release)(_Pad*); static void (__thiscall *p__Pad__Release)(_Pad*);
static void (__cdecl *p_threads__Mtx_new)(void **mtx);
static void (__cdecl *p_threads__Mtx_delete)(void *mtx);
static void (__cdecl *p_threads__Mtx_lock)(void *mtx);
static void (__cdecl *p_threads__Mtx_unlock)(void *mtx);
static BOOLEAN (WINAPI *pCreateSymbolicLinkA)(LPCSTR,LPCSTR,DWORD); static BOOLEAN (WINAPI *pCreateSymbolicLinkA)(LPCSTR,LPCSTR,DWORD);
static HMODULE msvcp; static HMODULE msvcp;
@ -388,6 +393,14 @@ static BOOL init(void)
"?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z"); "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z");
SET(p__Pad__Release, SET(p__Pad__Release,
"?_Release@_Pad@std@@QEAAXXZ"); "?_Release@_Pad@std@@QEAAXXZ");
SET(p_threads__Mtx_new,
"?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z");
SET(p_threads__Mtx_delete,
"?_Mtx_delete@threads@stdext@@YAXPEAX@Z");
SET(p_threads__Mtx_lock,
"?_Mtx_lock@threads@stdext@@YAXPEAX@Z");
SET(p_threads__Mtx_unlock,
"?_Mtx_unlock@threads@stdext@@YAXPEAX@Z");
} else { } else {
SET(p_tr2_sys__File_size, SET(p_tr2_sys__File_size,
"?_File_size@sys@tr2@std@@YA_KPBD@Z"); "?_File_size@sys@tr2@std@@YA_KPBD@Z");
@ -449,6 +462,14 @@ static BOOL init(void)
"?_Symlink@sys@tr2@std@@YAHPBD0@Z"); "?_Symlink@sys@tr2@std@@YAHPBD0@Z");
SET(p_tr2_sys__Unlink, SET(p_tr2_sys__Unlink,
"?_Unlink@sys@tr2@std@@YAHPBD@Z"); "?_Unlink@sys@tr2@std@@YAHPBD@Z");
SET(p_threads__Mtx_new,
"?_Mtx_new@threads@stdext@@YAXAAPAX@Z");
SET(p_threads__Mtx_delete,
"?_Mtx_delete@threads@stdext@@YAXPAX@Z");
SET(p_threads__Mtx_lock,
"?_Mtx_lock@threads@stdext@@YAXPAX@Z");
SET(p_threads__Mtx_unlock,
"?_Mtx_unlock@threads@stdext@@YAXPAX@Z");
#ifdef __i386__ #ifdef __i386__
SET(p_i386_Thrd_current, SET(p_i386_Thrd_current,
"_Thrd_current"); "_Thrd_current");
@ -2065,6 +2086,22 @@ static void test__Pad(void)
CloseHandle(_Pad__Launch_returned); CloseHandle(_Pad__Launch_returned);
} }
static void test_threads__Mtx(void)
{
void *mtx = NULL;
p_threads__Mtx_new(&mtx);
ok(mtx != NULL, "mtx == NULL\n");
p_threads__Mtx_lock(mtx);
p_threads__Mtx_lock(mtx);
p_threads__Mtx_unlock(mtx);
p_threads__Mtx_unlock(mtx);
p_threads__Mtx_unlock(mtx);
p_threads__Mtx_delete(mtx);
}
START_TEST(msvcp120) START_TEST(msvcp120)
{ {
if(!init()) return; if(!init()) return;
@ -2096,6 +2133,7 @@ START_TEST(msvcp120)
test_thrd(); test_thrd();
test_cnd(); test_cnd();
test__Pad(); test__Pad();
test_threads__Mtx();
test_vbtable_size_exports(); test_vbtable_size_exports();

View File

@ -1590,14 +1590,14 @@
@ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) msvcp120.?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z @ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) msvcp120.?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z
@ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) msvcp120.?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z @ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) msvcp120.?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z
@ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) msvcp120.?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z @ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) msvcp120.?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z
@ stub -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z(ptr) msvcp120.?_Mtx_delete@threads@stdext@@YAXPAX@Z
@ stub -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z(ptr) msvcp120.?_Mtx_delete@threads@stdext@@YAXPEAX@Z
@ stub -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z(ptr) msvcp120.?_Mtx_lock@threads@stdext@@YAXPAX@Z
@ stub -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z(ptr) msvcp120.?_Mtx_lock@threads@stdext@@YAXPEAX@Z
@ stub -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z @ cdecl -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z(ptr) msvcp120.?_Mtx_new@threads@stdext@@YAXAAPAX@Z
@ stub -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z @ cdecl -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z(ptr) msvcp120.?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z
@ stub -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z(ptr) msvcp120.?_Mtx_unlock@threads@stdext@@YAXPAX@Z
@ stub -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z(ptr) msvcp120.?_Mtx_unlock@threads@stdext@@YAXPEAX@Z
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) msvcp120.?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) msvcp120.?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z
@ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) msvcp120.?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z @ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) msvcp120.?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) msvcp120.?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) msvcp120.?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z

View File

@ -1509,14 +1509,14 @@
@ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc @ cdecl -arch=win64 ?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makewloc
@ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win32 ?_Makexloc@_Locimp@locale@std@@CAXABV_Locinfo@3@HPAV123@PBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc @ cdecl -arch=win64 ?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z(ptr long ptr ptr) locale__Locimp__Makexloc
@ stub -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_delete@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_delete@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_delete
@ stub -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_lock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_lock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_lock
@ stub -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z @ cdecl -arch=win32 ?_Mtx_new@threads@stdext@@YAXAAPAX@Z(ptr) threads__Mtx_new
@ stub -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z @ cdecl -arch=win64 ?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z(ptr) threads__Mtx_new
@ stub -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z @ cdecl -arch=win32 ?_Mtx_unlock@threads@stdext@@YAXPAX@Z(ptr) threads__Mtx_unlock
@ stub -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z @ cdecl -arch=win64 ?_Mtx_unlock@threads@stdext@@YAXPEAX@Z(ptr) threads__Mtx_unlock
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) locale__Locimp__New_Locimp @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@ABV123@@Z(ptr) locale__Locimp__New_Locimp
@ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) locale__Locimp__New_Locimp_transparent @ cdecl -arch=win32 ?_New_Locimp@_Locimp@locale@std@@CAPAV123@_N@Z(long) locale__Locimp__New_Locimp_transparent
@ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) locale__Locimp__New_Locimp @ cdecl -arch=win64 ?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z(ptr) locale__Locimp__New_Locimp

View File

@ -1318,3 +1318,24 @@ LONGLONG __cdecl _Query_perf_frequency(void)
return li.QuadPart; return li.QuadPart;
} }
#endif #endif
void __cdecl threads__Mtx_new(void **mtx)
{
*mtx = MSVCRT_operator_new(sizeof(CRITICAL_SECTION));
InitializeCriticalSection(*mtx);
}
void __cdecl threads__Mtx_delete(void *mtx)
{
DeleteCriticalSection(mtx);
}
void __cdecl threads__Mtx_lock(void *mtx)
{
EnterCriticalSection(mtx);
}
void __cdecl threads__Mtx_unlock(void *mtx)
{
LeaveCriticalSection(mtx);
}