diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-04-18 13:16:54 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-04-18 13:16:54 +0200 |
| commit | d529bf3c0c35bd156c6fa7998f937b99950b262e (patch) | |
| tree | ee0230b7b04967c4794326d3e4a6b14b8ea12558 /src | |
| parent | 802c5a9d5b8faa2a103be6aed5ad7e25d3604c17 (diff) | |
| download | box64-d529bf3c0c35bd156c6fa7998f937b99950b262e.tar.gz box64-d529bf3c0c35bd156c6fa7998f937b99950b262e.zip | |
Added wrapped libpng16
Diffstat (limited to 'src')
| -rwxr-xr-x | src/library_list.h | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 13 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedpng16types.h | 31 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 33 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 13 | ||||
| -rwxr-xr-x | src/wrapped/wrappedpng16.c | 398 | ||||
| -rwxr-xr-x | src/wrapped/wrappedpng16_private.h | 101 |
7 files changed, 590 insertions, 1 deletions
diff --git a/src/library_list.h b/src/library_list.h index 5dced694..9736f5c2 100755 --- a/src/library_list.h +++ b/src/library_list.h @@ -33,7 +33,7 @@ GO("libvorbis.so.0", libvorbis) GO("libogg.so.0", libogg) GO("libFLAC.so.8", flac) //GO("libpng12.so.0", png12) -//GO("libpng16.so.16", png16) +GO("libpng16.so.16", png16) GO("libXxf86vm.so.1", libxxf86vm) GO("libXinerama.so.1", xinerama) GO("libXrandr.so.2", libxrandr) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 874c534e..4d73c063 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -125,6 +125,7 @@ #() CFui #() CFpi #() CFpu +#() CFpp #() uFEp #() uFiu #() uFui @@ -230,6 +231,7 @@ #() vFpLL #() vFppi #() vFppu +#() vFppd #() vFppL #() vFppp #() iFEiw @@ -426,6 +428,7 @@ #() vFpiip #() vFpiuL #() vFpiup +#() vFpipi #() vFpipp #() vFpuuu #() vFpudd @@ -442,6 +445,7 @@ #() vFppdd #() vFpppi #() vFpppu +#() vFpppL #() vFpppp #() cFpiii #() iFEiip @@ -532,6 +536,7 @@ #() uFpuuu #() uFppiu #() uFpppi +#() uFpppp #() UFpipp #() dFppiL #() lFEpip @@ -662,6 +667,7 @@ #() vFppiup #() vFppipp #() vFppWui +#() vFppuui #() vFpppii #() vFpppip #() vFppppi @@ -783,6 +789,7 @@ #() vFEiiipp #() vFEpuipp #() vFEpLLpp +#() vFEppppp #() vFiiiiii #() vFiiiuil #() vFiuippp @@ -844,6 +851,7 @@ #() vFppLppi #() vFppLppp #() vFpppiii +#() vFpppipu #() vFppppii #() vFpppppi #() vFpppppp @@ -1066,6 +1074,7 @@ #() iFppppiipi #() iFpppppppp #() uFuipppppp +#() pFEppppppp #() pFuiiiuuuu #() pFuupupipp #() pFpCuwwWWu @@ -1091,6 +1100,7 @@ #() vFpipiuiipp #() vFpipppiipi #() vFppiiipiii +#() vFppuuiiiii #() vFpplpppppi #() vFpppppippp #() iFEpiiiiipi @@ -1106,6 +1116,7 @@ #() iFpppiipiiu #() iFppppppppu #() iFppppppppp +#() uFppppppppp #() pFEppiiuuLi #() pFEppuippuu #() pFpiiiiuuuu @@ -1129,6 +1140,7 @@ #() vFuffiiffiip #() vFuddiiddiip #() vFffffffffff +#() vFppdddddddd #() vFpppppppppp #() iFEppppppppp #() iFiiiiiiiiip @@ -1136,6 +1148,7 @@ #() iFppuuiiiiii #() iFppuuiiuupi #() iFppppiiuuii +#() uFpppppppppp #() pFpCuWCCuuCW #() pFpuuuwwwwWW #() pFppuiipuuii diff --git a/src/wrapped/generated/wrappedpng16types.h b/src/wrapped/generated/wrappedpng16types.h new file mode 100644 index 00000000..27b20f38 --- /dev/null +++ b/src/wrapped/generated/wrappedpng16types.h @@ -0,0 +1,31 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * + *******************************************************************/ +#ifndef __wrappedpng16TYPES_H_ +#define __wrappedpng16TYPES_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 (*vFpp_t)(void*, void*); +typedef void (*vFppp_t)(void*, void*, void*); +typedef void (*vFpppp_t)(void*, void*, void*, void*); +typedef void* (*pFpppp_t)(void*, void*, void*, void*); +typedef void (*vFppppp_t)(void*, void*, void*, void*, void*); +typedef void* (*pFppppppp_t)(void*, void*, void*, void*, void*, void*, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(png_set_read_user_transform_fn, vFpp_t) \ + GO(png_set_read_fn, vFppp_t) \ + GO(png_set_error_fn, vFpppp_t) \ + GO(png_set_write_fn, vFpppp_t) \ + GO(png_create_read_struct, pFpppp_t) \ + GO(png_set_progressive_read_fn, vFppppp_t) \ + GO(png_create_read_struct_2, pFppppppp_t) \ + GO(png_create_write_struct_2, pFppppppp_t) + +#endif // __wrappedpng16TYPES_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 280af39d..dfef1b84 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -159,6 +159,7 @@ typedef int64_t (*IFpu_t)(void*, uint64_t); typedef uint8_t (*CFui_t)(uint64_t, int64_t); typedef uint8_t (*CFpi_t)(void*, int64_t); typedef uint8_t (*CFpu_t)(void*, uint64_t); +typedef uint8_t (*CFpp_t)(void*, void*); typedef uint64_t (*uFEp_t)(x64emu_t*, void*); typedef uint64_t (*uFiu_t)(int64_t, uint64_t); typedef uint64_t (*uFui_t)(uint64_t, int64_t); @@ -264,6 +265,7 @@ typedef void (*vFpLi_t)(void*, uintptr_t, int64_t); typedef void (*vFpLL_t)(void*, uintptr_t, uintptr_t); typedef void (*vFppi_t)(void*, void*, int64_t); typedef void (*vFppu_t)(void*, void*, uint64_t); +typedef void (*vFppd_t)(void*, void*, double); typedef void (*vFppL_t)(void*, void*, uintptr_t); typedef void (*vFppp_t)(void*, void*, void*); typedef int64_t (*iFEiw_t)(x64emu_t*, int64_t, int16_t); @@ -460,6 +462,7 @@ typedef void (*vFpiii_t)(void*, int64_t, int64_t, int64_t); typedef void (*vFpiip_t)(void*, int64_t, int64_t, void*); typedef void (*vFpiuL_t)(void*, int64_t, uint64_t, uintptr_t); typedef void (*vFpiup_t)(void*, int64_t, uint64_t, void*); +typedef void (*vFpipi_t)(void*, int64_t, void*, int64_t); typedef void (*vFpipp_t)(void*, int64_t, void*, void*); typedef void (*vFpuuu_t)(void*, uint64_t, uint64_t, uint64_t); typedef void (*vFpudd_t)(void*, uint64_t, double, double); @@ -476,6 +479,7 @@ typedef void (*vFppup_t)(void*, void*, uint64_t, void*); typedef void (*vFppdd_t)(void*, void*, double, double); typedef void (*vFpppi_t)(void*, void*, void*, int64_t); typedef void (*vFpppu_t)(void*, void*, void*, uint64_t); +typedef void (*vFpppL_t)(void*, void*, void*, uintptr_t); typedef void (*vFpppp_t)(void*, void*, void*, void*); typedef int8_t (*cFpiii_t)(void*, int64_t, int64_t, int64_t); typedef int64_t (*iFEiip_t)(x64emu_t*, int64_t, int64_t, void*); @@ -566,6 +570,7 @@ typedef uint64_t (*uFpuip_t)(void*, uint64_t, int64_t, void*); typedef uint64_t (*uFpuuu_t)(void*, uint64_t, uint64_t, uint64_t); typedef uint64_t (*uFppiu_t)(void*, void*, int64_t, uint64_t); typedef uint64_t (*uFpppi_t)(void*, void*, void*, int64_t); +typedef uint64_t (*uFpppp_t)(void*, void*, void*, void*); typedef uint64_t (*UFpipp_t)(void*, int64_t, void*, void*); typedef double (*dFppiL_t)(void*, void*, int64_t, uintptr_t); typedef intptr_t (*lFEpip_t)(x64emu_t*, void*, int64_t, void*); @@ -696,6 +701,7 @@ typedef void (*vFppiip_t)(void*, void*, int64_t, int64_t, void*); typedef void (*vFppiup_t)(void*, void*, int64_t, uint64_t, void*); typedef void (*vFppipp_t)(void*, void*, int64_t, void*, void*); typedef void (*vFppWui_t)(void*, void*, uint16_t, uint64_t, int64_t); +typedef void (*vFppuui_t)(void*, void*, uint64_t, uint64_t, int64_t); typedef void (*vFpppii_t)(void*, void*, void*, int64_t, int64_t); typedef void (*vFpppip_t)(void*, void*, void*, int64_t, void*); typedef void (*vFppppi_t)(void*, void*, void*, void*, int64_t); @@ -817,6 +823,7 @@ typedef void* (*pFppppp_t)(void*, void*, void*, void*, void*); typedef void (*vFEiiipp_t)(x64emu_t*, int64_t, int64_t, int64_t, void*, void*); typedef void (*vFEpuipp_t)(x64emu_t*, void*, uint64_t, int64_t, void*, void*); typedef void (*vFEpLLpp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, void*, void*); +typedef void (*vFEppppp_t)(x64emu_t*, void*, void*, void*, void*, void*); typedef void (*vFiiiiii_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t); typedef void (*vFiiiuil_t)(int64_t, int64_t, int64_t, uint64_t, int64_t, intptr_t); typedef void (*vFiuippp_t)(int64_t, uint64_t, int64_t, void*, void*, void*); @@ -878,6 +885,7 @@ typedef void (*vFpplppp_t)(void*, void*, intptr_t, void*, void*, void*); typedef void (*vFppLppi_t)(void*, void*, uintptr_t, void*, void*, int64_t); typedef void (*vFppLppp_t)(void*, void*, uintptr_t, void*, void*, void*); typedef void (*vFpppiii_t)(void*, void*, void*, int64_t, int64_t, int64_t); +typedef void (*vFpppipu_t)(void*, void*, void*, int64_t, void*, uint64_t); typedef void (*vFppppii_t)(void*, void*, void*, void*, int64_t, int64_t); typedef void (*vFpppppi_t)(void*, void*, void*, void*, void*, int64_t); typedef void (*vFpppppp_t)(void*, void*, void*, void*, void*, void*); @@ -1100,6 +1108,7 @@ typedef int64_t (*iFpppipppp_t)(void*, void*, void*, int64_t, void*, void*, void typedef int64_t (*iFppppiipi_t)(void*, void*, void*, void*, int64_t, int64_t, void*, int64_t); typedef int64_t (*iFpppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*); typedef uint64_t (*uFuipppppp_t)(uint64_t, int64_t, void*, void*, void*, void*, void*, void*); +typedef void* (*pFEppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*); typedef void* (*pFuiiiuuuu_t)(uint64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t, uint64_t, uint64_t); typedef void* (*pFuupupipp_t)(uint64_t, uint64_t, void*, uint64_t, void*, int64_t, void*, void*); typedef void* (*pFpCuwwWWu_t)(void*, uint8_t, uint64_t, int16_t, int16_t, uint16_t, uint16_t, uint64_t); @@ -1125,6 +1134,7 @@ typedef void (*vFddddddddd_t)(double, double, double, double, double, double, do typedef void (*vFpipiuiipp_t)(void*, int64_t, void*, int64_t, uint64_t, int64_t, int64_t, void*, void*); typedef void (*vFpipppiipi_t)(void*, int64_t, void*, void*, void*, int64_t, int64_t, void*, int64_t); typedef void (*vFppiiipiii_t)(void*, void*, int64_t, int64_t, int64_t, void*, int64_t, int64_t, int64_t); +typedef void (*vFppuuiiiii_t)(void*, void*, uint64_t, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t); typedef void (*vFpplpppppi_t)(void*, void*, intptr_t, void*, void*, void*, void*, void*, int64_t); typedef void (*vFpppppippp_t)(void*, void*, void*, void*, void*, int64_t, void*, void*, void*); typedef int64_t (*iFEpiiiiipi_t)(x64emu_t*, void*, int64_t, int64_t, int64_t, int64_t, int64_t, void*, int64_t); @@ -1140,6 +1150,7 @@ typedef int64_t (*iFpppiiuuii_t)(void*, void*, void*, int64_t, int64_t, uint64_t typedef int64_t (*iFpppiipiiu_t)(void*, void*, void*, int64_t, int64_t, void*, int64_t, int64_t, uint64_t); typedef int64_t (*iFppppppppu_t)(void*, void*, void*, void*, void*, void*, void*, void*, uint64_t); typedef int64_t (*iFppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*); +typedef uint64_t (*uFppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef void* (*pFEppiiuuLi_t)(x64emu_t*, void*, void*, int64_t, int64_t, uint64_t, uint64_t, uintptr_t, int64_t); typedef void* (*pFEppuippuu_t)(x64emu_t*, void*, void*, uint64_t, int64_t, void*, void*, uint64_t, uint64_t); typedef void* (*pFpiiiiuuuu_t)(void*, int64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t, uint64_t, uint64_t); @@ -1163,6 +1174,7 @@ typedef void (*vFuupiiupuuf_t)(uint64_t, uint64_t, void*, int64_t, int64_t, uint typedef void (*vFuffiiffiip_t)(uint64_t, float, float, int64_t, int64_t, float, float, int64_t, int64_t, void*); typedef void (*vFuddiiddiip_t)(uint64_t, double, double, int64_t, int64_t, double, double, int64_t, int64_t, void*); typedef void (*vFffffffffff_t)(float, float, float, float, float, float, float, float, float, float); +typedef void (*vFppdddddddd_t)(void*, void*, double, double, double, double, double, double, double, double); typedef void (*vFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef int64_t (*iFEppppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef int64_t (*iFiiiiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*); @@ -1170,6 +1182,7 @@ typedef int64_t (*iFpuupiuiipp_t)(void*, uint64_t, uint64_t, void*, int64_t, uin typedef int64_t (*iFppuuiiiiii_t)(void*, void*, uint64_t, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t); typedef int64_t (*iFppuuiiuupi_t)(void*, void*, uint64_t, uint64_t, int64_t, int64_t, uint64_t, uint64_t, void*, int64_t); typedef int64_t (*iFppppiiuuii_t)(void*, void*, void*, void*, int64_t, int64_t, uint64_t, uint64_t, int64_t, int64_t); +typedef uint64_t (*uFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef void* (*pFpCuWCCuuCW_t)(void*, uint8_t, uint64_t, uint16_t, uint8_t, uint8_t, uint64_t, uint64_t, uint8_t, uint16_t); typedef void* (*pFpuuuwwwwWW_t)(void*, uint64_t, uint64_t, uint64_t, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t); typedef void* (*pFppuiipuuii_t)(void*, void*, uint64_t, int64_t, int64_t, void*, uint64_t, uint64_t, int64_t, int64_t); @@ -1372,6 +1385,7 @@ void IFpu(x64emu_t *emu, uintptr_t fcn) { IFpu_t fn = (IFpu_t)fcn; R_RAX=(int64_ void CFui(x64emu_t *emu, uintptr_t fcn) { CFui_t fn = (CFui_t)fcn; R_RAX=(unsigned char)fn((uint64_t)R_RDI, (int64_t)R_RSI); } void CFpi(x64emu_t *emu, uintptr_t fcn) { CFpi_t fn = (CFpi_t)fcn; R_RAX=(unsigned char)fn((void*)R_RDI, (int64_t)R_RSI); } void CFpu(x64emu_t *emu, uintptr_t fcn) { CFpu_t fn = (CFpu_t)fcn; R_RAX=(unsigned char)fn((void*)R_RDI, (uint64_t)R_RSI); } +void CFpp(x64emu_t *emu, uintptr_t fcn) { CFpp_t fn = (CFpp_t)fcn; R_RAX=(unsigned char)fn((void*)R_RDI, (void*)R_RSI); } void uFEp(x64emu_t *emu, uintptr_t fcn) { uFEp_t fn = (uFEp_t)fcn; R_RAX=(uint64_t)fn(emu, (void*)R_RDI); } void uFiu(x64emu_t *emu, uintptr_t fcn) { uFiu_t fn = (uFiu_t)fcn; R_RAX=(uint64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI); } void uFui(x64emu_t *emu, uintptr_t fcn) { uFui_t fn = (uFui_t)fcn; R_RAX=(uint64_t)fn((uint64_t)R_RDI, (int64_t)R_RSI); } @@ -1477,6 +1491,7 @@ void vFpLi(x64emu_t *emu, uintptr_t fcn) { vFpLi_t fn = (vFpLi_t)fcn; fn((void*) void vFpLL(x64emu_t *emu, uintptr_t fcn) { vFpLL_t fn = (vFpLL_t)fcn; fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX); } void vFppi(x64emu_t *emu, uintptr_t fcn) { vFppi_t fn = (vFppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX); } void vFppu(x64emu_t *emu, uintptr_t fcn) { vFppu_t fn = (vFppu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX); } +void vFppd(x64emu_t *emu, uintptr_t fcn) { vFppd_t fn = (vFppd_t)fcn; fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0]); } void vFppL(x64emu_t *emu, uintptr_t fcn) { vFppL_t fn = (vFppL_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); } void vFppp(x64emu_t *emu, uintptr_t fcn) { vFppp_t fn = (vFppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFEiw(x64emu_t *emu, uintptr_t fcn) { iFEiw_t fn = (iFEiw_t)fcn; R_RAX=(int64_t)fn(emu, (int64_t)R_RDI, (int16_t)R_RSI); } @@ -1673,6 +1688,7 @@ void vFpiii(x64emu_t *emu, uintptr_t fcn) { vFpiii_t fn = (vFpiii_t)fcn; fn((voi void vFpiip(x64emu_t *emu, uintptr_t fcn) { vFpiip_t fn = (vFpiip_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); } void vFpiuL(x64emu_t *emu, uintptr_t fcn) { vFpiuL_t fn = (vFpiuL_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (uintptr_t)R_RCX); } void vFpiup(x64emu_t *emu, uintptr_t fcn) { vFpiup_t fn = (vFpiup_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX); } +void vFpipi(x64emu_t *emu, uintptr_t fcn) { vFpipi_t fn = (vFpipi_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX); } void vFpipp(x64emu_t *emu, uintptr_t fcn) { vFpipp_t fn = (vFpipp_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void vFpuuu(x64emu_t *emu, uintptr_t fcn) { vFpuuu_t fn = (vFpuuu_t)fcn; fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX); } void vFpudd(x64emu_t *emu, uintptr_t fcn) { vFpudd_t fn = (vFpudd_t)fcn; fn((void*)R_RDI, (uint64_t)R_RSI, emu->xmm[0].d[0], emu->xmm[1].d[0]); } @@ -1689,6 +1705,7 @@ void vFppup(x64emu_t *emu, uintptr_t fcn) { vFppup_t fn = (vFppup_t)fcn; fn((voi void vFppdd(x64emu_t *emu, uintptr_t fcn) { vFppdd_t fn = (vFppdd_t)fcn; fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], emu->xmm[1].d[0]); } void vFpppi(x64emu_t *emu, uintptr_t fcn) { vFpppi_t fn = (vFpppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX); } void vFpppu(x64emu_t *emu, uintptr_t fcn) { vFpppu_t fn = (vFpppu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint64_t)R_RCX); } +void vFpppL(x64emu_t *emu, uintptr_t fcn) { vFpppL_t fn = (vFpppL_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void vFpppp(x64emu_t *emu, uintptr_t fcn) { vFpppp_t fn = (vFpppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void cFpiii(x64emu_t *emu, uintptr_t fcn) { cFpiii_t fn = (cFpiii_t)fcn; R_RAX=fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); } void iFEiip(x64emu_t *emu, uintptr_t fcn) { iFEiip_t fn = (iFEiip_t)fcn; R_RAX=(int64_t)fn(emu, (int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX); } @@ -1779,6 +1796,7 @@ void uFpuip(x64emu_t *emu, uintptr_t fcn) { uFpuip_t fn = (uFpuip_t)fcn; R_RAX=( void uFpuuu(x64emu_t *emu, uintptr_t fcn) { uFpuuu_t fn = (uFpuuu_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX); } void uFppiu(x64emu_t *emu, uintptr_t fcn) { uFppiu_t fn = (uFppiu_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX); } void uFpppi(x64emu_t *emu, uintptr_t fcn) { uFpppi_t fn = (uFpppi_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX); } +void uFpppp(x64emu_t *emu, uintptr_t fcn) { uFpppp_t fn = (uFpppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void UFpipp(x64emu_t *emu, uintptr_t fcn) { UFpipp_t fn = (UFpipp_t)fcn; R_RAX=fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void dFppiL(x64emu_t *emu, uintptr_t fcn) { dFppiL_t fn = (dFppiL_t)fcn; emu->xmm[0].d[0]=fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (uintptr_t)R_RCX); } void lFEpip(x64emu_t *emu, uintptr_t fcn) { lFEpip_t fn = (lFEpip_t)fcn; R_RAX=(intptr_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX); } @@ -1909,6 +1927,7 @@ void vFppiip(x64emu_t *emu, uintptr_t fcn) { vFppiip_t fn = (vFppiip_t)fcn; fn(( void vFppiup(x64emu_t *emu, uintptr_t fcn) { vFppiup_t fn = (vFppiup_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (void*)R_R8); } void vFppipp(x64emu_t *emu, uintptr_t fcn) { vFppipp_t fn = (vFppipp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void vFppWui(x64emu_t *emu, uintptr_t fcn) { vFppWui_t fn = (vFppWui_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint16_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8); } +void vFppuui(x64emu_t *emu, uintptr_t fcn) { vFppuui_t fn = (vFppuui_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8); } void vFpppii(x64emu_t *emu, uintptr_t fcn) { vFpppii_t fn = (vFpppii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8); } void vFpppip(x64emu_t *emu, uintptr_t fcn) { vFpppip_t fn = (vFpppip_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8); } void vFppppi(x64emu_t *emu, uintptr_t fcn) { vFppppi_t fn = (vFppppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); } @@ -2030,6 +2049,7 @@ void pFppppp(x64emu_t *emu, uintptr_t fcn) { pFppppp_t fn = (pFppppp_t)fcn; R_RA void vFEiiipp(x64emu_t *emu, uintptr_t fcn) { vFEiiipp_t fn = (vFEiiipp_t)fcn; fn(emu, (int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void vFEpuipp(x64emu_t *emu, uintptr_t fcn) { vFEpuipp_t fn = (vFEpuipp_t)fcn; fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void vFEpLLpp(x64emu_t *emu, uintptr_t fcn) { vFEpLLpp_t fn = (vFEpLLpp_t)fcn; fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8); } +void vFEppppp(x64emu_t *emu, uintptr_t fcn) { vFEppppp_t fn = (vFEppppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void vFiiiiii(x64emu_t *emu, uintptr_t fcn) { vFiiiiii_t fn = (vFiiiiii_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void vFiiiuil(x64emu_t *emu, uintptr_t fcn) { vFiiiuil_t fn = (vFiiiuil_t)fcn; fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (intptr_t)R_R9); } void vFiuippp(x64emu_t *emu, uintptr_t fcn) { vFiuippp_t fn = (vFiuippp_t)fcn; fn((int64_t)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } @@ -2091,6 +2111,7 @@ void vFpplppp(x64emu_t *emu, uintptr_t fcn) { vFpplppp_t fn = (vFpplppp_t)fcn; f void vFppLppi(x64emu_t *emu, uintptr_t fcn) { vFppLppi_t fn = (vFppLppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9); } void vFppLppp(x64emu_t *emu, uintptr_t fcn) { vFppLppp_t fn = (vFppLppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void vFpppiii(x64emu_t *emu, uintptr_t fcn) { vFpppiii_t fn = (vFpppiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } +void vFpppipu(x64emu_t *emu, uintptr_t fcn) { vFpppipu_t fn = (vFpppipu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (uint64_t)R_R9); } void vFppppii(x64emu_t *emu, uintptr_t fcn) { vFppppii_t fn = (vFppppii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void vFpppppi(x64emu_t *emu, uintptr_t fcn) { vFpppppi_t fn = (vFpppppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9); } void vFpppppp(x64emu_t *emu, uintptr_t fcn) { vFpppppp_t fn = (vFpppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } @@ -2313,6 +2334,7 @@ void iFpppipppp(x64emu_t *emu, uintptr_t fcn) { iFpppipppp_t fn = (iFpppipppp_t) void iFppppiipi(x64emu_t *emu, uintptr_t fcn) { iFppppiipi_t fn = (iFppppiipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); } void iFpppppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppppp_t fn = (iFpppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void uFuipppppp(x64emu_t *emu, uintptr_t fcn) { uFuipppppp_t fn = (uFuipppppp_t)fcn; R_RAX=(uint64_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } +void pFEppppppp(x64emu_t *emu, uintptr_t fcn) { pFEppppppp_t fn = (pFEppppppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFuiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFuiiiuuuu_t fn = (pFuiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16)); } void pFuupupipp(x64emu_t *emu, uintptr_t fcn) { pFuupupipp_t fn = (pFuupupipp_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void pFpCuwwWWu(x64emu_t *emu, uintptr_t fcn) { pFpCuwwWWu_t fn = (pFpCuwwWWu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint64_t)R_RDX, (int16_t)R_RCX, (int16_t)R_R8, (uint16_t)R_R9, *(uint16_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16)); } @@ -2338,6 +2360,7 @@ void vFddddddddd(x64emu_t *emu, uintptr_t fcn) { vFddddddddd_t fn = (vFddddddddd void vFpipiuiipp(x64emu_t *emu, uintptr_t fcn) { vFpipiuiipp_t fn = (vFpipiuiipp_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (uint64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } void vFpipppiipi(x64emu_t *emu, uintptr_t fcn) { vFpipppiipi_t fn = (vFpipppiipi_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); } void vFppiiipiii(x64emu_t *emu, uintptr_t fcn) { vFppiiipiii_t fn = (vFppiiipiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); } +void vFppuuiiiii(x64emu_t *emu, uintptr_t fcn) { vFppuuiiiii_t fn = (vFppuuiiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); } void vFpplpppppi(x64emu_t *emu, uintptr_t fcn) { vFpplpppppi_t fn = (vFpplpppppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); } void vFpppppippp(x64emu_t *emu, uintptr_t fcn) { vFpppppippp_t fn = (vFpppppippp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } void iFEpiiiiipi(x64emu_t *emu, uintptr_t fcn) { iFEpiiiiipi_t fn = (iFEpiiiiipi_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); } @@ -2353,6 +2376,7 @@ void iFpppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFpppiiuuii_t fn = (iFpppiiuuii void iFpppiipiiu(x64emu_t *emu, uintptr_t fcn) { iFpppiipiiu_t fn = (iFpppiipiiu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24)); } void iFppppppppu(x64emu_t *emu, uintptr_t fcn) { iFppppppppu_t fn = (iFppppppppu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uint64_t*)(R_RSP + 24)); } void iFppppppppp(x64emu_t *emu, uintptr_t fcn) { iFppppppppp_t fn = (iFppppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } +void uFppppppppp(x64emu_t *emu, uintptr_t fcn) { uFppppppppp_t fn = (uFppppppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } void pFEppiiuuLi(x64emu_t *emu, uintptr_t fcn) { pFEppiiuuLi_t fn = (pFEppiiuuLi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); } void pFEppuippuu(x64emu_t *emu, uintptr_t fcn) { pFEppuippuu_t fn = (pFEppuippuu_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16)); } void pFpiiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiuuuu_t fn = (pFpiiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24)); } @@ -2376,6 +2400,7 @@ void vFuupiiupuuf(x64emu_t *emu, uintptr_t fcn) { vFuupiiupuuf_t fn = (vFuupiiup void vFuffiiffiip(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiip_t fn = (vFuffiiffiip_t)fcn; fn((uint64_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], (int64_t)R_RSI, (int64_t)R_RDX, emu->xmm[2].f[0], emu->xmm[3].f[0], (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9); } void vFuddiiddiip(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiip_t fn = (vFuddiiddiip_t)fcn; fn((uint64_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int64_t)R_RSI, (int64_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0], (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9); } void vFffffffffff(x64emu_t *emu, uintptr_t fcn) { vFffffffffff_t fn = (vFffffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16)); } +void vFppdddddddd(x64emu_t *emu, uintptr_t fcn) { vFppdddddddd_t fn = (vFppdddddddd_t)fcn; fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0], emu->xmm[6].d[0], emu->xmm[7].d[0]); } void vFpppppppppp(x64emu_t *emu, uintptr_t fcn) { vFpppppppppp_t fn = (vFpppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFEppppppppp(x64emu_t *emu, uintptr_t fcn) { iFEppppppppp_t fn = (iFEppppppppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiip_t fn = (iFiiiiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); } @@ -2383,6 +2408,7 @@ void iFpuupiuiipp(x64emu_t *emu, uintptr_t fcn) { iFpuupiuiipp_t fn = (iFpuupiui void iFppuuiiiiii(x64emu_t *emu, uintptr_t fcn) { iFppuuiiiiii_t fn = (iFppuuiiiiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32)); } void iFppuuiiuupi(x64emu_t *emu, uintptr_t fcn) { iFppuuiiuupi_t fn = (iFppuuiiuupi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(int64_t*)(R_RSP + 32)); } void iFppppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFppppiiuuii_t fn = (iFppppiiuuii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32)); } +void uFpppppppppp(x64emu_t *emu, uintptr_t fcn) { uFpppppppppp_t fn = (uFpppppppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void pFpCuWCCuuCW(x64emu_t *emu, uintptr_t fcn) { pFpCuWCCuuCW_t fn = (pFpCuWCCuuCW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint64_t)R_RDX, (uint16_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(uint8_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32)); } void pFpuuuwwwwWW(x64emu_t *emu, uintptr_t fcn) { pFpuuuwwwwWW_t fn = (pFpuuuwwwwWW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(int16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16), *(uint16_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32)); } void pFppuiipuuii(x64emu_t *emu, uintptr_t fcn) { pFppuiipuuii_t fn = (pFppuiipuuii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32)); } @@ -2579,6 +2605,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &CFui) return 1; if (fun == &CFpi) return 1; if (fun == &CFpu) return 1; + if (fun == &CFpp) return 1; if (fun == &uFiu) return 1; if (fun == &uFui) return 1; if (fun == &uFuu) return 1; @@ -2671,6 +2698,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFpLL) return 1; if (fun == &vFppi) return 1; if (fun == &vFppu) return 1; + if (fun == &vFppd) return 1; if (fun == &vFppL) return 1; if (fun == &vFppp) return 1; if (fun == &iFiwC) return 1; @@ -2837,6 +2865,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFpiip) return 1; if (fun == &vFpiuL) return 1; if (fun == &vFpiup) return 1; + if (fun == &vFpipi) return 1; if (fun == &vFpipp) return 1; if (fun == &vFpuuu) return 1; if (fun == &vFpudd) return 1; @@ -2853,6 +2882,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFppdd) return 1; if (fun == &vFpppi) return 1; if (fun == &vFpppu) return 1; + if (fun == &vFpppL) return 1; if (fun == &vFpppp) return 1; if (fun == &cFpiii) return 1; if (fun == &iFiiii) return 1; @@ -2925,6 +2955,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &uFpuuu) return 1; if (fun == &uFppiu) return 1; if (fun == &uFpppi) return 1; + if (fun == &uFpppp) return 1; if (fun == &UFpipp) return 1; if (fun == &dFppiL) return 1; if (fun == &lFiipL) return 1; @@ -3041,6 +3072,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFppiup) return 1; if (fun == &vFppipp) return 1; if (fun == &vFppWui) return 1; + if (fun == &vFppuui) return 1; if (fun == &vFpppii) return 1; if (fun == &vFpppip) return 1; if (fun == &vFppppi) return 1; @@ -3193,6 +3225,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFppLppi) return 1; if (fun == &vFppLppp) return 1; if (fun == &vFpppiii) return 1; + if (fun == &vFpppipu) return 1; if (fun == &vFppppii) return 1; if (fun == &vFpppppi) return 1; if (fun == &vFpppppp) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 59fec967..59394a25 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -155,6 +155,7 @@ void IFpu(x64emu_t *emu, uintptr_t fnc); void CFui(x64emu_t *emu, uintptr_t fnc); void CFpi(x64emu_t *emu, uintptr_t fnc); void CFpu(x64emu_t *emu, uintptr_t fnc); +void CFpp(x64emu_t *emu, uintptr_t fnc); void uFEp(x64emu_t *emu, uintptr_t fnc); void uFiu(x64emu_t *emu, uintptr_t fnc); void uFui(x64emu_t *emu, uintptr_t fnc); @@ -260,6 +261,7 @@ void vFpLi(x64emu_t *emu, uintptr_t fnc); void vFpLL(x64emu_t *emu, uintptr_t fnc); void vFppi(x64emu_t *emu, uintptr_t fnc); void vFppu(x64emu_t *emu, uintptr_t fnc); +void vFppd(x64emu_t *emu, uintptr_t fnc); void vFppL(x64emu_t *emu, uintptr_t fnc); void vFppp(x64emu_t *emu, uintptr_t fnc); void iFEiw(x64emu_t *emu, uintptr_t fnc); @@ -456,6 +458,7 @@ void vFpiii(x64emu_t *emu, uintptr_t fnc); void vFpiip(x64emu_t *emu, uintptr_t fnc); void vFpiuL(x64emu_t *emu, uintptr_t fnc); void vFpiup(x64emu_t *emu, uintptr_t fnc); +void vFpipi(x64emu_t *emu, uintptr_t fnc); void vFpipp(x64emu_t *emu, uintptr_t fnc); void vFpuuu(x64emu_t *emu, uintptr_t fnc); void vFpudd(x64emu_t *emu, uintptr_t fnc); @@ -472,6 +475,7 @@ void vFppup(x64emu_t *emu, uintptr_t fnc); void vFppdd(x64emu_t *emu, uintptr_t fnc); void vFpppi(x64emu_t *emu, uintptr_t fnc); void vFpppu(x64emu_t *emu, uintptr_t fnc); +void vFpppL(x64emu_t *emu, uintptr_t fnc); void vFpppp(x64emu_t *emu, uintptr_t fnc); void cFpiii(x64emu_t *emu, uintptr_t fnc); void iFEiip(x64emu_t *emu, uintptr_t fnc); @@ -562,6 +566,7 @@ void uFpuip(x64emu_t *emu, uintptr_t fnc); void uFpuuu(x64emu_t *emu, uintptr_t fnc); void uFppiu(x64emu_t *emu, uintptr_t fnc); void uFpppi(x64emu_t *emu, uintptr_t fnc); +void uFpppp(x64emu_t *emu, uintptr_t fnc); void UFpipp(x64emu_t *emu, uintptr_t fnc); void dFppiL(x64emu_t *emu, uintptr_t fnc); void lFEpip(x64emu_t *emu, uintptr_t fnc); @@ -692,6 +697,7 @@ void vFppiip(x64emu_t *emu, uintptr_t fnc); void vFppiup(x64emu_t *emu, uintptr_t fnc); void vFppipp(x64emu_t *emu, uintptr_t fnc); void vFppWui(x64emu_t *emu, uintptr_t fnc); +void vFppuui(x64emu_t *emu, uintptr_t fnc); void vFpppii(x64emu_t *emu, uintptr_t fnc); void vFpppip(x64emu_t *emu, uintptr_t fnc); void vFppppi(x64emu_t *emu, uintptr_t fnc); @@ -813,6 +819,7 @@ void pFppppp(x64emu_t *emu, uintptr_t fnc); void vFEiiipp(x64emu_t *emu, uintptr_t fnc); void vFEpuipp(x64emu_t *emu, uintptr_t fnc); void vFEpLLpp(x64emu_t *emu, uintptr_t fnc); +void vFEppppp(x64emu_t *emu, uintptr_t fnc); void vFiiiiii(x64emu_t *emu, uintptr_t fnc); void vFiiiuil(x64emu_t *emu, uintptr_t fnc); void vFiuippp(x64emu_t *emu, uintptr_t fnc); @@ -874,6 +881,7 @@ void vFpplppp(x64emu_t *emu, uintptr_t fnc); void vFppLppi(x64emu_t *emu, uintptr_t fnc); void vFppLppp(x64emu_t *emu, uintptr_t fnc); void vFpppiii(x64emu_t *emu, uintptr_t fnc); +void vFpppipu(x64emu_t *emu, uintptr_t fnc); void vFppppii(x64emu_t *emu, uintptr_t fnc); void vFpppppi(x64emu_t *emu, uintptr_t fnc); void vFpppppp(x64emu_t *emu, uintptr_t fnc); @@ -1096,6 +1104,7 @@ void iFpppipppp(x64emu_t *emu, uintptr_t fnc); void iFppppiipi(x64emu_t *emu, uintptr_t fnc); void iFpppppppp(x64emu_t *emu, uintptr_t fnc); void uFuipppppp(x64emu_t *emu, uintptr_t fnc); +void pFEppppppp(x64emu_t *emu, uintptr_t fnc); void pFuiiiuuuu(x64emu_t *emu, uintptr_t fnc); void pFuupupipp(x64emu_t *emu, uintptr_t fnc); void pFpCuwwWWu(x64emu_t *emu, uintptr_t fnc); @@ -1121,6 +1130,7 @@ void vFddddddddd(x64emu_t *emu, uintptr_t fnc); void vFpipiuiipp(x64emu_t *emu, uintptr_t fnc); void vFpipppiipi(x64emu_t *emu, uintptr_t fnc); void vFppiiipiii(x64emu_t *emu, uintptr_t fnc); +void vFppuuiiiii(x64emu_t *emu, uintptr_t fnc); void vFpplpppppi(x64emu_t *emu, uintptr_t fnc); void vFpppppippp(x64emu_t *emu, uintptr_t fnc); void iFEpiiiiipi(x64emu_t *emu, uintptr_t fnc); @@ -1136,6 +1146,7 @@ void iFpppiiuuii(x64emu_t *emu, uintptr_t fnc); void iFpppiipiiu(x64emu_t *emu, uintptr_t fnc); void iFppppppppu(x64emu_t *emu, uintptr_t fnc); void iFppppppppp(x64emu_t *emu, uintptr_t fnc); +void uFppppppppp(x64emu_t *emu, uintptr_t fnc); void pFEppiiuuLi(x64emu_t *emu, uintptr_t fnc); void pFEppuippuu(x64emu_t *emu, uintptr_t fnc); void pFpiiiiuuuu(x64emu_t *emu, uintptr_t fnc); @@ -1159,6 +1170,7 @@ void vFuupiiupuuf(x64emu_t *emu, uintptr_t fnc); void vFuffiiffiip(x64emu_t *emu, uintptr_t fnc); void vFuddiiddiip(x64emu_t *emu, uintptr_t fnc); void vFffffffffff(x64emu_t *emu, uintptr_t fnc); +void vFppdddddddd(x64emu_t *emu, uintptr_t fnc); void vFpppppppppp(x64emu_t *emu, uintptr_t fnc); void iFEppppppppp(x64emu_t *emu, uintptr_t fnc); void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fnc); @@ -1166,6 +1178,7 @@ void iFpuupiuiipp(x64emu_t *emu, uintptr_t fnc); void iFppuuiiiiii(x64emu_t *emu, uintptr_t fnc); void iFppuuiiuupi(x64emu_t *emu, uintptr_t fnc); void iFppppiiuuii(x64emu_t *emu, uintptr_t fnc); +void uFpppppppppp(x64emu_t *emu, uintptr_t fnc); void pFpCuWCCuuCW(x64emu_t *emu, uintptr_t fnc); void pFpuuuwwwwWW(x64emu_t *emu, uintptr_t fnc); void pFppuiipuuii(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedpng16.c b/src/wrapped/wrappedpng16.c new file mode 100755 index 00000000..e3220c5e --- /dev/null +++ b/src/wrapped/wrappedpng16.c @@ -0,0 +1,398 @@ +#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 "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" + +const char* png16Name = +#ifdef ANDROID + "libpng16.so" +#else + "libpng16.so.16" +#endif + ; +#define LIBNAME png16 + +typedef void (*vFpp_t)(void*, void*); +typedef void (*vFppp_t)(void*, void*, void*); +typedef void (*vFpppp_t)(void*, void*, void*, void*); +typedef void* (*pFpppp_t)(void*, void*, void*, void*); +typedef void (*vFppppp_t)(void*, void*, void*, void*, void*); +typedef void* (*pFppppppp_t)(void*, void*, void*, void*, void*, void*, void*); + +#define SUPER() \ + GO(png_set_read_fn, vFppp_t) \ + GO(png_set_error_fn, vFpppp_t) \ + GO(png_set_read_user_transform_fn, vFpp_t) \ + GO(png_set_write_fn, vFpppp_t) \ + GO(png_create_read_struct_2, pFppppppp_t) \ + GO(png_create_write_struct_2, pFppppppp_t) \ + GO(png_set_progressive_read_fn, vFppppp_t) \ + GO(png_create_read_struct, pFpppp_t) \ + + +typedef struct png16_my_s { + #define GO(A, B) B A; + SUPER() + #undef GO + // functions +} png16_my_t; + +void* getPng16My(library_t* lib) +{ + png16_my_t* my = (png16_my_t*)calloc(1, sizeof(png16_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); if(!my->A) my->A = (W)dlsym(lib->priv.w.lib, "yes" #A); + SUPER() + #undef GO + return my; +} + +void freePng16My(void* lib) +{ + //png16_my_t *my = (png16_my_t *)lib; +} +#undef SUPER + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) + +// user_write +#define GO(A) \ +static uintptr_t my_user_write_fct_##A = 0; \ +static void my_user_write_##A(void* png_ptr, void* data, int32_t length) \ +{ \ + RunFunction(my_context, my_user_write_fct_##A, 3, png_ptr, data, length);\ +} +SUPER() +#undef GO +static void* finduser_writeFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_user_write_fct_##A == (uintptr_t)fct) return my_user_write_##A; + SUPER() + #undef GO + #define GO(A) if(my_user_write_fct_##A == 0) {my_user_write_fct_##A = (uintptr_t)fct; return my_user_write_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 user_write callback\n"); + return NULL; +} +// user_flush +#define GO(A) \ +static uintptr_t my_user_flush_fct_##A = 0; \ +static void my_user_flush_##A(void* png_ptr) \ +{ \ + RunFunction(my_context, my_user_flush_fct_##A, 1, png_ptr);\ +} +SUPER() +#undef GO +static void* finduser_flushFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_user_flush_fct_##A == (uintptr_t)fct) return my_user_flush_##A; + SUPER() + #undef GO + #define GO(A) if(my_user_flush_fct_##A == 0) {my_user_flush_fct_##A = (uintptr_t)fct; return my_user_flush_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 user_flush callback\n"); + return NULL; +} +// user_read +#define GO(A) \ +static uintptr_t my_user_read_fct_##A = 0; \ +static void my_user_read_##A(void* png_ptr, void* data, int32_t length) \ +{ \ + RunFunction(my_context, my_user_read_fct_##A, 3, png_ptr, data, length);\ +} +SUPER() +#undef GO +static void* finduser_readFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_user_read_fct_##A == (uintptr_t)fct) return my_user_read_##A; + SUPER() + #undef GO + #define GO(A) if(my_user_read_fct_##A == 0) {my_user_read_fct_##A = (uintptr_t)fct; return my_user_read_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 user_read callback\n"); + return NULL; +} +// error +#define GO(A) \ +static uintptr_t my_error_fct_##A = 0; \ +static void my_error_##A(void* a, void* b) \ +{ \ + RunFunction(my_context, my_error_fct_##A, 2, a, b);\ +} +SUPER() +#undef GO +static void* finderrorFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_error_fct_##A == (uintptr_t)fct) return my_error_##A; + SUPER() + #undef GO + #define GO(A) if(my_error_fct_##A == 0) {my_error_fct_##A = (uintptr_t)fct; return my_error_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 error callback\n"); + return NULL; +} +// warning +#define GO(A) \ +static uintptr_t my_warning_fct_##A = 0; \ +static void my_warning_##A(void* a, void* b) \ +{ \ + RunFunction(my_context, my_warning_fct_##A, 2, a, b);\ +} +SUPER() +#undef GO +static void* findwarningFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_warning_fct_##A == (uintptr_t)fct) return my_warning_##A; + SUPER() + #undef GO + #define GO(A) if(my_warning_fct_##A == 0) {my_warning_fct_##A = (uintptr_t)fct; return my_warning_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 warning callback\n"); + return NULL; +} +// malloc +#define GO(A) \ +static uintptr_t my_malloc_fct_##A = 0; \ +static void my_malloc_##A(void* a, unsigned long b) \ +{ \ + RunFunction(my_context, my_malloc_fct_##A, 2, a, b);\ +} +SUPER() +#undef GO +static void* findmallocFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_malloc_fct_##A == (uintptr_t)fct) return my_malloc_##A; + SUPER() + #undef GO + #define GO(A) if(my_malloc_fct_##A == 0) {my_malloc_fct_##A = (uintptr_t)fct; return my_malloc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 malloc callback\n"); + return NULL; +} +// free +#define GO(A) \ +static uintptr_t my_free_fct_##A = 0; \ +static void my_free_##A(void* a, void* b) \ +{ \ + RunFunction(my_context, my_free_fct_##A, 2, a, b);\ +} +SUPER() +#undef GO +static void* findfreeFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_free_fct_##A == (uintptr_t)fct) return my_free_##A; + SUPER() + #undef GO + #define GO(A) if(my_free_fct_##A == 0) {my_free_fct_##A = (uintptr_t)fct; return my_free_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 free callback\n"); + return NULL; +} + +// progressive_info +#define GO(A) \ +static uintptr_t my_progressive_info_fct_##A = 0; \ +static void my_progressive_info_##A(void* a, void* b) \ +{ \ + RunFunction(my_context, my_progressive_info_fct_##A, 2, a, b);\ +} +SUPER() +#undef GO +static void* findprogressive_infoFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_progressive_info_fct_##A == (uintptr_t)fct) return my_progressive_info_##A; + SUPER() + #undef GO + #define GO(A) if(my_progressive_info_fct_##A == 0) {my_progressive_info_fct_##A = (uintptr_t)fct; return my_progressive_info_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 progressive_info callback\n"); + return NULL; +} + +// progressive_end +#define GO(A) \ +static uintptr_t my_progressive_end_fct_##A = 0; \ +static void my_progressive_end_##A(void* a, void* b) \ +{ \ + RunFunction(my_context, my_progressive_end_fct_##A, 2, a, b);\ +} +SUPER() +#undef GO +static void* findprogressive_endFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_progressive_end_fct_##A == (uintptr_t)fct) return my_progressive_end_##A; + SUPER() + #undef GO + #define GO(A) if(my_progressive_end_fct_##A == 0) {my_progressive_end_fct_##A = (uintptr_t)fct; return my_progressive_end_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 progressive_end callback\n"); + return NULL; +} + +// progressive_row +#define GO(A) \ +static uintptr_t my_progressive_row_fct_##A = 0; \ +static void my_progressive_row_##A(void* a, void* b, uint32_t c, int d) \ +{ \ + RunFunction(my_context, my_progressive_row_fct_##A, 4, a, b, c, d);\ +} +SUPER() +#undef GO +static void* findprogressive_rowFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_progressive_row_fct_##A == (uintptr_t)fct) return my_progressive_row_##A; + SUPER() + #undef GO + #define GO(A) if(my_progressive_row_fct_##A == 0) {my_progressive_row_fct_##A = (uintptr_t)fct; return my_progressive_row_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 progressive_row callback\n"); + return NULL; +} + + +// user_transform +#define GO(A) \ +static uintptr_t my_user_transform_fct_##A = 0; \ +static void my_user_transform_##A(void* ptr, void* row, void* data) \ +{ \ + RunFunction(my_context, my_user_transform_fct_##A, 3, ptr, row, data);\ +} +SUPER() +#undef GO +static void* finduser_transformFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_user_transform_fct_##A == (uintptr_t)fct) return my_user_transform_##A; + SUPER() + #undef GO + #define GO(A) if(my_user_transform_fct_##A == 0) {my_user_transform_fct_##A = (uintptr_t)fct; return my_user_transform_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libpng16 user_transform callback\n"); + return NULL; +} + +#undef SUPER + +EXPORT void my16_png_set_read_fn(x64emu_t *emu, void* png_ptr, void* io_ptr, void* read_data_fn) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + my->png_set_read_fn(png_ptr, io_ptr, finduser_readFct(read_data_fn)); +} + +EXPORT void my16_png_set_read_user_transform_fn(x64emu_t *emu, void* png_ptr, void* read_transform_fn) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + my->png_set_read_user_transform_fn(png_ptr, finduser_transformFct(read_transform_fn)); +} + +EXPORT void my16_png_set_error_fn(x64emu_t* emu, void* pngptr, void* errorptr, void* error_fn, void* warning_fn) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + my->png_set_error_fn(pngptr, errorptr, finderrorFct(error_fn), findwarningFct(warning_fn)); +} + +EXPORT void my16_png_set_write_fn(x64emu_t* emu, void* png_ptr, void* io_ptr, void* write_fn, void* flush_fn) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + my->png_set_write_fn(png_ptr, io_ptr, finduser_writeFct(write_fn), finduser_flushFct(flush_fn)); +} + +EXPORT void* my16_png_create_read_struct_2(x64emu_t* emu, void* user_png_ver, void* error_ptr, void* error_fn, void* warn_fn, void* mem_ptr, void* malloc_fn, void* free_fn) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + return my->png_create_read_struct_2(user_png_ver, error_ptr, finderrorFct(error_fn), findwarningFct(warn_fn), mem_ptr, findmallocFct(malloc_fn), findfreeFct(free_fn)); +} + +EXPORT void* my16_png_create_write_struct_2(x64emu_t* emu, void* user_png_ver, void* error_ptr, void* error_fn, void* warn_fn, void* mem_ptr, void* malloc_fn, void* free_fn) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + return my->png_create_write_struct_2(user_png_ver, error_ptr, finderrorFct(error_fn), findwarningFct(warn_fn), mem_ptr, findmallocFct(malloc_fn), findfreeFct(free_fn)); +} + +EXPORT void my16_png_set_progressive_read_fn(x64emu_t* emu, void* png_ptr, void* user_ptr, void* info, void* row, void* end) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + my->png_set_progressive_read_fn(png_ptr, user_ptr, findprogressive_infoFct(info), findprogressive_rowFct(row), findprogressive_endFct(end)); +} + +EXPORT void* my16_png_create_read_struct(x64emu_t* emu, void* png_ptr, void* user_ptr, void* errorfn, void* warnfn) +{ + library_t * lib = GetLibInternal(png16Name); + png16_my_t *my = (png16_my_t*)lib->priv.w.p2; + + return my->png_create_read_struct(png_ptr, user_ptr, finderrorFct(errorfn), findwarningFct(warnfn)); +} + +#define CUSTOM_INIT \ + lib->priv.w.altprefix=strdup("yes"); \ + lib->priv.w.p2 = getPng16My(lib); \ + lib->altmy = strdup("my16_"); + +#define CUSTOM_FINI \ + freePng16My(lib->priv.w.p2); \ + free(lib->priv.w.p2); + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedpng16_private.h b/src/wrapped/wrappedpng16_private.h new file mode 100755 index 00000000..f4868119 --- /dev/null +++ b/src/wrapped/wrappedpng16_private.h @@ -0,0 +1,101 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +# error meh! +#endif + +GO(png_convert_from_time_t, vFpu) +GOM(png_create_read_struct, pFEpppp) +GO(png_create_info_struct, pFp) +GO(png_create_write_struct, pFpppp) +GO(png_destroy_read_struct, vFppp) +GO(png_destroy_write_struct, vFpp) +GO(png_error, vFpp) +GO(png_free, vFpp) +GO(png_get_bit_depth, CFpp) +GO(png_get_color_type, CFpp) +GO(png_get_error_ptr, pFp) +GO(png_get_iCCP, uFpppppp) +GO(png_get_IHDR, uFppppppppp) +GO(png_get_image_height, uFpp) +GO(png_get_image_width, uFpp) +GO(png_get_io_ptr, pFp) +GO(png_get_PLTE, uFpppp) +GO(png_get_pHYs, uFppppp) +GO(png_get_rows, pFpp) +GO(png_get_tRNS, uFppppp) +GO(png_get_valid, uFppu) +GO(png_init_io, vFpp) +GO(png_malloc, pFpu) +GO(png_read_end, vFpp) +GO(png_read_image, vFpp) +GO(png_read_info, vFpp) +GO(png_read_png, vFppip) +GO(png_read_update_info, vFpp) +GO(png_set_bgr, vFp) +GO(png_set_compression_level, vFpi) +GO(png_set_crc_action, vFpii) +GOM(png_set_error_fn, vFEpppp) +GO(png_set_expand, vFp) +GO(png_set_expand_gray_1_2_4_to_8, vFp) +GO(png_set_filler, vFpui) +GO(png_set_filter, vFpii) +GO(png_set_gray_to_rgb, vFp) +GO(png_set_IHDR, vFppuuiiiii) +GO(png_set_interlace_handling, iFp) +GO(png_set_longjmp_fn, pFppu) //TODO: need wrapping? +GO(png_set_packing, vFp) +GO(png_set_packswap, vFp) +GO(png_set_palette_to_rgb, vFp) +GO(png_set_PLTE, vFpppi) +GO(png_set_pHYs, vFppuui) +GOM(png_set_read_fn, vFEppp) +GOM(png_set_read_user_transform_fn, vFEpp) +GO(png_set_rows, vFppp) +GO(png_set_sig_bytes, vFpi) +GO(png_set_strip_16, vFp) +GO(png_set_tIME, vFppp) +GO(png_set_tRNS, vFpppip) +GO(png_set_tRNS_to_alpha, vFp) +GOM(png_set_write_fn, vFEpppp) +GO(png_set_swap, vFp) +GO(png_sig_cmp, iFpuu) +GO(png_warning, vFpp) +GO(png_write_end, vFpp) +GO(png_write_chunk, vFpppu) +GO(png_write_info, vFpp) +GO(png_write_png, vFppip) +GO(png_write_row, vFpp) +GO(png_write_rows, vFppu) +GO(png_get_rowbytes, uFpp) +GO(png_set_add_alpha, vFpui) +GO(png_get_sRGB, uFppp) +GO(png_set_gamma, vFpdd) +GO(png_get_gAMA, uFppp) +GO(png_read_row, vFppp) +GO(png_get_channels, CFpp) +GO(png_set_iCCP, vFpppipu) +GO(png_set_sRGB, vFppi) +GO(png_set_compression_mem_level, vFpi) +GO(png_set_text, vFpppi) +GO(png_get_cHRM, uFpppppppppp) +GO(png_set_compression_strategy, vFpi) +GO(png_set_gAMA, vFppd) +GOM(png_create_read_struct_2, pFEppppppp) +GO(png_get_header_ver, pFp) +GO(png_set_compression_buffer_size, vFpu) +GOM(png_create_write_struct_2, pFEppppppp) +GO(png_set_cHRM, vFppdddddddd) +GO(png_permit_mng_features, uFpu) +GO(png_set_keep_unknown_chunks, vFpipi) +GO(png_set_oFFs, vFppiii) +GO(png_get_libpng_ver, pFp) +GO(png_get_text, uFpppp) +GO(png_set_sBIT, vFppp) +GO(png_set_bKGD, vFppp) +GO(png_get_x_offset_pixels, iFpp) +GO(png_get_y_offset_pixels, iFpp) +GO(png_write_image, vFpp) +GO(png_process_data, vFpppL) +GO(png_progressive_combine_row, vFppp) +GO(png_get_progressive_ptr, pFp) +GO(png_get_interlace_type, CFpp) +GOM(png_set_progressive_read_fn, vFEppppp) |