diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-06-02 14:52:10 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-06-02 14:52:10 +0200 |
| commit | d3ea3909830b837cb6aa0a3e74af72c10575f2f9 (patch) | |
| tree | 85f25a028015998590de4163424aa12d335f5eed /src | |
| parent | 2f1cc844fdd9b2c6d6fd5dafcf590afe99f99736 (diff) | |
| download | box64-d3ea3909830b837cb6aa0a3e74af72c10575f2f9.tar.gz box64-d3ea3909830b837cb6aa0a3e74af72c10575f2f9.zip | |
Added wrapped libncurses, libncurses6, libncursesw, libformw, libtinfo and libtinfo6
Diffstat (limited to 'src')
21 files changed, 2434 insertions, 6 deletions
diff --git a/src/library_list.h b/src/library_list.h index a3c4530e..4bc89d78 100755 --- a/src/library_list.h +++ b/src/library_list.h @@ -131,12 +131,12 @@ GO("liblzma.so.5", lzma) GO("libSM.so.6", libsm) GO("libICE.so.6", libice) //GO("libusb-1.0.so.0", libusb1) -//GO("libncursesw.so.5", libncursesw) -//GO("libformw.so.5", libformw) -//GO("libncurses.so.5", libncurses) -//GO("libtinfo.so.5", libtinfo) -//GO("libncurses.so.6", libncurses6) -//GO("libtinfo.so.6", libtinfo6) +GO("libncursesw.so.5", libncursesw) +GO("libformw.so.5", libformw) +GO("libncurses.so.5", libncurses) +GO("libtinfo.so.5", libtinfo) +GO("libncurses.so.6", libncurses6) +GO("libtinfo.so.6", libtinfo6) //GO("libtcmalloc_minimal.so.4", tcmallocminimal) //GO("libmpg123.so.0", mpg123) GO("libgnutls.so.30", gnutls) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 564993a8..330ebb90 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -5,6 +5,7 @@ #() vFf #() vFd #() vFl +#() vFL #() vFp #() vFS #() cFv @@ -14,6 +15,7 @@ #() cFp #() wFp #() iFv +#() iFw #() iFi #() iFu #() iFf @@ -96,6 +98,7 @@ #() vFSi #() cFpp #() iFEp +#() iFwp #() iFii #() iFiI #() iFiu @@ -107,6 +110,7 @@ #() iFuu #() iFup #() iFli +#() iFLi #() iFLL #() iFLp #() iFpw @@ -161,12 +165,15 @@ #() lFll #() lFpi #() lFpp +#() LFii +#() LFLp #() LFpi #() LFpL #() LFpp #() pFEp #() pFii #() pFiu +#() pFiL #() pFip #() pFui #() pFuu @@ -247,9 +254,12 @@ #() iFEpp #() iFEpV #() iFESp +#() iFwww +#() iFwpp #() iFiwC #() iFiii #() iFiiu +#() iFiiL #() iFiip #() iFiiO #() iFiuu @@ -264,9 +274,11 @@ #() iFuff #() iFuLL #() iFfff +#() iFLwp #() iFLip #() iFLLp #() iFLpp +#() iFpwp #() iFpii #() iFpiu #() iFpiL @@ -468,14 +480,19 @@ #() iFEppp #() iFEppV #() iFEpOu +#() iFwwww +#() iFwppp #() iFiiii #() iFiiiu #() iFiiip #() iFiiiN #() iFiill +#() iFiiLi +#() iFiipi #() iFiipp #() iFiuii #() iFilli +#() iFiLwp #() iFipii #() iFipiO #() iFipui @@ -512,6 +529,7 @@ #() iFpupu #() iFpupV #() iFplip +#() iFpLwp #() iFpLpi #() iFpLpL #() iFpLpp @@ -574,6 +592,7 @@ #() pFEpip #() pFEppi #() pFEppp +#() pFiiii #() pFiiiu #() pFiiup #() pFippi @@ -714,8 +733,10 @@ #() iFpiiiL #() iFpiiip #() iFpiiuu +#() iFpiiLi #() iFpiipi #() iFpiipp +#() iFpiLwp #() iFpipii #() iFpipiL #() iFpippi @@ -736,6 +757,7 @@ #() iFppupi #() iFppupp #() iFppllp +#() iFppLwp #() iFppLpi #() iFppLpL #() iFppLpp @@ -879,6 +901,7 @@ #() iFEiippi #() iFElpppp #() iFEpiipp +#() iFEpiipV #() iFEpilpV #() iFEpippi #() iFEpuppp @@ -886,6 +909,7 @@ #() iFEppppp #() iFiiiiii #() iFiiiiip +#() iFiiiLwp #() iFiuiipi #() iFipupup #() iFipuppp @@ -939,6 +963,7 @@ #() pFEpppLp #() pFEppppi #() pFEppppp +#() pFiiiiii #() pFiCiiCi #() pFdddddd #() pFpiiiiu @@ -1013,6 +1038,8 @@ #() iFEpppiiu #() iFEpppppp #() iFiiiiiip +#() iFpiiiiii +#() iFpiiiLwp #() iFpiiuuiu #() iFpiuiipp #() iFpiupiii @@ -1094,6 +1121,7 @@ #() iFiiiiiiip #() iFiiupiupi #() iFuiifpppp +#() iFLLLLLLLL #() iFpiiiiipi #() iFpWCuWCuu #() iFpuuiiiii @@ -1144,6 +1172,8 @@ #() iFipiipippi #() iFdddpppppp #() iFpipLpiiip +#() iFpLLLLLLLL +#() iFppiiiiiii #() iFppiuiippL #() iFpppiiuuii #() iFpppiipiiu @@ -1185,6 +1215,7 @@ #() uFpppppppppp #() pFpCuWCCuuCW #() pFpuuuwwwwWW +#() pFplllllllll #() pFppuiipuuii #() pFpppppppppp #() vFuiiiiiiiiip diff --git a/src/wrapped/generated/wrappedlibncurses6types.h b/src/wrapped/generated/wrappedlibncurses6types.h new file mode 100644 index 00000000..9e6f065c --- /dev/null +++ b/src/wrapped/generated/wrappedlibncurses6types.h @@ -0,0 +1,21 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * + *******************************************************************/ +#ifndef __wrappedlibncurses6TYPES_H_ +#define __wrappedlibncurses6TYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef int64_t (*iFpV_t)(void*, void*); +typedef int64_t (*iFpiipV_t)(void*, int64_t, int64_t, void*, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(printw, iFpV_t) \ + GO(mvwprintw, iFpiipV_t) + +#endif // __wrappedlibncurses6TYPES_H_ diff --git a/src/wrapped/generated/wrappedlibncursestypes.h b/src/wrapped/generated/wrappedlibncursestypes.h new file mode 100644 index 00000000..822e884e --- /dev/null +++ b/src/wrapped/generated/wrappedlibncursestypes.h @@ -0,0 +1,21 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * + *******************************************************************/ +#ifndef __wrappedlibncursesTYPES_H_ +#define __wrappedlibncursesTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef int64_t (*iFpV_t)(void*, void*); +typedef int64_t (*iFpiipV_t)(void*, int64_t, int64_t, void*, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(printw, iFpV_t) \ + GO(mvwprintw, iFpiipV_t) + +#endif // __wrappedlibncursesTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibncurseswtypes.h b/src/wrapped/generated/wrappedlibncurseswtypes.h new file mode 100644 index 00000000..a32a1831 --- /dev/null +++ b/src/wrapped/generated/wrappedlibncurseswtypes.h @@ -0,0 +1,21 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * + *******************************************************************/ +#ifndef __wrappedlibncurseswTYPES_H_ +#define __wrappedlibncurseswTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef int64_t (*iFpV_t)(void*, void*); +typedef int64_t (*iFpiipV_t)(void*, int64_t, int64_t, void*, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(printw, iFpV_t) \ + GO(mvwprintw, iFpiipV_t) + +#endif // __wrappedlibncurseswTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibtinfo6types.h b/src/wrapped/generated/wrappedlibtinfo6types.h new file mode 100644 index 00000000..775a4714 --- /dev/null +++ b/src/wrapped/generated/wrappedlibtinfo6types.h @@ -0,0 +1,19 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * + *******************************************************************/ +#ifndef __wrappedlibtinfo6TYPES_H_ +#define __wrappedlibtinfo6TYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef int64_t (*iFpip_t)(void*, int64_t, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(tputs, iFpip_t) + +#endif // __wrappedlibtinfo6TYPES_H_ diff --git a/src/wrapped/generated/wrappedlibtinfotypes.h b/src/wrapped/generated/wrappedlibtinfotypes.h new file mode 100644 index 00000000..c378345e --- /dev/null +++ b/src/wrapped/generated/wrappedlibtinfotypes.h @@ -0,0 +1,19 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * + *******************************************************************/ +#ifndef __wrappedlibtinfoTYPES_H_ +#define __wrappedlibtinfoTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef int64_t (*iFpip_t)(void*, int64_t, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(tputs, iFpip_t) + +#endif // __wrappedlibtinfoTYPES_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 4ba79531..cf625c7d 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -39,6 +39,7 @@ typedef void (*vFu_t)(uint64_t); typedef void (*vFf_t)(float); typedef void (*vFd_t)(double); typedef void (*vFl_t)(intptr_t); +typedef void (*vFL_t)(uintptr_t); typedef void (*vFp_t)(void*); typedef void (*vFS_t)(void*); typedef int8_t (*cFv_t)(void); @@ -48,6 +49,7 @@ typedef int8_t (*cFf_t)(float); typedef int8_t (*cFp_t)(void*); typedef int16_t (*wFp_t)(void*); typedef int64_t (*iFv_t)(void); +typedef int64_t (*iFw_t)(int16_t); typedef int64_t (*iFi_t)(int64_t); typedef int64_t (*iFu_t)(uint64_t); typedef int64_t (*iFf_t)(float); @@ -130,6 +132,7 @@ typedef void (*vFpS_t)(void*, void*); typedef void (*vFSi_t)(void*, int64_t); typedef int8_t (*cFpp_t)(void*, void*); typedef int64_t (*iFEp_t)(x64emu_t*, void*); +typedef int64_t (*iFwp_t)(int16_t, void*); typedef int64_t (*iFii_t)(int64_t, int64_t); typedef int64_t (*iFiI_t)(int64_t, int64_t); typedef int64_t (*iFiu_t)(int64_t, uint64_t); @@ -141,6 +144,7 @@ typedef int64_t (*iFui_t)(uint64_t, int64_t); typedef int64_t (*iFuu_t)(uint64_t, uint64_t); typedef int64_t (*iFup_t)(uint64_t, void*); typedef int64_t (*iFli_t)(intptr_t, int64_t); +typedef int64_t (*iFLi_t)(uintptr_t, int64_t); typedef int64_t (*iFLL_t)(uintptr_t, uintptr_t); typedef int64_t (*iFLp_t)(uintptr_t, void*); typedef int64_t (*iFpw_t)(void*, int16_t); @@ -195,12 +199,15 @@ typedef double (*dFpp_t)(void*, void*); typedef intptr_t (*lFll_t)(intptr_t, intptr_t); typedef intptr_t (*lFpi_t)(void*, int64_t); typedef intptr_t (*lFpp_t)(void*, void*); +typedef uintptr_t (*LFii_t)(int64_t, int64_t); +typedef uintptr_t (*LFLp_t)(uintptr_t, void*); typedef uintptr_t (*LFpi_t)(void*, int64_t); typedef uintptr_t (*LFpL_t)(void*, uintptr_t); typedef uintptr_t (*LFpp_t)(void*, void*); typedef void* (*pFEp_t)(x64emu_t*, void*); typedef void* (*pFii_t)(int64_t, int64_t); typedef void* (*pFiu_t)(int64_t, uint64_t); +typedef void* (*pFiL_t)(int64_t, uintptr_t); typedef void* (*pFip_t)(int64_t, void*); typedef void* (*pFui_t)(uint64_t, int64_t); typedef void* (*pFuu_t)(uint64_t, uint64_t); @@ -281,9 +288,12 @@ typedef int64_t (*iFEpL_t)(x64emu_t*, void*, uintptr_t); typedef int64_t (*iFEpp_t)(x64emu_t*, void*, void*); typedef int64_t (*iFEpV_t)(x64emu_t*, void*, void*); typedef int64_t (*iFESp_t)(x64emu_t*, void*, void*); +typedef int64_t (*iFwww_t)(int16_t, int16_t, int16_t); +typedef int64_t (*iFwpp_t)(int16_t, void*, void*); typedef int64_t (*iFiwC_t)(int64_t, int16_t, uint8_t); typedef int64_t (*iFiii_t)(int64_t, int64_t, int64_t); typedef int64_t (*iFiiu_t)(int64_t, int64_t, uint64_t); +typedef int64_t (*iFiiL_t)(int64_t, int64_t, uintptr_t); typedef int64_t (*iFiip_t)(int64_t, int64_t, void*); typedef int64_t (*iFiiO_t)(int64_t, int64_t, int32_t); typedef int64_t (*iFiuu_t)(int64_t, uint64_t, uint64_t); @@ -298,9 +308,11 @@ typedef int64_t (*iFuup_t)(uint64_t, uint64_t, void*); typedef int64_t (*iFuff_t)(uint64_t, float, float); typedef int64_t (*iFuLL_t)(uint64_t, uintptr_t, uintptr_t); typedef int64_t (*iFfff_t)(float, float, float); +typedef int64_t (*iFLwp_t)(uintptr_t, int16_t, void*); typedef int64_t (*iFLip_t)(uintptr_t, int64_t, void*); typedef int64_t (*iFLLp_t)(uintptr_t, uintptr_t, void*); typedef int64_t (*iFLpp_t)(uintptr_t, void*, void*); +typedef int64_t (*iFpwp_t)(void*, int16_t, void*); typedef int64_t (*iFpii_t)(void*, int64_t, int64_t); typedef int64_t (*iFpiu_t)(void*, int64_t, uint64_t); typedef int64_t (*iFpiL_t)(void*, int64_t, uintptr_t); @@ -502,14 +514,19 @@ typedef int64_t (*iFEppL_t)(x64emu_t*, void*, void*, uintptr_t); typedef int64_t (*iFEppp_t)(x64emu_t*, void*, void*, void*); typedef int64_t (*iFEppV_t)(x64emu_t*, void*, void*, void*); typedef int64_t (*iFEpOu_t)(x64emu_t*, void*, int32_t, uint64_t); +typedef int64_t (*iFwwww_t)(int16_t, int16_t, int16_t, int16_t); +typedef int64_t (*iFwppp_t)(int16_t, void*, void*, void*); typedef int64_t (*iFiiii_t)(int64_t, int64_t, int64_t, int64_t); typedef int64_t (*iFiiiu_t)(int64_t, int64_t, int64_t, uint64_t); typedef int64_t (*iFiiip_t)(int64_t, int64_t, int64_t, void*); typedef int64_t (*iFiiiN_t)(int64_t, int64_t, int64_t, ...); typedef int64_t (*iFiill_t)(int64_t, int64_t, intptr_t, intptr_t); +typedef int64_t (*iFiiLi_t)(int64_t, int64_t, uintptr_t, int64_t); +typedef int64_t (*iFiipi_t)(int64_t, int64_t, void*, int64_t); typedef int64_t (*iFiipp_t)(int64_t, int64_t, void*, void*); typedef int64_t (*iFiuii_t)(int64_t, uint64_t, int64_t, int64_t); typedef int64_t (*iFilli_t)(int64_t, intptr_t, intptr_t, int64_t); +typedef int64_t (*iFiLwp_t)(int64_t, uintptr_t, int16_t, void*); typedef int64_t (*iFipii_t)(int64_t, void*, int64_t, int64_t); typedef int64_t (*iFipiO_t)(int64_t, void*, int64_t, int32_t); typedef int64_t (*iFipui_t)(int64_t, void*, uint64_t, int64_t); @@ -546,6 +563,7 @@ typedef int64_t (*iFpuLp_t)(void*, uint64_t, uintptr_t, void*); typedef int64_t (*iFpupu_t)(void*, uint64_t, void*, uint64_t); typedef int64_t (*iFpupV_t)(void*, uint64_t, void*, void*); typedef int64_t (*iFplip_t)(void*, intptr_t, int64_t, void*); +typedef int64_t (*iFpLwp_t)(void*, uintptr_t, int16_t, void*); typedef int64_t (*iFpLpi_t)(void*, uintptr_t, void*, int64_t); typedef int64_t (*iFpLpL_t)(void*, uintptr_t, void*, uintptr_t); typedef int64_t (*iFpLpp_t)(void*, uintptr_t, void*, void*); @@ -608,6 +626,7 @@ typedef void* (*pFEpii_t)(x64emu_t*, void*, int64_t, int64_t); typedef void* (*pFEpip_t)(x64emu_t*, void*, int64_t, void*); typedef void* (*pFEppi_t)(x64emu_t*, void*, void*, int64_t); typedef void* (*pFEppp_t)(x64emu_t*, void*, void*, void*); +typedef void* (*pFiiii_t)(int64_t, int64_t, int64_t, int64_t); typedef void* (*pFiiiu_t)(int64_t, int64_t, int64_t, uint64_t); typedef void* (*pFiiup_t)(int64_t, int64_t, uint64_t, void*); typedef void* (*pFippi_t)(int64_t, void*, void*, int64_t); @@ -748,8 +767,10 @@ typedef int64_t (*iFpiiiu_t)(void*, int64_t, int64_t, int64_t, uint64_t); typedef int64_t (*iFpiiiL_t)(void*, int64_t, int64_t, int64_t, uintptr_t); typedef int64_t (*iFpiiip_t)(void*, int64_t, int64_t, int64_t, void*); typedef int64_t (*iFpiiuu_t)(void*, int64_t, int64_t, uint64_t, uint64_t); +typedef int64_t (*iFpiiLi_t)(void*, int64_t, int64_t, uintptr_t, int64_t); typedef int64_t (*iFpiipi_t)(void*, int64_t, int64_t, void*, int64_t); typedef int64_t (*iFpiipp_t)(void*, int64_t, int64_t, void*, void*); +typedef int64_t (*iFpiLwp_t)(void*, int64_t, uintptr_t, int16_t, void*); typedef int64_t (*iFpipii_t)(void*, int64_t, void*, int64_t, int64_t); typedef int64_t (*iFpipiL_t)(void*, int64_t, void*, int64_t, uintptr_t); typedef int64_t (*iFpippi_t)(void*, int64_t, void*, void*, int64_t); @@ -770,6 +791,7 @@ typedef int64_t (*iFppipp_t)(void*, void*, int64_t, void*, void*); typedef int64_t (*iFppupi_t)(void*, void*, uint64_t, void*, int64_t); typedef int64_t (*iFppupp_t)(void*, void*, uint64_t, void*, void*); typedef int64_t (*iFppllp_t)(void*, void*, intptr_t, intptr_t, void*); +typedef int64_t (*iFppLwp_t)(void*, void*, uintptr_t, int16_t, void*); typedef int64_t (*iFppLpi_t)(void*, void*, uintptr_t, void*, int64_t); typedef int64_t (*iFppLpL_t)(void*, void*, uintptr_t, void*, uintptr_t); typedef int64_t (*iFppLpp_t)(void*, void*, uintptr_t, void*, void*); @@ -913,6 +935,7 @@ typedef int8_t (*cFppLppi_t)(void*, void*, uintptr_t, void*, void*, int64_t); typedef int64_t (*iFEiippi_t)(x64emu_t*, int64_t, int64_t, void*, void*, int64_t); typedef int64_t (*iFElpppp_t)(x64emu_t*, intptr_t, void*, void*, void*, void*); typedef int64_t (*iFEpiipp_t)(x64emu_t*, void*, int64_t, int64_t, void*, void*); +typedef int64_t (*iFEpiipV_t)(x64emu_t*, void*, int64_t, int64_t, void*, void*); typedef int64_t (*iFEpilpV_t)(x64emu_t*, void*, int64_t, intptr_t, void*, void*); typedef int64_t (*iFEpippi_t)(x64emu_t*, void*, int64_t, void*, void*, int64_t); typedef int64_t (*iFEpuppp_t)(x64emu_t*, void*, uint64_t, void*, void*, void*); @@ -920,6 +943,7 @@ typedef int64_t (*iFEppiLi_t)(x64emu_t*, void*, void*, int64_t, uintptr_t, int64 typedef int64_t (*iFEppppp_t)(x64emu_t*, void*, void*, void*, void*, void*); typedef int64_t (*iFiiiiii_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t); typedef int64_t (*iFiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, void*); +typedef int64_t (*iFiiiLwp_t)(int64_t, int64_t, int64_t, uintptr_t, int16_t, void*); typedef int64_t (*iFiuiipi_t)(int64_t, uint64_t, int64_t, int64_t, void*, int64_t); typedef int64_t (*iFipupup_t)(int64_t, void*, uint64_t, void*, uint64_t, void*); typedef int64_t (*iFipuppp_t)(int64_t, void*, uint64_t, void*, void*, void*); @@ -973,6 +997,7 @@ typedef void* (*pFEppLLp_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_t, void* typedef void* (*pFEpppLp_t)(x64emu_t*, void*, void*, void*, uintptr_t, void*); typedef void* (*pFEppppi_t)(x64emu_t*, void*, void*, void*, void*, int64_t); typedef void* (*pFEppppp_t)(x64emu_t*, void*, void*, void*, void*, void*); +typedef void* (*pFiiiiii_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t); typedef void* (*pFiCiiCi_t)(int64_t, uint8_t, int64_t, int64_t, uint8_t, int64_t); typedef void* (*pFdddddd_t)(double, double, double, double, double, double); typedef void* (*pFpiiiiu_t)(void*, int64_t, int64_t, int64_t, int64_t, uint64_t); @@ -1047,6 +1072,8 @@ typedef int64_t (*iFEppLpIi_t)(x64emu_t*, void*, void*, uintptr_t, void*, int64_ typedef int64_t (*iFEpppiiu_t)(x64emu_t*, void*, void*, void*, int64_t, int64_t, uint64_t); typedef int64_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*); typedef int64_t (*iFiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*); +typedef int64_t (*iFpiiiiii_t)(void*, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t); +typedef int64_t (*iFpiiiLwp_t)(void*, int64_t, int64_t, int64_t, uintptr_t, int16_t, void*); typedef int64_t (*iFpiiuuiu_t)(void*, int64_t, int64_t, uint64_t, uint64_t, int64_t, uint64_t); typedef int64_t (*iFpiuiipp_t)(void*, int64_t, uint64_t, int64_t, int64_t, void*, void*); typedef int64_t (*iFpiupiii_t)(void*, int64_t, uint64_t, void*, int64_t, int64_t, int64_t); @@ -1128,6 +1155,7 @@ typedef int64_t (*iFEppppipp_t)(x64emu_t*, void*, void*, void*, void*, int64_t, typedef int64_t (*iFiiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*); typedef int64_t (*iFiiupiupi_t)(int64_t, int64_t, uint64_t, void*, int64_t, uint64_t, void*, int64_t); typedef int64_t (*iFuiifpppp_t)(uint64_t, int64_t, int64_t, float, void*, void*, void*, void*); +typedef int64_t (*iFLLLLLLLL_t)(uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); typedef int64_t (*iFpiiiiipi_t)(void*, int64_t, int64_t, int64_t, int64_t, int64_t, void*, int64_t); typedef int64_t (*iFpWCuWCuu_t)(void*, uint16_t, uint8_t, uint64_t, uint16_t, uint8_t, uint64_t, uint64_t); typedef int64_t (*iFpuuiiiii_t)(void*, uint64_t, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t); @@ -1178,6 +1206,8 @@ typedef int64_t (*iFiiiipiiip_t)(int64_t, int64_t, int64_t, int64_t, void*, int6 typedef int64_t (*iFipiipippi_t)(int64_t, void*, int64_t, int64_t, void*, int64_t, void*, void*, int64_t); typedef int64_t (*iFdddpppppp_t)(double, double, double, void*, void*, void*, void*, void*, void*); typedef int64_t (*iFpipLpiiip_t)(void*, int64_t, void*, uintptr_t, void*, int64_t, int64_t, int64_t, void*); +typedef int64_t (*iFpLLLLLLLL_t)(void*, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +typedef int64_t (*iFppiiiiiii_t)(void*, void*, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t); typedef int64_t (*iFppiuiippL_t)(void*, void*, int64_t, uint64_t, int64_t, int64_t, void*, void*, uintptr_t); typedef int64_t (*iFpppiiuuii_t)(void*, void*, void*, int64_t, int64_t, uint64_t, uint64_t, int64_t, int64_t); typedef int64_t (*iFpppiipiiu_t)(void*, void*, void*, int64_t, int64_t, void*, int64_t, int64_t, uint64_t); @@ -1219,6 +1249,7 @@ typedef int64_t (*iFppppiiuuii_t)(void*, void*, void*, void*, int64_t, int64_t, typedef uint64_t (*uFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef void* (*pFpCuWCCuuCW_t)(void*, uint8_t, uint64_t, uint16_t, uint8_t, uint8_t, uint64_t, uint64_t, uint8_t, uint16_t); typedef void* (*pFpuuuwwwwWW_t)(void*, uint64_t, uint64_t, uint64_t, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t); +typedef void* (*pFplllllllll_t)(void*, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t); typedef void* (*pFppuiipuuii_t)(void*, void*, uint64_t, int64_t, int64_t, void*, uint64_t, uint64_t, int64_t, int64_t); typedef void* (*pFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef void (*vFuiiiiiiiiip_t)(uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*); @@ -1300,6 +1331,7 @@ void vFu(x64emu_t *emu, uintptr_t fcn) { vFu_t fn = (vFu_t)fcn; fn((uint64_t)R_R void vFf(x64emu_t *emu, uintptr_t fcn) { vFf_t fn = (vFf_t)fcn; fn(emu->xmm[0].f[0]); } void vFd(x64emu_t *emu, uintptr_t fcn) { vFd_t fn = (vFd_t)fcn; fn(emu->xmm[0].d[0]); } void vFl(x64emu_t *emu, uintptr_t fcn) { vFl_t fn = (vFl_t)fcn; fn((intptr_t)R_RDI); } +void vFL(x64emu_t *emu, uintptr_t fcn) { vFL_t fn = (vFL_t)fcn; fn((uintptr_t)R_RDI); } void vFp(x64emu_t *emu, uintptr_t fcn) { vFp_t fn = (vFp_t)fcn; fn((void*)R_RDI); } void vFS(x64emu_t *emu, uintptr_t fcn) { vFS_t fn = (vFS_t)fcn; fn(io_convert((void*)R_RDI)); } void cFv(x64emu_t *emu, uintptr_t fcn) { cFv_t fn = (cFv_t)fcn; R_RAX=fn(); } @@ -1309,6 +1341,7 @@ void cFf(x64emu_t *emu, uintptr_t fcn) { cFf_t fn = (cFf_t)fcn; R_RAX=fn(emu->xm void cFp(x64emu_t *emu, uintptr_t fcn) { cFp_t fn = (cFp_t)fcn; R_RAX=fn((void*)R_RDI); } void wFp(x64emu_t *emu, uintptr_t fcn) { wFp_t fn = (wFp_t)fcn; R_RAX=fn((void*)R_RDI); } void iFv(x64emu_t *emu, uintptr_t fcn) { iFv_t fn = (iFv_t)fcn; R_RAX=(int64_t)fn(); } +void iFw(x64emu_t *emu, uintptr_t fcn) { iFw_t fn = (iFw_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI); } void iFi(x64emu_t *emu, uintptr_t fcn) { iFi_t fn = (iFi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI); } void iFu(x64emu_t *emu, uintptr_t fcn) { iFu_t fn = (iFu_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI); } void iFf(x64emu_t *emu, uintptr_t fcn) { iFf_t fn = (iFf_t)fcn; R_RAX=(int64_t)fn(emu->xmm[0].f[0]); } @@ -1391,6 +1424,7 @@ void vFpS(x64emu_t *emu, uintptr_t fcn) { vFpS_t fn = (vFpS_t)fcn; fn((void*)R_R void vFSi(x64emu_t *emu, uintptr_t fcn) { vFSi_t fn = (vFSi_t)fcn; fn(io_convert((void*)R_RDI), (int64_t)R_RSI); } void cFpp(x64emu_t *emu, uintptr_t fcn) { cFpp_t fn = (cFpp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI); } void iFEp(x64emu_t *emu, uintptr_t fcn) { iFEp_t fn = (iFEp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI); } +void iFwp(x64emu_t *emu, uintptr_t fcn) { iFwp_t fn = (iFwp_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (void*)R_RSI); } void iFii(x64emu_t *emu, uintptr_t fcn) { iFii_t fn = (iFii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI); } void iFiI(x64emu_t *emu, uintptr_t fcn) { iFiI_t fn = (iFiI_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI); } void iFiu(x64emu_t *emu, uintptr_t fcn) { iFiu_t fn = (iFiu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI); } @@ -1402,6 +1436,7 @@ void iFui(x64emu_t *emu, uintptr_t fcn) { iFui_t fn = (iFui_t)fcn; R_RAX=(int64_ void iFuu(x64emu_t *emu, uintptr_t fcn) { iFuu_t fn = (iFuu_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (uint64_t)R_RSI); } void iFup(x64emu_t *emu, uintptr_t fcn) { iFup_t fn = (iFup_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (void*)R_RSI); } void iFli(x64emu_t *emu, uintptr_t fcn) { iFli_t fn = (iFli_t)fcn; R_RAX=(int64_t)fn((intptr_t)R_RDI, (int64_t)R_RSI); } +void iFLi(x64emu_t *emu, uintptr_t fcn) { iFLi_t fn = (iFLi_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (int64_t)R_RSI); } void iFLL(x64emu_t *emu, uintptr_t fcn) { iFLL_t fn = (iFLL_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI); } void iFLp(x64emu_t *emu, uintptr_t fcn) { iFLp_t fn = (iFLp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (void*)R_RSI); } void iFpw(x64emu_t *emu, uintptr_t fcn) { iFpw_t fn = (iFpw_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int16_t)R_RSI); } @@ -1456,12 +1491,15 @@ void dFpp(x64emu_t *emu, uintptr_t fcn) { dFpp_t fn = (dFpp_t)fcn; emu->xmm[0].d void lFll(x64emu_t *emu, uintptr_t fcn) { lFll_t fn = (lFll_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (intptr_t)R_RSI); } void lFpi(x64emu_t *emu, uintptr_t fcn) { lFpi_t fn = (lFpi_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (int64_t)R_RSI); } void lFpp(x64emu_t *emu, uintptr_t fcn) { lFpp_t fn = (lFpp_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI); } +void LFii(x64emu_t *emu, uintptr_t fcn) { LFii_t fn = (LFii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI); } +void LFLp(x64emu_t *emu, uintptr_t fcn) { LFLp_t fn = (LFLp_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (void*)R_RSI); } void LFpi(x64emu_t *emu, uintptr_t fcn) { LFpi_t fn = (LFpi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI); } void LFpL(x64emu_t *emu, uintptr_t fcn) { LFpL_t fn = (LFpL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI); } void LFpp(x64emu_t *emu, uintptr_t fcn) { LFpp_t fn = (LFpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI); } void pFEp(x64emu_t *emu, uintptr_t fcn) { pFEp_t fn = (pFEp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI); } void pFii(x64emu_t *emu, uintptr_t fcn) { pFii_t fn = (pFii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI); } void pFiu(x64emu_t *emu, uintptr_t fcn) { pFiu_t fn = (pFiu_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (uint64_t)R_RSI); } +void pFiL(x64emu_t *emu, uintptr_t fcn) { pFiL_t fn = (pFiL_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (uintptr_t)R_RSI); } void pFip(x64emu_t *emu, uintptr_t fcn) { pFip_t fn = (pFip_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI); } void pFui(x64emu_t *emu, uintptr_t fcn) { pFui_t fn = (pFui_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (int64_t)R_RSI); } void pFuu(x64emu_t *emu, uintptr_t fcn) { pFuu_t fn = (pFuu_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (uint64_t)R_RSI); } @@ -1542,9 +1580,12 @@ void iFEpL(x64emu_t *emu, uintptr_t fcn) { iFEpL_t fn = (iFEpL_t)fcn; R_RAX=(int void iFEpp(x64emu_t *emu, uintptr_t fcn) { iFEpp_t fn = (iFEpp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI); } void iFEpV(x64emu_t *emu, uintptr_t fcn) { iFEpV_t fn = (iFEpV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)(R_RSP + 8)); } void iFESp(x64emu_t *emu, uintptr_t fcn) { iFESp_t fn = (iFESp_t)fcn; R_RAX=(int64_t)fn(emu, io_convert((void*)R_RDI), (void*)R_RSI); } +void iFwww(x64emu_t *emu, uintptr_t fcn) { iFwww_t fn = (iFwww_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (int16_t)R_RSI, (int16_t)R_RDX); } +void iFwpp(x64emu_t *emu, uintptr_t fcn) { iFwpp_t fn = (iFwpp_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFiwC(x64emu_t *emu, uintptr_t fcn) { iFiwC_t fn = (iFiwC_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int16_t)R_RSI, (uint8_t)R_RDX); } void iFiii(x64emu_t *emu, uintptr_t fcn) { iFiii_t fn = (iFiii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX); } void iFiiu(x64emu_t *emu, uintptr_t fcn) { iFiiu_t fn = (iFiiu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX); } +void iFiiL(x64emu_t *emu, uintptr_t fcn) { iFiiL_t fn = (iFiiL_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX); } void iFiip(x64emu_t *emu, uintptr_t fcn) { iFiip_t fn = (iFiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX); } void iFiiO(x64emu_t *emu, uintptr_t fcn) { iFiiO_t fn = (iFiiO_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, of_convert((int32_t)R_RDX)); } void iFiuu(x64emu_t *emu, uintptr_t fcn) { iFiuu_t fn = (iFiuu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX); } @@ -1559,9 +1600,11 @@ void iFuup(x64emu_t *emu, uintptr_t fcn) { iFuup_t fn = (iFuup_t)fcn; R_RAX=(int void iFuff(x64emu_t *emu, uintptr_t fcn) { iFuff_t fn = (iFuff_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0]); } void iFuLL(x64emu_t *emu, uintptr_t fcn) { iFuLL_t fn = (iFuLL_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX); } void iFfff(x64emu_t *emu, uintptr_t fcn) { iFfff_t fn = (iFfff_t)fcn; R_RAX=(int64_t)fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0]); } +void iFLwp(x64emu_t *emu, uintptr_t fcn) { iFLwp_t fn = (iFLwp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (int16_t)R_RSI, (void*)R_RDX); } void iFLip(x64emu_t *emu, uintptr_t fcn) { iFLip_t fn = (iFLip_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX); } void iFLLp(x64emu_t *emu, uintptr_t fcn) { iFLLp_t fn = (iFLLp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); } void iFLpp(x64emu_t *emu, uintptr_t fcn) { iFLpp_t fn = (iFLpp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } +void iFpwp(x64emu_t *emu, uintptr_t fcn) { iFpwp_t fn = (iFpwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int16_t)R_RSI, (void*)R_RDX); } void iFpii(x64emu_t *emu, uintptr_t fcn) { iFpii_t fn = (iFpii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX); } void iFpiu(x64emu_t *emu, uintptr_t fcn) { iFpiu_t fn = (iFpiu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX); } void iFpiL(x64emu_t *emu, uintptr_t fcn) { iFpiL_t fn = (iFpiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX); } @@ -1763,14 +1806,19 @@ void iFEppL(x64emu_t *emu, uintptr_t fcn) { iFEppL_t fn = (iFEppL_t)fcn; R_RAX=( void iFEppp(x64emu_t *emu, uintptr_t fcn) { iFEppp_t fn = (iFEppp_t)fcn; R_RAX=(int64_t)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=(int64_t)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=(int64_t)fn(emu, (void*)R_RDI, of_convert((int32_t)R_RSI), (uint64_t)R_RDX); } +void iFwwww(x64emu_t *emu, uintptr_t fcn) { iFwwww_t fn = (iFwwww_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (int16_t)R_RSI, (int16_t)R_RDX, (int16_t)R_RCX); } +void iFwppp(x64emu_t *emu, uintptr_t fcn) { iFwppp_t fn = (iFwppp_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void iFiiii(x64emu_t *emu, uintptr_t fcn) { iFiiii_t fn = (iFiiii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void iFiiiu(x64emu_t *emu, uintptr_t fcn) { iFiiiu_t fn = (iFiiiu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX); } void iFiiip(x64emu_t *emu, uintptr_t fcn) { iFiiip_t fn = (iFiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } void iFiiiN(x64emu_t *emu, uintptr_t fcn) { iFiiiN_t fn = (iFiiiN_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } void iFiill(x64emu_t *emu, uintptr_t fcn) { iFiill_t fn = (iFiill_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); } +void iFiiLi(x64emu_t *emu, uintptr_t fcn) { iFiiLi_t fn = (iFiiLi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX, (int64_t)R_RCX); } +void iFiipi(x64emu_t *emu, uintptr_t fcn) { iFiipi_t fn = (iFiipi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX); } void iFiipp(x64emu_t *emu, uintptr_t fcn) { iFiipp_t fn = (iFiipp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void iFiuii(x64emu_t *emu, uintptr_t fcn) { iFiuii_t fn = (iFiuii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void iFilli(x64emu_t *emu, uintptr_t fcn) { iFilli_t fn = (iFilli_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (int64_t)R_RCX); } +void iFiLwp(x64emu_t *emu, uintptr_t fcn) { iFiLwp_t fn = (iFiLwp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uintptr_t)R_RSI, (int16_t)R_RDX, (void*)R_RCX); } void iFipii(x64emu_t *emu, uintptr_t fcn) { iFipii_t fn = (iFipii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void iFipiO(x64emu_t *emu, uintptr_t fcn) { iFipiO_t fn = (iFipiO_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, of_convert((int32_t)R_RCX)); } void iFipui(x64emu_t *emu, uintptr_t fcn) { iFipui_t fn = (iFipui_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX); } @@ -1807,6 +1855,7 @@ void iFpuLp(x64emu_t *emu, uintptr_t fcn) { iFpuLp_t fn = (iFpuLp_t)fcn; R_RAX=( void iFpupu(x64emu_t *emu, uintptr_t fcn) { iFpupu_t fn = (iFpupu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (uint64_t)R_RCX); } void iFpupV(x64emu_t *emu, uintptr_t fcn) { iFpupV_t fn = (iFpupV_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); } void iFplip(x64emu_t *emu, uintptr_t fcn) { iFplip_t fn = (iFplip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (intptr_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } +void iFpLwp(x64emu_t *emu, uintptr_t fcn) { iFpLwp_t fn = (iFpLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int16_t)R_RDX, (void*)R_RCX); } void iFpLpi(x64emu_t *emu, uintptr_t fcn) { iFpLpi_t fn = (iFpLpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX); } void iFpLpL(x64emu_t *emu, uintptr_t fcn) { iFpLpL_t fn = (iFpLpL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void iFpLpp(x64emu_t *emu, uintptr_t fcn) { iFpLpp_t fn = (iFpLpp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } @@ -1869,6 +1918,7 @@ void pFEpii(x64emu_t *emu, uintptr_t fcn) { pFEpii_t fn = (pFEpii_t)fcn; R_RAX=( void pFEpip(x64emu_t *emu, uintptr_t fcn) { pFEpip_t fn = (pFEpip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX); } void pFEppi(x64emu_t *emu, uintptr_t fcn) { pFEppi_t fn = (pFEppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX); } void pFEppp(x64emu_t *emu, uintptr_t fcn) { pFEppp_t fn = (pFEppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } +void pFiiii(x64emu_t *emu, uintptr_t fcn) { pFiiii_t fn = (pFiiii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void pFiiiu(x64emu_t *emu, uintptr_t fcn) { pFiiiu_t fn = (pFiiiu_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX); } void pFiiup(x64emu_t *emu, uintptr_t fcn) { pFiiup_t fn = (pFiiup_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX); } void pFippi(x64emu_t *emu, uintptr_t fcn) { pFippi_t fn = (pFippi_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX); } @@ -2009,8 +2059,10 @@ void iFpiiiu(x64emu_t *emu, uintptr_t fcn) { iFpiiiu_t fn = (iFpiiiu_t)fcn; R_RA void iFpiiiL(x64emu_t *emu, uintptr_t fcn) { iFpiiiL_t fn = (iFpiiiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uintptr_t)R_R8); } void iFpiiip(x64emu_t *emu, uintptr_t fcn) { iFpiiip_t fn = (iFpiiip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8); } void iFpiiuu(x64emu_t *emu, uintptr_t fcn) { iFpiiuu_t fn = (iFpiiuu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8); } +void iFpiiLi(x64emu_t *emu, uintptr_t fcn) { iFpiiLi_t fn = (iFpiiLi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uintptr_t)R_RCX, (int64_t)R_R8); } void iFpiipi(x64emu_t *emu, uintptr_t fcn) { iFpiipi_t fn = (iFpiipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8); } void iFpiipp(x64emu_t *emu, uintptr_t fcn) { iFpiipp_t fn = (iFpiipp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } +void iFpiLwp(x64emu_t *emu, uintptr_t fcn) { iFpiLwp_t fn = (iFpiLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX, (int16_t)R_RCX, (void*)R_R8); } void iFpipii(x64emu_t *emu, uintptr_t fcn) { iFpipii_t fn = (iFpipii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8); } void iFpipiL(x64emu_t *emu, uintptr_t fcn) { iFpipiL_t fn = (iFpipiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (uintptr_t)R_R8); } void iFpippi(x64emu_t *emu, uintptr_t fcn) { iFpippi_t fn = (iFpippi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); } @@ -2031,6 +2083,7 @@ void iFppipp(x64emu_t *emu, uintptr_t fcn) { iFppipp_t fn = (iFppipp_t)fcn; R_RA void iFppupi(x64emu_t *emu, uintptr_t fcn) { iFppupi_t fn = (iFppupi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8); } void iFppupp(x64emu_t *emu, uintptr_t fcn) { iFppupp_t fn = (iFppupp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void iFppllp(x64emu_t *emu, uintptr_t fcn) { iFppllp_t fn = (iFppllp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (void*)R_R8); } +void iFppLwp(x64emu_t *emu, uintptr_t fcn) { iFppLwp_t fn = (iFppLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int16_t)R_RCX, (void*)R_R8); } void iFppLpi(x64emu_t *emu, uintptr_t fcn) { iFppLpi_t fn = (iFppLpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int64_t)R_R8); } void iFppLpL(x64emu_t *emu, uintptr_t fcn) { iFppLpL_t fn = (iFppLpL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } void iFppLpp(x64emu_t *emu, uintptr_t fcn) { iFppLpp_t fn = (iFppLpp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8); } @@ -2174,6 +2227,7 @@ void cFppLppi(x64emu_t *emu, uintptr_t fcn) { cFppLppi_t fn = (cFppLppi_t)fcn; R void iFEiippi(x64emu_t *emu, uintptr_t fcn) { iFEiippi_t fn = (iFEiippi_t)fcn; R_RAX=(int64_t)fn(emu, (int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); } void iFElpppp(x64emu_t *emu, uintptr_t fcn) { iFElpppp_t fn = (iFElpppp_t)fcn; R_RAX=(int64_t)fn(emu, (intptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void iFEpiipp(x64emu_t *emu, uintptr_t fcn) { iFEpiipp_t fn = (iFEpiipp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } +void iFEpiipV(x64emu_t *emu, uintptr_t fcn) { iFEpiipV_t fn = (iFEpiipV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); } void iFEpilpV(x64emu_t *emu, uintptr_t fcn) { iFEpilpV_t fn = (iFEpilpV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (intptr_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); } void iFEpippi(x64emu_t *emu, uintptr_t fcn) { iFEpippi_t fn = (iFEpippi_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); } void iFEpuppp(x64emu_t *emu, uintptr_t fcn) { iFEpuppp_t fn = (iFEpuppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } @@ -2181,6 +2235,7 @@ void iFEppiLi(x64emu_t *emu, uintptr_t fcn) { iFEppiLi_t fn = (iFEppiLi_t)fcn; R void iFEppppp(x64emu_t *emu, uintptr_t fcn) { iFEppppp_t fn = (iFEppppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void iFiiiiii(x64emu_t *emu, uintptr_t fcn) { iFiiiiii_t fn = (iFiiiiii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void iFiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiip_t fn = (iFiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9); } +void iFiiiLwp(x64emu_t *emu, uintptr_t fcn) { iFiiiLwp_t fn = (iFiiiLwp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uintptr_t)R_RCX, (int16_t)R_R8, (void*)R_R9); } void iFiuiipi(x64emu_t *emu, uintptr_t fcn) { iFiuiipi_t fn = (iFiuiipi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9); } void iFipupup(x64emu_t *emu, uintptr_t fcn) { iFipupup_t fn = (iFipupup_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (uint64_t)R_R8, (void*)R_R9); } void iFipuppp(x64emu_t *emu, uintptr_t fcn) { iFipuppp_t fn = (iFipuppp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } @@ -2234,6 +2289,7 @@ void pFEppLLp(x64emu_t *emu, uintptr_t fcn) { pFEppLLp_t fn = (pFEppLLp_t)fcn; R void pFEpppLp(x64emu_t *emu, uintptr_t fcn) { pFEpppLp_t fn = (pFEpppLp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); } void pFEppppi(x64emu_t *emu, uintptr_t fcn) { pFEppppi_t fn = (pFEppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); } void pFEppppp(x64emu_t *emu, uintptr_t fcn) { pFEppppp_t fn = (pFEppppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } +void pFiiiiii(x64emu_t *emu, uintptr_t fcn) { pFiiiiii_t fn = (pFiiiiii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void pFiCiiCi(x64emu_t *emu, uintptr_t fcn) { pFiCiiCi_t fn = (pFiCiiCi_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (uint8_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint8_t)R_R8, (int64_t)R_R9); } void pFdddddd(x64emu_t *emu, uintptr_t fcn) { pFdddddd_t fn = (pFdddddd_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0]); } void pFpiiiiu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiu_t fn = (pFpiiiiu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (uint64_t)R_R9); } @@ -2308,6 +2364,8 @@ void iFEppLpIi(x64emu_t *emu, uintptr_t fcn) { iFEppLpIi_t fn = (iFEppLpIi_t)fcn void iFEpppiiu(x64emu_t *emu, uintptr_t fcn) { iFEpppiiu_t fn = (iFEpppiiu_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (uint64_t)R_R9); } void iFEpppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void iFiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiip_t fn = (iFiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8)); } +void iFpiiiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiiiii_t fn = (iFpiiiiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8)); } +void iFpiiiLwp(x64emu_t *emu, uintptr_t fcn) { iFpiiiLwp_t fn = (iFpiiiLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uintptr_t)R_R8, (int16_t)R_R9, *(void**)(R_RSP + 8)); } void iFpiiuuiu(x64emu_t *emu, uintptr_t fcn) { iFpiiuuiu_t fn = (iFpiiuuiu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8, (int64_t)R_R9, *(uint64_t*)(R_RSP + 8)); } void iFpiuiipp(x64emu_t *emu, uintptr_t fcn) { iFpiuiipp_t fn = (iFpiuiipp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void iFpiupiii(x64emu_t *emu, uintptr_t fcn) { iFpiupiii_t fn = (iFpiupiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8)); } @@ -2389,6 +2447,7 @@ void iFEppppipp(x64emu_t *emu, uintptr_t fcn) { iFEppppipp_t fn = (iFEppppipp_t) void iFiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiip_t fn = (iFiiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } void iFiiupiupi(x64emu_t *emu, uintptr_t fcn) { iFiiupiupi_t fn = (iFiiupiupi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (uint64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); } void iFuiifpppp(x64emu_t *emu, uintptr_t fcn) { iFuiifpppp_t fn = (iFuiifpppp_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, emu->xmm[0].f[0], (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } +void iFLLLLLLLL(x64emu_t *emu, uintptr_t fcn) { iFLLLLLLLL_t fn = (iFLLLLLLLL_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16)); } void iFpiiiiipi(x64emu_t *emu, uintptr_t fcn) { iFpiiiiipi_t fn = (iFpiiiiipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); } void iFpWCuWCuu(x64emu_t *emu, uintptr_t fcn) { iFpWCuWCuu_t fn = (iFpWCuWCuu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint16_t)R_RSI, (uint8_t)R_RDX, (uint64_t)R_RCX, (uint16_t)R_R8, (uint8_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16)); } void iFpuuiiiii(x64emu_t *emu, uintptr_t fcn) { iFpuuiiiii_t fn = (iFpuuiiiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); } @@ -2439,6 +2498,8 @@ void iFiiiipiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiipiiip_t fn = (iFiiiipiiip void iFipiipippi(x64emu_t *emu, uintptr_t fcn) { iFipiipippi_t fn = (iFipiipippi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); } void iFdddpppppp(x64emu_t *emu, uintptr_t fcn) { iFdddpppppp_t fn = (iFdddpppppp_t)fcn; R_RAX=(int64_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void iFpipLpiiip(x64emu_t *emu, uintptr_t fcn) { iFpipLpiiip_t fn = (iFpipLpiiip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); } +void iFpLLLLLLLL(x64emu_t *emu, uintptr_t fcn) { iFpLLLLLLLL_t fn = (iFpLLLLLLLL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); } +void iFppiiiiiii(x64emu_t *emu, uintptr_t fcn) { iFppiiiiiii_t fn = (iFppiiiiiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); } void iFppiuiippL(x64emu_t *emu, uintptr_t fcn) { iFppiuiippL_t fn = (iFppiuiippL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); } void iFpppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFpppiiuuii_t fn = (iFpppiiuuii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); } void iFpppiipiiu(x64emu_t *emu, uintptr_t fcn) { iFpppiipiiu_t fn = (iFpppiipiiu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24)); } @@ -2480,6 +2541,7 @@ void iFppppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFppppiiuuii_t fn = (iFppppiiu void uFpppppppppp(x64emu_t *emu, uintptr_t fcn) { uFpppppppppp_t fn = (uFpppppppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void pFpCuWCCuuCW(x64emu_t *emu, uintptr_t fcn) { pFpCuWCCuuCW_t fn = (pFpCuWCCuuCW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint64_t)R_RDX, (uint16_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(uint8_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32)); } void pFpuuuwwwwWW(x64emu_t *emu, uintptr_t fcn) { pFpuuuwwwwWW_t fn = (pFpuuuwwwwWW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(int16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16), *(uint16_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32)); } +void pFplllllllll(x64emu_t *emu, uintptr_t fcn) { pFplllllllll_t fn = (pFplllllllll_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (intptr_t)R_R9, *(intptr_t*)(R_RSP + 8), *(intptr_t*)(R_RSP + 16), *(intptr_t*)(R_RSP + 24), *(intptr_t*)(R_RSP + 32)); } void pFppuiipuuii(x64emu_t *emu, uintptr_t fcn) { pFppuiipuuii_t fn = (pFppuiipuuii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32)); } void pFpppppppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppppppp_t fn = (pFpppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void vFuiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiip_t fn = (vFuiiiiiiiiip_t)fcn; fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); } @@ -2572,6 +2634,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFf) return 1; if (fun == &vFd) return 1; if (fun == &vFl) return 1; + if (fun == &vFL) return 1; if (fun == &vFp) return 1; if (fun == &cFv) return 1; if (fun == &cFi) return 1; @@ -2580,6 +2643,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &cFp) return 1; if (fun == &wFp) return 1; if (fun == &iFv) return 1; + if (fun == &iFw) return 1; if (fun == &iFi) return 1; if (fun == &iFu) return 1; if (fun == &iFf) return 1; @@ -2649,6 +2713,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFpL) return 1; if (fun == &vFpp) return 1; if (fun == &cFpp) return 1; + if (fun == &iFwp) return 1; if (fun == &iFii) return 1; if (fun == &iFiI) return 1; if (fun == &iFiu) return 1; @@ -2660,6 +2725,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFuu) return 1; if (fun == &iFup) return 1; if (fun == &iFli) return 1; + if (fun == &iFLi) return 1; if (fun == &iFLL) return 1; if (fun == &iFLp) return 1; if (fun == &iFpw) return 1; @@ -2707,11 +2773,14 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &lFll) return 1; if (fun == &lFpi) return 1; if (fun == &lFpp) return 1; + if (fun == &LFii) return 1; + if (fun == &LFLp) return 1; if (fun == &LFpi) return 1; if (fun == &LFpL) return 1; if (fun == &LFpp) return 1; if (fun == &pFii) return 1; if (fun == &pFiu) return 1; + if (fun == &pFiL) return 1; if (fun == &pFip) return 1; if (fun == &pFui) return 1; if (fun == &pFuu) return 1; @@ -2774,9 +2843,12 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFppd) return 1; if (fun == &vFppL) return 1; if (fun == &vFppp) return 1; + if (fun == &iFwww) return 1; + if (fun == &iFwpp) return 1; if (fun == &iFiwC) return 1; if (fun == &iFiii) return 1; if (fun == &iFiiu) return 1; + if (fun == &iFiiL) return 1; if (fun == &iFiip) return 1; if (fun == &iFiuu) return 1; if (fun == &iFiLi) return 1; @@ -2789,9 +2861,11 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFuff) return 1; if (fun == &iFuLL) return 1; if (fun == &iFfff) return 1; + if (fun == &iFLwp) return 1; if (fun == &iFLip) return 1; if (fun == &iFLLp) return 1; if (fun == &iFLpp) return 1; + if (fun == &iFpwp) return 1; if (fun == &iFpii) return 1; if (fun == &iFpiu) return 1; if (fun == &iFpiL) return 1; @@ -2960,13 +3034,18 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFpppL) return 1; if (fun == &vFpppp) return 1; if (fun == &cFpiii) return 1; + if (fun == &iFwwww) return 1; + if (fun == &iFwppp) return 1; if (fun == &iFiiii) return 1; if (fun == &iFiiiu) return 1; if (fun == &iFiiip) return 1; if (fun == &iFiill) return 1; + if (fun == &iFiiLi) return 1; + if (fun == &iFiipi) return 1; if (fun == &iFiipp) return 1; if (fun == &iFiuii) return 1; if (fun == &iFilli) return 1; + if (fun == &iFiLwp) return 1; if (fun == &iFipii) return 1; if (fun == &iFipui) return 1; if (fun == &iFipup) return 1; @@ -3000,6 +3079,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFpuLp) return 1; if (fun == &iFpupu) return 1; if (fun == &iFplip) return 1; + if (fun == &iFpLwp) return 1; if (fun == &iFpLpi) return 1; if (fun == &iFpLpL) return 1; if (fun == &iFpLpp) return 1; @@ -3051,6 +3131,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &LFppLL) return 1; if (fun == &LFppLp) return 1; if (fun == &LFpppp) return 1; + if (fun == &pFiiii) return 1; if (fun == &pFiiiu) return 1; if (fun == &pFiiup) return 1; if (fun == &pFippi) return 1; @@ -3172,8 +3253,10 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFpiiiL) return 1; if (fun == &iFpiiip) return 1; if (fun == &iFpiiuu) return 1; + if (fun == &iFpiiLi) return 1; if (fun == &iFpiipi) return 1; if (fun == &iFpiipp) return 1; + if (fun == &iFpiLwp) return 1; if (fun == &iFpipii) return 1; if (fun == &iFpipiL) return 1; if (fun == &iFpippi) return 1; @@ -3194,6 +3277,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFppupi) return 1; if (fun == &iFppupp) return 1; if (fun == &iFppllp) return 1; + if (fun == &iFppLwp) return 1; if (fun == &iFppLpi) return 1; if (fun == &iFppLpL) return 1; if (fun == &iFppLpp) return 1; @@ -3317,6 +3401,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &cFppLppi) return 1; if (fun == &iFiiiiii) return 1; if (fun == &iFiiiiip) return 1; + if (fun == &iFiiiLwp) return 1; if (fun == &iFiuiipi) return 1; if (fun == &iFipupup) return 1; if (fun == &iFipuppp) return 1; @@ -3360,6 +3445,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &lFipLipu) return 1; if (fun == &lFipLipp) return 1; if (fun == &LFpipipi) return 1; + if (fun == &pFiiiiii) return 1; if (fun == &pFiCiiCi) return 1; if (fun == &pFpiiiiu) return 1; if (fun == &pFpiiCCC) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 3b28a0db..2e797b6c 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -35,6 +35,7 @@ void vFu(x64emu_t *emu, uintptr_t fnc); void vFf(x64emu_t *emu, uintptr_t fnc); void vFd(x64emu_t *emu, uintptr_t fnc); void vFl(x64emu_t *emu, uintptr_t fnc); +void vFL(x64emu_t *emu, uintptr_t fnc); void vFp(x64emu_t *emu, uintptr_t fnc); void vFS(x64emu_t *emu, uintptr_t fnc); void cFv(x64emu_t *emu, uintptr_t fnc); @@ -44,6 +45,7 @@ void cFf(x64emu_t *emu, uintptr_t fnc); void cFp(x64emu_t *emu, uintptr_t fnc); void wFp(x64emu_t *emu, uintptr_t fnc); void iFv(x64emu_t *emu, uintptr_t fnc); +void iFw(x64emu_t *emu, uintptr_t fnc); void iFi(x64emu_t *emu, uintptr_t fnc); void iFu(x64emu_t *emu, uintptr_t fnc); void iFf(x64emu_t *emu, uintptr_t fnc); @@ -126,6 +128,7 @@ void vFpS(x64emu_t *emu, uintptr_t fnc); void vFSi(x64emu_t *emu, uintptr_t fnc); void cFpp(x64emu_t *emu, uintptr_t fnc); void iFEp(x64emu_t *emu, uintptr_t fnc); +void iFwp(x64emu_t *emu, uintptr_t fnc); void iFii(x64emu_t *emu, uintptr_t fnc); void iFiI(x64emu_t *emu, uintptr_t fnc); void iFiu(x64emu_t *emu, uintptr_t fnc); @@ -137,6 +140,7 @@ void iFui(x64emu_t *emu, uintptr_t fnc); void iFuu(x64emu_t *emu, uintptr_t fnc); void iFup(x64emu_t *emu, uintptr_t fnc); void iFli(x64emu_t *emu, uintptr_t fnc); +void iFLi(x64emu_t *emu, uintptr_t fnc); void iFLL(x64emu_t *emu, uintptr_t fnc); void iFLp(x64emu_t *emu, uintptr_t fnc); void iFpw(x64emu_t *emu, uintptr_t fnc); @@ -191,12 +195,15 @@ void dFpp(x64emu_t *emu, uintptr_t fnc); void lFll(x64emu_t *emu, uintptr_t fnc); void lFpi(x64emu_t *emu, uintptr_t fnc); void lFpp(x64emu_t *emu, uintptr_t fnc); +void LFii(x64emu_t *emu, uintptr_t fnc); +void LFLp(x64emu_t *emu, uintptr_t fnc); void LFpi(x64emu_t *emu, uintptr_t fnc); void LFpL(x64emu_t *emu, uintptr_t fnc); void LFpp(x64emu_t *emu, uintptr_t fnc); void pFEp(x64emu_t *emu, uintptr_t fnc); void pFii(x64emu_t *emu, uintptr_t fnc); void pFiu(x64emu_t *emu, uintptr_t fnc); +void pFiL(x64emu_t *emu, uintptr_t fnc); void pFip(x64emu_t *emu, uintptr_t fnc); void pFui(x64emu_t *emu, uintptr_t fnc); void pFuu(x64emu_t *emu, uintptr_t fnc); @@ -277,9 +284,12 @@ void iFEpL(x64emu_t *emu, uintptr_t fnc); void iFEpp(x64emu_t *emu, uintptr_t fnc); void iFEpV(x64emu_t *emu, uintptr_t fnc); void iFESp(x64emu_t *emu, uintptr_t fnc); +void iFwww(x64emu_t *emu, uintptr_t fnc); +void iFwpp(x64emu_t *emu, uintptr_t fnc); void iFiwC(x64emu_t *emu, uintptr_t fnc); void iFiii(x64emu_t *emu, uintptr_t fnc); void iFiiu(x64emu_t *emu, uintptr_t fnc); +void iFiiL(x64emu_t *emu, uintptr_t fnc); void iFiip(x64emu_t *emu, uintptr_t fnc); void iFiiO(x64emu_t *emu, uintptr_t fnc); void iFiuu(x64emu_t *emu, uintptr_t fnc); @@ -294,9 +304,11 @@ void iFuup(x64emu_t *emu, uintptr_t fnc); void iFuff(x64emu_t *emu, uintptr_t fnc); void iFuLL(x64emu_t *emu, uintptr_t fnc); void iFfff(x64emu_t *emu, uintptr_t fnc); +void iFLwp(x64emu_t *emu, uintptr_t fnc); void iFLip(x64emu_t *emu, uintptr_t fnc); void iFLLp(x64emu_t *emu, uintptr_t fnc); void iFLpp(x64emu_t *emu, uintptr_t fnc); +void iFpwp(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); @@ -498,14 +510,19 @@ 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); +void iFwwww(x64emu_t *emu, uintptr_t fnc); +void iFwppp(x64emu_t *emu, uintptr_t fnc); void iFiiii(x64emu_t *emu, uintptr_t fnc); void iFiiiu(x64emu_t *emu, uintptr_t fnc); void iFiiip(x64emu_t *emu, uintptr_t fnc); void iFiiiN(x64emu_t *emu, uintptr_t fnc); void iFiill(x64emu_t *emu, uintptr_t fnc); +void iFiiLi(x64emu_t *emu, uintptr_t fnc); +void iFiipi(x64emu_t *emu, uintptr_t fnc); void iFiipp(x64emu_t *emu, uintptr_t fnc); void iFiuii(x64emu_t *emu, uintptr_t fnc); void iFilli(x64emu_t *emu, uintptr_t fnc); +void iFiLwp(x64emu_t *emu, uintptr_t fnc); void iFipii(x64emu_t *emu, uintptr_t fnc); void iFipiO(x64emu_t *emu, uintptr_t fnc); void iFipui(x64emu_t *emu, uintptr_t fnc); @@ -542,6 +559,7 @@ void iFpuLp(x64emu_t *emu, uintptr_t fnc); void iFpupu(x64emu_t *emu, uintptr_t fnc); void iFpupV(x64emu_t *emu, uintptr_t fnc); void iFplip(x64emu_t *emu, uintptr_t fnc); +void iFpLwp(x64emu_t *emu, uintptr_t fnc); void iFpLpi(x64emu_t *emu, uintptr_t fnc); void iFpLpL(x64emu_t *emu, uintptr_t fnc); void iFpLpp(x64emu_t *emu, uintptr_t fnc); @@ -604,6 +622,7 @@ void pFEpii(x64emu_t *emu, uintptr_t fnc); void pFEpip(x64emu_t *emu, uintptr_t fnc); void pFEppi(x64emu_t *emu, uintptr_t fnc); void pFEppp(x64emu_t *emu, uintptr_t fnc); +void pFiiii(x64emu_t *emu, uintptr_t fnc); void pFiiiu(x64emu_t *emu, uintptr_t fnc); void pFiiup(x64emu_t *emu, uintptr_t fnc); void pFippi(x64emu_t *emu, uintptr_t fnc); @@ -744,8 +763,10 @@ void iFpiiiu(x64emu_t *emu, uintptr_t fnc); void iFpiiiL(x64emu_t *emu, uintptr_t fnc); void iFpiiip(x64emu_t *emu, uintptr_t fnc); void iFpiiuu(x64emu_t *emu, uintptr_t fnc); +void iFpiiLi(x64emu_t *emu, uintptr_t fnc); void iFpiipi(x64emu_t *emu, uintptr_t fnc); void iFpiipp(x64emu_t *emu, uintptr_t fnc); +void iFpiLwp(x64emu_t *emu, uintptr_t fnc); void iFpipii(x64emu_t *emu, uintptr_t fnc); void iFpipiL(x64emu_t *emu, uintptr_t fnc); void iFpippi(x64emu_t *emu, uintptr_t fnc); @@ -766,6 +787,7 @@ void iFppipp(x64emu_t *emu, uintptr_t fnc); void iFppupi(x64emu_t *emu, uintptr_t fnc); void iFppupp(x64emu_t *emu, uintptr_t fnc); void iFppllp(x64emu_t *emu, uintptr_t fnc); +void iFppLwp(x64emu_t *emu, uintptr_t fnc); void iFppLpi(x64emu_t *emu, uintptr_t fnc); void iFppLpL(x64emu_t *emu, uintptr_t fnc); void iFppLpp(x64emu_t *emu, uintptr_t fnc); @@ -909,6 +931,7 @@ void cFppLppi(x64emu_t *emu, uintptr_t fnc); void iFEiippi(x64emu_t *emu, uintptr_t fnc); void iFElpppp(x64emu_t *emu, uintptr_t fnc); void iFEpiipp(x64emu_t *emu, uintptr_t fnc); +void iFEpiipV(x64emu_t *emu, uintptr_t fnc); void iFEpilpV(x64emu_t *emu, uintptr_t fnc); void iFEpippi(x64emu_t *emu, uintptr_t fnc); void iFEpuppp(x64emu_t *emu, uintptr_t fnc); @@ -916,6 +939,7 @@ void iFEppiLi(x64emu_t *emu, uintptr_t fnc); void iFEppppp(x64emu_t *emu, uintptr_t fnc); void iFiiiiii(x64emu_t *emu, uintptr_t fnc); void iFiiiiip(x64emu_t *emu, uintptr_t fnc); +void iFiiiLwp(x64emu_t *emu, uintptr_t fnc); void iFiuiipi(x64emu_t *emu, uintptr_t fnc); void iFipupup(x64emu_t *emu, uintptr_t fnc); void iFipuppp(x64emu_t *emu, uintptr_t fnc); @@ -969,6 +993,7 @@ void pFEppLLp(x64emu_t *emu, uintptr_t fnc); void pFEpppLp(x64emu_t *emu, uintptr_t fnc); void pFEppppi(x64emu_t *emu, uintptr_t fnc); void pFEppppp(x64emu_t *emu, uintptr_t fnc); +void pFiiiiii(x64emu_t *emu, uintptr_t fnc); void pFiCiiCi(x64emu_t *emu, uintptr_t fnc); void pFdddddd(x64emu_t *emu, uintptr_t fnc); void pFpiiiiu(x64emu_t *emu, uintptr_t fnc); @@ -1043,6 +1068,8 @@ void iFEppLpIi(x64emu_t *emu, uintptr_t fnc); void iFEpppiiu(x64emu_t *emu, uintptr_t fnc); void iFEpppppp(x64emu_t *emu, uintptr_t fnc); void iFiiiiiip(x64emu_t *emu, uintptr_t fnc); +void iFpiiiiii(x64emu_t *emu, uintptr_t fnc); +void iFpiiiLwp(x64emu_t *emu, uintptr_t fnc); void iFpiiuuiu(x64emu_t *emu, uintptr_t fnc); void iFpiuiipp(x64emu_t *emu, uintptr_t fnc); void iFpiupiii(x64emu_t *emu, uintptr_t fnc); @@ -1124,6 +1151,7 @@ void iFEppppipp(x64emu_t *emu, uintptr_t fnc); void iFiiiiiiip(x64emu_t *emu, uintptr_t fnc); void iFiiupiupi(x64emu_t *emu, uintptr_t fnc); void iFuiifpppp(x64emu_t *emu, uintptr_t fnc); +void iFLLLLLLLL(x64emu_t *emu, uintptr_t fnc); void iFpiiiiipi(x64emu_t *emu, uintptr_t fnc); void iFpWCuWCuu(x64emu_t *emu, uintptr_t fnc); void iFpuuiiiii(x64emu_t *emu, uintptr_t fnc); @@ -1174,6 +1202,8 @@ void iFiiiipiiip(x64emu_t *emu, uintptr_t fnc); void iFipiipippi(x64emu_t *emu, uintptr_t fnc); void iFdddpppppp(x64emu_t *emu, uintptr_t fnc); void iFpipLpiiip(x64emu_t *emu, uintptr_t fnc); +void iFpLLLLLLLL(x64emu_t *emu, uintptr_t fnc); +void iFppiiiiiii(x64emu_t *emu, uintptr_t fnc); void iFppiuiippL(x64emu_t *emu, uintptr_t fnc); void iFpppiiuuii(x64emu_t *emu, uintptr_t fnc); void iFpppiipiiu(x64emu_t *emu, uintptr_t fnc); @@ -1215,6 +1245,7 @@ void iFppppiiuuii(x64emu_t *emu, uintptr_t fnc); void uFpppppppppp(x64emu_t *emu, uintptr_t fnc); void pFpCuWCCuuCW(x64emu_t *emu, uintptr_t fnc); void pFpuuuwwwwWW(x64emu_t *emu, uintptr_t fnc); +void pFplllllllll(x64emu_t *emu, uintptr_t fnc); void pFppuiipuuii(x64emu_t *emu, uintptr_t fnc); void pFpppppppppp(x64emu_t *emu, uintptr_t fnc); void vFuiiiiiiiiip(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibformw.c b/src/wrapped/wrappedlibformw.c new file mode 100644 index 00000000..b06620c9 --- /dev/null +++ b/src/wrapped/wrappedlibformw.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* libformwName = "libformw.so.5"; +#define LIBNAME libformw + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibformw_private.h b/src/wrapped/wrappedlibformw_private.h new file mode 100644 index 00000000..d204dffc --- /dev/null +++ b/src/wrapped/wrappedlibformw_private.h @@ -0,0 +1,80 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +//GOM(new_fieldtype, pFPP) +GO(link_fieldtype, pFpp) +GO(free_fieldtype, iFp) +//GOM(set_fieldtype_arg, iFpPPP) +//GOM(set_fieldtype_choice, iFpPP) +GO(new_field, pFiiiiii) +GO(dup_field, pFpii) +GO(link_field, pFpii) +GO(free_field, iFp) +GO(field_info, iFppppppp) +GO(dynamic_field_info, iFpppp) +GO(set_max_field, iFpi) +GO(move_field, iFpii) +//GO(set_field_type, iFpp,...) +GO(set_new_page, iFpi) +GO(set_field_just, iFpi) +GO(field_just, iFp) +GO(set_field_fore, iFpL) +GO(set_field_back, iFpL) +GO(set_field_pad, iFpi) +GO(field_pad, iFp) +GO(set_field_buffer, iFpip) +GO(set_field_status, iFpi) +GO(set_field_userptr, iFpp) +GO(set_field_opts, iFpi) +GO(field_opts_on, iFpi) +GO(field_opts_off, iFpi) +GO(field_fore, LFp) +GO(field_back, LFp) +GO(new_page, iFp) +GO(field_status, iFp) +GO(field_arg, pFp) +GO(field_userptr, pFp) +GO(field_type, pFp) +GO(field_buffer, pFpi) +GO(field_opts, iFp) +GO(new_form, pFp) +GO(form_fields, pFp) +GO(current_field, pFp) +GO(form_win, pFp) +GO(form_sub, pFp) +//GOM(form_init, PFp) +//GOM(form_term, PFp) +//GOM(field_init, PFp) +//GOM(field_term, PFp) +GO(free_form, iFp) +GO(set_form_fields, iFpp) +GO(field_count, iFp) +GO(set_form_win, iFpp) +GO(set_form_sub, iFpp) +GO(set_current_field, iFpp) +GO(unfocus_current_field, iFp) +GO(field_index, iFp) +GO(set_form_page, iFpi) +GO(form_page, iFp) +GO(scale_form, iFppp) +//GOM(set_form_init, iFpP) +//GOM(set_form_term, iFpP) +//GOM(set_field_init, iFpP) +//GOM(set_field_term, iFpP) +GO(post_form, iFp) +GO(unpost_form, iFp) +GO(pos_form_cursor, iFp) +GO(form_driver, iFpi) +GO(form_driver_w, iFpiu) +GO(set_form_userptr, iFpp) +GO(set_form_opts, iFpi) +GO(form_opts_on, iFpi) +GO(form_opts_off, iFpi) +GO(form_request_by_name, iFp) +GO(form_request_name, pFi) +GO(form_userptr, pFp) +GO(form_opts, iFp) +GO(data_ahead, iFp) +GO(data_behind, iFp) +GO(new_form_sp, pFpp) diff --git a/src/wrapped/wrappedlibncurses.c b/src/wrapped/wrappedlibncurses.c new file mode 100755 index 00000000..204e1145 --- /dev/null +++ b/src/wrapped/wrappedlibncurses.c @@ -0,0 +1,103 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" + +const char* libncursesName = "libncurses.so.5"; +#define LIBNAME libncurses + +static library_t* my_lib = NULL; + +// this is a simple copy of libncursesw wrapper. TODO: check if ok + +typedef int (*iFppV_t)(void*, void*, va_list); +typedef int (*iFpiip_t)(void*, int32_t, int32_t, void*); + +#define SUPER() \ + GO(mvwprintw, iFpiip_t) \ + GO(vwprintw, iFppV_t) \ + GO(stdscr, void*) + +typedef struct libncurses_my_s { + // functions + #define GO(A, B) B A; + SUPER() + #undef GO +} libncurses_my_t; + +void* getNCursesMy(library_t* lib) +{ + libncurses_my_t* my = (libncurses_my_t*)calloc(1, sizeof(libncurses_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + SUPER() + #undef GO + return my; +} +#undef SUPER + +void freeNCursesMy(void* lib) +{ + //libncurses_my_t *my = (libncurses_my_t *)lib; +} + +EXPORT int my_mvwprintw(x64emu_t* emu, void* win, int32_t y, int32_t x, void* fmt, void* b) +{ + libncurses_my_t *my = (libncurses_my_t*)my_lib->priv.w.p2; + + char* buf = NULL; + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4); + PREPARE_VALIST; + int ret = vasprintf(&buf, (const char*)fmt, VARARGS); + (void)ret; + // pre-bake the fmt/vaarg, because there is no "va_list" version of this function + ret = my->mvwprintw(win, y, x, buf); + free(buf); + return ret; +} + +EXPORT int my_printw(x64emu_t* emu, void* fmt, void* b) +{ + libncurses_my_t *my = (libncurses_my_t*)my_lib->priv.w.p2; + + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1); + PREPARE_VALIST; + return my->vwprintw(my->stdscr, fmt, VARARGS); +} + +EXPORT int my_vwprintw(x64emu_t* emu, void* p, void* fmt, x64_va_list_t b) +{ + libncurses_my_t *my = (libncurses_my_t*)my_lib->priv.w.p2; + + CONVERT_VALIST(b); + return my->vwprintw(p, fmt, VARARGS); +} + + +#define CUSTOM_INIT \ + lib->priv.w.p2 = getNCursesMy(lib); \ + my_lib = lib; \ + lib->priv.w.needed = 1; \ + lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \ + lib->priv.w.neededlibs[0] = strdup("libtinfo.so.5"); + +#define CUSTOM_FINI \ + freeNCursesMy(lib->priv.w.p2); \ + free(lib->priv.w.p2); \ + my_lib = NULL; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibncurses6.c b/src/wrapped/wrappedlibncurses6.c new file mode 100755 index 00000000..243a26be --- /dev/null +++ b/src/wrapped/wrappedlibncurses6.c @@ -0,0 +1,103 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" + +const char* libncurses6Name = "libncurses.so.6"; +#define LIBNAME libncurses6 + +static library_t* my_lib = NULL; + +// this is a simple copy of libncursesw wrapper. TODO: check if ok + +typedef int (*iFppV_t)(void*, void*, va_list); +typedef int (*iFpiip_t)(void*, int32_t, int32_t, void*); + +#define SUPER() \ + GO(mvwprintw, iFpiip_t) \ + GO(vwprintw, iFppV_t) \ + GO(stdscr, void*) + +typedef struct libncurses6_my_s { + // functions + #define GO(A, B) B A; + SUPER() + #undef GO +} libncurses6_my_t; + +void* getNCurses6My(library_t* lib) +{ + libncurses6_my_t* my = (libncurses6_my_t*)calloc(1, sizeof(libncurses6_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + SUPER() + #undef GO + return my; +} +#undef SUPER + +void freeNCurses6My(void* lib) +{ + //libncurses6_my_t *my = (libncurses6_my_t *)lib; +} + +EXPORT int my6_mvwprintw(x64emu_t* emu, void* win, int32_t y, int32_t x, void* fmt, void* b) +{ + libncurses6_my_t *my = (libncurses6_my_t*)my_lib->priv.w.p2; + + char* buf = NULL; + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4); + PREPARE_VALIST; + int ret = vasprintf(&buf, (const char*)fmt, VARARGS); + (void)ret; + // pre-bake the fmt/vaarg, because there is no "va_list" version of this function + ret = my->mvwprintw(win, y, x, buf); + free(buf); + return ret; +} + +EXPORT int my6_printw(x64emu_t* emu, void* fmt, void* b) +{ + libncurses6_my_t *my = (libncurses6_my_t*)my_lib->priv.w.p2; + + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1); + PREPARE_VALIST; + return my->vwprintw(my->stdscr, fmt, VARARGS); +} + +EXPORT int my6_vwprintw(x64emu_t* emu, void* p, void* fmt, x64_va_list_t b) +{ + libncurses6_my_t *my = (libncurses6_my_t*)my_lib->priv.w.p2; + + CONVERT_VALIST(b); + return my->vwprintw(p, fmt, VARARGS); +} + +#define CUSTOM_INIT \ + lib->priv.w.p2 = getNCurses6My(lib); \ + my_lib = lib; \ + lib->altmy = strdup("my6_"); \ + lib->priv.w.needed = 1; \ + lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \ + lib->priv.w.neededlibs[0] = strdup("libtinfo.so.6"); + +#define CUSTOM_FINI \ + freeNCurses6My(lib->priv.w.p2); \ + free(lib->priv.w.p2); \ + my_lib = NULL; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibncurses6_private.h b/src/wrapped/wrappedlibncurses6_private.h new file mode 100755 index 00000000..1446bdec --- /dev/null +++ b/src/wrapped/wrappedlibncurses6_private.h @@ -0,0 +1,424 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(wgetch_events, iFpp) +GO(wgetnstr_events, iFppip) +GO(addch, iFL) +GO(addchnstr, iFpi) +GO(addchstr, iFp) +GO(addnstr, iFpi) +GO(addstr, iFp) +GO(attroff, iFi) +GO(attron, iFi) +GO(attrset, iFi) +GO(attr_get, iFppp) +GO(attr_off, iFLp) +GO(attr_on, iFLp) +GO(attr_set, iFLwp) +GO(beep, iFv) +GO(bkgd, iFL) +GO(bkgdset, vFL) +GO(border, iFLLLLLLLL) +GO(box, iFpLL) +GO(can_change_color, iFv) +GO(chgat, iFiLwp) +GO(clear, iFv) +GO(clearok, iFpi) +GO(clrtobot, iFv) +GO(clrtoeol, iFv) +GO(color_content, iFwppp) +GO(color_set, iFwp) +GO(COLOR_PAIR, iFi) +GO(copywin, iFppiiiiiii) +GO(delch, iFv) +GO(delscreen, vFp) +GO(delwin, iFp) +GO(deleteln, iFv) +GO(derwin, pFpiiii) +GO(doupdate, iFv) +GO(dupwin, pFp) +GO(echo, iFv) +GO(echochar, iFL) +GO(erase, iFv) +GO(endwin, iFv) +GO(filter, vFv) +GO(flash, iFv) +GO(getbkgd, LFp) +GO(getch, iFv) +GO(getnstr, iFpi) +GO(getstr, iFp) +GO(getwin, pFp) +GO(has_colors, iFv) +GO(hline, iFLi) +GO(immedok, vFpi) +GO(inch, LFv) +GO(inchnstr, iFpi) +GO(inchstr, iFp) +GO(initscr, pFv) +GO(init_color, iFwwww) +GO(init_pair, iFwww) +GO(innstr, iFpi) +GO(insch, iFL) +GO(insdelln, iFi) +GO(insertln, iFv) +GO(insnstr, iFpi) +GO(insstr, iFp) +GO(instr, iFp) +GO(isendwin, iFv) +GO(is_linetouched, iFpi) +GO(is_wintouched, iFp) +GO(leaveok, iFpi) +GO(move, iFii) +GO(mvaddch, iFiiL) +GO(mvaddchnstr, iFiipi) +GO(mvaddchstr, iFiip) +GO(mvaddnstr, iFiipi) +GO(mvaddstr, iFiip) +GO(mvchgat, iFiiiLwp) +GO(mvcur, iFiiii) +GO(mvdelch, iFii) +GO(mvderwin, iFpii) +GO(mvgetch, iFii) +GO(mvgetnstr, iFiipi) +GO(mvgetstr, iFiip) +GO(mvhline, iFiiLi) +GO(mvinch, LFii) +GO(mvinchnstr, iFiipi) +GO(mvinchstr, iFiip) +GO(mvinnstr, iFiipi) +GO(mvinsch, iFiiL) +GO(mvinsnstr, iFiipi) +GO(mvinsstr, iFiip) +GO(mvinstr, iFiip) +//GO(mvprintw, i(i,i,p,...) +//GO(mvscanw, i(i,i,p,...) +GO(mvvline, iFiiLi) +GO(mvwaddch, iFpiiL) +GO(mvwaddchnstr, iFpiipi) +GO(mvwaddchstr, iFpiip) +GO(mvwaddnstr, iFpiipi) +GO(mvwaddstr, iFpiip) +GO(mvwchgat, iFpiiiLwp) +GO(mvwdelch, iFpii) +GO(mvwgetch, iFpii) +GO(mvwgetnstr, iFpiipi) +GO(mvwgetstr, iFpiip) +GO(mvwhline, iFpiiLi) +GO(mvwin, iFpii) +GO(mvwinch, LFpii) +GO(mvwinchnstr, iFpiipi) +GO(mvwinchstr, iFpiip) +GO(mvwinnstr, iFpiipi) +GO(mvwinsch, iFpiiL) +GO(mvwinsnstr, iFpiipi) +GO(mvwinsstr, iFpiip) +GO(mvwinstr, iFpiip) +GOM(mvwprintw, iFEpiipV) +//GO(mvwscanw, i(p,i,i,p,...) +GO(mvwvline, iFpiiLi) +GO(newpad, pFii) +GO(newterm, pFppp) +GO(newwin, pFiiii) +GO(nl, iFv) +GO(noecho, iFv) +GO(nonl, iFv) +GO(overlay, iFpp) +GO(overwrite, iFpp) +GO(pair_content, iFwpp) +GO(PAIR_NUMBER, iFi) +GO(pechochar, iFpL) +GO(pnoutrefresh, iFpiiiiii) +GO(prefresh, iFpiiiiii) +GOM(printw, iFEpV) +GO(putwin, iFpp) +GO(redrawwin, iFp) +GO(refresh, iFv) +//GOM(ripoffline, int(int,int (*)(WINDOW*,int))) +//GO(scanw, i(p,...) +GO(scr_dump, iFp) +GO(scr_init, iFp) +GO(scrl, iFi) +GO(scroll, iFp) +GO(scrollok, iFpi) +GO(scr_restore, iFp) +GO(scr_set, iFp) +GO(setscrreg, iFii) +GO(set_term, pFp) +GO(slk_attroff, iFL) +GO(slk_attr_off, iFLp) +GO(slk_attron, iFL) +GO(slk_attr_on, iFLp) +GO(slk_attrset, iFL) +GO(slk_attr, LFv) +GO(slk_attr_set, iFLwp) +GO(slk_clear, iFv) +GO(slk_color, iFw) +GO(slk_init, iFi) +GO(slk_label, pFi) +GO(slk_noutrefresh, iFv) +GO(slk_refresh, iFv) +GO(slk_restore, iFv) +GO(slk_set, iFipi) +GO(slk_touch, iFv) +GO(standout, iFv) +GO(standend, iFv) +GO(start_color, iFv) +GO(subpad, pFpiiii) +GO(subwin, pFpiiii) +GO(syncok, iFpi) +GO(termattrs, LFv) +GO(timeout, vFi) +GO(touchline, iFpii) +GO(touchwin, iFp) +GO(ungetch, iFi) +GO(untouchwin, iFp) +GO(use_tioctl, vFi) +GO(vidattr, iFL) +//GOM(vidputs, iFLP) +GO(vline, iFLi) +GOM(vwprintw, iFEppp) +GO(vw_printw, iFppp) +GO(vwscanw, iFppp) +GO(vw_scanw, iFppp) +GO(waddch, iFpL) +GO(waddchnstr, iFppi) +GO(waddchstr, iFpp) +GO(waddnstr, iFppi) +GO(waddstr, iFpp) +GO(wattron, iFpi) +GO(wattroff, iFpi) +GO(wattrset, iFpi) +GO(wattr_get, iFpppp) +GO(wattr_on, iFpLp) +GO(wattr_off, iFpLp) +GO(wattr_set, iFpLwp) +GO(wbkgd, iFpL) +GO(wbkgdset, vFpL) +GO(wborder, iFpLLLLLLLL) +GO(wchgat, iFpiLwp) +GO(wclear, iFp) +GO(wclrtobot, iFp) +GO(wclrtoeol, iFp) +GO(wcolor_set, iFpwp) +GO(wcursyncup, vFp) +GO(wdelch, iFp) +GO(wdeleteln, iFp) +GO(wechochar, iFpL) +GO(werase, iFp) +GO(wgetch, iFp) +GO(wgetnstr, iFppi) +GO(wgetstr, iFpp) +GO(whline, iFpLi) +GO(winch, LFp) +GO(winchnstr, iFppi) +GO(winchstr, iFpp) +GO(winnstr, iFppi) +GO(winsch, iFpL) +GO(winsdelln, iFpi) +GO(winsertln, iFp) +GO(winsnstr, iFppi) +GO(winsstr, iFpp) +GO(winstr, iFpp) +GO(wmove, iFpii) +GO(wnoutrefresh, iFp) +//GO(wprintw, i(p,p,...) +GO(wredrawln, iFpii) +GO(wrefresh, iFp) +//GO(wscanw, i(p,p,...) +GO(wscrl, iFpi) +GO(wsetscrreg, iFpii) +GO(wstandout, iFp) +GO(wstandend, iFp) +GO(wsyncdown, vFp) +GO(wsyncup, vFp) +GO(wtouchln, iFpiii) +GO(wvline, iFpLi) +GO(getattrs, iFp) +GO(getcurx, iFp) +GO(getcury, iFp) +GO(getbegx, iFp) +GO(getbegy, iFp) +GO(getmaxx, iFp) +GO(getmaxy, iFp) +GO(getparx, iFp) +GO(getpary, iFp) +GO(is_term_resized, iFii) +GO(alloc_pair, iFii) +GO(assume_default_colors, iFii) +GO(extended_color_content, iFippp) +GO(extended_pair_content, iFipp) +GO(extended_slk_color, iFi) +GO(find_pair, iFii) +GO(free_pair, iFi) +GO(get_escdelay, iFv) +GO(init_extended_color, iFiiii) +GO(init_extended_pair, iFiii) +GO(reset_color_pairs, vFv) +GO(resize_term, iFii) +GO(resizeterm, iFii) +GO(set_escdelay, iFi) +GO(use_default_colors, iFv) +GO(use_legacy_coding, iFi) +//GOM(use_screen, iFpPp) +//GOM(use_window, iFpPp) +GO(wresize, iFpii) +GO(nofilter, vFv) +GO(wgetparent, pFp) +GO(is_cleared, iFp) +GO(is_idcok, iFp) +GO(is_idlok, iFp) +GO(is_immedok, iFp) +GO(is_keypad, iFp) +GO(is_leaveok, iFp) +GO(is_nodelay, iFp) +GO(is_notimeout, iFp) +GO(is_pad, iFp) +GO(is_scrollok, iFp) +GO(is_subwin, iFp) +GO(is_syncok, iFp) +GO(wgetdelay, iFp) +GO(wgetscrreg, iFppp) +GO(add_wch, iFp) +GO(add_wchnstr, iFpi) +GO(add_wchstr, iFp) +GO(addnwstr, iFpi) +GO(addwstr, iFp) +GO(bkgrnd, iFp) +GO(bkgrndset, vFp) +GO(border_set, iFpppppppp) +GO(box_set, iFppp) +GO(echo_wchar, iFp) +GO(erasewchar, iFp) +GO(get_wch, iFp) +GO(get_wstr, iFp) +GO(getbkgrnd, iFp) +GO(getcchar, iFppppp) +GO(getn_wstr, iFpi) +GO(hline_set, iFpi) +GO(in_wch, iFp) +GO(in_wchnstr, iFpi) +GO(in_wchstr, iFp) +GO(innwstr, iFpi) +GO(ins_nwstr, iFpi) +GO(ins_wch, iFp) +GO(ins_wstr, iFp) +GO(inwstr, iFp) +GO(key_name, pFu) +GO(killwchar, iFp) +GO(mvadd_wch, iFiip) +GO(mvadd_wchnstr, iFiipi) +GO(mvadd_wchstr, iFiip) +GO(mvaddnwstr, iFiipi) +GO(mvaddwstr, iFiip) +GO(mvget_wch, iFiip) +GO(mvget_wstr, iFiip) +GO(mvgetn_wstr, iFiipi) +GO(mvhline_set, iFiipi) +GO(mvin_wch, iFiip) +GO(mvin_wchnstr, iFiipi) +GO(mvin_wchstr, iFiip) +GO(mvinnwstr, iFiipi) +GO(mvins_nwstr, iFiipi) +GO(mvins_wch, iFiip) +GO(mvins_wstr, iFiip) +GO(mvinwstr, iFiip) +GO(mvvline_set, iFiipi) +GO(mvwadd_wch, iFpiip) +GO(mvwadd_wchnstr, iFpiipi) +GO(mvwadd_wchstr, iFpiip) +GO(mvwaddnwstr, iFpiipi) +GO(mvwaddwstr, iFpiip) +GO(mvwget_wch, iFpiip) +GO(mvwget_wstr, iFpiip) +GO(mvwgetn_wstr, iFpiipi) +GO(mvwhline_set, iFpiipi) +GO(mvwin_wch, iFpiip) +GO(mvwin_wchnstr, iFpiipi) +GO(mvwin_wchstr, iFpiip) +GO(mvwinnwstr, iFpiipi) +GO(mvwins_nwstr, iFpiipi) +GO(mvwins_wch, iFpiip) +GO(mvwins_wstr, iFpiip) +GO(mvwinwstr, iFpiip) +GO(mvwvline_set, iFpiipi) +GO(pecho_wchar, iFpp) +GO(setcchar, iFppLwp) +GO(slk_wset, iFipi) +GO(term_attrs, LFv) +GO(unget_wch, iFu) +GO(vid_attr, iFLwp) +//GOM(vid_puts, iFLwpP) +GO(vline_set, iFpi) +GO(wadd_wch, iFpp) +GO(wadd_wchnstr, iFppi) +GO(wadd_wchstr, iFpp) +GO(waddnwstr, iFppi) +GO(waddwstr, iFpp) +GO(wbkgrnd, iFpp) +GO(wbkgrndset, vFpp) +GO(wborder_set, iFppppppppp) +GO(wecho_wchar, iFpp) +GO(wget_wch, iFpp) +GO(wget_wstr, iFpp) +GO(wgetbkgrnd, iFpp) +GO(wgetn_wstr, iFppi) +GO(whline_set, iFppi) +GO(win_wch, iFpp) +GO(win_wchnstr, iFppi) +GO(win_wchstr, iFpp) +GO(winnwstr, iFppi) +GO(wins_nwstr, iFppi) +GO(wins_wch, iFpp) +GO(wins_wstr, iFpp) +GO(winwstr, iFpp) +GO(wunctrl, pFp) +GO(wvline_set, iFppi) +GO(term_attrs, LFp) +GO(unget_wch, iFpu) +GO(vid_attr, iFpLwp) +//GOM(vid_puts, iFpLwpP) +GO(_nc_viswbuf, pFp) +GO(_nc_viswibuf, pFp) +GO(has_mouse, iFv) +GO(getmouse, iFp) +GO(ungetmouse, iFp) +GO(mousemask, LFLp) +GO(wenclose, iFpii) +GO(mouseinterval, iFi) +GO(wmouse_trafo, iFpppi) +GO(mouse_trafo, iFppi) +GO(has_mouse, iFp) +GO(getmouse, iFpp) +GO(ungetmouse, iFpp) +GO(mousemask, LFpLp) +GO(mouseinterval, iFpi) +GO(mcprint, iFpi) +GO(mcprint, iFppi) +//GO(_tracef, v(p,...) GCC_PRINTFLIKE(1,2) +GO(_traceattr, pFL) +GO(_traceattr2, pFiL) +GO(_tracechar, pFi) +GO(_tracechtype, pFL) +GO(_tracechtype2, pFiL) +GO(_tracecchar_t, pFp) +GO(_tracecchar_t2, pFip) +GO(trace, vFu) +GO(_nc_visbuf, pFp) + +GO(putp, iFp) +GO(setupterm, iFpip) +GO(tigetstr, pFp) +GO(tparm, pFplllllllll) // va_arg or 9 long, depending on how old the .h is + +DATA(COLOR_PAIRS, sizeof(void*)) +DATA(COLS, sizeof(void*)) +DATA(COLORS, sizeof(void*)) +DATA(ESCDELAY, sizeof(void*)) +DATA(LINES, sizeof(void*)) +DATA(TABSIZE, sizeof(void*)) +DATA(curscr, sizeof(void*)) +DATA(newscr, sizeof(void*)) +DATA(stdscr, sizeof(void*)) +DATA(ttytype, sizeof(void*)) +DATA(_nc_wacs, sizeof(void*)) diff --git a/src/wrapped/wrappedlibncurses_private.h b/src/wrapped/wrappedlibncurses_private.h new file mode 100755 index 00000000..b204cfc2 --- /dev/null +++ b/src/wrapped/wrappedlibncurses_private.h @@ -0,0 +1,419 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(wgetch_events, iFpp) +GO(wgetnstr_events, iFppip) +GO(addch, iFL) +GO(addchnstr, iFpi) +GO(addchstr, iFp) +GO(addnstr, iFpi) +GO(addstr, iFp) +GO(attroff, iFi) +GO(attron, iFi) +GO(attrset, iFi) +GO(attr_get, iFppp) +GO(attr_off, iFLp) +GO(attr_on, iFLp) +GO(attr_set, iFLwp) +GO(beep, iFv) +GO(bkgd, iFL) +GO(bkgdset, vFL) +GO(border, iFLLLLLLLL) +GO(box, iFpLL) +GO(can_change_color, iFv) +GO(chgat, iFiLwp) +GO(clear, iFv) +GO(clearok, iFpi) +GO(clrtobot, iFv) +GO(clrtoeol, iFv) +GO(color_content, iFwppp) +GO(color_set, iFwp) +GO(COLOR_PAIR, iFi) +GO(copywin, iFppiiiiiii) +GO(delch, iFv) +GO(delscreen, vFp) +GO(delwin, iFp) +GO(deleteln, iFv) +GO(derwin, pFpiiii) +GO(doupdate, iFv) +GO(dupwin, pFp) +GO(echo, iFv) +GO(echochar, iFL) +GO(erase, iFv) +GO(endwin, iFv) +GO(filter, vFv) +GO(flash, iFv) +GO(getbkgd, LFp) +GO(getch, iFv) +GO(getnstr, iFpi) +GO(getstr, iFp) +GO(getwin, pFp) +GO(has_colors, iFv) +GO(hline, iFLi) +GO(immedok, vFpi) +GO(inch, LFv) +GO(inchnstr, iFpi) +GO(inchstr, iFp) +GO(initscr, pFv) +GO(init_color, iFwwww) +GO(init_pair, iFwww) +GO(innstr, iFpi) +GO(insch, iFL) +GO(insdelln, iFi) +GO(insertln, iFv) +GO(insnstr, iFpi) +GO(insstr, iFp) +GO(instr, iFp) +GO(isendwin, iFv) +GO(is_linetouched, iFpi) +GO(is_wintouched, iFp) +GO(leaveok, iFpi) +GO(move, iFii) +GO(mvaddch, iFiiL) +GO(mvaddchnstr, iFiipi) +GO(mvaddchstr, iFiip) +GO(mvaddnstr, iFiipi) +GO(mvaddstr, iFiip) +GO(mvchgat, iFiiiLwp) +GO(mvcur, iFiiii) +GO(mvdelch, iFii) +GO(mvderwin, iFpii) +GO(mvgetch, iFii) +GO(mvgetnstr, iFiipi) +GO(mvgetstr, iFiip) +GO(mvhline, iFiiLi) +GO(mvinch, LFii) +GO(mvinchnstr, iFiipi) +GO(mvinchstr, iFiip) +GO(mvinnstr, iFiipi) +GO(mvinsch, iFiiL) +GO(mvinsnstr, iFiipi) +GO(mvinsstr, iFiip) +GO(mvinstr, iFiip) +//GO(mvprintw, i(i,i,p,...) +//GO(mvscanw, i(i,i,p,...) +GO(mvvline, iFiiLi) +GO(mvwaddch, iFpiiL) +GO(mvwaddchnstr, iFpiipi) +GO(mvwaddchstr, iFpiip) +GO(mvwaddnstr, iFpiipi) +GO(mvwaddstr, iFpiip) +GO(mvwchgat, iFpiiiLwp) +GO(mvwdelch, iFpii) +GO(mvwgetch, iFpii) +GO(mvwgetnstr, iFpiipi) +GO(mvwgetstr, iFpiip) +GO(mvwhline, iFpiiLi) +GO(mvwin, iFpii) +GO(mvwinch, LFpii) +GO(mvwinchnstr, iFpiipi) +GO(mvwinchstr, iFpiip) +GO(mvwinnstr, iFpiipi) +GO(mvwinsch, iFpiiL) +GO(mvwinsnstr, iFpiipi) +GO(mvwinsstr, iFpiip) +GO(mvwinstr, iFpiip) +GOM(mvwprintw, iFEpiipV) +//GO(mvwscanw, i(p,i,i,p,...) +GO(mvwvline, iFpiiLi) +GO(newpad, pFii) +GO(newterm, pFppp) +GO(newwin, pFiiii) +GO(nl, iFv) +GO(noecho, iFv) +GO(nonl, iFv) +GO(overlay, iFpp) +GO(overwrite, iFpp) +GO(pair_content, iFwpp) +GO(PAIR_NUMBER, iFi) +GO(pechochar, iFpL) +GO(pnoutrefresh, iFpiiiiii) +GO(prefresh, iFpiiiiii) +GOM(printw, iFEpV) +GO(putwin, iFpp) +GO(redrawwin, iFp) +GO(refresh, iFv) +//GOM(ripoffline, int(int,int (*)(WINDOW*,int))) +//GO(scanw, i(p,...) +GO(scr_dump, iFp) +GO(scr_init, iFp) +GO(scrl, iFi) +GO(scroll, iFp) +GO(scrollok, iFpi) +GO(scr_restore, iFp) +GO(scr_set, iFp) +GO(setscrreg, iFii) +GO(set_term, pFp) +GO(slk_attroff, iFL) +GO(slk_attr_off, iFLp) +GO(slk_attron, iFL) +GO(slk_attr_on, iFLp) +GO(slk_attrset, iFL) +GO(slk_attr, LFv) +GO(slk_attr_set, iFLwp) +GO(slk_clear, iFv) +GO(slk_color, iFw) +GO(slk_init, iFi) +GO(slk_label, pFi) +GO(slk_noutrefresh, iFv) +GO(slk_refresh, iFv) +GO(slk_restore, iFv) +GO(slk_set, iFipi) +GO(slk_touch, iFv) +GO(standout, iFv) +GO(standend, iFv) +GO(start_color, iFv) +GO(subpad, pFpiiii) +GO(subwin, pFpiiii) +GO(syncok, iFpi) +GO(termattrs, LFv) +GO(timeout, vFi) +GO(touchline, iFpii) +GO(touchwin, iFp) +GO(ungetch, iFi) +GO(untouchwin, iFp) +GO(use_tioctl, vFi) +GO(vidattr, iFL) +//GOM(vidputs, iFLP) +GO(vline, iFLi) +GOM(vwprintw, iFEppp) +GO(vw_printw, iFppp) +GO(vwscanw, iFppp) +GO(vw_scanw, iFppp) +GO(waddch, iFpL) +GO(waddchnstr, iFppi) +GO(waddchstr, iFpp) +GO(waddnstr, iFppi) +GO(waddstr, iFpp) +GO(wattron, iFpi) +GO(wattroff, iFpi) +GO(wattrset, iFpi) +GO(wattr_get, iFpppp) +GO(wattr_on, iFpLp) +GO(wattr_off, iFpLp) +GO(wattr_set, iFpLwp) +GO(wbkgd, iFpL) +GO(wbkgdset, vFpL) +GO(wborder, iFpLLLLLLLL) +GO(wchgat, iFpiLwp) +GO(wclear, iFp) +GO(wclrtobot, iFp) +GO(wclrtoeol, iFp) +GO(wcolor_set, iFpwp) +GO(wcursyncup, vFp) +GO(wdelch, iFp) +GO(wdeleteln, iFp) +GO(wechochar, iFpL) +GO(werase, iFp) +GO(wgetch, iFp) +GO(wgetnstr, iFppi) +GO(wgetstr, iFpp) +GO(whline, iFpLi) +GO(winch, LFp) +GO(winchnstr, iFppi) +GO(winchstr, iFpp) +GO(winnstr, iFppi) +GO(winsch, iFpL) +GO(winsdelln, iFpi) +GO(winsertln, iFp) +GO(winsnstr, iFppi) +GO(winsstr, iFpp) +GO(winstr, iFpp) +GO(wmove, iFpii) +GO(wnoutrefresh, iFp) +//GO(wprintw, i(p,p,...) +GO(wredrawln, iFpii) +GO(wrefresh, iFp) +//GO(wscanw, i(p,p,...) +GO(wscrl, iFpi) +GO(wsetscrreg, iFpii) +GO(wstandout, iFp) +GO(wstandend, iFp) +GO(wsyncdown, vFp) +GO(wsyncup, vFp) +GO(wtouchln, iFpiii) +GO(wvline, iFpLi) +GO(getattrs, iFp) +GO(getcurx, iFp) +GO(getcury, iFp) +GO(getbegx, iFp) +GO(getbegy, iFp) +GO(getmaxx, iFp) +GO(getmaxy, iFp) +GO(getparx, iFp) +GO(getpary, iFp) +GO(is_term_resized, iFii) +GO(alloc_pair, iFii) +GO(assume_default_colors, iFii) +GO(extended_color_content, iFippp) +GO(extended_pair_content, iFipp) +GO(extended_slk_color, iFi) +GO(find_pair, iFii) +GO(free_pair, iFi) +GO(get_escdelay, iFv) +GO(init_extended_color, iFiiii) +GO(init_extended_pair, iFiii) +GO(reset_color_pairs, vFv) +GO(resize_term, iFii) +GO(resizeterm, iFii) +GO(set_escdelay, iFi) +GO(use_default_colors, iFv) +GO(use_legacy_coding, iFi) +//GOM(use_screen, iFpPp) +//GOM(use_window, iFpPp) +GO(wresize, iFpii) +GO(nofilter, vFv) +GO(wgetparent, pFp) +GO(is_cleared, iFp) +GO(is_idcok, iFp) +GO(is_idlok, iFp) +GO(is_immedok, iFp) +GO(is_keypad, iFp) +GO(is_leaveok, iFp) +GO(is_nodelay, iFp) +GO(is_notimeout, iFp) +GO(is_pad, iFp) +GO(is_scrollok, iFp) +GO(is_subwin, iFp) +GO(is_syncok, iFp) +GO(wgetdelay, iFp) +GO(wgetscrreg, iFppp) +GO(add_wch, iFp) +GO(add_wchnstr, iFpi) +GO(add_wchstr, iFp) +GO(addnwstr, iFpi) +GO(addwstr, iFp) +GO(bkgrnd, iFp) +GO(bkgrndset, vFp) +GO(border_set, iFpppppppp) +GO(box_set, iFppp) +GO(echo_wchar, iFp) +GO(erasewchar, iFp) +GO(get_wch, iFp) +GO(get_wstr, iFp) +GO(getbkgrnd, iFp) +GO(getcchar, iFppppp) +GO(getn_wstr, iFpi) +GO(hline_set, iFpi) +GO(in_wch, iFp) +GO(in_wchnstr, iFpi) +GO(in_wchstr, iFp) +GO(innwstr, iFpi) +GO(ins_nwstr, iFpi) +GO(ins_wch, iFp) +GO(ins_wstr, iFp) +GO(inwstr, iFp) +GO(key_name, pFu) +GO(killwchar, iFp) +GO(mvadd_wch, iFiip) +GO(mvadd_wchnstr, iFiipi) +GO(mvadd_wchstr, iFiip) +GO(mvaddnwstr, iFiipi) +GO(mvaddwstr, iFiip) +GO(mvget_wch, iFiip) +GO(mvget_wstr, iFiip) +GO(mvgetn_wstr, iFiipi) +GO(mvhline_set, iFiipi) +GO(mvin_wch, iFiip) +GO(mvin_wchnstr, iFiipi) +GO(mvin_wchstr, iFiip) +GO(mvinnwstr, iFiipi) +GO(mvins_nwstr, iFiipi) +GO(mvins_wch, iFiip) +GO(mvins_wstr, iFiip) +GO(mvinwstr, iFiip) +GO(mvvline_set, iFiipi) +GO(mvwadd_wch, iFpiip) +GO(mvwadd_wchnstr, iFpiipi) +GO(mvwadd_wchstr, iFpiip) +GO(mvwaddnwstr, iFpiipi) +GO(mvwaddwstr, iFpiip) +GO(mvwget_wch, iFpiip) +GO(mvwget_wstr, iFpiip) +GO(mvwgetn_wstr, iFpiipi) +GO(mvwhline_set, iFpiipi) +GO(mvwin_wch, iFpiip) +GO(mvwin_wchnstr, iFpiipi) +GO(mvwin_wchstr, iFpiip) +GO(mvwinnwstr, iFpiipi) +GO(mvwins_nwstr, iFpiipi) +GO(mvwins_wch, iFpiip) +GO(mvwins_wstr, iFpiip) +GO(mvwinwstr, iFpiip) +GO(mvwvline_set, iFpiipi) +GO(pecho_wchar, iFpp) +GO(setcchar, iFppLwp) +GO(slk_wset, iFipi) +GO(term_attrs, LFv) +GO(unget_wch, iFu) +GO(vid_attr, iFLwp) +//GOM(vid_puts, iFLwpP) +GO(vline_set, iFpi) +GO(wadd_wch, iFpp) +GO(wadd_wchnstr, iFppi) +GO(wadd_wchstr, iFpp) +GO(waddnwstr, iFppi) +GO(waddwstr, iFpp) +GO(wbkgrnd, iFpp) +GO(wbkgrndset, vFpp) +GO(wborder_set, iFppppppppp) +GO(wecho_wchar, iFpp) +GO(wget_wch, iFpp) +GO(wget_wstr, iFpp) +GO(wgetbkgrnd, iFpp) +GO(wgetn_wstr, iFppi) +GO(whline_set, iFppi) +GO(win_wch, iFpp) +GO(win_wchnstr, iFppi) +GO(win_wchstr, iFpp) +GO(winnwstr, iFppi) +GO(wins_nwstr, iFppi) +GO(wins_wch, iFpp) +GO(wins_wstr, iFpp) +GO(winwstr, iFpp) +GO(wunctrl, pFp) +GO(wvline_set, iFppi) +GO(term_attrs, LFp) +GO(unget_wch, iFpu) +GO(vid_attr, iFpLwp) +//GOM(vid_puts, iFpLwpP) +GO(_nc_viswbuf, pFp) +GO(_nc_viswibuf, pFp) +GO(has_mouse, iFv) +GO(getmouse, iFp) +GO(ungetmouse, iFp) +GO(mousemask, LFLp) +GO(wenclose, iFpii) +GO(mouseinterval, iFi) +GO(wmouse_trafo, iFpppi) +GO(mouse_trafo, iFppi) +GO(has_mouse, iFp) +GO(getmouse, iFpp) +GO(ungetmouse, iFpp) +GO(mousemask, LFpLp) +GO(mouseinterval, iFpi) +GO(mcprint, iFpi) +GO(mcprint, iFppi) +//GO(_tracef, v(p,...) GCC_PRINTFLIKE(1,2) +GO(_traceattr, pFL) +GO(_traceattr2, pFiL) +GO(_tracechar, pFi) +GO(_tracechtype, pFL) +GO(_tracechtype2, pFiL) +GO(_tracecchar_t, pFp) +GO(_tracecchar_t2, pFip) +GO(trace, vFu) +GO(_nc_visbuf, pFp) + +DATA(COLOR_PAIRS, sizeof(void*)) +DATA(COLS, sizeof(void*)) +DATA(COLORS, sizeof(void*)) +DATA(ESCDELAY, sizeof(void*)) +DATA(LINES, sizeof(void*)) +DATA(TABSIZE, sizeof(void*)) +DATA(curscr, sizeof(void*)) +DATA(newscr, sizeof(void*)) +DATA(stdscr, sizeof(void*)) +DATA(ttytype, sizeof(void*)) +DATA(_nc_wacs, sizeof(void*)) diff --git a/src/wrapped/wrappedlibncursesw.c b/src/wrapped/wrappedlibncursesw.c new file mode 100755 index 00000000..6628dc6f --- /dev/null +++ b/src/wrapped/wrappedlibncursesw.c @@ -0,0 +1,101 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" + +const char* libncurseswName = "libncursesw.so.5"; +#define LIBNAME libncursesw + +static library_t* my_lib = NULL; + +typedef int (*iFppV_t)(void*, void*, va_list); +typedef int (*iFpiip_t)(void*, int32_t, int32_t, void*); + +#define SUPER() \ + GO(mvwprintw, iFpiip_t) \ + GO(vwprintw, iFppV_t) \ + GO(stdscr, void*) + +typedef struct libncursesw_my_s { + // functions + #define GO(A, B) B A; + SUPER() + #undef GO +} libncursesw_my_t; + +void* getNCurseswMy(library_t* lib) +{ + libncursesw_my_t* my = (libncursesw_my_t*)calloc(1, sizeof(libncursesw_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + SUPER() + #undef GO + return my; +} +#undef SUPER + +void freeNCurseswMy(void* lib) +{ + //libncursesw_my_t *my = (libncursesw_my_t *)lib; +} + +EXPORT int myw_mvwprintw(x64emu_t* emu, void* win, int32_t y, int32_t x, void* fmt, void* b) +{ + libncursesw_my_t *my = (libncursesw_my_t*)my_lib->priv.w.p2; + + char* buf = NULL; + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4); + PREPARE_VALIST; + int ret = vasprintf(&buf, (const char*)fmt, VARARGS); + (void)ret; + // pre-bake the fmt/vaarg, because there is no "va_list" version of this function + ret = my->mvwprintw(win, y, x, buf); + free(buf); + return ret; +} + +EXPORT int myw_printw(x64emu_t* emu, void* fmt, void* b) +{ + libncursesw_my_t *my = (libncursesw_my_t*)my_lib->priv.w.p2; + + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1); + PREPARE_VALIST; + return my->vwprintw(my->stdscr, fmt, VARARGS); +} + +EXPORT int myw_vwprintw(x64emu_t* emu, void* p, void* fmt, x64_va_list_t b) +{ + libncursesw_my_t *my = (libncursesw_my_t*)my_lib->priv.w.p2; + + CONVERT_VALIST(b); + return my->vwprintw(p, fmt, VARARGS); +} + +#define CUSTOM_INIT \ + lib->priv.w.p2 = getNCurseswMy(lib); \ + my_lib = lib; \ + lib->altmy = strdup("myw_"); \ + lib->priv.w.needed = 1; \ + lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \ + lib->priv.w.neededlibs[0] = strdup("libtinfo.so.5"); + +#define CUSTOM_FINI \ + freeNCurseswMy(lib->priv.w.p2); \ + free(lib->priv.w.p2); \ + my_lib = NULL; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibncursesw_private.h b/src/wrapped/wrappedlibncursesw_private.h new file mode 100755 index 00000000..b204cfc2 --- /dev/null +++ b/src/wrapped/wrappedlibncursesw_private.h @@ -0,0 +1,419 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(wgetch_events, iFpp) +GO(wgetnstr_events, iFppip) +GO(addch, iFL) +GO(addchnstr, iFpi) +GO(addchstr, iFp) +GO(addnstr, iFpi) +GO(addstr, iFp) +GO(attroff, iFi) +GO(attron, iFi) +GO(attrset, iFi) +GO(attr_get, iFppp) +GO(attr_off, iFLp) +GO(attr_on, iFLp) +GO(attr_set, iFLwp) +GO(beep, iFv) +GO(bkgd, iFL) +GO(bkgdset, vFL) +GO(border, iFLLLLLLLL) +GO(box, iFpLL) +GO(can_change_color, iFv) +GO(chgat, iFiLwp) +GO(clear, iFv) +GO(clearok, iFpi) +GO(clrtobot, iFv) +GO(clrtoeol, iFv) +GO(color_content, iFwppp) +GO(color_set, iFwp) +GO(COLOR_PAIR, iFi) +GO(copywin, iFppiiiiiii) +GO(delch, iFv) +GO(delscreen, vFp) +GO(delwin, iFp) +GO(deleteln, iFv) +GO(derwin, pFpiiii) +GO(doupdate, iFv) +GO(dupwin, pFp) +GO(echo, iFv) +GO(echochar, iFL) +GO(erase, iFv) +GO(endwin, iFv) +GO(filter, vFv) +GO(flash, iFv) +GO(getbkgd, LFp) +GO(getch, iFv) +GO(getnstr, iFpi) +GO(getstr, iFp) +GO(getwin, pFp) +GO(has_colors, iFv) +GO(hline, iFLi) +GO(immedok, vFpi) +GO(inch, LFv) +GO(inchnstr, iFpi) +GO(inchstr, iFp) +GO(initscr, pFv) +GO(init_color, iFwwww) +GO(init_pair, iFwww) +GO(innstr, iFpi) +GO(insch, iFL) +GO(insdelln, iFi) +GO(insertln, iFv) +GO(insnstr, iFpi) +GO(insstr, iFp) +GO(instr, iFp) +GO(isendwin, iFv) +GO(is_linetouched, iFpi) +GO(is_wintouched, iFp) +GO(leaveok, iFpi) +GO(move, iFii) +GO(mvaddch, iFiiL) +GO(mvaddchnstr, iFiipi) +GO(mvaddchstr, iFiip) +GO(mvaddnstr, iFiipi) +GO(mvaddstr, iFiip) +GO(mvchgat, iFiiiLwp) +GO(mvcur, iFiiii) +GO(mvdelch, iFii) +GO(mvderwin, iFpii) +GO(mvgetch, iFii) +GO(mvgetnstr, iFiipi) +GO(mvgetstr, iFiip) +GO(mvhline, iFiiLi) +GO(mvinch, LFii) +GO(mvinchnstr, iFiipi) +GO(mvinchstr, iFiip) +GO(mvinnstr, iFiipi) +GO(mvinsch, iFiiL) +GO(mvinsnstr, iFiipi) +GO(mvinsstr, iFiip) +GO(mvinstr, iFiip) +//GO(mvprintw, i(i,i,p,...) +//GO(mvscanw, i(i,i,p,...) +GO(mvvline, iFiiLi) +GO(mvwaddch, iFpiiL) +GO(mvwaddchnstr, iFpiipi) +GO(mvwaddchstr, iFpiip) +GO(mvwaddnstr, iFpiipi) +GO(mvwaddstr, iFpiip) +GO(mvwchgat, iFpiiiLwp) +GO(mvwdelch, iFpii) +GO(mvwgetch, iFpii) +GO(mvwgetnstr, iFpiipi) +GO(mvwgetstr, iFpiip) +GO(mvwhline, iFpiiLi) +GO(mvwin, iFpii) +GO(mvwinch, LFpii) +GO(mvwinchnstr, iFpiipi) +GO(mvwinchstr, iFpiip) +GO(mvwinnstr, iFpiipi) +GO(mvwinsch, iFpiiL) +GO(mvwinsnstr, iFpiipi) +GO(mvwinsstr, iFpiip) +GO(mvwinstr, iFpiip) +GOM(mvwprintw, iFEpiipV) +//GO(mvwscanw, i(p,i,i,p,...) +GO(mvwvline, iFpiiLi) +GO(newpad, pFii) +GO(newterm, pFppp) +GO(newwin, pFiiii) +GO(nl, iFv) +GO(noecho, iFv) +GO(nonl, iFv) +GO(overlay, iFpp) +GO(overwrite, iFpp) +GO(pair_content, iFwpp) +GO(PAIR_NUMBER, iFi) +GO(pechochar, iFpL) +GO(pnoutrefresh, iFpiiiiii) +GO(prefresh, iFpiiiiii) +GOM(printw, iFEpV) +GO(putwin, iFpp) +GO(redrawwin, iFp) +GO(refresh, iFv) +//GOM(ripoffline, int(int,int (*)(WINDOW*,int))) +//GO(scanw, i(p,...) +GO(scr_dump, iFp) +GO(scr_init, iFp) +GO(scrl, iFi) +GO(scroll, iFp) +GO(scrollok, iFpi) +GO(scr_restore, iFp) +GO(scr_set, iFp) +GO(setscrreg, iFii) +GO(set_term, pFp) +GO(slk_attroff, iFL) +GO(slk_attr_off, iFLp) +GO(slk_attron, iFL) +GO(slk_attr_on, iFLp) +GO(slk_attrset, iFL) +GO(slk_attr, LFv) +GO(slk_attr_set, iFLwp) +GO(slk_clear, iFv) +GO(slk_color, iFw) +GO(slk_init, iFi) +GO(slk_label, pFi) +GO(slk_noutrefresh, iFv) +GO(slk_refresh, iFv) +GO(slk_restore, iFv) +GO(slk_set, iFipi) +GO(slk_touch, iFv) +GO(standout, iFv) +GO(standend, iFv) +GO(start_color, iFv) +GO(subpad, pFpiiii) +GO(subwin, pFpiiii) +GO(syncok, iFpi) +GO(termattrs, LFv) +GO(timeout, vFi) +GO(touchline, iFpii) +GO(touchwin, iFp) +GO(ungetch, iFi) +GO(untouchwin, iFp) +GO(use_tioctl, vFi) +GO(vidattr, iFL) +//GOM(vidputs, iFLP) +GO(vline, iFLi) +GOM(vwprintw, iFEppp) +GO(vw_printw, iFppp) +GO(vwscanw, iFppp) +GO(vw_scanw, iFppp) +GO(waddch, iFpL) +GO(waddchnstr, iFppi) +GO(waddchstr, iFpp) +GO(waddnstr, iFppi) +GO(waddstr, iFpp) +GO(wattron, iFpi) +GO(wattroff, iFpi) +GO(wattrset, iFpi) +GO(wattr_get, iFpppp) +GO(wattr_on, iFpLp) +GO(wattr_off, iFpLp) +GO(wattr_set, iFpLwp) +GO(wbkgd, iFpL) +GO(wbkgdset, vFpL) +GO(wborder, iFpLLLLLLLL) +GO(wchgat, iFpiLwp) +GO(wclear, iFp) +GO(wclrtobot, iFp) +GO(wclrtoeol, iFp) +GO(wcolor_set, iFpwp) +GO(wcursyncup, vFp) +GO(wdelch, iFp) +GO(wdeleteln, iFp) +GO(wechochar, iFpL) +GO(werase, iFp) +GO(wgetch, iFp) +GO(wgetnstr, iFppi) +GO(wgetstr, iFpp) +GO(whline, iFpLi) +GO(winch, LFp) +GO(winchnstr, iFppi) +GO(winchstr, iFpp) +GO(winnstr, iFppi) +GO(winsch, iFpL) +GO(winsdelln, iFpi) +GO(winsertln, iFp) +GO(winsnstr, iFppi) +GO(winsstr, iFpp) +GO(winstr, iFpp) +GO(wmove, iFpii) +GO(wnoutrefresh, iFp) +//GO(wprintw, i(p,p,...) +GO(wredrawln, iFpii) +GO(wrefresh, iFp) +//GO(wscanw, i(p,p,...) +GO(wscrl, iFpi) +GO(wsetscrreg, iFpii) +GO(wstandout, iFp) +GO(wstandend, iFp) +GO(wsyncdown, vFp) +GO(wsyncup, vFp) +GO(wtouchln, iFpiii) +GO(wvline, iFpLi) +GO(getattrs, iFp) +GO(getcurx, iFp) +GO(getcury, iFp) +GO(getbegx, iFp) +GO(getbegy, iFp) +GO(getmaxx, iFp) +GO(getmaxy, iFp) +GO(getparx, iFp) +GO(getpary, iFp) +GO(is_term_resized, iFii) +GO(alloc_pair, iFii) +GO(assume_default_colors, iFii) +GO(extended_color_content, iFippp) +GO(extended_pair_content, iFipp) +GO(extended_slk_color, iFi) +GO(find_pair, iFii) +GO(free_pair, iFi) +GO(get_escdelay, iFv) +GO(init_extended_color, iFiiii) +GO(init_extended_pair, iFiii) +GO(reset_color_pairs, vFv) +GO(resize_term, iFii) +GO(resizeterm, iFii) +GO(set_escdelay, iFi) +GO(use_default_colors, iFv) +GO(use_legacy_coding, iFi) +//GOM(use_screen, iFpPp) +//GOM(use_window, iFpPp) +GO(wresize, iFpii) +GO(nofilter, vFv) +GO(wgetparent, pFp) +GO(is_cleared, iFp) +GO(is_idcok, iFp) +GO(is_idlok, iFp) +GO(is_immedok, iFp) +GO(is_keypad, iFp) +GO(is_leaveok, iFp) +GO(is_nodelay, iFp) +GO(is_notimeout, iFp) +GO(is_pad, iFp) +GO(is_scrollok, iFp) +GO(is_subwin, iFp) +GO(is_syncok, iFp) +GO(wgetdelay, iFp) +GO(wgetscrreg, iFppp) +GO(add_wch, iFp) +GO(add_wchnstr, iFpi) +GO(add_wchstr, iFp) +GO(addnwstr, iFpi) +GO(addwstr, iFp) +GO(bkgrnd, iFp) +GO(bkgrndset, vFp) +GO(border_set, iFpppppppp) +GO(box_set, iFppp) +GO(echo_wchar, iFp) +GO(erasewchar, iFp) +GO(get_wch, iFp) +GO(get_wstr, iFp) +GO(getbkgrnd, iFp) +GO(getcchar, iFppppp) +GO(getn_wstr, iFpi) +GO(hline_set, iFpi) +GO(in_wch, iFp) +GO(in_wchnstr, iFpi) +GO(in_wchstr, iFp) +GO(innwstr, iFpi) +GO(ins_nwstr, iFpi) +GO(ins_wch, iFp) +GO(ins_wstr, iFp) +GO(inwstr, iFp) +GO(key_name, pFu) +GO(killwchar, iFp) +GO(mvadd_wch, iFiip) +GO(mvadd_wchnstr, iFiipi) +GO(mvadd_wchstr, iFiip) +GO(mvaddnwstr, iFiipi) +GO(mvaddwstr, iFiip) +GO(mvget_wch, iFiip) +GO(mvget_wstr, iFiip) +GO(mvgetn_wstr, iFiipi) +GO(mvhline_set, iFiipi) +GO(mvin_wch, iFiip) +GO(mvin_wchnstr, iFiipi) +GO(mvin_wchstr, iFiip) +GO(mvinnwstr, iFiipi) +GO(mvins_nwstr, iFiipi) +GO(mvins_wch, iFiip) +GO(mvins_wstr, iFiip) +GO(mvinwstr, iFiip) +GO(mvvline_set, iFiipi) +GO(mvwadd_wch, iFpiip) +GO(mvwadd_wchnstr, iFpiipi) +GO(mvwadd_wchstr, iFpiip) +GO(mvwaddnwstr, iFpiipi) +GO(mvwaddwstr, iFpiip) +GO(mvwget_wch, iFpiip) +GO(mvwget_wstr, iFpiip) +GO(mvwgetn_wstr, iFpiipi) +GO(mvwhline_set, iFpiipi) +GO(mvwin_wch, iFpiip) +GO(mvwin_wchnstr, iFpiipi) +GO(mvwin_wchstr, iFpiip) +GO(mvwinnwstr, iFpiipi) +GO(mvwins_nwstr, iFpiipi) +GO(mvwins_wch, iFpiip) +GO(mvwins_wstr, iFpiip) +GO(mvwinwstr, iFpiip) +GO(mvwvline_set, iFpiipi) +GO(pecho_wchar, iFpp) +GO(setcchar, iFppLwp) +GO(slk_wset, iFipi) +GO(term_attrs, LFv) +GO(unget_wch, iFu) +GO(vid_attr, iFLwp) +//GOM(vid_puts, iFLwpP) +GO(vline_set, iFpi) +GO(wadd_wch, iFpp) +GO(wadd_wchnstr, iFppi) +GO(wadd_wchstr, iFpp) +GO(waddnwstr, iFppi) +GO(waddwstr, iFpp) +GO(wbkgrnd, iFpp) +GO(wbkgrndset, vFpp) +GO(wborder_set, iFppppppppp) +GO(wecho_wchar, iFpp) +GO(wget_wch, iFpp) +GO(wget_wstr, iFpp) +GO(wgetbkgrnd, iFpp) +GO(wgetn_wstr, iFppi) +GO(whline_set, iFppi) +GO(win_wch, iFpp) +GO(win_wchnstr, iFppi) +GO(win_wchstr, iFpp) +GO(winnwstr, iFppi) +GO(wins_nwstr, iFppi) +GO(wins_wch, iFpp) +GO(wins_wstr, iFpp) +GO(winwstr, iFpp) +GO(wunctrl, pFp) +GO(wvline_set, iFppi) +GO(term_attrs, LFp) +GO(unget_wch, iFpu) +GO(vid_attr, iFpLwp) +//GOM(vid_puts, iFpLwpP) +GO(_nc_viswbuf, pFp) +GO(_nc_viswibuf, pFp) +GO(has_mouse, iFv) +GO(getmouse, iFp) +GO(ungetmouse, iFp) +GO(mousemask, LFLp) +GO(wenclose, iFpii) +GO(mouseinterval, iFi) +GO(wmouse_trafo, iFpppi) +GO(mouse_trafo, iFppi) +GO(has_mouse, iFp) +GO(getmouse, iFpp) +GO(ungetmouse, iFpp) +GO(mousemask, LFpLp) +GO(mouseinterval, iFpi) +GO(mcprint, iFpi) +GO(mcprint, iFppi) +//GO(_tracef, v(p,...) GCC_PRINTFLIKE(1,2) +GO(_traceattr, pFL) +GO(_traceattr2, pFiL) +GO(_tracechar, pFi) +GO(_tracechtype, pFL) +GO(_tracechtype2, pFiL) +GO(_tracecchar_t, pFp) +GO(_tracecchar_t2, pFip) +GO(trace, vFu) +GO(_nc_visbuf, pFp) + +DATA(COLOR_PAIRS, sizeof(void*)) +DATA(COLS, sizeof(void*)) +DATA(COLORS, sizeof(void*)) +DATA(ESCDELAY, sizeof(void*)) +DATA(LINES, sizeof(void*)) +DATA(TABSIZE, sizeof(void*)) +DATA(curscr, sizeof(void*)) +DATA(newscr, sizeof(void*)) +DATA(stdscr, sizeof(void*)) +DATA(ttytype, sizeof(void*)) +DATA(_nc_wacs, sizeof(void*)) diff --git a/src/wrapped/wrappedlibtinfo.c b/src/wrapped/wrappedlibtinfo.c new file mode 100755 index 00000000..06393291 --- /dev/null +++ b/src/wrapped/wrappedlibtinfo.c @@ -0,0 +1,103 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" + +const char* libtinfoName = "libtinfo.so.5"; +#define LIBNAME libtinfo + +static library_t* my_lib = NULL; + +typedef int (*iFpip_t) (void*, int, void*); + +#define SUPER() \ + GO(tputs, iFpip_t) \ + +typedef struct libtinfo_my_s { + // functions + #define GO(A, B) B A; + SUPER() + #undef GO +} libtinfo_my_t; + +void* getTinfoMy(library_t* lib) +{ + libtinfo_my_t* my = (libtinfo_my_t*)calloc(1, sizeof(libtinfo_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + SUPER() + #undef GO + return my; +} +#undef SUPER + +void freeTinfoMy(void* lib) +{ + //libtinfo_my_t *my = (libtinfo_my_t *)lib; +} + +// utility functions +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) + +// putc +#define GO(A) \ +static uintptr_t my_putc_fct_##A = 0; \ +static int my_putc_##A(char c) \ +{ \ + return (int)RunFunction(my_context, my_putc_fct_##A, 1, c); \ +} +SUPER() +#undef GO +static void* find_putc_Fct(void* fct) +{ + if(!fct) return NULL; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_putc_fct_##A == (uintptr_t)fct) return my_putc_##A; + SUPER() + #undef GO + #define GO(A) if(my_putc_fct_##A == 0) {my_putc_fct_##A = (uintptr_t)fct; return my_putc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libSSL putc callback\n"); + return NULL; +} + +#undef SUPER + +EXPORT int my_tputs(x64emu_t* emu, void* str, int affcnt, void* f) +{ + libtinfo_my_t* my = (libtinfo_my_t*)my_lib->priv.w.p2; + + return my->tputs(str, affcnt, find_putc_Fct(f)); +} + +#define CUSTOM_INIT \ + my_lib = lib; \ + lib->priv.w.p2 = getTinfoMy(lib); + +#define CUSTOM_FINI \ + my_lib = NULL; \ + freeTinfoMy(lib->priv.w.p2); \ + free(lib->priv.w.p2); + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibtinfo6.c b/src/wrapped/wrappedlibtinfo6.c new file mode 100755 index 00000000..2b4bd8c0 --- /dev/null +++ b/src/wrapped/wrappedlibtinfo6.c @@ -0,0 +1,104 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" + +const char* libtinfo6Name = "libtinfo.so.6"; +#define LIBNAME libtinfo6 + +static library_t* my_lib = NULL; + +typedef int (*iFpip_t) (void*, int, void*); + +#define SUPER() \ + GO(tputs, iFpip_t) \ + +typedef struct libtinfo6_my_s { + // functions + #define GO(A, B) B A; + SUPER() + #undef GO +} libtinfo6_my_t; + +void* getTinfo6My(library_t* lib) +{ + libtinfo6_my_t* my = (libtinfo6_my_t*)calloc(1, sizeof(libtinfo6_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + SUPER() + #undef GO + return my; +} +#undef SUPER + +void freeTinfo6My(void* lib) +{ + //libtinfo6_my_t *my = (libtinfo6_my_t *)lib; +} + +// utility functions +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) + +// putc +#define GO(A) \ +static uintptr_t my_putc_fct_##A = 0; \ +static int my_putc_##A(char c) \ +{ \ + return (int)RunFunction(my_context, my_putc_fct_##A, 1, c); \ +} +SUPER() +#undef GO +static void* find_putc_Fct(void* fct) +{ + if(!fct) return NULL; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_putc_fct_##A == (uintptr_t)fct) return my_putc_##A; + SUPER() + #undef GO + #define GO(A) if(my_putc_fct_##A == 0) {my_putc_fct_##A = (uintptr_t)fct; return my_putc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libSSL putc callback\n"); + return NULL; +} + +#undef SUPER + +EXPORT int my6_tputs(x64emu_t* emu, void* str, int affcnt, void* f) +{ + libtinfo6_my_t* my = (libtinfo6_my_t*)my_lib->priv.w.p2; + + return my->tputs(str, affcnt, find_putc_Fct(f)); +} + +#define CUSTOM_INIT \ + my_lib = lib; \ + lib->altmy = strdup("my6_"); \ + lib->priv.w.p2 = getTinfo6My(lib); + +#define CUSTOM_FINI \ + my_lib = NULL; \ + freeTinfo6My(lib->priv.w.p2); \ + free(lib->priv.w.p2); + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibtinfo6_private.h b/src/wrapped/wrappedlibtinfo6_private.h new file mode 100755 index 00000000..b530dcff --- /dev/null +++ b/src/wrapped/wrappedlibtinfo6_private.h @@ -0,0 +1,153 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(baudrate, iFv) +GO(cbreak, iFv) +GO(curses_version, pFv) +GO(curs_set, iFi) +GO(define_key, iFpi) +GO(def_prog_mode, iFv) +GO(def_shell_mode, iFv) +GO(delay_output, iFi) +GO(del_curterm, iFp) +GO(erasechar, cFv) +GO(flushinp, iFv) +GO(halfdelay, iFi) +GO(has_ic, iFv) +GO(has_il, iFv) +GO(has_key, iFi) +GO(idcok, vFpi) +GO(idlok, iFpi) +GO(intrflush, iFpi) +GO(keybound, pFii) +GO(key_defined, iFp) +GO(keyname, pFi) +GO(keyok, iFii) +GO(keypad, iFpi) +GO(killchar, cFv) +GO(longname, pFv) +GO(meta, iFpi) +GO(napms, iFi) +//GO(_nc_access, +//GO(_nc_add_to_try, +//GO(_nc_align_termtype, +//GO(_nc_basename, +//GO(_nc_baudrate, +//GO(_nc_copy_termtype, +//GO(_nc_delink_entry, +//GO(_nc_doalloc, +//GO(_nc_err_abort, +//GO(_nc_expand_try, +//GO(_nc_fallback, +//GO(_nc_find_entry, +//GO(_nc_find_type_entry, +//GO(_nc_first_db, +//GO(_nc_first_name, +//GO(_nc_flush, +//GO(_nc_free_entries, +//GO(_nc_free_entry, +//GO(_nc_free_termtype, +//GO(_nc_get_alias_table, +//GO(_nc_getenv_num, +//GO(_nc_get_hash_info, +//GO(_nc_get_hash_table, +//GO(_nc_get_locale, +//GO(_nc_get_screensize, +//GO(_nc_get_source, +//GO(_nc_get_table, +//GO(_nc_get_tty_mode, +//GO(_nc_get_type, +//GO(_nc_handle_sigwinch, +//GO(_nc_hashed_db, +//GO(_nc_home_terminfo, +//GO(_nc_init_acs, +//GO(_nc_init_keytry, +//GO(_nc_is_abs_path, +//GO(_nc_is_dir_path, +//GO(_nc_is_file_path, +//GO(_nc_keep_tic_dir, +//GO(_nc_keyname, +//GO(_nc_keypad, +//GO(_nc_last_db, +//GO(_nc_leaks_tinfo, +//GO(_nc_locale_breaks_acs, +//GO(_nc_name_match, +//GO(_nc_next_db, +//GO(_nc_ospeed, +//GO(_nc_outch, +//GO(_nc_pathlast, +//GO(_nc_putp, +//GO(_nc_putp_flush, +//GO(_nc_read_entry, +//GO(_nc_read_file_entry, +//GO(_nc_read_termcap, +//GO(_nc_read_termtype, +//GO(_nc_remove_key, +//GO(_nc_remove_string, +//GO(_nc_rootname, +//GO(_nc_safe_strcat, +//GO(_nc_safe_strcpy, +//GO(_nc_screen_of, +//GO(_nc_set_buffer, +//GO(_nc_set_no_padding, +//GO(_nc_set_source, +//GO(_nc_set_tty_mode, +//GO(_nc_set_type, +//GO(_nc_setupterm, +//GO(_nc_setup_tinfo, +//GO(_nc_str_copy, +//GO(_nc_str_init, +//GO(_nc_str_null, +//GO(_nc_syserr_abort, +//GO(_nc_tic_dir, +//GO(_nc_timed_wait, +//GO(_nc_tinfo_cmdch, +//GO(_nc_tparm_analyze, +//GO(_nc_trim_sgr0, +//GO(_nc_unctrl, +//GO(_nc_unicode_locale, +//GO(_nc_update_screensize, +//GO(_nc_visbuf, +//GO(_nc_visbuf2, +//GO(_nc_visbufn, +//GO(_nc_warning, +GO(nocbreak, iFv) +GO(nodelay, iFpi) +GO(noqiflush, vFv) +GO(noraw, iFv) +GO(notimeout, iFpi) +GO(putp, iFp) +GO(qiflush, vFv) +GO(raw, iFv) +GO(reset_prog_mode, iFv) +GO(reset_shell_mode, iFv) +GO(resetty, iFv) +GO(savetty, iFv) +GO(set_curterm, pFp) +GO(set_tabsize, iFi) +GO(setupterm, iFpip) +GO(termname, pFv) +GO(tgetent, iFpp) +GO(tgetflag, iFp) +GO(tgetnum, iFp) +GO(tgetstr, pFpp) +GO(tgoto, pFpii) +GO(tigetflag, iFp) +GO(tigetnum, iFp) +GO(tigetstr, pFp) +//GO(tiparm, p(p,...) +GO(tparm, pFplllllllll) // va_arg or 9 long, depending on how old the .h is +GOM(tputs, iFEpip) +GO(typeahead, iFi) +GO(unctrl, pFL) +GO(use_env, vFi) +GO(use_extended_names, iFi) +GO(wtimeout, vFpi) + +DATA(stdscr, sizeof(void*)) +DATA(acs_map, sizeof(void*)) +DATA(UP, sizeof(void*)) +DATA(BC, sizeof(void*)) +DATA(PC, 1) +DATA(ospeed, 2) diff --git a/src/wrapped/wrappedlibtinfo_private.h b/src/wrapped/wrappedlibtinfo_private.h new file mode 100755 index 00000000..b530dcff --- /dev/null +++ b/src/wrapped/wrappedlibtinfo_private.h @@ -0,0 +1,153 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(baudrate, iFv) +GO(cbreak, iFv) +GO(curses_version, pFv) +GO(curs_set, iFi) +GO(define_key, iFpi) +GO(def_prog_mode, iFv) +GO(def_shell_mode, iFv) +GO(delay_output, iFi) +GO(del_curterm, iFp) +GO(erasechar, cFv) +GO(flushinp, iFv) +GO(halfdelay, iFi) +GO(has_ic, iFv) +GO(has_il, iFv) +GO(has_key, iFi) +GO(idcok, vFpi) +GO(idlok, iFpi) +GO(intrflush, iFpi) +GO(keybound, pFii) +GO(key_defined, iFp) +GO(keyname, pFi) +GO(keyok, iFii) +GO(keypad, iFpi) +GO(killchar, cFv) +GO(longname, pFv) +GO(meta, iFpi) +GO(napms, iFi) +//GO(_nc_access, +//GO(_nc_add_to_try, +//GO(_nc_align_termtype, +//GO(_nc_basename, +//GO(_nc_baudrate, +//GO(_nc_copy_termtype, +//GO(_nc_delink_entry, +//GO(_nc_doalloc, +//GO(_nc_err_abort, +//GO(_nc_expand_try, +//GO(_nc_fallback, +//GO(_nc_find_entry, +//GO(_nc_find_type_entry, +//GO(_nc_first_db, +//GO(_nc_first_name, +//GO(_nc_flush, +//GO(_nc_free_entries, +//GO(_nc_free_entry, +//GO(_nc_free_termtype, +//GO(_nc_get_alias_table, +//GO(_nc_getenv_num, +//GO(_nc_get_hash_info, +//GO(_nc_get_hash_table, +//GO(_nc_get_locale, +//GO(_nc_get_screensize, +//GO(_nc_get_source, +//GO(_nc_get_table, +//GO(_nc_get_tty_mode, +//GO(_nc_get_type, +//GO(_nc_handle_sigwinch, +//GO(_nc_hashed_db, +//GO(_nc_home_terminfo, +//GO(_nc_init_acs, +//GO(_nc_init_keytry, +//GO(_nc_is_abs_path, +//GO(_nc_is_dir_path, +//GO(_nc_is_file_path, +//GO(_nc_keep_tic_dir, +//GO(_nc_keyname, +//GO(_nc_keypad, +//GO(_nc_last_db, +//GO(_nc_leaks_tinfo, +//GO(_nc_locale_breaks_acs, +//GO(_nc_name_match, +//GO(_nc_next_db, +//GO(_nc_ospeed, +//GO(_nc_outch, +//GO(_nc_pathlast, +//GO(_nc_putp, +//GO(_nc_putp_flush, +//GO(_nc_read_entry, +//GO(_nc_read_file_entry, +//GO(_nc_read_termcap, +//GO(_nc_read_termtype, +//GO(_nc_remove_key, +//GO(_nc_remove_string, +//GO(_nc_rootname, +//GO(_nc_safe_strcat, +//GO(_nc_safe_strcpy, +//GO(_nc_screen_of, +//GO(_nc_set_buffer, +//GO(_nc_set_no_padding, +//GO(_nc_set_source, +//GO(_nc_set_tty_mode, +//GO(_nc_set_type, +//GO(_nc_setupterm, +//GO(_nc_setup_tinfo, +//GO(_nc_str_copy, +//GO(_nc_str_init, +//GO(_nc_str_null, +//GO(_nc_syserr_abort, +//GO(_nc_tic_dir, +//GO(_nc_timed_wait, +//GO(_nc_tinfo_cmdch, +//GO(_nc_tparm_analyze, +//GO(_nc_trim_sgr0, +//GO(_nc_unctrl, +//GO(_nc_unicode_locale, +//GO(_nc_update_screensize, +//GO(_nc_visbuf, +//GO(_nc_visbuf2, +//GO(_nc_visbufn, +//GO(_nc_warning, +GO(nocbreak, iFv) +GO(nodelay, iFpi) +GO(noqiflush, vFv) +GO(noraw, iFv) +GO(notimeout, iFpi) +GO(putp, iFp) +GO(qiflush, vFv) +GO(raw, iFv) +GO(reset_prog_mode, iFv) +GO(reset_shell_mode, iFv) +GO(resetty, iFv) +GO(savetty, iFv) +GO(set_curterm, pFp) +GO(set_tabsize, iFi) +GO(setupterm, iFpip) +GO(termname, pFv) +GO(tgetent, iFpp) +GO(tgetflag, iFp) +GO(tgetnum, iFp) +GO(tgetstr, pFpp) +GO(tgoto, pFpii) +GO(tigetflag, iFp) +GO(tigetnum, iFp) +GO(tigetstr, pFp) +//GO(tiparm, p(p,...) +GO(tparm, pFplllllllll) // va_arg or 9 long, depending on how old the .h is +GOM(tputs, iFEpip) +GO(typeahead, iFi) +GO(unctrl, pFL) +GO(use_env, vFi) +GO(use_extended_names, iFi) +GO(wtimeout, vFpi) + +DATA(stdscr, sizeof(void*)) +DATA(acs_map, sizeof(void*)) +DATA(UP, sizeof(void*)) +DATA(BC, sizeof(void*)) +DATA(PC, 1) +DATA(ospeed, 2) |