diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-12 13:09:07 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-12 13:09:07 +0100 |
| commit | 566ff08109b339eb3d45eaf5b0feb67eb2a12215 (patch) | |
| tree | 00b09d9d2c2ca9c2acadaf0f01c7485e95b0ab5c /src | |
| parent | 2247b61ed3c67ecce0bf2bd9a9b3f41e769bb05e (diff) | |
| download | box64-566ff08109b339eb3d45eaf5b0feb67eb2a12215.tar.gz box64-566ff08109b339eb3d45eaf5b0feb67eb2a12215.zip | |
[BOX32][WRAPPER] Added 32bits wrapped libcairo
Diffstat (limited to 'src')
| -rwxr-xr-x | src/include/myalign32.h | 3 | ||||
| -rw-r--r-- | src/library_list_32.h | 2 | ||||
| -rwxr-xr-x | src/libtools/myalign32.c | 12 | ||||
| -rw-r--r-- | src/wrapped32/generated/converter32.c | 26 | ||||
| -rw-r--r-- | src/wrapped32/generated/converter32.h | 14 | ||||
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 44 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedcairodefs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedcairotypes32.h | 25 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedcairoundefs32.h | 8 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 70 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 35 | ||||
| -rw-r--r-- | src/wrapped32/wrappedcairo.c | 120 | ||||
| -rw-r--r-- | src/wrapped32/wrappedcairo_private.h | 399 | ||||
| -rw-r--r-- | src/wrapped32/wrappedfontconfig.c | 19 |
14 files changed, 770 insertions, 15 deletions
diff --git a/src/include/myalign32.h b/src/include/myalign32.h index d363ff4a..dbc8d055 100755 --- a/src/include/myalign32.h +++ b/src/include/myalign32.h @@ -84,6 +84,9 @@ size_t myStackAlignScanfW32(const char* fmt, uint32_t* st, uint64_t* mystack, si void myStackAlignScanfW32_final(const char* fmt, uint32_t* st, uint64_t* mystack, size_t nb_elem, int n); void myStackAlignW32(const char* fmt, uint32_t* st, uint64_t* mystack); +void* add_xcb_connection32(void* src); +void del_xcb_connection32(void* src); + void UnalignStat64_32(const void* source, void* dest); void UnalignStatFS_32(const void* source, void* dest); diff --git a/src/library_list_32.h b/src/library_list_32.h index 94d5e5e8..f5cff5b4 100644 --- a/src/library_list_32.h +++ b/src/library_list_32.h @@ -69,6 +69,8 @@ GO("libudev.so.0", udev0) GO("libudev.so.1", udev1) GO("libudev.so", udev1) GO("libuuid.so.1", libuuid) +GO("libcairo.so.2", cairo) +GO("libcairo.so", cairo) GO("crashhandler.so", crashhandler) GO("libtcmalloc_minimal.so.0", tcmallocminimal) diff --git a/src/libtools/myalign32.c b/src/libtools/myalign32.c index 6f94ce99..e32a9571 100755 --- a/src/libtools/myalign32.c +++ b/src/libtools/myalign32.c @@ -1610,3 +1610,15 @@ void convert_regext_to_64(void* d, void* s) dst->re_nsub = from_ulong(src->re_nsub); dst->flags = src->flags; } + +void* add_xcb_connection(void* src); +void del_xcb_connection(void* src); + +void* add_xcb_connection32(void* src) +{ + return add_xcb_connection(src); +} +void del_xcb_connection32(void* src) +{ + del_xcb_connection(src); +} diff --git a/src/wrapped32/generated/converter32.c b/src/wrapped32/generated/converter32.c index bf4496fa..3757a934 100644 --- a/src/wrapped32/generated/converter32.c +++ b/src/wrapped32/generated/converter32.c @@ -292,6 +292,32 @@ void to_struct_up(ptr_t d, const struct_up_t *src) { *(uint32_t*)dest = src->u0; dest += 4; *(ptr_t*)dest = to_ptrv(src->p1); dest += 4; } +void from_struct_upi(struct_upi_t *dest, ptr_t s) { + uint8_t* src = (uint8_t*)from_ptrv(s); + dest->u0 = *(uint32_t*)src; src += 4; + dest->p1 = *(void**)src; src += 4; + dest->i2 = *(int*)src; src += 4; +} +void to_struct_upi(ptr_t d, const struct_upi_t *src) { + if (!src) return; + uint8_t* dest = (uint8_t*)from_ptrv(d); + *(uint32_t*)dest = src->u0; dest += 4; + *(ptr_t*)dest = to_ptrv(src->p1); dest += 4; + *(int*)dest = src->i2; dest += 4; +} +void from_struct_Ldd(struct_Ldd_t *dest, ptr_t s) { + uint8_t* src = (uint8_t*)from_ptrv(s); + dest->L0 = from_ulong(*(ulong_t*)src); src += 4; + dest->d1 = *(double*)src; src += 8; + dest->d2 = *(double*)src; src += 8; +} +void to_struct_Ldd(ptr_t d, const struct_Ldd_t *src) { + if (!src) return; + uint8_t* dest = (uint8_t*)from_ptrv(d); + *(ulong_t*)dest = to_ulong(src->L0); dest += 4; + *(double*)dest = src->d1; dest += 8; + *(double*)dest = src->d2; dest += 8; +} void from_struct_LWWWcc(struct_LWWWcc_t *dest, ptr_t s) { uint8_t* src = (uint8_t*)from_ptrv(s); dest->L0 = from_ulong(*(uint32_t*)src); src += 4; diff --git a/src/wrapped32/generated/converter32.h b/src/wrapped32/generated/converter32.h index 5b8c4efd..733f2c12 100644 --- a/src/wrapped32/generated/converter32.h +++ b/src/wrapped32/generated/converter32.h @@ -146,6 +146,20 @@ typedef struct struct_up_s { } struct_up_t; void from_struct_up(struct_up_t *dest, ptr_t src); void to_struct_up(ptr_t dest, const struct_up_t *src); +typedef struct struct_upi_s { + uint32_t u0; + void* p1; + int i2; +} struct_upi_t; +void from_struct_upi(struct_upi_t *dest, ptr_t src); +void to_struct_upi(ptr_t dest, const struct_upi_t *src); +typedef struct struct_Ldd_s { + unsigned long L0; + double d1; + double d2; +} struct_Ldd_t; +void from_struct_Ldd(struct_Ldd_t *dest, ptr_t src); +void to_struct_Ldd(ptr_t dest, const struct_Ldd_t *src); typedef struct struct_LWWWcc_s { unsigned long L0; unsigned short W1; diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index e1e41e55..becb4af4 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -122,6 +122,8 @@ #() iFBp_ -> iFB #() LEBL_ -> LEB #() lFrll_ -> lFB +#() vFbLdd_ -> vFB +#() vFbupi_ -> vFB #() iEBllll_ -> iEB #() vFbuuipWCCp_ -> vFB #() vFbWWpWpWpWp_ -> vFB @@ -166,6 +168,7 @@ #() vFpi -> vFpi #() vFpC -> vFpC #() vFpu -> vFpu +#() vFpd -> vFpd #() vFpl -> vFpl #() vEpL -> vEpL #() vFpL -> vFpL @@ -341,6 +344,7 @@ #() iFbp_i -> iFBi #() iFbp_p -> iFBp #() iFXbL_ -> iFXB +#() uFpbp_ -> uFpB #() fEpBp_ -> fEpB #() dEpBp_ -> dEpB #() LFpbp_ -> LFpB @@ -355,6 +359,7 @@ #() iFbpi_i -> iFBi #() iEBll_p -> iEBp #() iFXbip_ -> iFXB +#() vFpbupi_ -> vFpB #() iESBliu_ -> iESB #() iFbppi_i -> iFBi #() iFXbiip_ -> iFXB @@ -507,6 +512,7 @@ #() iFpUU -> iFpUU #() iFpfu -> iFpfu #() iFpff -> iFpff +#() iFpdd -> iFpdd #() iFpli -> iFpli #() iFpll -> iFpll #() iEpLi -> iEpLi @@ -605,11 +611,13 @@ #() pFEXi -> pFEXi #() pFEXL -> pFEXL #() pFEXp -> pFEXp +#() pFiii -> pFiii #() pEipL -> pEipL #() pFipp -> pFipp #() pFulu -> pFulu #() pFupi -> pFupi #() pFupp -> pFupp +#() pFddd -> pFddd #() pFLpi -> pFLpi #() pFpcU -> pFpcU #() pEpii -> pEpii @@ -622,6 +630,7 @@ #() pEpII -> pEpII #() pFpuu -> pFpuu #() pFpup -> pFpup +#() pFpdd -> pFpdd #() pEpLL -> pEpLL #() pFppu -> pFppu #() pEppL -> pEppL @@ -686,6 +695,7 @@ #() iFXLbpp_ -> iFXLB #() iFXbLC_i -> iFXBi #() vFLbL_bL_ -> vFLBB +#() vFpbLdd_i -> vFpBi #() iFpbl_bl_ -> iFpBB #() iFpbL_bL_ -> iFpBB #() iFbp_bp_p -> iFBBp @@ -787,11 +797,15 @@ #() vFpiip -> vFpiip #() vFpipi -> vFpipi #() vFpipp -> vFpipp +#() vFpudd -> vFpudd #() vFpdii -> vFpdii #() vFpddd -> vFpddd #() vFplpp -> vFplpp +#() vFppid -> vFppid #() vEppip -> vEppip #() vFppui -> vFppui +#() vFppuu -> vFppuu +#() vFppdd -> vFppdd #() vFpppp -> vFpppp #() vFXiiL -> vFXiiL #() vFXiLu -> vFXiLu @@ -945,6 +959,8 @@ #() pFillu -> pFillu #() pEippu -> pEippu #() pFullu -> pFullu +#() pFdddd -> pFdddd +#() pFpiii -> pFpiii #() pEpiLL -> pEpiLL #() pFpuii -> pFpuii #() pFpupp -> pFpupp @@ -982,6 +998,8 @@ #() LEpbp_Lp -> LEpBLp #() iEEpprLL_ -> iEEppB #() iEpurLL_p -> iEpuBp +#() vFppbp_bL_ -> vFppBB +#() vFpbLdd_ip -> vFpBip #() iFppbL_bL_ -> iFppBB #() iFrpuu_Lui -> iFBLui #() iEbp_bL_iS -> iEBBiS @@ -1095,10 +1113,13 @@ #() vFfffff -> vFfffff #() vFddddp -> vFddddp #() vFluipp -> vFluipp +#() vFpiiii -> vFpiiii #() vFpilpp -> vFpilpp #() vFpipiu -> vFpipiu #() vFpuipp -> vFpuipp +#() vFpuddd -> vFpuddd #() vFpddii -> vFpddii +#() vFpdddd -> vFpdddd #() vFppWui -> vFppWui #() vFpppii -> vFpppii #() vFppppu -> vFppppu @@ -1168,7 +1189,10 @@ #() iFXpppp -> iFXpppp #() IFXpIII -> IFXpIII #() uEEippu -> uEEippu +#() uFEpppp -> uFEpppp +#() uFpuupp -> uFpuupp #() uEpLLLS -> uEpLLLS +#() uFppppp -> uFppppp #() UFuiCiu -> UFuiCiu #() lFpuipC -> lFpuipC #() LFEppLL -> LFEppLL @@ -1178,15 +1202,18 @@ #() LFXLpuu -> LFXLpuu #() LFXpppi -> LFXpppi #() pFEppip -> pFEppip +#() pFEppdd -> pFEppdd #() pFEXipp -> pFEXipp #() pFEXlpp -> pFEXlpp #() pFEXpip -> pFEXpip #() pFEXppi -> pFEXppi #() pFuiupp -> pFuiupp +#() pFpiiii -> pFpiiii #() pFpiiuu -> pFpiiuu #() pFpippp -> pFpippp #() pFpuiii -> pFpuiii #() pFpuuip -> pFpuuip +#() pFpdddd -> pFpdddd #() pFppuup -> pFppuup #() pFppupp -> pFppupp #() pFXLipp -> pFXLipp @@ -1284,7 +1311,9 @@ #() vFffffff -> vFffffff #() vFdddddd -> vFdddddd #() vFpipipV -> vFpipipV +#() vFpudddd -> vFpudddd #() vFpdddii -> vFpdddii +#() vFpddddd -> vFpddddd #() vFpppppp -> vFpppppp #() vFXiLppi -> vFXiLppi #() vFXLiiii -> vFXLiiii @@ -1346,6 +1375,7 @@ #() pEEppLLp -> pEEppLLp #() pFEXpppp -> pFEXpppp #() pFWCiWCi -> pFWCiWCi +#() pFdddddd -> pFdddddd #() pFpiiiiu -> pFpiiiiu #() XFpppppp -> XFpppppp #() iFpppbp_pp -> iFpppBpp @@ -1414,6 +1444,7 @@ #() vFlliiiip -> vFlliiiip #() vFpipipiu -> vFpipipiu #() vFpddiidd -> vFpddiidd +#() vFpdddddd -> vFpdddddd #() vFXLiiiLi -> vFXLiiiLi #() vFXLiiipi -> vFXLiiipi #() vFXLiiuui -> vFXLiiuui @@ -1446,6 +1477,9 @@ #() iFXpLiWwL -> iFXpLiWwL #() iFXpLuuii -> iFXpLuuii #() uFuippppp -> uFuippppp +#() uFpippppp -> uFpippppp +#() uFpuupppp -> uFpuupppp +#() uFppppppp -> uFppppppp #() lEEipLpLL -> lEEipLpLL #() pFEpiiiiu -> pFEpiiiiu #() pFEpLiiii -> pFEpLiiii @@ -1511,6 +1545,7 @@ #() LFXLpuuLLu -> LFXLpuuLLu #() iFXLLiippBL_ -> iFXLLiippB #() iFXLpppbL_pp -> iFXLpppBpp +#() vFppibLdd_ipiu -> vFppiBipiu #() vFiiiiiiiii -> vFiiiiiiiii #() vFiiiiiiill -> vFiiiiiiill #() vFiiiiillli -> vFiiiiillli @@ -1656,6 +1691,15 @@ #!defined(HAVE_LD80BITS) KEKp -> KEKp #!defined(HAVE_LD80BITS) KEpBp_a -> KEpBa #() UEsvvs -> UEss +wrappedcairo: +- pFp: + - cairo_ft_scaled_font_lock_face + - cairo_xcb_device_get_connection +- uFpppp: + - cairo_set_user_data + - cairo_surface_set_user_data +- pFppdd: + - cairo_pdf_surface_create_for_stream wrappedcrashhandler: wrappedexpat: - vFpp: diff --git a/src/wrapped32/generated/wrappedcairodefs32.h b/src/wrapped32/generated/wrappedcairodefs32.h new file mode 100644 index 00000000..8435d201 --- /dev/null +++ b/src/wrapped32/generated/wrappedcairodefs32.h @@ -0,0 +1,8 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedcairoDEFS32_H_ +#define __wrappedcairoDEFS32_H_ + + +#endif // __wrappedcairoDEFS32_H_ diff --git a/src/wrapped32/generated/wrappedcairotypes32.h b/src/wrapped32/generated/wrappedcairotypes32.h new file mode 100644 index 00000000..3a2f9d9b --- /dev/null +++ b/src/wrapped32/generated/wrappedcairotypes32.h @@ -0,0 +1,25 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedcairoTYPES32_H_ +#define __wrappedcairoTYPES32_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef void* (*pFp_t)(void*); +typedef uint32_t (*uFpppp_t)(void*, void*, void*, void*); +typedef void* (*pFppdd_t)(void*, void*, double, double); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(cairo_ft_scaled_font_lock_face, pFp_t) \ + GO(cairo_xcb_device_get_connection, pFp_t) \ + GO(cairo_set_user_data, uFpppp_t) \ + GO(cairo_surface_set_user_data, uFpppp_t) \ + GO(cairo_pdf_surface_create_for_stream, pFppdd_t) + +#endif // __wrappedcairoTYPES32_H_ diff --git a/src/wrapped32/generated/wrappedcairoundefs32.h b/src/wrapped32/generated/wrappedcairoundefs32.h new file mode 100644 index 00000000..79d6164c --- /dev/null +++ b/src/wrapped32/generated/wrappedcairoundefs32.h @@ -0,0 +1,8 @@ +/********************************************************************* + * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) * + *********************************************************************/ +#ifndef __wrappedcairoUNDEFS32_H_ +#define __wrappedcairoUNDEFS32_H_ + + +#endif // __wrappedcairoUNDEFS32_H_ diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index 7e9e53b9..f8741198 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -213,6 +213,8 @@ typedef int32_t (*iFbp__t)(struct_p_t*); typedef int32_t (*iFBp__t)(struct_p_t*); typedef uintptr_t (*LEBL__t)(struct_L_t*); typedef intptr_t (*lFrll__t)(struct_ll_t*); +typedef void (*vFbLdd__t)(struct_Ldd_t*); +typedef void (*vFbupi__t)(struct_upi_t*); typedef int32_t (*iEBllll__t)(struct_llll_t*); typedef void (*vFbuuipWCCp__t)(struct_uuipWCCp_t*); typedef void (*vFbWWpWpWpWp__t)(struct_WWpWpWpWp_t*); @@ -257,6 +259,7 @@ typedef void (*vEpi_t)(void*, int32_t); typedef void (*vFpi_t)(void*, int32_t); typedef void (*vFpC_t)(void*, uint8_t); typedef void (*vFpu_t)(void*, uint32_t); +typedef void (*vFpd_t)(void*, double); typedef void (*vFpl_t)(void*, intptr_t); typedef void (*vEpL_t)(void*, uintptr_t); typedef void (*vFpL_t)(void*, uintptr_t); @@ -432,6 +435,7 @@ typedef int32_t (*iEHBp__t)(uintptr_t, struct_p_t*); typedef int32_t (*iFbp_i_t)(struct_p_t*, int32_t); typedef int32_t (*iFbp_p_t)(struct_p_t*, void*); typedef int32_t (*iFXbL__t)(void*, struct_L_t*); +typedef uint32_t (*uFpbp__t)(void*, struct_p_t*); typedef float (*fEpBp__t)(void*, struct_p_t*); typedef double (*dEpBp__t)(void*, struct_p_t*); typedef uintptr_t (*LFpbp__t)(void*, struct_p_t*); @@ -446,6 +450,7 @@ typedef int32_t (*iEprLL__t)(void*, struct_LL_t*); typedef int32_t (*iFbpi_i_t)(struct_pi_t*, int32_t); typedef int32_t (*iEBll_p_t)(struct_ll_t*, void*); typedef int32_t (*iFXbip__t)(void*, struct_ip_t*); +typedef void (*vFpbupi__t)(void*, struct_upi_t*); typedef int32_t (*iESBliu__t)(void*, struct_liu_t*); typedef int32_t (*iFbppi_i_t)(struct_ppi_t*, int32_t); typedef int32_t (*iFXbiip__t)(void*, struct_iip_t*); @@ -598,6 +603,7 @@ typedef int32_t (*iFpup_t)(void*, uint32_t, void*); typedef int32_t (*iFpUU_t)(void*, uint64_t, uint64_t); typedef int32_t (*iFpfu_t)(void*, float, uint32_t); typedef int32_t (*iFpff_t)(void*, float, float); +typedef int32_t (*iFpdd_t)(void*, double, double); typedef int32_t (*iFpli_t)(void*, intptr_t, int32_t); typedef int32_t (*iFpll_t)(void*, intptr_t, intptr_t); typedef int32_t (*iEpLi_t)(void*, uintptr_t, int32_t); @@ -696,11 +702,13 @@ typedef void* (*pFEpX_t)(x64emu_t*, void*, void*); typedef void* (*pFEXi_t)(x64emu_t*, void*, int32_t); typedef void* (*pFEXL_t)(x64emu_t*, void*, uintptr_t); typedef void* (*pFEXp_t)(x64emu_t*, void*, void*); +typedef void* (*pFiii_t)(int32_t, int32_t, int32_t); typedef void* (*pEipL_t)(int32_t, void*, uintptr_t); typedef void* (*pFipp_t)(int32_t, void*, void*); typedef void* (*pFulu_t)(uint32_t, intptr_t, uint32_t); typedef void* (*pFupi_t)(uint32_t, void*, int32_t); typedef void* (*pFupp_t)(uint32_t, void*, void*); +typedef void* (*pFddd_t)(double, double, double); typedef void* (*pFLpi_t)(uintptr_t, void*, int32_t); typedef void* (*pFpcU_t)(void*, int8_t, uint64_t); typedef void* (*pEpii_t)(void*, int32_t, int32_t); @@ -713,6 +721,7 @@ typedef void* (*pEpiS_t)(void*, int32_t, void*); typedef void* (*pEpII_t)(void*, int64_t, int64_t); typedef void* (*pFpuu_t)(void*, uint32_t, uint32_t); typedef void* (*pFpup_t)(void*, uint32_t, void*); +typedef void* (*pFpdd_t)(void*, double, double); typedef void* (*pEpLL_t)(void*, uintptr_t, uintptr_t); typedef void* (*pFppu_t)(void*, void*, uint32_t); typedef void* (*pEppL_t)(void*, void*, uintptr_t); @@ -777,6 +786,7 @@ typedef void* (*pFXLbL__t)(void*, uintptr_t, struct_L_t*); typedef int32_t (*iFXLbpp__t)(void*, uintptr_t, struct_pp_t*); typedef int32_t (*iFXbLC_i_t)(void*, struct_LC_t*, int32_t); typedef void (*vFLbL_bL__t)(uintptr_t, struct_L_t*, struct_L_t*); +typedef void (*vFpbLdd_i_t)(void*, struct_Ldd_t*, int32_t); typedef int32_t (*iFpbl_bl__t)(void*, struct_l_t*, struct_l_t*); typedef int32_t (*iFpbL_bL__t)(void*, struct_L_t*, struct_L_t*); typedef int32_t (*iFbp_bp_p_t)(struct_p_t*, struct_p_t*, void*); @@ -878,11 +888,15 @@ typedef void (*vFLiii_t)(uintptr_t, int32_t, int32_t, int32_t); typedef void (*vFpiip_t)(void*, int32_t, int32_t, void*); typedef void (*vFpipi_t)(void*, int32_t, void*, int32_t); typedef void (*vFpipp_t)(void*, int32_t, void*, void*); +typedef void (*vFpudd_t)(void*, uint32_t, double, double); typedef void (*vFpdii_t)(void*, double, int32_t, int32_t); typedef void (*vFpddd_t)(void*, double, double, double); typedef void (*vFplpp_t)(void*, intptr_t, void*, void*); +typedef void (*vFppid_t)(void*, void*, int32_t, double); typedef void (*vEppip_t)(void*, void*, int32_t, void*); typedef void (*vFppui_t)(void*, void*, uint32_t, int32_t); +typedef void (*vFppuu_t)(void*, void*, uint32_t, uint32_t); +typedef void (*vFppdd_t)(void*, void*, double, double); typedef void (*vFpppp_t)(void*, void*, void*, void*); typedef void (*vFXiiL_t)(void*, int32_t, int32_t, uintptr_t); typedef void (*vFXiLu_t)(void*, int32_t, uintptr_t, uint32_t); @@ -1036,6 +1050,8 @@ typedef void* (*pFifff_t)(int32_t, float, float, float); typedef void* (*pFillu_t)(int32_t, intptr_t, intptr_t, uint32_t); typedef void* (*pEippu_t)(int32_t, void*, void*, uint32_t); typedef void* (*pFullu_t)(uint32_t, intptr_t, intptr_t, uint32_t); +typedef void* (*pFdddd_t)(double, double, double, double); +typedef void* (*pFpiii_t)(void*, int32_t, int32_t, int32_t); typedef void* (*pEpiLL_t)(void*, int32_t, uintptr_t, uintptr_t); typedef void* (*pFpuii_t)(void*, uint32_t, int32_t, int32_t); typedef void* (*pFpupp_t)(void*, uint32_t, void*, void*); @@ -1073,6 +1089,8 @@ typedef uintptr_t (*LEpBp_ii_t)(void*, struct_p_t*, int32_t, int32_t); typedef uintptr_t (*LEpbp_Lp_t)(void*, struct_p_t*, uintptr_t, void*); typedef int32_t (*iEEpprLL__t)(x64emu_t*, void*, void*, struct_LL_t*); typedef int32_t (*iEpurLL_p_t)(void*, uint32_t, struct_LL_t*, void*); +typedef void (*vFppbp_bL__t)(void*, void*, struct_p_t*, struct_L_t*); +typedef void (*vFpbLdd_ip_t)(void*, struct_Ldd_t*, int32_t, void*); typedef int32_t (*iFppbL_bL__t)(void*, void*, struct_L_t*, struct_L_t*); typedef int32_t (*iFrpuu_Lui_t)(struct_puu_t*, uintptr_t, uint32_t, int32_t); typedef int32_t (*iEbp_bL_iS_t)(struct_p_t*, struct_L_t*, int32_t, void*); @@ -1186,10 +1204,13 @@ typedef void (*vFupppp_t)(uint32_t, void*, void*, void*, void*); typedef void (*vFfffff_t)(float, float, float, float, float); typedef void (*vFddddp_t)(double, double, double, double, void*); typedef void (*vFluipp_t)(intptr_t, uint32_t, int32_t, void*, void*); +typedef void (*vFpiiii_t)(void*, int32_t, int32_t, int32_t, int32_t); typedef void (*vFpilpp_t)(void*, int32_t, intptr_t, void*, void*); typedef void (*vFpipiu_t)(void*, int32_t, void*, int32_t, uint32_t); typedef void (*vFpuipp_t)(void*, uint32_t, int32_t, void*, void*); +typedef void (*vFpuddd_t)(void*, uint32_t, double, double, double); typedef void (*vFpddii_t)(void*, double, double, int32_t, int32_t); +typedef void (*vFpdddd_t)(void*, double, double, double, double); typedef void (*vFppWui_t)(void*, void*, uint16_t, uint32_t, int32_t); typedef void (*vFpppii_t)(void*, void*, void*, int32_t, int32_t); typedef void (*vFppppu_t)(void*, void*, void*, void*, uint32_t); @@ -1259,7 +1280,10 @@ typedef int32_t (*iFXpipi_t)(void*, void*, int32_t, void*, int32_t); typedef int32_t (*iFXpppp_t)(void*, void*, void*, void*, void*); typedef int64_t (*IFXpIII_t)(void*, void*, int64_t, int64_t, int64_t); typedef uint32_t (*uEEippu_t)(x64emu_t*, int32_t, void*, void*, uint32_t); +typedef uint32_t (*uFEpppp_t)(x64emu_t*, void*, void*, void*, void*); +typedef uint32_t (*uFpuupp_t)(void*, uint32_t, uint32_t, void*, void*); typedef uint32_t (*uEpLLLS_t)(void*, uintptr_t, uintptr_t, uintptr_t, void*); +typedef uint32_t (*uFppppp_t)(void*, void*, void*, void*, void*); typedef uint64_t (*UFuiCiu_t)(uint32_t, int32_t, uint8_t, int32_t, uint32_t); typedef intptr_t (*lFpuipC_t)(void*, uint32_t, int32_t, void*, uint8_t); typedef uintptr_t (*LFEppLL_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_t); @@ -1269,15 +1293,18 @@ typedef uintptr_t (*LFXLuuu_t)(void*, uintptr_t, uint32_t, uint32_t, uint32_t); typedef uintptr_t (*LFXLpuu_t)(void*, uintptr_t, void*, uint32_t, uint32_t); typedef uintptr_t (*LFXpppi_t)(void*, void*, void*, void*, int32_t); typedef void* (*pFEppip_t)(x64emu_t*, void*, void*, int32_t, void*); +typedef void* (*pFEppdd_t)(x64emu_t*, void*, void*, double, double); typedef void* (*pFEXipp_t)(x64emu_t*, void*, int32_t, void*, void*); typedef void* (*pFEXlpp_t)(x64emu_t*, void*, intptr_t, void*, void*); typedef void* (*pFEXpip_t)(x64emu_t*, void*, void*, int32_t, void*); typedef void* (*pFEXppi_t)(x64emu_t*, void*, void*, void*, int32_t); typedef void* (*pFuiupp_t)(uint32_t, int32_t, uint32_t, void*, void*); +typedef void* (*pFpiiii_t)(void*, int32_t, int32_t, int32_t, int32_t); typedef void* (*pFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t); typedef void* (*pFpippp_t)(void*, int32_t, void*, void*, void*); typedef void* (*pFpuiii_t)(void*, uint32_t, int32_t, int32_t, int32_t); typedef void* (*pFpuuip_t)(void*, uint32_t, uint32_t, int32_t, void*); +typedef void* (*pFpdddd_t)(void*, double, double, double, double); typedef void* (*pFppuup_t)(void*, void*, uint32_t, uint32_t, void*); typedef void* (*pFppupp_t)(void*, void*, uint32_t, void*, void*); typedef void* (*pFXLipp_t)(void*, uintptr_t, int32_t, void*, void*); @@ -1375,7 +1402,9 @@ typedef void (*vFupiiii_t)(uint32_t, void*, int32_t, int32_t, int32_t, int32_t); typedef void (*vFffffff_t)(float, float, float, float, float, float); typedef void (*vFdddddd_t)(double, double, double, double, double, double); typedef void (*vFpipipV_t)(void*, int32_t, void*, int32_t, void*, void*); +typedef void (*vFpudddd_t)(void*, uint32_t, double, double, double, double); typedef void (*vFpdddii_t)(void*, double, double, double, int32_t, int32_t); +typedef void (*vFpddddd_t)(void*, double, double, double, double, double); typedef void (*vFpppppp_t)(void*, void*, void*, void*, void*, void*); typedef void (*vFXiLppi_t)(void*, int32_t, uintptr_t, void*, void*, int32_t); typedef void (*vFXLiiii_t)(void*, uintptr_t, int32_t, int32_t, int32_t, int32_t); @@ -1437,6 +1466,7 @@ typedef void* (*pEEpLLiN_t)(x64emu_t*, void*, uintptr_t, uintptr_t, int32_t, ... typedef void* (*pEEppLLp_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_t, void*); typedef void* (*pFEXpppp_t)(x64emu_t*, void*, void*, void*, void*, void*); typedef void* (*pFWCiWCi_t)(uint16_t, uint8_t, int32_t, uint16_t, uint8_t, int32_t); +typedef void* (*pFdddddd_t)(double, double, double, double, double, double); typedef void* (*pFpiiiiu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32_t); typedef void* (*XFpppppp_t)(void*, void*, void*, void*, void*, void*); typedef int32_t (*iFpppbp_pp_t)(void*, void*, void*, struct_p_t*, void*, void*); @@ -1505,6 +1535,7 @@ typedef void (*vFudddddd_t)(uint32_t, double, double, double, double, double, do typedef void (*vFlliiiip_t)(intptr_t, intptr_t, int32_t, int32_t, int32_t, int32_t, void*); typedef void (*vFpipipiu_t)(void*, int32_t, void*, int32_t, void*, int32_t, uint32_t); typedef void (*vFpddiidd_t)(void*, double, double, int32_t, int32_t, double, double); +typedef void (*vFpdddddd_t)(void*, double, double, double, double, double, double); typedef void (*vFXLiiiLi_t)(void*, uintptr_t, int32_t, int32_t, int32_t, uintptr_t, int32_t); typedef void (*vFXLiiipi_t)(void*, uintptr_t, int32_t, int32_t, int32_t, void*, int32_t); typedef void (*vFXLiiuui_t)(void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, int32_t); @@ -1537,6 +1568,9 @@ typedef int32_t (*iFXpiipii_t)(void*, void*, int32_t, int32_t, void*, int32_t, i typedef int32_t (*iFXpLiWwL_t)(void*, void*, uintptr_t, int32_t, uint16_t, int16_t, uintptr_t); typedef int32_t (*iFXpLuuii_t)(void*, void*, uintptr_t, uint32_t, uint32_t, int32_t, int32_t); typedef uint32_t (*uFuippppp_t)(uint32_t, int32_t, void*, void*, void*, void*, void*); +typedef uint32_t (*uFpippppp_t)(void*, int32_t, void*, void*, void*, void*, void*); +typedef uint32_t (*uFpuupppp_t)(void*, uint32_t, uint32_t, void*, void*, void*, void*); +typedef uint32_t (*uFppppppp_t)(void*, void*, void*, void*, void*, void*, void*); typedef intptr_t (*lEEipLpLL_t)(x64emu_t*, int32_t, void*, uintptr_t, void*, uintptr_t, uintptr_t); typedef void* (*pFEpiiiiu_t)(x64emu_t*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t); typedef void* (*pFEpLiiii_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, int32_t, int32_t); @@ -1602,6 +1636,7 @@ typedef uintptr_t (*LFEXLppuuu_t)(x64emu_t*, void*, uintptr_t, void*, void*, uin typedef uintptr_t (*LFXLpuuLLu_t)(void*, uintptr_t, void*, uint32_t, uint32_t, uintptr_t, uintptr_t, uint32_t); typedef int32_t (*iFXLLiippBL__t)(void*, uintptr_t, uintptr_t, int32_t, int32_t, void*, void*, struct_L_t*); typedef int32_t (*iFXLpppbL_pp_t)(void*, uintptr_t, void*, void*, void*, struct_L_t*, void*, void*); +typedef void (*vFppibLdd_ipiu_t)(void*, void*, int32_t, struct_Ldd_t*, int32_t, void*, int32_t, uint32_t); typedef void (*vFiiiiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); typedef void (*vFiiiiiiill_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, intptr_t, intptr_t); typedef void (*vFiiiiillli_t)(int32_t, int32_t, int32_t, int32_t, int32_t, intptr_t, intptr_t, intptr_t, int32_t); @@ -1877,6 +1912,8 @@ void iFbp__32(x64emu_t *emu, uintptr_t fcn) { iFbp__t fn = (iFbp__t)fcn; struct_ void iFBp__32(x64emu_t *emu, uintptr_t fcn) { iFBp__t fn = (iFBp__t)fcn; struct_p_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void LEBL__32(x64emu_t *emu, uintptr_t fcn) { LEBL__t fn = (LEBL__t)fcn; errno = emu->libc_err; struct_L_t arg_4={0}; R_EAX = to_ulong(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); emu->libc_err = errno; } void lFrll__32(x64emu_t *emu, uintptr_t fcn) { lFrll__t fn = (lFrll__t)fcn; struct_ll_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_ll(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_long(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); } +void vFbLdd__32(x64emu_t *emu, uintptr_t fcn) { vFbLdd__t fn = (vFbLdd__t)fcn; struct_Ldd_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_Ldd(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_Ldd(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } +void vFbupi__32(x64emu_t *emu, uintptr_t fcn) { vFbupi__t fn = (vFbupi__t)fcn; struct_upi_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_upi(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_upi(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iEBllll__32(x64emu_t *emu, uintptr_t fcn) { iEBllll__t fn = (iEBllll__t)fcn; errno = emu->libc_err; struct_llll_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_llll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); emu->libc_err = errno; } void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fcn) { vFbuuipWCCp__t fn = (vFbuuipWCCp__t)fcn; struct_uuipWCCp_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_uuipWCCp(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_uuipWCCp(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void vFbWWpWpWpWp__32(x64emu_t *emu, uintptr_t fcn) { vFbWWpWpWpWp__t fn = (vFbWWpWpWpWp__t)fcn; struct_WWpWpWpWp_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_WWpWpWpWp(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_WWpWpWpWp(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } @@ -1921,6 +1958,7 @@ void vEpi_32(x64emu_t *emu, uintptr_t fcn) { vEpi_t fn = (vEpi_t)fcn; errno = em void vFpi_32(x64emu_t *emu, uintptr_t fcn) { vFpi_t fn = (vFpi_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); } void vFpC_32(x64emu_t *emu, uintptr_t fcn) { vFpC_t fn = (vFpC_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint8_t, R_ESP + 8)); } void vFpu_32(x64emu_t *emu, uintptr_t fcn) { vFpu_t fn = (vFpu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); } +void vFpd_32(x64emu_t *emu, uintptr_t fcn) { vFpd_t fn = (vFpd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8)); } void vFpl_32(x64emu_t *emu, uintptr_t fcn) { vFpl_t fn = (vFpl_t)fcn; fn(from_ptriv(R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8))); } void vEpL_32(x64emu_t *emu, uintptr_t fcn) { vEpL_t fn = (vEpL_t)fcn; errno = emu->libc_err; fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8))); emu->libc_err = errno; } void vFpL_32(x64emu_t *emu, uintptr_t fcn) { vFpL_t fn = (vFpL_t)fcn; fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8))); } @@ -2096,6 +2134,7 @@ void iEHBp__32(x64emu_t *emu, uintptr_t fcn) { iEHBp__t fn = (iEHBp__t)fcn; errn void iFbp_i_32(x64emu_t *emu, uintptr_t fcn) { iFbp_i_t fn = (iFbp_i_t)fcn; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptri(int32_t, R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFbp_p_32(x64emu_t *emu, uintptr_t fcn) { iFbp_p_t fn = (iFbp_p_t)fcn; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFXbL__32(x64emu_t *emu, uintptr_t fcn) { iFXbL__t fn = (iFXbL__t)fcn; struct_L_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_L(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } +void uFpbp__32(x64emu_t *emu, uintptr_t fcn) { uFpbp__t fn = (uFpbp__t)fcn; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void fEpBp__32(x64emu_t *emu, uintptr_t fcn) { fEpBp__t fn = (fEpBp__t)fcn; errno = emu->libc_err; struct_p_t arg_8={0}; float fl = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = fl; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); emu->libc_err = errno; } void dEpBp__32(x64emu_t *emu, uintptr_t fcn) { dEpBp__t fn = (dEpBp__t)fcn; errno = emu->libc_err; struct_p_t arg_8={0}; double db = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = db; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); emu->libc_err = errno; } void LFpbp__32(x64emu_t *emu, uintptr_t fcn) { LFpbp__t fn = (LFpbp__t)fcn; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } @@ -2110,6 +2149,7 @@ void iEprLL__32(x64emu_t *emu, uintptr_t fcn) { iEprLL__t fn = (iEprLL__t)fcn; e void iFbpi_i_32(x64emu_t *emu, uintptr_t fcn) { iFbpi_i_t fn = (iFbpi_i_t)fcn; struct_pi_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_pi(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptri(int32_t, R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_pi(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iEBll_p_32(x64emu_t *emu, uintptr_t fcn) { iEBll_p_t fn = (iEBll_p_t)fcn; errno = emu->libc_err; struct_ll_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); emu->libc_err = errno; } void iFXbip__32(x64emu_t *emu, uintptr_t fcn) { iFXbip__t fn = (iFXbip__t)fcn; struct_ip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_ip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_ip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } +void vFpbupi__32(x64emu_t *emu, uintptr_t fcn) { vFpbupi__t fn = (vFpbupi__t)fcn; struct_upi_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_upi(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_upi(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void iESBliu__32(x64emu_t *emu, uintptr_t fcn) { iESBliu__t fn = (iESBliu__t)fcn; errno = emu->libc_err; struct_liu_t arg_8={0}; R_EAX = fn(io_convert32(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_liu(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); emu->libc_err = errno; } void iFbppi_i_32(x64emu_t *emu, uintptr_t fcn) { iFbppi_i_t fn = (iFbppi_i_t)fcn; struct_ppi_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_ppi(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptri(int32_t, R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ppi(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFXbiip__32(x64emu_t *emu, uintptr_t fcn) { iFXbiip__t fn = (iFXbiip__t)fcn; struct_iip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_iip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } @@ -2262,6 +2302,7 @@ void iFpup_32(x64emu_t *emu, uintptr_t fcn) { iFpup_t fn = (iFpup_t)fcn; R_EAX = void iFpUU_32(x64emu_t *emu, uintptr_t fcn) { iFpUU_t fn = (iFpUU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint64_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 16)); } void iFpfu_32(x64emu_t *emu, uintptr_t fcn) { iFpfu_t fn = (iFpfu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); } void iFpff_32(x64emu_t *emu, uintptr_t fcn) { iFpff_t fn = (iFpff_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12)); } +void iFpdd_32(x64emu_t *emu, uintptr_t fcn) { iFpdd_t fn = (iFpdd_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16)); } void iFpli_32(x64emu_t *emu, uintptr_t fcn) { iFpli_t fn = (iFpli_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); } void iFpll_32(x64emu_t *emu, uintptr_t fcn) { iFpll_t fn = (iFpll_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12))); } void iEpLi_32(x64emu_t *emu, uintptr_t fcn) { iEpLi_t fn = (iEpLi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); emu->libc_err = errno; } @@ -2360,11 +2401,13 @@ void pFEpX_32(x64emu_t *emu, uintptr_t fcn) { pFEpX_t fn = (pFEpX_t)fcn; R_EAX = void pFEXi_32(x64emu_t *emu, uintptr_t fcn) { pFEXi_t fn = (pFEXi_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8))); } void pFEXL_32(x64emu_t *emu, uintptr_t fcn) { pFEXL_t fn = (pFEXL_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)))); } void pFEXp_32(x64emu_t *emu, uintptr_t fcn) { pFEXp_t fn = (pFEXp_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8))); } +void pFiii_32(x64emu_t *emu, uintptr_t fcn) { pFiii_t fn = (pFiii_t)fcn; R_EAX = to_ptrv(fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); } void pEipL_32(x64emu_t *emu, uintptr_t fcn) { pEipL_t fn = (pEipL_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)))); emu->libc_err = errno; } void pFipp_32(x64emu_t *emu, uintptr_t fcn) { pFipp_t fn = (pFipp_t)fcn; R_EAX = to_ptrv(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12))); } void pFulu_32(x64emu_t *emu, uintptr_t fcn) { pFulu_t fn = (pFulu_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_ptri(uint32_t, R_ESP + 12))); } void pFupi_32(x64emu_t *emu, uintptr_t fcn) { pFupi_t fn = (pFupi_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); } void pFupp_32(x64emu_t *emu, uintptr_t fcn) { pFupp_t fn = (pFupp_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12))); } +void pFddd_32(x64emu_t *emu, uintptr_t fcn) { pFddd_t fn = (pFddd_t)fcn; R_EAX = to_ptrv(fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20))); } void pFLpi_32(x64emu_t *emu, uintptr_t fcn) { pFLpi_t fn = (pFLpi_t)fcn; R_EAX = to_ptrv(fn(from_ulong(from_ptri(ulong_t, R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); } void pFpcU_32(x64emu_t *emu, uintptr_t fcn) { pFpcU_t fn = (pFpcU_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int8_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 12))); } void pEpii_32(x64emu_t *emu, uintptr_t fcn) { pEpii_t fn = (pEpii_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); emu->libc_err = errno; } @@ -2377,6 +2420,7 @@ void pEpiS_32(x64emu_t *emu, uintptr_t fcn) { pEpiS_t fn = (pEpiS_t)fcn; errno = void pEpII_32(x64emu_t *emu, uintptr_t fcn) { pEpII_t fn = (pEpII_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int64_t, R_ESP + 8), from_ptri(int64_t, R_ESP + 16))); emu->libc_err = errno; } void pFpuu_32(x64emu_t *emu, uintptr_t fcn) { pFpuu_t fn = (pFpuu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12))); } void pFpup_32(x64emu_t *emu, uintptr_t fcn) { pFpup_t fn = (pFpup_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12))); } +void pFpdd_32(x64emu_t *emu, uintptr_t fcn) { pFpdd_t fn = (pFpdd_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16))); } void pEpLL_32(x64emu_t *emu, uintptr_t fcn) { pEpLL_t fn = (pEpLL_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)))); emu->libc_err = errno; } void pFppu_32(x64emu_t *emu, uintptr_t fcn) { pFppu_t fn = (pFppu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12))); } void pEppL_32(x64emu_t *emu, uintptr_t fcn) { pEppL_t fn = (pEppL_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)))); emu->libc_err = errno; } @@ -2441,6 +2485,7 @@ void pFXLbL__32(x64emu_t *emu, uintptr_t fcn) { pFXLbL__t fn = (pFXLbL__t)fcn; s void iFXLbpp__32(x64emu_t *emu, uintptr_t fcn) { iFXLbpp__t fn = (iFXLbpp__t)fcn; struct_pp_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_pp(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_pp(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); } void iFXbLC_i_32(x64emu_t *emu, uintptr_t fcn) { iFXbLC_i_t fn = (iFXbLC_i_t)fcn; struct_LC_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_LC(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LC(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void vFLbL_bL__32(x64emu_t *emu, uintptr_t fcn) { vFLbL_bL__t fn = (vFLbL_bL__t)fcn; struct_L_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_L(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(from_ulong(from_ptri(ulong_t, R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); } +void vFpbLdd_i_32(x64emu_t *emu, uintptr_t fcn) { vFpbLdd_i_t fn = (vFpbLdd_i_t)fcn; struct_Ldd_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_Ldd(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_Ldd(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void iFpbl_bl__32(x64emu_t *emu, uintptr_t fcn) { iFpbl_bl__t fn = (iFpbl_bl__t)fcn; struct_l_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_l(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_l_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_l(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_l(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_l(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); } void iFpbL_bL__32(x64emu_t *emu, uintptr_t fcn) { iFpbL_bL__t fn = (iFpbL_bL__t)fcn; struct_L_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_L(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); } void iFbp_bp_p_32(x64emu_t *emu, uintptr_t fcn) { iFbp_bp_p_t fn = (iFbp_bp_p_t)fcn; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptriv(R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } @@ -2542,11 +2587,15 @@ void vFLiii_32(x64emu_t *emu, uintptr_t fcn) { vFLiii_t fn = (vFLiii_t)fcn; fn(f void vFpiip_32(x64emu_t *emu, uintptr_t fcn) { vFpiip_t fn = (vFpiip_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); } void vFpipi_32(x64emu_t *emu, uintptr_t fcn) { vFpipi_t fn = (vFpipi_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); } void vFpipp_32(x64emu_t *emu, uintptr_t fcn) { vFpipp_t fn = (vFpipp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); } +void vFpudd_32(x64emu_t *emu, uintptr_t fcn) { vFpudd_t fn = (vFpudd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20)); } void vFpdii_32(x64emu_t *emu, uintptr_t fcn) { vFpdii_t fn = (vFpdii_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); } void vFpddd_32(x64emu_t *emu, uintptr_t fcn) { vFpddd_t fn = (vFpddd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(double, R_ESP + 24)); } void vFplpp_32(x64emu_t *emu, uintptr_t fcn) { vFplpp_t fn = (vFplpp_t)fcn; fn(from_ptriv(R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); } +void vFppid_32(x64emu_t *emu, uintptr_t fcn) { vFppid_t fn = (vFppid_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(double, R_ESP + 16)); } void vEppip_32(x64emu_t *emu, uintptr_t fcn) { vEppip_t fn = (vEppip_t)fcn; errno = emu->libc_err; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); emu->libc_err = errno; } void vFppui_32(x64emu_t *emu, uintptr_t fcn) { vFppui_t fn = (vFppui_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); } +void vFppuu_32(x64emu_t *emu, uintptr_t fcn) { vFppuu_t fn = (vFppuu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); } +void vFppdd_32(x64emu_t *emu, uintptr_t fcn) { vFppdd_t fn = (vFppdd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20)); } void vFpppp_32(x64emu_t *emu, uintptr_t fcn) { vFpppp_t fn = (vFpppp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); } void vFXiiL_32(x64emu_t *emu, uintptr_t fcn) { vFXiiL_t fn = (vFXiiL_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); } void vFXiLu_32(x64emu_t *emu, uintptr_t fcn) { vFXiLu_t fn = (vFXiLu_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(uint32_t, R_ESP + 16)); } @@ -2700,6 +2749,8 @@ void pFifff_32(x64emu_t *emu, uintptr_t fcn) { pFifff_t fn = (pFifff_t)fcn; R_EA void pFillu_32(x64emu_t *emu, uintptr_t fcn) { pFillu_t fn = (pFillu_t)fcn; R_EAX = to_ptrv(fn(from_ptri(int32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12)), from_ptri(uint32_t, R_ESP + 16))); } void pEippu_32(x64emu_t *emu, uintptr_t fcn) { pEippu_t fn = (pEippu_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16))); emu->libc_err = errno; } void pFullu_32(x64emu_t *emu, uintptr_t fcn) { pFullu_t fn = (pFullu_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12)), from_ptri(uint32_t, R_ESP + 16))); } +void pFdddd_32(x64emu_t *emu, uintptr_t fcn) { pFdddd_t fn = (pFdddd_t)fcn; R_EAX = to_ptrv(fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28))); } +void pFpiii_32(x64emu_t *emu, uintptr_t fcn) { pFpiii_t fn = (pFpiii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16))); } void pEpiLL_32(x64emu_t *emu, uintptr_t fcn) { pEpiLL_t fn = (pEpiLL_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)))); emu->libc_err = errno; } void pFpuii_32(x64emu_t *emu, uintptr_t fcn) { pFpuii_t fn = (pFpuii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16))); } void pFpupp_32(x64emu_t *emu, uintptr_t fcn) { pFpupp_t fn = (pFpupp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); } @@ -2737,6 +2788,8 @@ void LEpBp_ii_32(x64emu_t *emu, uintptr_t fcn) { LEpBp_ii_t fn = (LEpBp_ii_t)fcn void LEpbp_Lp_32(x64emu_t *emu, uintptr_t fcn) { LEpbp_Lp_t fn = (LEpbp_Lp_t)fcn; errno = emu->libc_err; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); emu->libc_err = errno; } void iEEpprLL__32(x64emu_t *emu, uintptr_t fcn) { iEEpprLL__t fn = (iEEpprLL__t)fcn; errno = emu->libc_err; struct_LL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); emu->libc_err = errno; } void iEpurLL_p_32(x64emu_t *emu, uintptr_t fcn) { iEpurLL_p_t fn = (iEpurLL_p_t)fcn; errno = emu->libc_err; struct_LL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptriv(R_ESP + 16)); emu->libc_err = errno; } +void vFppbp_bL__32(x64emu_t *emu, uintptr_t fcn) { vFppbp_bL__t fn = (vFppbp_bL__t)fcn; struct_p_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_p(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_L_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_L(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } +void vFpbLdd_ip_32(x64emu_t *emu, uintptr_t fcn) { vFpbLdd_ip_t fn = (vFpbLdd_ip_t)fcn; struct_Ldd_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_Ldd(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_Ldd(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void iFppbL_bL__32(x64emu_t *emu, uintptr_t fcn) { iFppbL_bL__t fn = (iFppbL_bL__t)fcn; struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_L_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_L(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } void iFrpuu_Lui_32(x64emu_t *emu, uintptr_t fcn) { iFrpuu_Lui_t fn = (iFrpuu_Lui_t)fcn; struct_puu_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_puu(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); } void iEbp_bL_iS_32(x64emu_t *emu, uintptr_t fcn) { iEbp_bL_iS_t fn = (iEbp_bL_iS_t)fcn; errno = emu->libc_err; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_L_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_L(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), io_convert32(from_ptriv(R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); emu->libc_err = errno; } @@ -2850,10 +2903,13 @@ void vFupppp_32(x64emu_t *emu, uintptr_t fcn) { vFupppp_t fn = (vFupppp_t)fcn; f void vFfffff_32(x64emu_t *emu, uintptr_t fcn) { vFfffff_t fn = (vFfffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20)); } void vFddddp_32(x64emu_t *emu, uintptr_t fcn) { vFddddp_t fn = (vFddddp_t)fcn; fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptriv(R_ESP + 36)); } void vFluipp_32(x64emu_t *emu, uintptr_t fcn) { vFluipp_t fn = (vFluipp_t)fcn; fn(from_long(from_ptri(long_t, R_ESP + 4)), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } +void vFpiiii_32(x64emu_t *emu, uintptr_t fcn) { vFpiiii_t fn = (vFpiiii_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); } void vFpilpp_32(x64emu_t *emu, uintptr_t fcn) { vFpilpp_t fn = (vFpilpp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_long(from_ptri(long_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } void vFpipiu_32(x64emu_t *emu, uintptr_t fcn) { vFpipiu_t fn = (vFpipiu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20)); } void vFpuipp_32(x64emu_t *emu, uintptr_t fcn) { vFpuipp_t fn = (vFpuipp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } +void vFpuddd_32(x64emu_t *emu, uintptr_t fcn) { vFpuddd_t fn = (vFpuddd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28)); } void vFpddii_32(x64emu_t *emu, uintptr_t fcn) { vFpddii_t fn = (vFpddii_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); } +void vFpdddd_32(x64emu_t *emu, uintptr_t fcn) { vFpdddd_t fn = (vFpdddd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(double, R_ESP + 24), from_ptri(double, R_ESP + 32)); } void vFppWui_32(x64emu_t *emu, uintptr_t fcn) { vFppWui_t fn = (vFppWui_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint16_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); } void vFpppii_32(x64emu_t *emu, uintptr_t fcn) { vFpppii_t fn = (vFpppii_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); } void vFppppu_32(x64emu_t *emu, uintptr_t fcn) { vFppppu_t fn = (vFppppu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(uint32_t, R_ESP + 20)); } @@ -2923,7 +2979,10 @@ void iFXpipi_32(x64emu_t *emu, uintptr_t fcn) { iFXpipi_t fn = (iFXpipi_t)fcn; R void iFXpppp_32(x64emu_t *emu, uintptr_t fcn) { iFXpppp_t fn = (iFXpppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } void IFXpIII_32(x64emu_t *emu, uintptr_t fcn) { IFXpIII_t fn = (IFXpIII_t)fcn; ui64_t r; r.i = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int64_t, R_ESP + 12), from_ptri(int64_t, R_ESP + 20), from_ptri(int64_t, R_ESP + 28)); R_EAX = r.d[0]; R_EDX = r.d[1]; } void uEEippu_32(x64emu_t *emu, uintptr_t fcn) { uEEippu_t fn = (uEEippu_t)fcn; errno = emu->libc_err; R_EAX = (uint32_t)fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); emu->libc_err = errno; } +void uFEpppp_32(x64emu_t *emu, uintptr_t fcn) { uFEpppp_t fn = (uFEpppp_t)fcn; R_EAX = (uint32_t)fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); } +void uFpuupp_32(x64emu_t *emu, uintptr_t fcn) { uFpuupp_t fn = (uFpuupp_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } void uEpLLLS_32(x64emu_t *emu, uintptr_t fcn) { uEpLLLS_t fn = (uEpLLLS_t)fcn; errno = emu->libc_err; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), io_convert32(from_ptriv(R_ESP + 20))); emu->libc_err = errno; } +void uFppppp_32(x64emu_t *emu, uintptr_t fcn) { uFppppp_t fn = (uFppppp_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); } void UFuiCiu_32(x64emu_t *emu, uintptr_t fcn) { UFuiCiu_t fn = (UFuiCiu_t)fcn; ui64_t r; r.u = (uint64_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20)); R_EAX = r.d[0]; R_EDX = r.d[1]; } void lFpuipC_32(x64emu_t *emu, uintptr_t fcn) { lFpuipC_t fn = (lFpuipC_t)fcn; R_EAX = to_long(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(uint8_t, R_ESP + 20))); } void LFEppLL_32(x64emu_t *emu, uintptr_t fcn) { LFEppLL_t fn = (LFEppLL_t)fcn; R_EAX = to_ulong(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)))); } @@ -2933,15 +2992,18 @@ void LFXLuuu_32(x64emu_t *emu, uintptr_t fcn) { LFXLuuu_t fn = (LFXLuuu_t)fcn; R void LFXLpuu_32(x64emu_t *emu, uintptr_t fcn) { LFXLpuu_t fn = (LFXLpuu_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20))); } void LFXpppi_32(x64emu_t *emu, uintptr_t fcn) { LFXpppi_t fn = (LFXpppi_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20))); } void pFEppip_32(x64emu_t *emu, uintptr_t fcn) { pFEppip_t fn = (pFEppip_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16))); } +void pFEppdd_32(x64emu_t *emu, uintptr_t fcn) { pFEppdd_t fn = (pFEppdd_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20))); } void pFEXipp_32(x64emu_t *emu, uintptr_t fcn) { pFEXipp_t fn = (pFEXipp_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); } void pFEXlpp_32(x64emu_t *emu, uintptr_t fcn) { pFEXlpp_t fn = (pFEXlpp_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_long(from_ptri(long_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); } void pFEXpip_32(x64emu_t *emu, uintptr_t fcn) { pFEXpip_t fn = (pFEXpip_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16))); } void pFEXppi_32(x64emu_t *emu, uintptr_t fcn) { pFEXppi_t fn = (pFEXppi_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16))); } void pFuiupp_32(x64emu_t *emu, uintptr_t fcn) { pFuiupp_t fn = (pFuiupp_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20))); } +void pFpiiii_32(x64emu_t *emu, uintptr_t fcn) { pFpiiii_t fn = (pFpiiii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20))); } void pFpiiuu_32(x64emu_t *emu, uintptr_t fcn) { pFpiiuu_t fn = (pFpiiuu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20))); } void pFpippp_32(x64emu_t *emu, uintptr_t fcn) { pFpippp_t fn = (pFpippp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20))); } void pFpuiii_32(x64emu_t *emu, uintptr_t fcn) { pFpuiii_t fn = (pFpuiii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20))); } void pFpuuip_32(x64emu_t *emu, uintptr_t fcn) { pFpuuip_t fn = (pFpuuip_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20))); } +void pFpdddd_32(x64emu_t *emu, uintptr_t fcn) { pFpdddd_t fn = (pFpdddd_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(double, R_ESP + 24), from_ptri(double, R_ESP + 32))); } void pFppuup_32(x64emu_t *emu, uintptr_t fcn) { pFppuup_t fn = (pFppuup_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20))); } void pFppupp_32(x64emu_t *emu, uintptr_t fcn) { pFppupp_t fn = (pFppupp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20))); } void pFXLipp_32(x64emu_t *emu, uintptr_t fcn) { pFXLipp_t fn = (pFXLipp_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20))); } @@ -3039,7 +3101,9 @@ void vFupiiii_32(x64emu_t *emu, uintptr_t fcn) { vFupiiii_t fn = (vFupiiii_t)fcn void vFffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffff_t fn = (vFffffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24)); } void vFdddddd_32(x64emu_t *emu, uintptr_t fcn) { vFdddddd_t fn = (vFdddddd_t)fcn; fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptri(double, R_ESP + 36), from_ptri(double, R_ESP + 44)); } void vFpipipV_32(x64emu_t *emu, uintptr_t fcn) { vFpipipV_t fn = (vFpipipV_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); } +void vFpudddd_32(x64emu_t *emu, uintptr_t fcn) { vFpudddd_t fn = (vFpudddd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptri(double, R_ESP + 36)); } void vFpdddii_32(x64emu_t *emu, uintptr_t fcn) { vFpdddii_t fn = (vFpdddii_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(double, R_ESP + 24), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36)); } +void vFpddddd_32(x64emu_t *emu, uintptr_t fcn) { vFpddddd_t fn = (vFpddddd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(double, R_ESP + 24), from_ptri(double, R_ESP + 32), from_ptri(double, R_ESP + 40)); } void vFpppppp_32(x64emu_t *emu, uintptr_t fcn) { vFpppppp_t fn = (vFpppppp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); } void vFXiLppi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLppi_t fn = (vFXiLppi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); } void vFXLiiii_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiii_t fn = (vFXLiiii_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); } @@ -3101,6 +3165,7 @@ void pEEpLLiN_32(x64emu_t *emu, uintptr_t fcn) { pEEpLLiN_t fn = (pEEpLLiN_t)fcn void pEEppLLp_32(x64emu_t *emu, uintptr_t fcn) { pEEppLLp_t fn = (pEEppLLp_t)fcn; errno = emu->libc_err; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20))); emu->libc_err = errno; } void pFEXpppp_32(x64emu_t *emu, uintptr_t fcn) { pFEXpppp_t fn = (pFEXpppp_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20))); } void pFWCiWCi_32(x64emu_t *emu, uintptr_t fcn) { pFWCiWCi_t fn = (pFWCiWCi_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint16_t, R_ESP + 4), from_ptri(uint8_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint16_t, R_ESP + 16), from_ptri(uint8_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24))); } +void pFdddddd_32(x64emu_t *emu, uintptr_t fcn) { pFdddddd_t fn = (pFdddddd_t)fcn; R_EAX = to_ptrv(fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptri(double, R_ESP + 36), from_ptri(double, R_ESP + 44))); } void pFpiiiiu_32(x64emu_t *emu, uintptr_t fcn) { pFpiiiiu_t fn = (pFpiiiiu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24))); } void XFpppppp_32(x64emu_t *emu, uintptr_t fcn) { XFpppppp_t fn = (XFpppppp_t)fcn; R_EAX = to_ptrv(addDisplay(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)))); } void iFpppbp_pp_32(x64emu_t *emu, uintptr_t fcn) { iFpppbp_pp_t fn = (iFpppbp_pp_t)fcn; struct_p_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } @@ -3169,6 +3234,7 @@ void vFudddddd_32(x64emu_t *emu, uintptr_t fcn) { vFudddddd_t fn = (vFudddddd_t) void vFlliiiip_32(x64emu_t *emu, uintptr_t fcn) { vFlliiiip_t fn = (vFlliiiip_t)fcn; fn(from_long(from_ptri(long_t, R_ESP + 4)), from_long(from_ptri(long_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28)); } void vFpipipiu_32(x64emu_t *emu, uintptr_t fcn) { vFpipipiu_t fn = (vFpipipiu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28)); } void vFpddiidd_32(x64emu_t *emu, uintptr_t fcn) { vFpddiidd_t fn = (vFpddiidd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(double, R_ESP + 32), from_ptri(double, R_ESP + 40)); } +void vFpdddddd_32(x64emu_t *emu, uintptr_t fcn) { vFpdddddd_t fn = (vFpdddddd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(double, R_ESP + 24), from_ptri(double, R_ESP + 32), from_ptri(double, R_ESP + 40), from_ptri(double, R_ESP + 48)); } void vFXLiiiLi_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiiLi_t fn = (vFXLiiiLi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24)), from_ptri(int32_t, R_ESP + 28)); } void vFXLiiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiipi_t fn = (vFXLiiipi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptriv(R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); } void vFXLiiuui_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiuui_t fn = (vFXLiiuui_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); } @@ -3201,6 +3267,9 @@ void iFXpiipii_32(x64emu_t *emu, uintptr_t fcn) { iFXpiipii_t fn = (iFXpiipii_t) void iFXpLiWwL_32(x64emu_t *emu, uintptr_t fcn) { iFXpLiWwL_t fn = (iFXpLiWwL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16), from_ptri(uint16_t, R_ESP + 20), from_ptri(int16_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28))); } void iFXpLuuii_32(x64emu_t *emu, uintptr_t fcn) { iFXpLuuii_t fn = (iFXpLuuii_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); } void uFuippppp_32(x64emu_t *emu, uintptr_t fcn) { uFuippppp_t fn = (uFuippppp_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); } +void uFpippppp_32(x64emu_t *emu, uintptr_t fcn) { uFpippppp_t fn = (uFpippppp_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); } +void uFpuupppp_32(x64emu_t *emu, uintptr_t fcn) { uFpuupppp_t fn = (uFpuupppp_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); } +void uFppppppp_32(x64emu_t *emu, uintptr_t fcn) { uFppppppp_t fn = (uFppppppp_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); } void lEEipLpLL_32(x64emu_t *emu, uintptr_t fcn) { lEEipLpLL_t fn = (lEEipLpLL_t)fcn; errno = emu->libc_err; R_EAX = to_long(fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ulong(from_ptri(ulong_t, R_ESP + 20)), from_ulong(from_ptri(ulong_t, R_ESP + 24)))); emu->libc_err = errno; } void pFEpiiiiu_32(x64emu_t *emu, uintptr_t fcn) { pFEpiiiiu_t fn = (pFEpiiiiu_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24))); } void pFEpLiiii_32(x64emu_t *emu, uintptr_t fcn) { pFEpLiiii_t fn = (pFEpLiiii_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24))); } @@ -3266,6 +3335,7 @@ void LFEXLppuuu_32(x64emu_t *emu, uintptr_t fcn) { LFEXLppuuu_t fn = (LFEXLppuuu void LFXLpuuLLu_32(x64emu_t *emu, uintptr_t fcn) { LFXLpuuLLu_t fn = (LFXLpuuLLu_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24)), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(uint32_t, R_ESP + 32))); } void iFXLLiippBL__32(x64emu_t *emu, uintptr_t fcn) { iFXLLiippBL__t fn = (iFXLLiippBL__t)fcn; struct_L_t arg_32={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); } void iFXLpppbL_pp_32(x64emu_t *emu, uintptr_t fcn) { iFXLpppbL_pp_t fn = (iFXLpppbL_pp_t)fcn; struct_L_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_L(&arg_24, *(ptr_t*)(from_ptr((R_ESP + 24)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : NULL, from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32)); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); } +void vFppibLdd_ipiu_32(x64emu_t *emu, uintptr_t fcn) { vFppibLdd_ipiu_t fn = (vFppibLdd_ipiu_t)fcn; struct_Ldd_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_Ldd(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_ptri(int32_t, R_ESP + 20), from_ptriv(R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32)); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_Ldd(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); } void vFiiiiiiiii_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiii_t fn = (vFiiiiiiiii_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36)); } void vFiiiiiiill_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiill_t fn = (vFiiiiiiill_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_long(from_ptri(long_t, R_ESP + 32)), from_long(from_ptri(long_t, R_ESP + 36))); } void vFiiiiillli_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiillli_t fn = (vFiiiiillli_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_long(from_ptri(long_t, R_ESP + 24)), from_long(from_ptri(long_t, R_ESP + 28)), from_long(from_ptri(long_t, R_ESP + 32)), from_ptri(int32_t, R_ESP + 36)); } diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index 9ec451da..1f0997b7 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -163,6 +163,8 @@ void iFbp__32(x64emu_t *emu, uintptr_t fnc); void iFBp__32(x64emu_t *emu, uintptr_t fnc); void LEBL__32(x64emu_t *emu, uintptr_t fnc); void lFrll__32(x64emu_t *emu, uintptr_t fnc); +void vFbLdd__32(x64emu_t *emu, uintptr_t fnc); +void vFbupi__32(x64emu_t *emu, uintptr_t fnc); void iEBllll__32(x64emu_t *emu, uintptr_t fnc); void vFbuuipWCCp__32(x64emu_t *emu, uintptr_t fnc); void vFbWWpWpWpWp__32(x64emu_t *emu, uintptr_t fnc); @@ -207,6 +209,7 @@ void vEpi_32(x64emu_t *emu, uintptr_t fnc); void vFpi_32(x64emu_t *emu, uintptr_t fnc); void vFpC_32(x64emu_t *emu, uintptr_t fnc); void vFpu_32(x64emu_t *emu, uintptr_t fnc); +void vFpd_32(x64emu_t *emu, uintptr_t fnc); void vFpl_32(x64emu_t *emu, uintptr_t fnc); void vEpL_32(x64emu_t *emu, uintptr_t fnc); void vFpL_32(x64emu_t *emu, uintptr_t fnc); @@ -382,6 +385,7 @@ void iEHBp__32(x64emu_t *emu, uintptr_t fnc); void iFbp_i_32(x64emu_t *emu, uintptr_t fnc); void iFbp_p_32(x64emu_t *emu, uintptr_t fnc); void iFXbL__32(x64emu_t *emu, uintptr_t fnc); +void uFpbp__32(x64emu_t *emu, uintptr_t fnc); void fEpBp__32(x64emu_t *emu, uintptr_t fnc); void dEpBp__32(x64emu_t *emu, uintptr_t fnc); void LFpbp__32(x64emu_t *emu, uintptr_t fnc); @@ -396,6 +400,7 @@ void iEprLL__32(x64emu_t *emu, uintptr_t fnc); void iFbpi_i_32(x64emu_t *emu, uintptr_t fnc); void iEBll_p_32(x64emu_t *emu, uintptr_t fnc); void iFXbip__32(x64emu_t *emu, uintptr_t fnc); +void vFpbupi__32(x64emu_t *emu, uintptr_t fnc); void iESBliu__32(x64emu_t *emu, uintptr_t fnc); void iFbppi_i_32(x64emu_t *emu, uintptr_t fnc); void iFXbiip__32(x64emu_t *emu, uintptr_t fnc); @@ -548,6 +553,7 @@ void iFpup_32(x64emu_t *emu, uintptr_t fnc); void iFpUU_32(x64emu_t *emu, uintptr_t fnc); void iFpfu_32(x64emu_t *emu, uintptr_t fnc); void iFpff_32(x64emu_t *emu, uintptr_t fnc); +void iFpdd_32(x64emu_t *emu, uintptr_t fnc); void iFpli_32(x64emu_t *emu, uintptr_t fnc); void iFpll_32(x64emu_t *emu, uintptr_t fnc); void iEpLi_32(x64emu_t *emu, uintptr_t fnc); @@ -646,11 +652,13 @@ void pFEpX_32(x64emu_t *emu, uintptr_t fnc); void pFEXi_32(x64emu_t *emu, uintptr_t fnc); void pFEXL_32(x64emu_t *emu, uintptr_t fnc); void pFEXp_32(x64emu_t *emu, uintptr_t fnc); +void pFiii_32(x64emu_t *emu, uintptr_t fnc); void pEipL_32(x64emu_t *emu, uintptr_t fnc); void pFipp_32(x64emu_t *emu, uintptr_t fnc); void pFulu_32(x64emu_t *emu, uintptr_t fnc); void pFupi_32(x64emu_t *emu, uintptr_t fnc); void pFupp_32(x64emu_t *emu, uintptr_t fnc); +void pFddd_32(x64emu_t *emu, uintptr_t fnc); void pFLpi_32(x64emu_t *emu, uintptr_t fnc); void pFpcU_32(x64emu_t *emu, uintptr_t fnc); void pEpii_32(x64emu_t *emu, uintptr_t fnc); @@ -663,6 +671,7 @@ void pEpiS_32(x64emu_t *emu, uintptr_t fnc); void pEpII_32(x64emu_t *emu, uintptr_t fnc); void pFpuu_32(x64emu_t *emu, uintptr_t fnc); void pFpup_32(x64emu_t *emu, uintptr_t fnc); +void pFpdd_32(x64emu_t *emu, uintptr_t fnc); void pEpLL_32(x64emu_t *emu, uintptr_t fnc); void pFppu_32(x64emu_t *emu, uintptr_t fnc); void pEppL_32(x64emu_t *emu, uintptr_t fnc); @@ -727,6 +736,7 @@ void pFXLbL__32(x64emu_t *emu, uintptr_t fnc); void iFXLbpp__32(x64emu_t *emu, uintptr_t fnc); void iFXbLC_i_32(x64emu_t *emu, uintptr_t fnc); void vFLbL_bL__32(x64emu_t *emu, uintptr_t fnc); +void vFpbLdd_i_32(x64emu_t *emu, uintptr_t fnc); void iFpbl_bl__32(x64emu_t *emu, uintptr_t fnc); void iFpbL_bL__32(x64emu_t *emu, uintptr_t fnc); void iFbp_bp_p_32(x64emu_t *emu, uintptr_t fnc); @@ -828,11 +838,15 @@ void vFLiii_32(x64emu_t *emu, uintptr_t fnc); void vFpiip_32(x64emu_t *emu, uintptr_t fnc); void vFpipi_32(x64emu_t *emu, uintptr_t fnc); void vFpipp_32(x64emu_t *emu, uintptr_t fnc); +void vFpudd_32(x64emu_t *emu, uintptr_t fnc); void vFpdii_32(x64emu_t *emu, uintptr_t fnc); void vFpddd_32(x64emu_t *emu, uintptr_t fnc); void vFplpp_32(x64emu_t *emu, uintptr_t fnc); +void vFppid_32(x64emu_t *emu, uintptr_t fnc); void vEppip_32(x64emu_t *emu, uintptr_t fnc); void vFppui_32(x64emu_t *emu, uintptr_t fnc); +void vFppuu_32(x64emu_t *emu, uintptr_t fnc); +void vFppdd_32(x64emu_t *emu, uintptr_t fnc); void vFpppp_32(x64emu_t *emu, uintptr_t fnc); void vFXiiL_32(x64emu_t *emu, uintptr_t fnc); void vFXiLu_32(x64emu_t *emu, uintptr_t fnc); @@ -986,6 +1000,8 @@ void pFifff_32(x64emu_t *emu, uintptr_t fnc); void pFillu_32(x64emu_t *emu, uintptr_t fnc); void pEippu_32(x64emu_t *emu, uintptr_t fnc); void pFullu_32(x64emu_t *emu, uintptr_t fnc); +void pFdddd_32(x64emu_t *emu, uintptr_t fnc); +void pFpiii_32(x64emu_t *emu, uintptr_t fnc); void pEpiLL_32(x64emu_t *emu, uintptr_t fnc); void pFpuii_32(x64emu_t *emu, uintptr_t fnc); void pFpupp_32(x64emu_t *emu, uintptr_t fnc); @@ -1023,6 +1039,8 @@ void LEpBp_ii_32(x64emu_t *emu, uintptr_t fnc); void LEpbp_Lp_32(x64emu_t *emu, uintptr_t fnc); void iEEpprLL__32(x64emu_t *emu, uintptr_t fnc); void iEpurLL_p_32(x64emu_t *emu, uintptr_t fnc); +void vFppbp_bL__32(x64emu_t *emu, uintptr_t fnc); +void vFpbLdd_ip_32(x64emu_t *emu, uintptr_t fnc); void iFppbL_bL__32(x64emu_t *emu, uintptr_t fnc); void iFrpuu_Lui_32(x64emu_t *emu, uintptr_t fnc); void iEbp_bL_iS_32(x64emu_t *emu, uintptr_t fnc); @@ -1136,10 +1154,13 @@ void vFupppp_32(x64emu_t *emu, uintptr_t fnc); void vFfffff_32(x64emu_t *emu, uintptr_t fnc); void vFddddp_32(x64emu_t *emu, uintptr_t fnc); void vFluipp_32(x64emu_t *emu, uintptr_t fnc); +void vFpiiii_32(x64emu_t *emu, uintptr_t fnc); void vFpilpp_32(x64emu_t *emu, uintptr_t fnc); void vFpipiu_32(x64emu_t *emu, uintptr_t fnc); void vFpuipp_32(x64emu_t *emu, uintptr_t fnc); +void vFpuddd_32(x64emu_t *emu, uintptr_t fnc); void vFpddii_32(x64emu_t *emu, uintptr_t fnc); +void vFpdddd_32(x64emu_t *emu, uintptr_t fnc); void vFppWui_32(x64emu_t *emu, uintptr_t fnc); void vFpppii_32(x64emu_t *emu, uintptr_t fnc); void vFppppu_32(x64emu_t *emu, uintptr_t fnc); @@ -1209,7 +1230,10 @@ void iFXpipi_32(x64emu_t *emu, uintptr_t fnc); void iFXpppp_32(x64emu_t *emu, uintptr_t fnc); void IFXpIII_32(x64emu_t *emu, uintptr_t fnc); void uEEippu_32(x64emu_t *emu, uintptr_t fnc); +void uFEpppp_32(x64emu_t *emu, uintptr_t fnc); +void uFpuupp_32(x64emu_t *emu, uintptr_t fnc); void uEpLLLS_32(x64emu_t *emu, uintptr_t fnc); +void uFppppp_32(x64emu_t *emu, uintptr_t fnc); void UFuiCiu_32(x64emu_t *emu, uintptr_t fnc); void lFpuipC_32(x64emu_t *emu, uintptr_t fnc); void LFEppLL_32(x64emu_t *emu, uintptr_t fnc); @@ -1219,15 +1243,18 @@ void LFXLuuu_32(x64emu_t *emu, uintptr_t fnc); void LFXLpuu_32(x64emu_t *emu, uintptr_t fnc); void LFXpppi_32(x64emu_t *emu, uintptr_t fnc); void pFEppip_32(x64emu_t *emu, uintptr_t fnc); +void pFEppdd_32(x64emu_t *emu, uintptr_t fnc); void pFEXipp_32(x64emu_t *emu, uintptr_t fnc); void pFEXlpp_32(x64emu_t *emu, uintptr_t fnc); void pFEXpip_32(x64emu_t *emu, uintptr_t fnc); void pFEXppi_32(x64emu_t *emu, uintptr_t fnc); void pFuiupp_32(x64emu_t *emu, uintptr_t fnc); +void pFpiiii_32(x64emu_t *emu, uintptr_t fnc); void pFpiiuu_32(x64emu_t *emu, uintptr_t fnc); void pFpippp_32(x64emu_t *emu, uintptr_t fnc); void pFpuiii_32(x64emu_t *emu, uintptr_t fnc); void pFpuuip_32(x64emu_t *emu, uintptr_t fnc); +void pFpdddd_32(x64emu_t *emu, uintptr_t fnc); void pFppuup_32(x64emu_t *emu, uintptr_t fnc); void pFppupp_32(x64emu_t *emu, uintptr_t fnc); void pFXLipp_32(x64emu_t *emu, uintptr_t fnc); @@ -1325,7 +1352,9 @@ void vFupiiii_32(x64emu_t *emu, uintptr_t fnc); void vFffffff_32(x64emu_t *emu, uintptr_t fnc); void vFdddddd_32(x64emu_t *emu, uintptr_t fnc); void vFpipipV_32(x64emu_t *emu, uintptr_t fnc); +void vFpudddd_32(x64emu_t *emu, uintptr_t fnc); void vFpdddii_32(x64emu_t *emu, uintptr_t fnc); +void vFpddddd_32(x64emu_t *emu, uintptr_t fnc); void vFpppppp_32(x64emu_t *emu, uintptr_t fnc); void vFXiLppi_32(x64emu_t *emu, uintptr_t fnc); void vFXLiiii_32(x64emu_t *emu, uintptr_t fnc); @@ -1387,6 +1416,7 @@ void pEEpLLiN_32(x64emu_t *emu, uintptr_t fnc); void pEEppLLp_32(x64emu_t *emu, uintptr_t fnc); void pFEXpppp_32(x64emu_t *emu, uintptr_t fnc); void pFWCiWCi_32(x64emu_t *emu, uintptr_t fnc); +void pFdddddd_32(x64emu_t *emu, uintptr_t fnc); void pFpiiiiu_32(x64emu_t *emu, uintptr_t fnc); void XFpppppp_32(x64emu_t *emu, uintptr_t fnc); void iFpppbp_pp_32(x64emu_t *emu, uintptr_t fnc); @@ -1455,6 +1485,7 @@ void vFudddddd_32(x64emu_t *emu, uintptr_t fnc); void vFlliiiip_32(x64emu_t *emu, uintptr_t fnc); void vFpipipiu_32(x64emu_t *emu, uintptr_t fnc); void vFpddiidd_32(x64emu_t *emu, uintptr_t fnc); +void vFpdddddd_32(x64emu_t *emu, uintptr_t fnc); void vFXLiiiLi_32(x64emu_t *emu, uintptr_t fnc); void vFXLiiipi_32(x64emu_t *emu, uintptr_t fnc); void vFXLiiuui_32(x64emu_t *emu, uintptr_t fnc); @@ -1487,6 +1518,9 @@ void iFXpiipii_32(x64emu_t *emu, uintptr_t fnc); void iFXpLiWwL_32(x64emu_t *emu, uintptr_t fnc); void iFXpLuuii_32(x64emu_t *emu, uintptr_t fnc); void uFuippppp_32(x64emu_t *emu, uintptr_t fnc); +void uFpippppp_32(x64emu_t *emu, uintptr_t fnc); +void uFpuupppp_32(x64emu_t *emu, uintptr_t fnc); +void uFppppppp_32(x64emu_t *emu, uintptr_t fnc); void lEEipLpLL_32(x64emu_t *emu, uintptr_t fnc); void pFEpiiiiu_32(x64emu_t *emu, uintptr_t fnc); void pFEpLiiii_32(x64emu_t *emu, uintptr_t fnc); @@ -1552,6 +1586,7 @@ void LFEXLppuuu_32(x64emu_t *emu, uintptr_t fnc); void LFXLpuuLLu_32(x64emu_t *emu, uintptr_t fnc); void iFXLLiippBL__32(x64emu_t *emu, uintptr_t fnc); void iFXLpppbL_pp_32(x64emu_t *emu, uintptr_t fnc); +void vFppibLdd_ipiu_32(x64emu_t *emu, uintptr_t fnc); void vFiiiiiiiii_32(x64emu_t *emu, uintptr_t fnc); void vFiiiiiiill_32(x64emu_t *emu, uintptr_t fnc); void vFiiiiillli_32(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped32/wrappedcairo.c b/src/wrapped32/wrappedcairo.c new file mode 100644 index 00000000..da155f07 --- /dev/null +++ b/src/wrapped32/wrappedcairo.c @@ -0,0 +1,120 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper32.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box32context.h" +#include "emu/x64emu_private.h" +#include "myalign32.h" +#include "converter32.h" + +static const char* cairoName = "libcairo.so.2"; +#define LIBNAME cairo + +#include "generated/wrappedcairotypes32.h" + +#include "wrappercallback32.h" + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) + +// destroy ... +#define GO(A) \ +static uintptr_t my_destroy_fct_##A = 0; \ +static void my_destroy_##A(void* a) \ +{ \ + RunFunctionFmt(my_destroy_fct_##A, "p", a); \ +} +SUPER() +#undef GO +static void* find_destroy_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_destroy_fct_##A == (uintptr_t)fct) return my_destroy_##A; + SUPER() + #undef GO + #define GO(A) if(my_destroy_fct_##A == 0) {my_destroy_fct_##A = (uintptr_t)fct; return my_destroy_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for cairo destroy callback\n"); + return NULL; +} +static void* reverse_destroy_Fct(void* fct) +{ + if(!fct) return fct; + if(CheckBridged(my_lib->w.bridge, fct)) + return (void*)CheckBridged(my_lib->w.bridge, fct); + #define GO(A) if(my_destroy_##A == fct) return (void*)my_destroy_fct_##A; + SUPER() + #undef GO + return (void*)AddBridge(my_lib->w.bridge, vFp_32, fct, 0, NULL); +} +// cairo_write_func ... +#define GO(A) \ +static uintptr_t my_cairo_write_func_fct_##A = 0; \ +static uint32_t my_cairo_write_func_##A(void* a, void* b, uint32_t c) \ +{ \ + return RunFunctionFmt(my_cairo_write_func_fct_##A, "ppu", a, b, c); \ +} +SUPER() +#undef GO +static void* find_cairo_write_func_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_cairo_write_func_fct_##A == (uintptr_t)fct) return my_cairo_write_func_##A; + SUPER() + #undef GO + #define GO(A) if(my_cairo_write_func_fct_##A == 0) {my_cairo_write_func_fct_##A = (uintptr_t)fct; return my_cairo_write_func_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for cairo cairo_write_func callback\n"); + return NULL; +} +#undef SUPER + +EXPORT void* my32_cairo_xcb_device_get_connection(x64emu_t* emu, void* a) +{ + return add_xcb_connection32(my->cairo_xcb_device_get_connection(a)); +} + +EXPORT uint32_t my32_cairo_surface_set_user_data(x64emu_t* emu, void* surf, void* key, void* data, void* d) +{ + return my->cairo_surface_set_user_data(surf, key, data, find_destroy_Fct(d)); +} + +EXPORT uint32_t my32_cairo_set_user_data(x64emu_t* emu, void* cr, void* key, void* data, void* d) +{ + return my->cairo_set_user_data(cr, key, data, find_destroy_Fct(d)); +} + +void inplace_FT_FaceRec_shrink(void* a); +EXPORT void* my32_cairo_ft_scaled_font_lock_face(x64emu_t* emu, void* font) +{ + void* ret = my->cairo_ft_scaled_font_lock_face(font); + inplace_FT_FaceRec_shrink(ret); + return ret; +} + +EXPORT void* my32_cairo_pdf_surface_create_for_stream(x64emu_t* emu, void* f, void* closure, double width, double height) +{ + return my->cairo_pdf_surface_create_for_stream(find_cairo_write_func_Fct(f), closure, width, height); +} + +#include "wrappedlib_init32.h" \ No newline at end of file diff --git a/src/wrapped32/wrappedcairo_private.h b/src/wrapped32/wrappedcairo_private.h new file mode 100644 index 00000000..1e2dfdc7 --- /dev/null +++ b/src/wrapped32/wrappedcairo_private.h @@ -0,0 +1,399 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh... +#endif + +GO(cairo_append_path, vFpbupi_) +GO(cairo_arc, vFpddddd) +GO(cairo_arc_negative, vFpddddd) +GO(cairo_clip, vFp) +GO(cairo_clip_extents, vFppppp) +GO(cairo_clip_preserve, vFp) +GO(cairo_close_path, vFp) +//GOM(cairo_copy_clip_rectangle_list, pFEp) +GO(cairo_copy_page, vFp) +//GOM(cairo_copy_path, pFEp) +//GOM(cairo_copy_path_flat, pFEp) +GO(cairo_create, pFp) +GO(cairo_curve_to, vFpdddddd) +GO(cairo_debug_reset_static_data, vFv) +GO(cairo_destroy, vFp) +GO(cairo_device_acquire, uFp) +GO(cairo_device_destroy, vFp) +GO(cairo_device_finish, vFp) +GO(cairo_device_flush, vFp) +GO(cairo_device_get_reference_count, uFp) +GO(cairo_device_get_type, iFp) +GO(cairo_device_get_user_data, pFpp) +GO(cairo_device_observer_elapsed, dFp) +GO(cairo_device_observer_fill_elapsed, dFp) +GO(cairo_device_observer_glyphs_elapsed, dFp) +GO(cairo_device_observer_mask_elapsed, dFp) +GO(cairo_device_observer_paint_elapsed, dFp) +//GOM(cairo_device_observer_print, uFEppp) +GO(cairo_device_observer_stroke_elapsed, dFp) +GO(cairo_device_reference, pFp) +GO(cairo_device_release, vFp) +//GOM(cairo_device_set_user_data, uFEpppp) +GO(cairo_device_status, uFp) +GO(cairo_device_to_user, vFppp) +GO(cairo_device_to_user_distance, vFppp) +GO(cairo_fill, vFp) +GO(cairo_fill_extents, vFppppp) +GO(cairo_fill_preserve, vFp) +GO(cairo_font_extents, vFpp) +GO(cairo_font_face_destroy, vFp) +GO(cairo_font_face_get_reference_count, uFp) +GO(cairo_font_face_get_type, uFp) +GO(cairo_font_face_get_user_data, pFpp) +GO(cairo_font_face_reference, pFp) +//GOM(cairo_font_face_set_user_data, uFEpppp) +GO(cairo_font_face_status, uFp) +GO(cairo_font_options_copy, pFp) +GO(cairo_font_options_create, pFv) +GO(cairo_font_options_destroy, vFp) +GO(cairo_font_options_equal, iFpp) +GO(cairo_font_options_get_antialias, uFp) +GO(cairo_font_options_get_hint_metrics, uFp) +GO(cairo_font_options_get_hint_style, uFp) +GO(cairo_font_options_get_subpixel_order, uFp) +GO(cairo_font_options_hash, LFp) +GO(cairo_font_options_merge, vFpp) +GO(cairo_font_options_set_antialias, vFpu) +GO(cairo_font_options_set_hint_metrics, vFpu) +GO(cairo_font_options_set_hint_style, vFpu) +GO(cairo_font_options_set_subpixel_order, vFpu) +GO(cairo_font_options_status, uFp) +GO(cairo_format_stride_for_width, iFii) +//GO(cairo_ft_font_face_create_for_ft_face, pFpi) +GO(cairo_ft_font_face_create_for_pattern, pFp) // have an FcPattern in arg +//GO(cairo_ft_font_face_get_synthesize, uFp) +//GO(cairo_ft_font_face_set_synthesize, vFpu) +//GO(cairo_ft_font_face_unset_synthesize, vFpu) +GO(cairo_ft_font_options_substitute, vFpp) //have an FcPattern in 2nd arg +GOM(cairo_ft_scaled_font_lock_face, pFEp) +GO(cairo_ft_scaled_font_unlock_face, vFp) +GO(cairo_get_antialias, uFp) +GO(cairo_get_current_point, vFppp) +GO(cairo_get_dash, vFppp) +GO(cairo_get_dash_count, iFp) +GO(cairo_get_fill_rule, uFp) +GO(cairo_get_font_face, pFp) +GO(cairo_get_font_matrix, vFpp) +GO(cairo_get_font_options, vFpp) +GO(cairo_get_group_target, pFp) +GO(cairo_get_line_cap, uFp) +GO(cairo_get_line_join, uFp) +GO(cairo_get_line_width, dFp) +GO(cairo_get_matrix, vFpp) +GO(cairo_get_miter_limit, dFp) +GO(cairo_get_operator, uFp) +GO(cairo_get_reference_count, uFp) +GO(cairo_get_scaled_font, pFp) +GO(cairo_get_source, pFp) +GO(cairo_get_target, pFp) +GO(cairo_get_tolerance, dFp) +GO(cairo_get_user_data, pFpp) +//GOM(cairo_glyph_allocate, pFEi) +GO(cairo_glyph_extents, vFpbLdd_ip) +GO(cairo_glyph_free, vFbLdd_) +GO(cairo_glyph_path, vFpbLdd_i) +GO(cairo_has_current_point, iFp) +GO(cairo_identity_matrix, vFp) +GO(cairo_image_surface_create, pFiii) +GO(cairo_image_surface_create_for_data, pFpiiii) +GO(cairo_image_surface_create_from_png, pFp) +//GOM(cairo_image_surface_create_from_png_stream, pFEpp) +GO(cairo_image_surface_get_data, pFp) +GO(cairo_image_surface_get_format, iFp) +GO(cairo_image_surface_get_height, iFp) +GO(cairo_image_surface_get_stride, iFp) +GO(cairo_image_surface_get_width, iFp) +GO(cairo_in_clip, iFpdd) +GO(cairo_in_fill, iFpdd) +GO(cairo_in_stroke, iFpdd) +GO(cairo_line_to, vFpdd) +GO(cairo_mask, vFpp) +GO(cairo_mask_surface, vFppdd) +GO(cairo_matrix_init, vFpdddddd) +GO(cairo_matrix_init_identity, vFp) +GO(cairo_matrix_init_rotate, vFpd) +GO(cairo_matrix_init_scale, vFpdd) +GO(cairo_matrix_init_translate, vFpdd) +GO(cairo_matrix_invert, uFp) +GO(cairo_matrix_multiply, vFppp) +GO(cairo_matrix_rotate, vFpd) +GO(cairo_matrix_scale, vFpdd) +GO(cairo_matrix_transform_distance, vFppp) +GO(cairo_matrix_transform_point, vFppp) +GO(cairo_matrix_translate, vFpdd) +GO(cairo_mesh_pattern_begin_patch, vFp) +GO(cairo_mesh_pattern_curve_to, vFpdddddd) +GO(cairo_mesh_pattern_end_patch, vFp) +GO(cairo_mesh_pattern_get_control_point, uFpuupp) +GO(cairo_mesh_pattern_get_corner_color_rgba, uFpuupppp) +GO(cairo_mesh_pattern_get_patch_count, uFpp) +//GOM(cairo_mesh_pattern_get_path, pFEpu) +GO(cairo_mesh_pattern_line_to, vFpdd) +GO(cairo_mesh_pattern_move_to, vFpdd) +GO(cairo_mesh_pattern_set_control_point, vFpudd) +GO(cairo_mesh_pattern_set_corner_color_rgb, vFpuddd) +GO(cairo_mesh_pattern_set_corner_color_rgba, vFpudddd) +GO(cairo_move_to, vFpdd) +GO(cairo_new_path, vFp) +GO(cairo_new_sub_path, vFp) +GO(cairo_paint, vFp) +GO(cairo_paint_with_alpha, vFpd) +GO(cairo_path_destroy, vFbupi_) +GO(cairo_path_extents, vFppppp) +GO(cairo_pattern_add_color_stop_rgb, vFpdddd) +GO(cairo_pattern_add_color_stop_rgba, vFpddddd) +GO(cairo_pattern_create_for_surface, pFp) +GO(cairo_pattern_create_linear, pFdddd) +GO(cairo_pattern_create_mesh, pFv) +GO(cairo_pattern_create_radial, pFdddddd) +GO(cairo_pattern_create_raster_source, pFpuii) +GO(cairo_pattern_create_rgb, pFddd) +GO(cairo_pattern_create_rgba, pFdddd) +GO(cairo_pattern_destroy, vFp) +GO(cairo_pattern_get_color_stop_count, uFpp) +GO(cairo_pattern_get_color_stop_rgba, uFpippppp) +GO(cairo_pattern_get_extend, uFp) +GO(cairo_pattern_get_filter, uFp) +GO(cairo_pattern_get_linear_points, uFppppp) +GO(cairo_pattern_get_matrix, vFpp) +GO(cairo_pattern_get_radial_circles, uFppppppp) +GO(cairo_pattern_get_reference_count, uFp) +GO(cairo_pattern_get_rgba, uFppppp) +GO(cairo_pattern_get_surface, uFpbp_) +GO(cairo_pattern_get_type, uFp) +GO(cairo_pattern_get_user_data, pFpp) +GO(cairo_pattern_reference, pFp) +GO(cairo_pattern_set_extend, vFpu) +GO(cairo_pattern_set_filter, vFpu) +GO(cairo_pattern_set_matrix, vFpp) +//GOM(cairo_pattern_set_user_data, uFEpppp) +GO(cairo_pattern_status, uFp) +//GO(cairo_pdf_get_versions, vFpp) +GO(cairo_pdf_surface_create, pFpdd) +GOM(cairo_pdf_surface_create_for_stream, pFEppdd) +//GO(cairo_pdf_surface_restrict_to_version, vFpu) +GO(cairo_pdf_surface_set_size, vFpdd) +//GO(cairo_pdf_version_to_string, pFu) +GO(cairo_pop_group, pFp) +GO(cairo_pop_group_to_source, vFp) +//GO(cairo_ps_get_levels, vFpp) +//GO(cairo_ps_level_to_string, pFu) +//GO(cairo_ps_surface_create, pFpdd) +//GO(cairo_ps_surface_create_for_stream, +GO(cairo_ps_surface_dsc_begin_page_setup, vFp) +//GO(cairo_ps_surface_dsc_begin_setup, +GO(cairo_ps_surface_dsc_comment, vFpp) +//GO(cairo_ps_surface_get_eps, iFp) +//GO(cairo_ps_surface_restrict_to_level, vFpu) +//GO(cairo_ps_surface_set_eps, vFpi) +GO(cairo_ps_surface_set_size, vFpdd) +GO(cairo_push_group, vFp) +GO(cairo_push_group_with_content, vFpu) +//GOM(cairo_raster_source_pattern_get_acquire, vFEpbp_bp_) +GO(cairo_raster_source_pattern_get_callback_data, pFp) +//GOM(cairo_raster_source_pattern_get_copy, pFEp) +//GOM(cairo_raster_source_pattern_get_finish, pFEp) +//GOM(cairo_raster_source_pattern_get_snapshot, pFEp) +//GOM(cairo_raster_source_pattern_set_acquire, vFEppp) +GO(cairo_raster_source_pattern_set_callback_data, vFpp) +//GOM(cairo_raster_source_pattern_set_copy, vFEpp) +//GOM(cairo_raster_source_pattern_set_finish, vFEpp) +//GOM(cairo_raster_source_pattern_set_snapshot, vFEpp) +GO(cairo_recording_surface_create, pFup) +GO(cairo_recording_surface_get_extents, iFpp) +GO(cairo_recording_surface_ink_extents, vFppppp) +GO(cairo_rectangle, vFpdddd) +GO(cairo_rectangle_list_destroy, vFbupi_) +GO(cairo_reference, pFp) +GO(cairo_region_contains_point, iFpii) +GO(cairo_region_contains_rectangle, uFpp) +GO(cairo_region_copy, pFp) +GO(cairo_region_create, pFv) +GO(cairo_region_create_rectangle, pFp) +GO(cairo_region_create_rectangles, pFpi) +GO(cairo_region_destroy, vFp) +GO(cairo_region_equal, iFpp) +GO(cairo_region_get_extents, vFpp) +GO(cairo_region_get_rectangle, vFpip) +GO(cairo_region_intersect, uFpp) +GO(cairo_region_intersect_rectangle, uFpp) +GO(cairo_region_is_empty, iFp) +GO(cairo_region_num_rectangles, iFp) +GO(cairo_region_reference, pFp) +GO(cairo_region_status, uFp) +GO(cairo_region_subtract, uFpp) +GO(cairo_region_subtract_rectangle, uFpp) +GO(cairo_region_translate, vFpii) +GO(cairo_region_union, uFpp) +GO(cairo_region_union_rectangle, uFpp) +GO(cairo_region_xor, uFpp) +GO(cairo_region_xor_rectangle, uFpp) +GO(cairo_rel_curve_to, vFpdddddd) +GO(cairo_rel_line_to, vFpdd) +GO(cairo_rel_move_to, vFpdd) +GO(cairo_reset_clip, vFp) +GO(cairo_restore, vFp) +GO(cairo_rotate, vFpd) +GO(cairo_save, vFp) +GO(cairo_scale, vFpdd) +GO(cairo_scaled_font_create, pFpppp) +GO(cairo_scaled_font_destroy, vFp) +GO(cairo_scaled_font_extents, vFpp) +GO(cairo_scaled_font_get_ctm, vFpp) +GO(cairo_scaled_font_get_font_face, pFp) +GO(cairo_scaled_font_get_font_matrix, vFpp) +GO(cairo_scaled_font_get_font_options, vFpp) +GO(cairo_scaled_font_get_reference_count, uFp) +GO(cairo_scaled_font_get_scale_matrix, vFpp) +GO(cairo_scaled_font_get_type, uFp) +GO(cairo_scaled_font_get_user_data, pFpp) +GO(cairo_scaled_font_glyph_extents, vFpbLdd_ip) +GO(cairo_scaled_font_reference, pFp) +//GOM(cairo_scaled_font_set_user_data, uFEpppp) +GO(cairo_scaled_font_status, uFp) +GO(cairo_scaled_font_text_extents, vFppp) +//GOM(cairo_scaled_font_text_to_glyphs, uFEpddpibp_pbp_pp) +//GO(cairo_script_create, pFp) +//GO(cairo_script_create_for_stream, +//GO(cairo_script_from_recording_surface, uFpp) +//GO(cairo_script_get_mode, uFp) +//GO(cairo_script_set_mode, vFpu) +//GO(cairo_script_surface_create, pFpudd) +//GO(cairo_script_surface_create_for_target, pFpp) +//GO(cairo_script_write_comment, vFppi) +GO(cairo_select_font_face, vFppuu) +GO(cairo_set_antialias, vFpu) +GO(cairo_set_dash, vFppid) +GO(cairo_set_fill_rule, vFpu) +GO(cairo_set_font_face, vFpp) +GO(cairo_set_font_matrix, vFpp) +GO(cairo_set_font_options, vFpp) +GO(cairo_set_font_size, vFpd) +GO(cairo_set_line_cap, vFpu) +GO(cairo_set_line_join, vFpu) +GO(cairo_set_line_width, vFpd) +GO(cairo_set_matrix, vFpp) +GO(cairo_set_miter_limit, vFpd) +GO(cairo_set_operator, vFpu) +GO(cairo_set_scaled_font, vFpp) +GO(cairo_set_source, vFpp) +GO(cairo_set_source_rgb, vFpddd) +GO(cairo_set_source_rgba, vFpdddd) +GO(cairo_set_source_surface, vFppdd) +GO(cairo_set_tolerance, vFpd) +GOM(cairo_set_user_data, uFEpppp) +GO(cairo_show_glyphs, vFpbLdd_i) +GO(cairo_show_page, vFp) +GO(cairo_show_text, vFpp) +GO(cairo_show_text_glyphs, vFppibLdd_ipiu) +GO(cairo_status, uFp) +GO(cairo_status_to_string, pFu) +GO(cairo_stroke, vFp) +GO(cairo_stroke_extents, vFppppp) +GO(cairo_stroke_preserve, vFp) +GO(cairo_surface_copy_page, vFp) +GO(cairo_surface_create_for_rectangle, pFpdddd) +GO(cairo_surface_create_observer, pFpu) +GO(cairo_surface_create_similar, pFpuii) +GO(cairo_surface_create_similar_image, pFpiii) +GO(cairo_surface_destroy, vFp) +GO(cairo_surface_finish, vFp) +GO(cairo_surface_flush, vFp) +GO(cairo_surface_get_content, uFp) +GO(cairo_surface_get_device, pFp) +GO(cairo_surface_get_device_offset, vFppp) +GO(cairo_surface_get_device_scale, vFppp) +GO(cairo_surface_get_fallback_resolution, vFppp) +GO(cairo_surface_get_font_options, vFpp) +GO(cairo_surface_get_mime_data, vFppbp_bL_) +GO(cairo_surface_get_reference_count, uFp) +GO(cairo_surface_get_type, uFp) +GO(cairo_surface_get_user_data, pFpp) +GO(cairo_surface_has_show_text_glyphs, iFp) +GO(cairo_surface_map_to_image, pFpp) +GO(cairo_surface_mark_dirty, vFp) +GO(cairo_surface_mark_dirty_rectangle, vFpiiii) +//GOM(cairo_surface_observer_add_fill_callback, uFEppp) +//GOM(cairo_surface_observer_add_finish_callback, uFEppp) +//GOM(cairo_surface_observer_add_flush_callback, uFEppp) +//GOM(cairo_surface_observer_add_glyphs_callback, uFEppp) +//GOM(cairo_surface_observer_add_mask_callback, uFEppp) +//GOM(cairo_surface_observer_add_paint_callback, uFEppp) +//GOM(cairo_surface_observer_add_stroke_callback, uFEppp) +GO(cairo_surface_observer_elapsed, dFp) +//GOM(cairo_surface_observer_print, uFEppp) +GO(cairo_surface_reference, pFp) +GO(cairo_surface_set_device_offset, vFpdd) +GO(cairo_surface_set_device_scale, vFpdd) +GO(cairo_surface_set_fallback_resolution, vFpdd) +//GOM(cairo_surface_set_mime_data, uFEpppLpp) +GOM(cairo_surface_set_user_data, uFEpppp) +GO(cairo_surface_show_page, vFp) +GO(cairo_surface_status, uFp) +GO(cairo_surface_supports_mime_type, iFpp) +GO(cairo_surface_unmap_image, vFpp) +GO(cairo_surface_write_to_png, uFpp) +//GOM(cairo_surface_write_to_png_stream, uFEppp) +//GO(cairo_svg_get_versions, vFpp) +//GO(cairo_svg_surface_create, pFpdd) +//GO(cairo_svg_surface_create_for_stream, +//GO(cairo_svg_surface_restrict_to_version, vFpu) +//GO(cairo_svg_version_to_string, pFu) +GO(cairo_text_cluster_allocate, pFi) +GO(cairo_text_cluster_free, vFp) +GO(cairo_text_extents, vFppp) +GO(cairo_text_path, vFpp) +GO(cairo_toy_font_face_create, pFpuu) +GO(cairo_toy_font_face_get_family, pFp) +GO(cairo_toy_font_face_get_slant, uFp) +GO(cairo_toy_font_face_get_weight, uFp) +GO(cairo_transform, vFpp) +GO(cairo_translate, vFpdd) +GO(cairo_user_font_face_create, pFv) +//GOM(cairo_user_font_face_get_init_func, pFEp) +//GOM(cairo_user_font_face_get_render_glyph_func, pFEp) +//GOM(cairo_user_font_face_get_text_to_glyphs_func, pFEp) +//GOM(cairo_user_font_face_get_unicode_to_glyph_func, pFEp) +//GOM(cairo_user_font_face_set_init_func, vFEpp) +//GOM(cairo_user_font_face_set_render_glyph_func, vFEpp) +//GOM(cairo_user_font_face_set_text_to_glyphs_func, vFEpp) +//GOM(cairo_user_font_face_set_unicode_to_glyph_func, vFEpp) +GO(cairo_user_to_device, vFppp) +GO(cairo_user_to_device_distance, vFppp) +GO(cairo_version, iFv) +GO(cairo_version_string, pFv) +//GO(cairo_xcb_device_debug_cap_xrender_version, vFpii) +//GO(cairo_xcb_device_debug_cap_xshm_version, +//GO(cairo_xcb_device_debug_get_precision, iFp) +//GO(cairo_xcb_device_debug_set_precision, vFpi) +GOM(cairo_xcb_device_get_connection, pFEp) +//GO(cairo_xcb_surface_create, pFbupii) +//GO(cairo_xcb_surface_create_for_bitmap, pFbpuii) +//GO(cairo_xcb_surface_create_with_xrender_format, pFbpupii) +//GO(cairo_xcb_surface_set_drawable, vFpuii) +//GO(cairo_xcb_surface_set_size, vFpii) +//GO(cairo_xlib_device_debug_cap_xrender_version, vFpii) +//GO(cairo_xlib_device_debug_get_precision, iFp) +//GO(cairo_xlib_device_debug_set_precision, vFpi) +//GO(cairo_xlib_surface_create, pFpppii) +//GO(cairo_xlib_surface_create_for_bitmap, pFpLpii) +//GO(cairo_xlib_surface_create_with_xrender_format, pFpLppii) +//GO(cairo_xlib_surface_get_depth, +//GO(cairo_xlib_surface_get_display, pFp) +//GO(cairo_xlib_surface_get_drawable, LFp) +//GO(cairo_xlib_surface_get_height, iFp) +//GO(cairo_xlib_surface_get_screen, pFp) +//GO(cairo_xlib_surface_get_visual, +//GO(cairo_xlib_surface_get_width, +//GO(cairo_xlib_surface_get_xrender_format, pFp) +//GO(cairo_xlib_surface_set_drawable, vFpLii) +//GO(cairo_xlib_surface_set_size, vFpii) +//GO(cairo_xml_create, +//GO(cairo_xml_create_for_stream, +//GO(cairo_xml_for_recording_surface, +//GO(cairo_xml_surface_create, diff --git a/src/wrapped32/wrappedfontconfig.c b/src/wrapped32/wrappedfontconfig.c index 36c5b6fe..a9c28010 100644 --- a/src/wrapped32/wrappedfontconfig.c +++ b/src/wrapped32/wrappedfontconfig.c @@ -233,22 +233,11 @@ EXPORT uint32_t my32_FcFreeTypeCharIndex(x64emu_t* emu, void* face, uint32_t u) return ret; } -typedef struct my_FcFontSet_s { - int nfont; - int sfont; - void** fonts; //FcPattern -} my_FcFontSet_t; -typedef struct my_FcFontSet_32_s { - int nfont; - int sfont; - ptr_t fonts; //FcPattern** -} my_FcFontSet_32_t; - void* inplace_FcFontSet_shrink(void* set) { if(!set) return set; - my_FcFontSet_t* src = set; - my_FcFontSet_32_t* dst = set; + FcFontSet_t* src = set; + FcFontSet_32_t* dst = set; for(int i=0; i<src->nfont; ++i) { ((ptr_t*)src->fonts)[i] = to_ptrv(src->fonts[i]); @@ -261,8 +250,8 @@ void* inplace_FcFontSet_shrink(void* set) } void* inplace_FcFontSet_enlarge(void* set) { - my_FcFontSet_32_t* src = set; - my_FcFontSet_t* dst = set; + FcFontSet_32_t* src = set; + FcFontSet_t* dst = set; dst->fonts = from_ptrv(src->fonts); dst->sfont = src->sfont; |