diff options
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 4 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 11 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 4 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibpci_private.h | 70 |
4 files changed, 55 insertions, 34 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index e38c2566..ceff6490 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -229,6 +229,7 @@ #() CFpu #() CFpL #() CFpp +#() WFpi #() WFpp #() uFEp #() uFii @@ -506,6 +507,8 @@ #() iFLpp #() iFpwp #() iFpii +#() iFpiC +#() iFpiW #() iFpiu #() iFpiU #() iFpil @@ -2413,6 +2416,7 @@ #() pFpiiiiid #() pFpiiippp #() pFpiiUdii +#() pFpiipppp #() pFpipippp #() pFpWppWpp #() pFpuLpipp diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 1c41cca2..260f1fc7 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -267,6 +267,7 @@ typedef uint8_t (*CFpi_t)(void*, int32_t); typedef uint8_t (*CFpu_t)(void*, uint32_t); typedef uint8_t (*CFpL_t)(void*, uintptr_t); typedef uint8_t (*CFpp_t)(void*, void*); +typedef uint16_t (*WFpi_t)(void*, int32_t); typedef uint16_t (*WFpp_t)(void*, void*); typedef uint32_t (*uFEp_t)(x64emu_t*, void*); typedef uint32_t (*uFii_t)(int32_t, int32_t); @@ -544,6 +545,8 @@ typedef int32_t (*iFLip_t)(uintptr_t, int32_t, void*); typedef int32_t (*iFLpp_t)(uintptr_t, void*, void*); typedef int32_t (*iFpwp_t)(void*, int16_t, void*); typedef int32_t (*iFpii_t)(void*, int32_t, int32_t); +typedef int32_t (*iFpiC_t)(void*, int32_t, uint8_t); +typedef int32_t (*iFpiW_t)(void*, int32_t, uint16_t); typedef int32_t (*iFpiu_t)(void*, int32_t, uint32_t); typedef int32_t (*iFpiU_t)(void*, int32_t, uint64_t); typedef int32_t (*iFpil_t)(void*, int32_t, intptr_t); @@ -2451,6 +2454,7 @@ typedef void* (*pFdiiiIiI_t)(double, int32_t, int32_t, int32_t, int64_t, int32_t typedef void* (*pFpiiiiid_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, double); typedef void* (*pFpiiippp_t)(void*, int32_t, int32_t, int32_t, void*, void*, void*); typedef void* (*pFpiiUdii_t)(void*, int32_t, int32_t, uint64_t, double, int32_t, int32_t); +typedef void* (*pFpiipppp_t)(void*, int32_t, int32_t, void*, void*, void*, void*); typedef void* (*pFpipippp_t)(void*, int32_t, void*, int32_t, void*, void*, void*); typedef void* (*pFpWppWpp_t)(void*, uint16_t, void*, void*, uint16_t, void*, void*); typedef void* (*pFpuLpipp_t)(void*, uint32_t, uintptr_t, void*, int32_t, void*, void*); @@ -3332,6 +3336,7 @@ void CFpi(x64emu_t *emu, uintptr_t fcn) { CFpi_t fn = (CFpi_t)fcn; R_RAX=(unsign void CFpu(x64emu_t *emu, uintptr_t fcn) { CFpu_t fn = (CFpu_t)fcn; R_RAX=(unsigned char)fn((void*)R_RDI, (uint32_t)R_RSI); } void CFpL(x64emu_t *emu, uintptr_t fcn) { CFpL_t fn = (CFpL_t)fcn; R_RAX=(unsigned char)fn((void*)R_RDI, (uintptr_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 WFpi(x64emu_t *emu, uintptr_t fcn) { WFpi_t fn = (WFpi_t)fcn; R_RAX=(unsigned short)fn((void*)R_RDI, (int32_t)R_RSI); } void WFpp(x64emu_t *emu, uintptr_t fcn) { WFpp_t fn = (WFpp_t)fcn; R_RAX=(unsigned short)fn((void*)R_RDI, (void*)R_RSI); } void uFEp(x64emu_t *emu, uintptr_t fcn) { uFEp_t fn = (uFEp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI); } void uFii(x64emu_t *emu, uintptr_t fcn) { uFii_t fn = (uFii_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI); } @@ -3609,6 +3614,8 @@ void iFLip(x64emu_t *emu, uintptr_t fcn) { iFLip_t fn = (iFLip_t)fcn; R_RAX=(int void iFLpp(x64emu_t *emu, uintptr_t fcn) { iFLpp_t fn = (iFLpp_t)fcn; R_RAX=(int32_t)fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFpwp(x64emu_t *emu, uintptr_t fcn) { iFpwp_t fn = (iFpwp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int16_t)R_RSI, (void*)R_RDX); } void iFpii(x64emu_t *emu, uintptr_t fcn) { iFpii_t fn = (iFpii_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); } +void iFpiC(x64emu_t *emu, uintptr_t fcn) { iFpiC_t fn = (iFpiC_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint8_t)R_RDX); } +void iFpiW(x64emu_t *emu, uintptr_t fcn) { iFpiW_t fn = (iFpiW_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint16_t)R_RDX); } void iFpiu(x64emu_t *emu, uintptr_t fcn) { iFpiu_t fn = (iFpiu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX); } void iFpiU(x64emu_t *emu, uintptr_t fcn) { iFpiU_t fn = (iFpiU_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint64_t)R_RDX); } void iFpil(x64emu_t *emu, uintptr_t fcn) { iFpil_t fn = (iFpil_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (intptr_t)R_RDX); } @@ -5516,6 +5523,7 @@ void pFdiiiIiI(x64emu_t *emu, uintptr_t fcn) { pFdiiiIiI_t fn = (pFdiiiIiI_t)fcn void pFpiiiiid(x64emu_t *emu, uintptr_t fcn) { pFpiiiiid_t fn = (pFpiiiiid_t)fcn; R_RAX=(uintptr_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, emu->xmm[0].d[0]); } void pFpiiippp(x64emu_t *emu, uintptr_t fcn) { pFpiiippp_t fn = (pFpiiippp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpiiUdii(x64emu_t *emu, uintptr_t fcn) { pFpiiUdii_t fn = (pFpiiUdii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint64_t)R_RCX, emu->xmm[0].d[0], (int32_t)R_R8, (int32_t)R_R9); } +void pFpiipppp(x64emu_t *emu, uintptr_t fcn) { pFpiipppp_t fn = (pFpiipppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpipippp(x64emu_t *emu, uintptr_t fcn) { pFpipippp_t fn = (pFpipippp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpWppWpp(x64emu_t *emu, uintptr_t fcn) { pFpWppWpp_t fn = (pFpWppWpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint16_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint16_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpuLpipp(x64emu_t *emu, uintptr_t fcn) { pFpuLpipp_t fn = (pFpuLpipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } @@ -6366,6 +6374,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &CFpu) return 1; if (fun == &CFpL) return 1; if (fun == &CFpp) return 1; + if (fun == &WFpi) return 1; if (fun == &WFpp) return 1; if (fun == &uFii) return 1; if (fun == &uFiu) return 1; @@ -6586,6 +6595,8 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFLpp) return 1; if (fun == &iFpwp) return 1; if (fun == &iFpii) return 1; + if (fun == &iFpiC) return 1; + if (fun == &iFpiW) return 1; if (fun == &iFpiu) return 1; if (fun == &iFpiU) return 1; if (fun == &iFpil) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 4a59b2fa..2e3fb875 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -267,6 +267,7 @@ void CFpi(x64emu_t *emu, uintptr_t fnc); void CFpu(x64emu_t *emu, uintptr_t fnc); void CFpL(x64emu_t *emu, uintptr_t fnc); void CFpp(x64emu_t *emu, uintptr_t fnc); +void WFpi(x64emu_t *emu, uintptr_t fnc); void WFpp(x64emu_t *emu, uintptr_t fnc); void uFEp(x64emu_t *emu, uintptr_t fnc); void uFii(x64emu_t *emu, uintptr_t fnc); @@ -544,6 +545,8 @@ void iFLip(x64emu_t *emu, uintptr_t fnc); void iFLpp(x64emu_t *emu, uintptr_t fnc); void iFpwp(x64emu_t *emu, uintptr_t fnc); void iFpii(x64emu_t *emu, uintptr_t fnc); +void iFpiC(x64emu_t *emu, uintptr_t fnc); +void iFpiW(x64emu_t *emu, uintptr_t fnc); void iFpiu(x64emu_t *emu, uintptr_t fnc); void iFpiU(x64emu_t *emu, uintptr_t fnc); void iFpil(x64emu_t *emu, uintptr_t fnc); @@ -2451,6 +2454,7 @@ void pFdiiiIiI(x64emu_t *emu, uintptr_t fnc); void pFpiiiiid(x64emu_t *emu, uintptr_t fnc); void pFpiiippp(x64emu_t *emu, uintptr_t fnc); void pFpiiUdii(x64emu_t *emu, uintptr_t fnc); +void pFpiipppp(x64emu_t *emu, uintptr_t fnc); void pFpipippp(x64emu_t *emu, uintptr_t fnc); void pFpWppWpp(x64emu_t *emu, uintptr_t fnc); void pFpuLpipp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibpci_private.h b/src/wrapped/wrappedlibpci_private.h index 1822c266..34964ea6 100644 --- a/src/wrapped/wrappedlibpci_private.h +++ b/src/wrapped/wrappedlibpci_private.h @@ -2,37 +2,39 @@ #error meh! #endif -//GO(pci_alloc, -//GO(pci_cleanup, -//GO(pci_fill_info, -//GO(pci_filter_init, -//GO(pci_filter_match, -//GO(pci_filter_parse_id, -//GO(pci_filter_parse_slot, -//GO(pci_find_cap, -//GO(pci_find_cap_nr, -//GO(pci_free_dev, -//GO(pci_free_name_list, -//GO(pci_get_dev, -//GO(pci_get_method_name, -//GO(pci_get_param, -//GO(pci_get_string_property, -//GO(pci_id_cache_flush, -//GO(pci_init, -//GO(pci_load_name_list, -//GO(pci_lookup_method, -//GO(pci_lookup_name, -//GO(pci_read_block, -//GO(pci_read_byte, -//GO(pci_read_long, -//GO(pci_read_vpd, -//GO(pci_read_word, -//GO(pci_scan_bus, -//GO(pci_set_name_list_path, -//GO(pci_set_param, -//GO(pci_setup_cache, -//GO(pci_walk_params, -//GO(pci_write_block, -//GO(pci_write_byte, -//GO(pci_write_long, -//GO(pci_write_word, +// issue is the pci_access structure have 3 function callback that can be override by user program + +GO(pci_alloc, pFv) +GO(pci_cleanup, vFp) +GO(pci_fill_info, iFpi) +GO(pci_filter_init, vFpp) +GO(pci_filter_match, iFpp) +GO(pci_filter_parse_id, pFpp) +GO(pci_filter_parse_slot, pFpp) +GO(pci_find_cap, pFpuu) +GO(pci_find_cap_nr, pFpuup) +GO(pci_free_dev, vFp) +GO(pci_free_name_list, vFp) +GO(pci_get_dev, pFpiiii) +GO(pci_get_method_name, pFi) +GO(pci_get_param, pFpp) +GO(pci_get_string_property, pFpu) +GO(pci_id_cache_flush, vFp) +GO(pci_init, vFp) +GO(pci_load_name_list, iFp) +GO(pci_lookup_method, iFp) +GO(pci_lookup_name, pFpiipppp) //vaarg, with up to 4 element depending on flags +GO(pci_read_block, iFpipi) +GO(pci_read_byte, CFpi) +GO(pci_read_long, uFpi) +GO(pci_read_vpd, iFpipi) +GO(pci_read_word, WFpi) +GO(pci_scan_bus, vFp) +GO(pci_set_name_list_path, vFppi) +GO(pci_set_param, iFppp) +GO(pci_setup_cache, vFppi) +GO(pci_walk_params, pFpp) +GO(pci_write_block, iFpipi) +GO(pci_write_byte, iFpiC) +GO(pci_write_long, iFpiu) +GO(pci_write_word, iFpiW) |