diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-08 21:23:44 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-08 21:23:44 +0100 |
| commit | def0f3564c06461232deaaebd95449dd9812cbb1 (patch) | |
| tree | b80510e22e22865a3091210889468f0631d45bac /src | |
| parent | 7da2c56d0a911272dfe9e3b0e16464eda7af9e7c (diff) | |
| download | box64-def0f3564c06461232deaaebd95449dd9812cbb1.tar.gz box64-def0f3564c06461232deaaebd95449dd9812cbb1.zip | |
Added more wrapped functions to libc and libpthread
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 5 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 10 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 5 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 30 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibpthread_private.h | 65 |
5 files changed, 68 insertions, 47 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 91103155..ab640b20 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -86,6 +86,7 @@ #() iFpl #() iFpL #() iFpp +#() iFpO #() IFEp #() IFpu #() CFui @@ -128,6 +129,7 @@ #() pFpp #() pFpV #() HFpi +#() vFEpi #() vFEpu #() vFEpp #() vFEpV @@ -185,6 +187,7 @@ #() iFuup #() iFuff #() iFfff +#() iFLpp #() iFpii #() iFpiu #() iFpiL @@ -253,6 +256,7 @@ #() vFEipV #() vFEpip #() vFEpup +#() vFEppp #() vFiiii #() vFiiip #() vFiuip @@ -307,6 +311,7 @@ #() iFEupp #() iFEpip #() iFEppi +#() iFEppL #() iFEppp #() iFEppV #() iFEpOu diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index bb186a80..9e166650 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -119,6 +119,7 @@ typedef int32_t (*iFpd_t)(void*, double); typedef int32_t (*iFpl_t)(void*, intptr_t); typedef int32_t (*iFpL_t)(void*, uintptr_t); typedef int32_t (*iFpp_t)(void*, void*); +typedef int32_t (*iFpO_t)(void*, int32_t); typedef int64_t (*IFEp_t)(x64emu_t*, void*); typedef int64_t (*IFpu_t)(void*, uint32_t); typedef uint8_t (*CFui_t)(uint32_t, int32_t); @@ -161,6 +162,7 @@ typedef void* (*pFpL_t)(void*, uintptr_t); typedef void* (*pFpp_t)(void*, void*); typedef void* (*pFpV_t)(void*, void*); typedef unsigned __int128 (*HFpi_t)(void*, int32_t); +typedef void (*vFEpi_t)(x64emu_t*, void*, int32_t); typedef void (*vFEpu_t)(x64emu_t*, void*, uint32_t); typedef void (*vFEpp_t)(x64emu_t*, void*, void*); typedef void (*vFEpV_t)(x64emu_t*, void*, void*); @@ -218,6 +220,7 @@ typedef int32_t (*iFipp_t)(int32_t, void*, void*); typedef int32_t (*iFuup_t)(uint32_t, uint32_t, void*); typedef int32_t (*iFuff_t)(uint32_t, float, float); typedef int32_t (*iFfff_t)(float, float, float); +typedef int32_t (*iFLpp_t)(uintptr_t, void*, void*); typedef int32_t (*iFpii_t)(void*, int32_t, int32_t); typedef int32_t (*iFpiu_t)(void*, int32_t, uint32_t); typedef int32_t (*iFpiL_t)(void*, int32_t, uintptr_t); @@ -286,6 +289,7 @@ typedef void* (*pFppp_t)(void*, void*, void*); typedef void (*vFEipV_t)(x64emu_t*, int32_t, void*, void*); typedef void (*vFEpip_t)(x64emu_t*, void*, int32_t, void*); typedef void (*vFEpup_t)(x64emu_t*, void*, uint32_t, void*); +typedef void (*vFEppp_t)(x64emu_t*, void*, void*, void*); typedef void (*vFiiii_t)(int32_t, int32_t, int32_t, int32_t); typedef void (*vFiiip_t)(int32_t, int32_t, int32_t, void*); typedef void (*vFiuip_t)(int32_t, uint32_t, int32_t, void*); @@ -340,6 +344,7 @@ typedef int32_t (*iFEipp_t)(x64emu_t*, int32_t, void*, void*); typedef int32_t (*iFEupp_t)(x64emu_t*, uint32_t, void*, void*); typedef int32_t (*iFEpip_t)(x64emu_t*, void*, int32_t, void*); typedef int32_t (*iFEppi_t)(x64emu_t*, void*, void*, int32_t); +typedef int32_t (*iFEppL_t)(x64emu_t*, void*, void*, uintptr_t); typedef int32_t (*iFEppp_t)(x64emu_t*, void*, void*, void*); typedef int32_t (*iFEppV_t)(x64emu_t*, void*, void*, void*); typedef int32_t (*iFEpOu_t)(x64emu_t*, void*, int32_t, uint32_t); @@ -940,6 +945,7 @@ void iFpd(x64emu_t *emu, uintptr_t fcn) { iFpd_t fn = (iFpd_t)fcn; R_RAX=fn((voi void iFpl(x64emu_t *emu, uintptr_t fcn) { iFpl_t fn = (iFpl_t)fcn; R_RAX=fn((void*)R_RDI, (intptr_t)R_RSI); } void iFpL(x64emu_t *emu, uintptr_t fcn) { iFpL_t fn = (iFpL_t)fcn; R_RAX=fn((void*)R_RDI, (uintptr_t)R_RSI); } void iFpp(x64emu_t *emu, uintptr_t fcn) { iFpp_t fn = (iFpp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI); } +void iFpO(x64emu_t *emu, uintptr_t fcn) { iFpO_t fn = (iFpO_t)fcn; R_RAX=fn((void*)R_RDI, of_convert((int32_t)R_RSI)); } void IFEp(x64emu_t *emu, uintptr_t fcn) { IFEp_t fn = (IFEp_t)fcn; R_RAX=(uint64_t)fn(emu, (void*)R_RDI); } void IFpu(x64emu_t *emu, uintptr_t fcn) { IFpu_t fn = (IFpu_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (uint32_t)R_RSI); } void CFui(x64emu_t *emu, uintptr_t fcn) { CFui_t fn = (CFui_t)fcn; R_RAX=(unsigned char)fn((uint32_t)R_RDI, (int32_t)R_RSI); } @@ -982,6 +988,7 @@ void pFpL(x64emu_t *emu, uintptr_t fcn) { pFpL_t fn = (pFpL_t)fcn; R_RAX=(uintpt void pFpp(x64emu_t *emu, uintptr_t fcn) { pFpp_t fn = (pFpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI); } void pFpV(x64emu_t *emu, uintptr_t fcn) { pFpV_t fn = (pFpV_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)(R_RSP + 8)); } void HFpi(x64emu_t *emu, uintptr_t fcn) { HFpi_t fn = (HFpi_t)fcn; unsigned __int128 u128 = fn((void*)R_RDI, (int32_t)R_RSI); R_RAX=(u128&0xFFFFFFFFFFFFFFFFL); R_RDX=(u128>>64)&0xFFFFFFFFFFFFFFFFL; } +void vFEpi(x64emu_t *emu, uintptr_t fcn) { vFEpi_t fn = (vFEpi_t)fcn; fn(emu, (void*)R_RDI, (int32_t)R_RSI); } void vFEpu(x64emu_t *emu, uintptr_t fcn) { vFEpu_t fn = (vFEpu_t)fcn; fn(emu, (void*)R_RDI, (uint32_t)R_RSI); } void vFEpp(x64emu_t *emu, uintptr_t fcn) { vFEpp_t fn = (vFEpp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI); } void vFEpV(x64emu_t *emu, uintptr_t fcn) { vFEpV_t fn = (vFEpV_t)fcn; fn(emu, (void*)R_RDI, (void*)(R_RSP + 8)); } @@ -1039,6 +1046,7 @@ void iFipp(x64emu_t *emu, uintptr_t fcn) { iFipp_t fn = (iFipp_t)fcn; R_RAX=fn(( void iFuup(x64emu_t *emu, uintptr_t fcn) { iFuup_t fn = (iFuup_t)fcn; R_RAX=fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); } void iFuff(x64emu_t *emu, uintptr_t fcn) { iFuff_t fn = (iFuff_t)fcn; R_RAX=fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0]); } void iFfff(x64emu_t *emu, uintptr_t fcn) { iFfff_t fn = (iFfff_t)fcn; R_RAX=fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0]); } +void iFLpp(x64emu_t *emu, uintptr_t fcn) { iFLpp_t fn = (iFLpp_t)fcn; R_RAX=fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFpii(x64emu_t *emu, uintptr_t fcn) { iFpii_t fn = (iFpii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); } void iFpiu(x64emu_t *emu, uintptr_t fcn) { iFpiu_t fn = (iFpiu_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX); } void iFpiL(x64emu_t *emu, uintptr_t fcn) { iFpiL_t fn = (iFpiL_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX); } @@ -1107,6 +1115,7 @@ void pFppp(x64emu_t *emu, uintptr_t fcn) { pFppp_t fn = (pFppp_t)fcn; R_RAX=(uin void vFEipV(x64emu_t *emu, uintptr_t fcn) { vFEipV_t fn = (vFEipV_t)fcn; fn(emu, (int32_t)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); } void vFEpip(x64emu_t *emu, uintptr_t fcn) { vFEpip_t fn = (vFEpip_t)fcn; fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX); } void vFEpup(x64emu_t *emu, uintptr_t fcn) { vFEpup_t fn = (vFEpup_t)fcn; fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); } +void vFEppp(x64emu_t *emu, uintptr_t fcn) { vFEppp_t fn = (vFEppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } void vFiiii(x64emu_t *emu, uintptr_t fcn) { vFiiii_t fn = (vFiiii_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); } void vFiiip(x64emu_t *emu, uintptr_t fcn) { vFiiip_t fn = (vFiiip_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void vFiuip(x64emu_t *emu, uintptr_t fcn) { vFiuip_t fn = (vFiuip_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } @@ -1161,6 +1170,7 @@ void iFEipp(x64emu_t *emu, uintptr_t fcn) { iFEipp_t fn = (iFEipp_t)fcn; R_RAX=f void iFEupp(x64emu_t *emu, uintptr_t fcn) { iFEupp_t fn = (iFEupp_t)fcn; R_RAX=fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFEpip(x64emu_t *emu, uintptr_t fcn) { iFEpip_t fn = (iFEpip_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX); } void iFEppi(x64emu_t *emu, uintptr_t fcn) { iFEppi_t fn = (iFEppi_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); } +void iFEppL(x64emu_t *emu, uintptr_t fcn) { iFEppL_t fn = (iFEppL_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); } void iFEppp(x64emu_t *emu, uintptr_t fcn) { iFEppp_t fn = (iFEppp_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFEppV(x64emu_t *emu, uintptr_t fcn) { iFEppV_t fn = (iFEppV_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); } void iFEpOu(x64emu_t *emu, uintptr_t fcn) { iFEpOu_t fn = (iFEpOu_t)fcn; R_RAX=fn(emu, (void*)R_RDI, of_convert((int32_t)R_RSI), (uint32_t)R_RDX); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 48cd8a39..f4d6b5d4 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -116,6 +116,7 @@ void iFpd(x64emu_t *emu, uintptr_t fnc); void iFpl(x64emu_t *emu, uintptr_t fnc); void iFpL(x64emu_t *emu, uintptr_t fnc); void iFpp(x64emu_t *emu, uintptr_t fnc); +void iFpO(x64emu_t *emu, uintptr_t fnc); void IFEp(x64emu_t *emu, uintptr_t fnc); void IFpu(x64emu_t *emu, uintptr_t fnc); void CFui(x64emu_t *emu, uintptr_t fnc); @@ -158,6 +159,7 @@ void pFpL(x64emu_t *emu, uintptr_t fnc); void pFpp(x64emu_t *emu, uintptr_t fnc); void pFpV(x64emu_t *emu, uintptr_t fnc); void HFpi(x64emu_t *emu, uintptr_t fnc); +void vFEpi(x64emu_t *emu, uintptr_t fnc); void vFEpu(x64emu_t *emu, uintptr_t fnc); void vFEpp(x64emu_t *emu, uintptr_t fnc); void vFEpV(x64emu_t *emu, uintptr_t fnc); @@ -215,6 +217,7 @@ void iFipp(x64emu_t *emu, uintptr_t fnc); void iFuup(x64emu_t *emu, uintptr_t fnc); void iFuff(x64emu_t *emu, uintptr_t fnc); void iFfff(x64emu_t *emu, uintptr_t fnc); +void iFLpp(x64emu_t *emu, uintptr_t fnc); void iFpii(x64emu_t *emu, uintptr_t fnc); void iFpiu(x64emu_t *emu, uintptr_t fnc); void iFpiL(x64emu_t *emu, uintptr_t fnc); @@ -283,6 +286,7 @@ void pFppp(x64emu_t *emu, uintptr_t fnc); void vFEipV(x64emu_t *emu, uintptr_t fnc); void vFEpip(x64emu_t *emu, uintptr_t fnc); void vFEpup(x64emu_t *emu, uintptr_t fnc); +void vFEppp(x64emu_t *emu, uintptr_t fnc); void vFiiii(x64emu_t *emu, uintptr_t fnc); void vFiiip(x64emu_t *emu, uintptr_t fnc); void vFiuip(x64emu_t *emu, uintptr_t fnc); @@ -337,6 +341,7 @@ void iFEipp(x64emu_t *emu, uintptr_t fnc); void iFEupp(x64emu_t *emu, uintptr_t fnc); void iFEpip(x64emu_t *emu, uintptr_t fnc); void iFEppi(x64emu_t *emu, uintptr_t fnc); +void iFEppL(x64emu_t *emu, uintptr_t fnc); void iFEppp(x64emu_t *emu, uintptr_t fnc); void iFEppV(x64emu_t *emu, uintptr_t fnc); void iFEpOu(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 9f6b4fa3..cdc8c258 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -8,7 +8,7 @@ //GO(abs, //GO(accept, //GO(accept4, -//GOW(access, +GOW(access, iFpi) //GO(acct, //GOW(addmntent, //GOW(addseverity, @@ -576,9 +576,9 @@ GOW(getpriority, iFii) //GO(getrandom, //GO(getresgid, //GO(getresuid, -//GO(__getrlimit, -//GOW(getrlimit, -//GOW(getrlimit64, +GO(__getrlimit, iFip) +GOW(getrlimit, iFip) +GOW(getrlimit64, iFip) //GO(getrpcbyname, //GO(getrpcbyname_r, //GO(getrpcbynumber, @@ -1142,11 +1142,11 @@ GO(__memset_chk, pFpiuu) //GO(__mempcpy_small, //GO(__merge_grp, //GO(mincore, -//GOW(mkdir, -//GO(mkdirat, -//GO(mkdtemp, -//GO(mkfifo, -//GO(mkfifoat, +GOW(mkdir, iFpu) +GO(mkdirat, iFipu) +GO(mkdtemp, pFp) +GO(mkfifo, iFpu) +GO(mkfifoat, iFipu) //GO(mkostemp, //GOW(mkostemp64, //GO(mkostemps, @@ -1254,9 +1254,9 @@ GOW(nl_langinfo_l, pFup) //GOW(obstack_vprintf, //GO(__obstack_vprintf_chk, //GOW(on_exit, -//GOW(__open, -//GOW(open, -//GO(__open_2, +GOM(__open, iFEpOu) //Weak +GOM(open, iFEpOu) //Weak +GO(__open_2, iFpO) //GOW(__open64, GOM(open64, iFEpOu) //Weak //GO(__open64_2, @@ -1671,9 +1671,9 @@ GOM(sigaction, iFEipp) // Weak //GOW(sigblock, //GO(__sigdelset, //GO(sigdelset, -//GO(sigemptyset, -//GO(sigfillset, -//GO(siggetmask, +GO(sigemptyset, iFp) +GO(sigfillset, iFp) +GO(siggetmask, iFv) //GO(sighold, //GO(sigignore, //GO(siginterrupt, diff --git a/src/wrapped/wrappedlibpthread_private.h b/src/wrapped/wrappedlibpthread_private.h index aeccee66..d0a1148b 100755 --- a/src/wrapped/wrappedlibpthread_private.h +++ b/src/wrapped/wrappedlibpthread_private.h @@ -3,6 +3,7 @@ #endif // General note: pthread_t is unsigned long int // cpu_set_t is a struct with an array, default size is fixed for all architecture +// pthread_t is like unsigned long // __errno_location // fork @@ -18,38 +19,38 @@ GOM(pthread_atfork, iFEppp) GOM(__pthread_atfork, iFEppp) GOM(pthread_attr_destroy, iFEp) // pthread_attr_getaffinity_np -//GO(pthread_attr_getdetachstate, iFpp) -//GO(pthread_attr_getguardsize, iFpp) -//GO(pthread_attr_getinheritsched, iFpp) -//GO(pthread_attr_getschedparam, iFpp) -//GO(pthread_attr_getschedpolicy, iFpp) +GO(pthread_attr_getdetachstate, iFpp) +GO(pthread_attr_getguardsize, iFpp) +GO(pthread_attr_getinheritsched, iFpp) +GO(pthread_attr_getschedparam, iFpp) +GO(pthread_attr_getschedpolicy, iFpp) GO(pthread_attr_getscope, iFpp) -//GOM(pthread_attr_getstack, iFEppp) -//GO(pthread_attr_getstackaddr, iFpp) -//GO(pthread_attr_getstacksize, iFpp) +GOM(pthread_attr_getstack, iFEppp) +GO(pthread_attr_getstackaddr, iFpp) +GO(pthread_attr_getstacksize, iFpp) GO(pthread_attr_init, iFp) -//GOM(pthread_attr_setaffinity_np, iFEpup) -//GO(pthread_attr_setdetachstate, iFpi) -//GO(pthread_attr_setguardsize, iFpL) -//GO(pthread_attr_setinheritsched, iFpi) -//GO(pthread_attr_setschedparam, iFpp) -//GO(pthread_attr_setschedpolicy, iFpi) -//GO(pthread_attr_setscope, iFpi) -//GOM(pthread_attr_setstack, iFEppL) -//GO(pthread_attr_setstackaddr, iFpp) -//GO(pthread_attr_setstacksize, iFpL) -//GO(pthread_barrierattr_destroy, iFp) -//GO(pthread_barrierattr_getpshared, iFpp) -//GO(pthread_barrierattr_init, iFp) -//GO(pthread_barrierattr_setpshared, iFpi) -//GO(pthread_barrier_destroy, iFp) -//GO(pthread_barrier_init, iFppu) -//GO(pthread_barrier_wait, iFp) +GO(pthread_attr_setaffinity_np, iFpLp) +GO(pthread_attr_setdetachstate, iFpi) +GO(pthread_attr_setguardsize, iFpL) +GO(pthread_attr_setinheritsched, iFpi) +GO(pthread_attr_setschedparam, iFpp) +GO(pthread_attr_setschedpolicy, iFpi) +GO(pthread_attr_setscope, iFpi) +GOM(pthread_attr_setstack, iFEppL) +GO(pthread_attr_setstackaddr, iFpp) +GO(pthread_attr_setstacksize, iFpL) +GO(pthread_barrierattr_destroy, iFp) +GO(pthread_barrierattr_getpshared, iFpp) +GO(pthread_barrierattr_init, iFp) +GO(pthread_barrierattr_setpshared, iFpi) +GO(pthread_barrier_destroy, iFp) +GO(pthread_barrier_init, iFppu) +GO(pthread_barrier_wait, iFp) GO(pthread_cancel, iFL) -//GOM(_pthread_cleanup_pop, vFEpi) -//GOM(_pthread_cleanup_pop_restore, vFEpi) -//GOM(_pthread_cleanup_push, vFEppp) -//GOM(_pthread_cleanup_push_defer, vFEppp) +GOM(_pthread_cleanup_pop, vFEpi) +GOM(_pthread_cleanup_pop_restore, vFEpi) +GOM(_pthread_cleanup_push, vFEppp) +GOM(_pthread_cleanup_push_defer, vFEppp) // __pthread_cleanup_routine GO(pthread_condattr_destroy, iFp) GO(pthread_condattr_getclock, iFpp) @@ -71,7 +72,7 @@ GO(pthread_equal, iFLL) //GO(pthread_getattr_np, iFup) //GO(pthread_getconcurrency, iFv) //GO(pthread_getcpuclockid, iFup) -//GO(pthread_getschedparam, iFupp) +GO(pthread_getschedparam, iFLpp) //GO(__pthread_getspecific, pFu) //GO(pthread_getspecific, pFu) //GOM(pthread_getname_np, iFEppu) //not present on Pandora @@ -146,8 +147,8 @@ GO(pthread_self, LFv) //GOM(pthread_setname_np, iFEpp) // not present on the Pandora //GO(pthread_setschedparam, iFuip) //GO(pthread_setschedprio, iFpi) -//GO(__pthread_setspecific, iFup) -//GO(pthread_setspecific, iFup) +GO(__pthread_setspecific, iFLp) +GO(pthread_setspecific, iFLp) //GO(pthread_sigmask, iFipp) //GO(pthread_spin_destroy, iFp) //GO(pthread_spin_init, iFpi) |