diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-12-02 17:51:19 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-12-02 17:51:19 +0100 |
| commit | 19a66086195dc97ca316af78258653144eb19695 (patch) | |
| tree | b646c57041bca6c21661da035cae997b84d52b5f /src | |
| parent | 558a52909d9a939ab03d8a754d50f0c9f7f16428 (diff) | |
| download | box64-19a66086195dc97ca316af78258653144eb19695.tar.gz box64-19a66086195dc97ca316af78258653144eb19695.zip | |
Added some more wrapped function to libdrm
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 9 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibdrmtypes.h | 4 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 20 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 7 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibdrm.c | 29 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibdrm_private.h | 37 |
6 files changed, 87 insertions, 19 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 94528335..f1a90042 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -459,6 +459,7 @@ #() iFiip #() iFiiO #() iFiCC +#() iFiui #() iFiuu #() iFiup #() iFill @@ -927,6 +928,7 @@ #() iFiupp #() iFilli #() iFillu +#() iFiLpL #() iFipii #() iFipip #() iFipWp @@ -937,6 +939,7 @@ #() iFipLu #() iFipLp #() iFippi +#() iFippu #() iFippL #() iFippp #() iFipON @@ -1471,6 +1474,7 @@ #() iFipuip #() iFipuui #() iFipLup +#() iFippuu #() iFippLi #() iFippLp #() iFipppi @@ -1903,11 +1907,13 @@ #() iFiiiipp #() iFiiiuwp #() iFiWiipi +#() iFiuUuUu #() iFilpppp #() iFiLpppi #() iFipiipi #() iFipipip #() iFipippp +#() iFipuIup #() iFipupup #() iFipuppp #() iFipppLp @@ -2255,6 +2261,7 @@ #() iFEpppppp #() iFiiiiiip #() iFipupupi +#() iFippuIup #() iFpiiiiii #() iFpiiiiip #() iFpiiiuwp @@ -4277,6 +4284,8 @@ wrappedlibdl: - iFpppi: - dladdr1 wrappedlibdrm: +- vFpV: + - drmMsg wrappedlibegl: - pFp: - eglGetProcAddress diff --git a/src/wrapped/generated/wrappedlibdrmtypes.h b/src/wrapped/generated/wrappedlibdrmtypes.h index 16b63312..7421e4df 100644 --- a/src/wrapped/generated/wrappedlibdrmtypes.h +++ b/src/wrapped/generated/wrappedlibdrmtypes.h @@ -11,7 +11,9 @@ #define ADDED_FUNCTIONS() #endif +typedef void (*vFpV_t)(void*, ...); -#define SUPER() ADDED_FUNCTIONS() +#define SUPER() ADDED_FUNCTIONS() \ + GO(drmMsg, vFpV_t) #endif // __wrappedlibdrmTYPES_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index cfbc714b..25aba59b 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -495,6 +495,7 @@ typedef int32_t (*iFiil_t)(int32_t, int32_t, intptr_t); typedef int32_t (*iFiip_t)(int32_t, int32_t, void*); typedef int32_t (*iFiiO_t)(int32_t, int32_t, int32_t); typedef int32_t (*iFiCC_t)(int32_t, uint8_t, uint8_t); +typedef int32_t (*iFiui_t)(int32_t, uint32_t, int32_t); typedef int32_t (*iFiuu_t)(int32_t, uint32_t, uint32_t); typedef int32_t (*iFiup_t)(int32_t, uint32_t, void*); typedef int32_t (*iFill_t)(int32_t, intptr_t, intptr_t); @@ -963,6 +964,7 @@ typedef int32_t (*iFiuup_t)(int32_t, uint32_t, uint32_t, void*); typedef int32_t (*iFiupp_t)(int32_t, uint32_t, void*, void*); typedef int32_t (*iFilli_t)(int32_t, intptr_t, intptr_t, int32_t); typedef int32_t (*iFillu_t)(int32_t, intptr_t, intptr_t, uint32_t); +typedef int32_t (*iFiLpL_t)(int32_t, uintptr_t, void*, uintptr_t); typedef int32_t (*iFipii_t)(int32_t, void*, int32_t, int32_t); typedef int32_t (*iFipip_t)(int32_t, void*, int32_t, void*); typedef int32_t (*iFipWp_t)(int32_t, void*, uint16_t, void*); @@ -973,6 +975,7 @@ typedef int32_t (*iFipLi_t)(int32_t, void*, uintptr_t, int32_t); typedef int32_t (*iFipLu_t)(int32_t, void*, uintptr_t, uint32_t); typedef int32_t (*iFipLp_t)(int32_t, void*, uintptr_t, void*); typedef int32_t (*iFippi_t)(int32_t, void*, void*, int32_t); +typedef int32_t (*iFippu_t)(int32_t, void*, void*, uint32_t); typedef int32_t (*iFippL_t)(int32_t, void*, void*, uintptr_t); typedef int32_t (*iFippp_t)(int32_t, void*, void*, void*); typedef int32_t (*iFipON_t)(int32_t, void*, int32_t, ...); @@ -1507,6 +1510,7 @@ typedef int32_t (*iFipipu_t)(int32_t, void*, int32_t, void*, uint32_t); typedef int32_t (*iFipuip_t)(int32_t, void*, uint32_t, int32_t, void*); typedef int32_t (*iFipuui_t)(int32_t, void*, uint32_t, uint32_t, int32_t); typedef int32_t (*iFipLup_t)(int32_t, void*, uintptr_t, uint32_t, void*); +typedef int32_t (*iFippuu_t)(int32_t, void*, void*, uint32_t, uint32_t); typedef int32_t (*iFippLi_t)(int32_t, void*, void*, uintptr_t, int32_t); typedef int32_t (*iFippLp_t)(int32_t, void*, void*, uintptr_t, void*); typedef int32_t (*iFipppi_t)(int32_t, void*, void*, void*, int32_t); @@ -1939,11 +1943,13 @@ typedef int32_t (*iFiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, void* typedef int32_t (*iFiiiipp_t)(int32_t, int32_t, int32_t, int32_t, void*, void*); typedef int32_t (*iFiiiuwp_t)(int32_t, int32_t, int32_t, uint32_t, int16_t, void*); typedef int32_t (*iFiWiipi_t)(int32_t, uint16_t, int32_t, int32_t, void*, int32_t); +typedef int32_t (*iFiuUuUu_t)(int32_t, uint32_t, uint64_t, uint32_t, uint64_t, uint32_t); typedef int32_t (*iFilpppp_t)(int32_t, intptr_t, void*, void*, void*, void*); typedef int32_t (*iFiLpppi_t)(int32_t, uintptr_t, void*, void*, void*, int32_t); typedef int32_t (*iFipiipi_t)(int32_t, void*, int32_t, int32_t, void*, int32_t); typedef int32_t (*iFipipip_t)(int32_t, void*, int32_t, void*, int32_t, void*); typedef int32_t (*iFipippp_t)(int32_t, void*, int32_t, void*, void*, void*); +typedef int32_t (*iFipuIup_t)(int32_t, void*, uint32_t, int64_t, uint32_t, void*); typedef int32_t (*iFipupup_t)(int32_t, void*, uint32_t, void*, uint32_t, void*); typedef int32_t (*iFipuppp_t)(int32_t, void*, uint32_t, void*, void*, void*); typedef int32_t (*iFipppLp_t)(int32_t, void*, void*, void*, uintptr_t, void*); @@ -2291,6 +2297,7 @@ typedef int32_t (*iFEpppppL_t)(x64emu_t*, void*, void*, void*, void*, void*, uin typedef int32_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*); typedef int32_t (*iFiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*); typedef int32_t (*iFipupupi_t)(int32_t, void*, uint32_t, void*, uint32_t, void*, int32_t); +typedef int32_t (*iFippuIup_t)(int32_t, void*, void*, uint32_t, int64_t, uint32_t, void*); typedef int32_t (*iFpiiiiii_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); typedef int32_t (*iFpiiiiip_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, void*); typedef int32_t (*iFpiiiuwp_t)(void*, int32_t, int32_t, int32_t, uint32_t, int16_t, void*); @@ -3474,6 +3481,7 @@ void iFiil(x64emu_t *emu, uintptr_t fcn) { iFiil_t fn = (iFiil_t)fcn; R_RAX=(int void iFiip(x64emu_t *emu, uintptr_t fcn) { iFiip_t fn = (iFiip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX); } void iFiiO(x64emu_t *emu, uintptr_t fcn) { iFiiO_t fn = (iFiiO_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, of_convert((int32_t)R_RDX)); } void iFiCC(x64emu_t *emu, uintptr_t fcn) { iFiCC_t fn = (iFiCC_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX); } +void iFiui(x64emu_t *emu, uintptr_t fcn) { iFiui_t fn = (iFiui_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX); } void iFiuu(x64emu_t *emu, uintptr_t fcn) { iFiuu_t fn = (iFiuu_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); } void iFiup(x64emu_t *emu, uintptr_t fcn) { iFiup_t fn = (iFiup_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); } void iFill(x64emu_t *emu, uintptr_t fcn) { iFill_t fn = (iFill_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX); } @@ -3942,6 +3950,7 @@ void iFiuup(x64emu_t *emu, uintptr_t fcn) { iFiuup_t fn = (iFiuup_t)fcn; R_RAX=( void iFiupp(x64emu_t *emu, uintptr_t fcn) { iFiupp_t fn = (iFiupp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void iFilli(x64emu_t *emu, uintptr_t fcn) { iFilli_t fn = (iFilli_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (int32_t)R_RCX); } void iFillu(x64emu_t *emu, uintptr_t fcn) { iFillu_t fn = (iFillu_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (uint32_t)R_RCX); } +void iFiLpL(x64emu_t *emu, uintptr_t fcn) { iFiLpL_t fn = (iFiLpL_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void iFipii(x64emu_t *emu, uintptr_t fcn) { iFipii_t fn = (iFipii_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); } void iFipip(x64emu_t *emu, uintptr_t fcn) { iFipip_t fn = (iFipip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void iFipWp(x64emu_t *emu, uintptr_t fcn) { iFipWp_t fn = (iFipWp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint16_t)R_RDX, (void*)R_RCX); } @@ -3952,6 +3961,7 @@ void iFipLi(x64emu_t *emu, uintptr_t fcn) { iFipLi_t fn = (iFipLi_t)fcn; R_RAX=( void iFipLu(x64emu_t *emu, uintptr_t fcn) { iFipLu_t fn = (iFipLu_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uint32_t)R_RCX); } void iFipLp(x64emu_t *emu, uintptr_t fcn) { iFipLp_t fn = (iFipLp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); } void iFippi(x64emu_t *emu, uintptr_t fcn) { iFippi_t fn = (iFippi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); } +void iFippu(x64emu_t *emu, uintptr_t fcn) { iFippu_t fn = (iFippu_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); } void iFippL(x64emu_t *emu, uintptr_t fcn) { iFippL_t fn = (iFippL_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void iFippp(x64emu_t *emu, uintptr_t fcn) { iFippp_t fn = (iFippp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void iFipON(x64emu_t *emu, uintptr_t fcn) { iFipON_t fn = (iFipON_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, of_convert((int32_t)R_RDX), (void*)R_RCX); } @@ -4486,6 +4496,7 @@ void iFipipu(x64emu_t *emu, uintptr_t fcn) { iFipipu_t fn = (iFipipu_t)fcn; R_RA void iFipuip(x64emu_t *emu, uintptr_t fcn) { iFipuip_t fn = (iFipuip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); } void iFipuui(x64emu_t *emu, uintptr_t fcn) { iFipuui_t fn = (iFipuui_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8); } void iFipLup(x64emu_t *emu, uintptr_t fcn) { iFipLup_t fn = (iFipLup_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); } +void iFippuu(x64emu_t *emu, uintptr_t fcn) { iFippuu_t fn = (iFippuu_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); } void iFippLi(x64emu_t *emu, uintptr_t fcn) { iFippLi_t fn = (iFippLi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (int32_t)R_R8); } void iFippLp(x64emu_t *emu, uintptr_t fcn) { iFippLp_t fn = (iFippLp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); } void iFipppi(x64emu_t *emu, uintptr_t fcn) { iFipppi_t fn = (iFipppi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); } @@ -4918,11 +4929,13 @@ void iFiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiip_t fn = (iFiiiiip_t)fcn; R void iFiiiipp(x64emu_t *emu, uintptr_t fcn) { iFiiiipp_t fn = (iFiiiipp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); } void iFiiiuwp(x64emu_t *emu, uintptr_t fcn) { iFiiiuwp_t fn = (iFiiiuwp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int16_t)R_R8, (void*)R_R9); } void iFiWiipi(x64emu_t *emu, uintptr_t fcn) { iFiWiipi_t fn = (iFiWiipi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint16_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); } +void iFiuUuUu(x64emu_t *emu, uintptr_t fcn) { iFiuUuUu_t fn = (iFiuUuUu_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint64_t)R_RDX, (uint32_t)R_RCX, (uint64_t)R_R8, (uint32_t)R_R9); } void iFilpppp(x64emu_t *emu, uintptr_t fcn) { iFilpppp_t fn = (iFilpppp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void iFiLpppi(x64emu_t *emu, uintptr_t fcn) { iFiLpppi_t fn = (iFiLpppi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9); } void iFipiipi(x64emu_t *emu, uintptr_t fcn) { iFipiipi_t fn = (iFipiipi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); } void iFipipip(x64emu_t *emu, uintptr_t fcn) { iFipipip_t fn = (iFipipip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); } void iFipippp(x64emu_t *emu, uintptr_t fcn) { iFipippp_t fn = (iFipippp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } +void iFipuIup(x64emu_t *emu, uintptr_t fcn) { iFipuIup_t fn = (iFipuIup_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int64_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); } void iFipupup(x64emu_t *emu, uintptr_t fcn) { iFipupup_t fn = (iFipupup_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9); } void iFipuppp(x64emu_t *emu, uintptr_t fcn) { iFipuppp_t fn = (iFipuppp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void iFipppLp(x64emu_t *emu, uintptr_t fcn) { iFipppLp_t fn = (iFipppLp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uintptr_t)R_R8, (void*)R_R9); } @@ -5270,6 +5283,7 @@ void iFEpppppL(x64emu_t *emu, uintptr_t fcn) { iFEpppppL_t fn = (iFEpppppL_t)fcn void iFEpppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void iFiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiip_t fn = (iFiiiiiip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); } void iFipupupi(x64emu_t *emu, uintptr_t fcn) { iFipupupi_t fn = (iFipupupi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); } +void iFippuIup(x64emu_t *emu, uintptr_t fcn) { iFippuIup_t fn = (iFippuIup_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int64_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); } void iFpiiiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiiiii_t fn = (iFpiiiiii_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); } void iFpiiiiip(x64emu_t *emu, uintptr_t fcn) { iFpiiiiip_t fn = (iFpiiiiip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); } void iFpiiiuwp(x64emu_t *emu, uintptr_t fcn) { iFpiiiuwp_t fn = (iFpiiiuwp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (int16_t)R_R9, *(void**)(R_RSP + 8)); } @@ -6381,6 +6395,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFiil) return 1; if (fun == &iFiip) return 1; if (fun == &iFiCC) return 1; + if (fun == &iFiui) return 1; if (fun == &iFiuu) return 1; if (fun == &iFiup) return 1; if (fun == &iFill) return 1; @@ -6769,6 +6784,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFiupp) return 1; if (fun == &iFilli) return 1; if (fun == &iFillu) return 1; + if (fun == &iFiLpL) return 1; if (fun == &iFipii) return 1; if (fun == &iFipip) return 1; if (fun == &iFipWp) return 1; @@ -6779,6 +6795,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFipLu) return 1; if (fun == &iFipLp) return 1; if (fun == &iFippi) return 1; + if (fun == &iFippu) return 1; if (fun == &iFippL) return 1; if (fun == &iFippp) return 1; if (fun == &iFuiup) return 1; @@ -7227,6 +7244,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFipuip) return 1; if (fun == &iFipuui) return 1; if (fun == &iFipLup) return 1; + if (fun == &iFippuu) return 1; if (fun == &iFippLi) return 1; if (fun == &iFippLp) return 1; if (fun == &iFipppi) return 1; @@ -7594,11 +7612,13 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFiiiipp) return 1; if (fun == &iFiiiuwp) return 1; if (fun == &iFiWiipi) return 1; + if (fun == &iFiuUuUu) return 1; if (fun == &iFilpppp) return 1; if (fun == &iFiLpppi) return 1; if (fun == &iFipiipi) return 1; if (fun == &iFipipip) return 1; if (fun == &iFipippp) return 1; + if (fun == &iFipuIup) return 1; if (fun == &iFipupup) return 1; if (fun == &iFipuppp) return 1; if (fun == &iFipppLp) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index d79e5903..2634394d 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -496,6 +496,7 @@ void iFiil(x64emu_t *emu, uintptr_t fnc); void iFiip(x64emu_t *emu, uintptr_t fnc); void iFiiO(x64emu_t *emu, uintptr_t fnc); void iFiCC(x64emu_t *emu, uintptr_t fnc); +void iFiui(x64emu_t *emu, uintptr_t fnc); void iFiuu(x64emu_t *emu, uintptr_t fnc); void iFiup(x64emu_t *emu, uintptr_t fnc); void iFill(x64emu_t *emu, uintptr_t fnc); @@ -964,6 +965,7 @@ void iFiuup(x64emu_t *emu, uintptr_t fnc); void iFiupp(x64emu_t *emu, uintptr_t fnc); void iFilli(x64emu_t *emu, uintptr_t fnc); void iFillu(x64emu_t *emu, uintptr_t fnc); +void iFiLpL(x64emu_t *emu, uintptr_t fnc); void iFipii(x64emu_t *emu, uintptr_t fnc); void iFipip(x64emu_t *emu, uintptr_t fnc); void iFipWp(x64emu_t *emu, uintptr_t fnc); @@ -974,6 +976,7 @@ void iFipLi(x64emu_t *emu, uintptr_t fnc); void iFipLu(x64emu_t *emu, uintptr_t fnc); void iFipLp(x64emu_t *emu, uintptr_t fnc); void iFippi(x64emu_t *emu, uintptr_t fnc); +void iFippu(x64emu_t *emu, uintptr_t fnc); void iFippL(x64emu_t *emu, uintptr_t fnc); void iFippp(x64emu_t *emu, uintptr_t fnc); void iFipON(x64emu_t *emu, uintptr_t fnc); @@ -1508,6 +1511,7 @@ void iFipipu(x64emu_t *emu, uintptr_t fnc); void iFipuip(x64emu_t *emu, uintptr_t fnc); void iFipuui(x64emu_t *emu, uintptr_t fnc); void iFipLup(x64emu_t *emu, uintptr_t fnc); +void iFippuu(x64emu_t *emu, uintptr_t fnc); void iFippLi(x64emu_t *emu, uintptr_t fnc); void iFippLp(x64emu_t *emu, uintptr_t fnc); void iFipppi(x64emu_t *emu, uintptr_t fnc); @@ -1940,11 +1944,13 @@ void iFiiiiip(x64emu_t *emu, uintptr_t fnc); void iFiiiipp(x64emu_t *emu, uintptr_t fnc); void iFiiiuwp(x64emu_t *emu, uintptr_t fnc); void iFiWiipi(x64emu_t *emu, uintptr_t fnc); +void iFiuUuUu(x64emu_t *emu, uintptr_t fnc); void iFilpppp(x64emu_t *emu, uintptr_t fnc); void iFiLpppi(x64emu_t *emu, uintptr_t fnc); void iFipiipi(x64emu_t *emu, uintptr_t fnc); void iFipipip(x64emu_t *emu, uintptr_t fnc); void iFipippp(x64emu_t *emu, uintptr_t fnc); +void iFipuIup(x64emu_t *emu, uintptr_t fnc); void iFipupup(x64emu_t *emu, uintptr_t fnc); void iFipuppp(x64emu_t *emu, uintptr_t fnc); void iFipppLp(x64emu_t *emu, uintptr_t fnc); @@ -2292,6 +2298,7 @@ void iFEpppppL(x64emu_t *emu, uintptr_t fnc); void iFEpppppp(x64emu_t *emu, uintptr_t fnc); void iFiiiiiip(x64emu_t *emu, uintptr_t fnc); void iFipupupi(x64emu_t *emu, uintptr_t fnc); +void iFippuIup(x64emu_t *emu, uintptr_t fnc); void iFpiiiiii(x64emu_t *emu, uintptr_t fnc); void iFpiiiiip(x64emu_t *emu, uintptr_t fnc); void iFpiiiuwp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibdrm.c b/src/wrapped/wrappedlibdrm.c index 01f49676..762d05a1 100644 --- a/src/wrapped/wrappedlibdrm.c +++ b/src/wrapped/wrappedlibdrm.c @@ -6,13 +6,42 @@ #include "wrappedlibs.h" +#include "debug.h" #include "wrapper.h" #include "bridge.h" #include "librarian/library_private.h" #include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" const char* libdrmName = "libdrm.so.2"; #define LIBNAME libdrm +#define ADDED_FUNCTIONS() \ + +#include "generated/wrappedlibdrmtypes.h" + +#include "wrappercallback.h" + +EXPORT void my_drmMsg(x64emu_t* emu, void* fmt, void* b) { + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1); + PREPARE_VALIST; + char* buf = NULL; + int dummy = vasprintf(&buf, (const char*)fmt, VARARGS); + (void)dummy; + my->drmMsg(buf); + free(buf); +} + +#define CUSTOM_INIT \ + getMy(lib); + +#define CUSTOM_FINI \ + freeMy(); + #include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibdrm_private.h b/src/wrapped/wrappedlibdrm_private.h index 130e592a..47df162d 100644 --- a/src/wrapped/wrappedlibdrm_private.h +++ b/src/wrapped/wrappedlibdrm_private.h @@ -28,9 +28,9 @@ GO(drmAuthMagic, iFiu) //GO(drmClose, //GO(drmCloseOnce, //GO(drmCommandNone, -//GO(drmCommandRead, -//GO(drmCommandWrite, -//GO(drmCommandWriteRead, +GO(drmCommandRead, iFiLpL) +GO(drmCommandWrite, iFiLpL) +GO(drmCommandWriteRead, iFiLpL) //GO(drmCreateContext, //GO(drmCreateDrawable, //GO(drmCrtcGetSequence, @@ -73,7 +73,7 @@ GO(drmGetDevices2, iFupi) GO(drmGetMagic, iFip) //GO(drmGetMap, GO(drmGetNodeTypeFromFd, iFi) -//GO(drmGetPrimaryDeviceNameFromFd, +GO(drmGetPrimaryDeviceNameFromFd, pFi) //GO(drmGetRenderDeviceNameFromFd, //GO(drmGetReservedContextList, //GO(drmGetStats, @@ -146,7 +146,7 @@ GO(drmModeSetCrtc, iFiuuuupip) //GO(drmModeSetCursor, //GO(drmModeSetCursor2, //GO(drmModeSetPlane, -//GO(drmMsg, +GOM(drmMsg, vFEpV) //GO(drmOpen, //GO(drmOpenControl, //GO(drmOpenOnce, @@ -178,19 +178,20 @@ GO(drmPrimeHandleToFD, iFiuup) //GO(drmSLLookupNeighbors, //GO(drmSLNext, //GO(drmSwitchToContext, -//GO(drmSyncobjCreate, -//GO(drmSyncobjDestroy, -//GO(drmSyncobjExportSyncFile, -//GO(drmSyncobjFDToHandle, -//GO(drmSyncobjHandleToFD, -//GO(drmSyncobjImportSyncFile, -//GO(drmSyncobjQuery, -//GO(drmSyncobjReset, -//GO(drmSyncobjSignal, -//GO(drmSyncobjTimelineSignal, -//GO(drmSyncobjTimelineWait, -//GO(drmSyncobjTransfer, -//GO(drmSyncobjWait, +GO(drmSyncobjCreate, iFiup) +GO(drmSyncobjDestroy, iFiu) +GO(drmSyncobjExportSyncFile, iFiup) +GO(drmSyncobjFDToHandle, iFiip) +GO(drmSyncobjHandleToFD, iFiup) +GO(drmSyncobjImportSyncFile, iFiui) +GO(drmSyncobjQuery, iFippu) +GO(drmSyncobjQuery2, iFippuu) +GO(drmSyncobjReset, iFipu) +GO(drmSyncobjSignal, iFipu) +GO(drmSyncobjTimelineSignal, iFippu) +GO(drmSyncobjTimelineWait, iFippuIup) +GO(drmSyncobjTransfer, iFiuUuUu) +GO(drmSyncobjWait, iFipuIup) //GO(drmUnlock, //GO(drmUnmap, //GO(drmUnmapBufs, |