diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-07-13 19:12:13 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-07-13 19:12:13 +0200 |
| commit | 5287e42b028314b2e5fb2a8e9d8fad604ad8fb28 (patch) | |
| tree | bf5b479c73e0a9a12488b1ffa8dbc213a6a378d8 /src | |
| parent | e0a7f775c98550edf8ef4b1d1c5eab77da98bc13 (diff) | |
| download | box64-5287e42b028314b2e5fb2a8e9d8fad604ad8fb28.tar.gz box64-5287e42b028314b2e5fb2a8e9d8fad604ad8fb28.zip | |
Added some xml2 wrapped functions (for #44)
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedxml2types.h | 4 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedxml2.c | 14 | ||||
| -rwxr-xr-x | src/wrapped/wrappedxml2_private.h | 8 |
6 files changed, 27 insertions, 5 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 8ee82250..1f37540b 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -1172,6 +1172,7 @@ #() pFEpLiiii #() pFEpLiiiI #() pFEppppip +#() pFEpppppi #() pFifffppp #() pFuupupup #() pFpCuwwWW @@ -2357,3 +2358,5 @@ wrappedxml2: - xmlHashScanFull3 - iFpppppp: - xmlHashUpdateEntry3 +- pFpppppi: + - xmlCreateIOParserCtxt diff --git a/src/wrapped/generated/wrappedxml2types.h b/src/wrapped/generated/wrappedxml2types.h index a86d7aa7..ddabd191 100644 --- a/src/wrapped/generated/wrappedxml2types.h +++ b/src/wrapped/generated/wrappedxml2types.h @@ -27,6 +27,7 @@ typedef int64_t (*iFppppp_t)(void*, void*, void*, void*, void*); typedef void* (*pFppppi_t)(void*, void*, void*, void*, int64_t); typedef void (*vFpppppp_t)(void*, void*, void*, void*, void*, void*); typedef int64_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*); +typedef void* (*pFpppppi_t)(void*, void*, void*, void*, void*, int64_t); #define SUPER() ADDED_FUNCTIONS() \ GO(xmlSetExternalEntityLoader, vFp_t) \ @@ -53,6 +54,7 @@ typedef int64_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*); GO(xmlSaveToIO, pFppppi_t) \ GO(xmlHashScan3, vFpppppp_t) \ GO(xmlHashScanFull3, vFpppppp_t) \ - GO(xmlHashUpdateEntry3, iFpppppp_t) + GO(xmlHashUpdateEntry3, iFpppppp_t) \ + GO(xmlCreateIOParserCtxt, pFpppppi_t) #endif // __wrappedxml2TYPES_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 38619b55..c0a26c95 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1206,6 +1206,7 @@ typedef uint64_t (*uFuippppp_t)(uint64_t, int64_t, void*, void*, void*, void*, v typedef void* (*pFEpLiiii_t)(x64emu_t*, void*, uintptr_t, int64_t, int64_t, int64_t, int64_t); typedef void* (*pFEpLiiiI_t)(x64emu_t*, void*, uintptr_t, int64_t, int64_t, int64_t, int64_t); typedef void* (*pFEppppip_t)(x64emu_t*, void*, void*, void*, void*, int64_t, void*); +typedef void* (*pFEpppppi_t)(x64emu_t*, void*, void*, void*, void*, void*, int64_t); typedef void* (*pFifffppp_t)(int64_t, float, float, float, void*, void*, void*); typedef void* (*pFuupupup_t)(uint64_t, uint64_t, void*, uint64_t, void*, uint64_t, void*); typedef void* (*pFpCuwwWW_t)(void*, uint8_t, uint64_t, int16_t, int16_t, uint16_t, uint16_t); @@ -2631,6 +2632,7 @@ void uFuippppp(x64emu_t *emu, uintptr_t fcn) { uFuippppp_t fn = (uFuippppp_t)fcn void pFEpLiiii(x64emu_t *emu, uintptr_t fcn) { pFEpLiiii_t fn = (pFEpLiiii_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void pFEpLiiiI(x64emu_t *emu, uintptr_t fcn) { pFEpLiiiI_t fn = (pFEpLiiiI_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void pFEppppip(x64emu_t *emu, uintptr_t fcn) { pFEppppip_t fn = (pFEppppip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9); } +void pFEpppppi(x64emu_t *emu, uintptr_t fcn) { pFEpppppi_t fn = (pFEpppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9); } void pFifffppp(x64emu_t *emu, uintptr_t fcn) { pFifffppp_t fn = (pFifffppp_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFuupupup(x64emu_t *emu, uintptr_t fcn) { pFuupupup_t fn = (pFuupupup_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, (uint64_t)R_R9, *(void**)(R_RSP + 8)); } void pFpCuwwWW(x64emu_t *emu, uintptr_t fcn) { pFpCuwwWW_t fn = (pFpCuwwWW_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)); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index b4702def..8b6ed6e6 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1202,6 +1202,7 @@ void uFuippppp(x64emu_t *emu, uintptr_t fnc); void pFEpLiiii(x64emu_t *emu, uintptr_t fnc); void pFEpLiiiI(x64emu_t *emu, uintptr_t fnc); void pFEppppip(x64emu_t *emu, uintptr_t fnc); +void pFEpppppi(x64emu_t *emu, uintptr_t fnc); void pFifffppp(x64emu_t *emu, uintptr_t fnc); void pFuupupup(x64emu_t *emu, uintptr_t fnc); void pFpCuwwWW(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedxml2.c b/src/wrapped/wrappedxml2.c index 5c1e07fa..59381544 100755 --- a/src/wrapped/wrappedxml2.c +++ b/src/wrapped/wrappedxml2.c @@ -44,6 +44,7 @@ typedef int (*iFppppp_t) (void*, void*, void*, void*, void*); typedef void (*vFppppp_t) (void*, void*, void*, void*, void*); typedef int (*iFpppppp_t) (void*, void*, void*, void*, void*, void*); typedef void (*vFpppppp_t) (void*, void*, void*, void*, void*, void*); +typedef void* (*pFpppppi_t) (void*, void*, void*, void*, void*, int); #define SUPER() \ GO(xmlHashCopy, pFpp_t) \ @@ -72,6 +73,7 @@ typedef void (*vFpppppp_t) (void*, void*, void*, void*, void*, void*); GO(xmlParserInputBufferCreateIO, pFpppi_t) \ GO(xmlInitMemory, iFv_t) \ GO(xmlParseDocument, iFp_t) \ + GO(xmlCreateIOParserCtxt, pFpppppi_t) \ EXPORT uintptr_t my_xmlFree = 0; EXPORT uintptr_t my_xmlMalloc = 0; @@ -1415,6 +1417,18 @@ EXPORT int my_xmlParseDocument(x64emu_t* emu, my_xmlSAXHandler_t** p) return ret; } +EXPORT void* my_xmlCreateIOParserCtxt(x64emu_t* emu, my_xmlSAXHandler_t** p, void* user_data, void* ioread, void* ioclose, void* ioctx, int enc) +{ + xml2_my_t* my = (xml2_my_t*)my_lib->priv.w.p2; + // handling of wine that change the default sax handler of... + my_xmlSAXHandler_t* old_saxhandler = p?(*p):NULL; + my_xmlSAXHandler_t sax_handler = {0}; + wrapSaxHandler(&sax_handler, old_saxhandler); + void* ret = my->xmlCreateIOParserCtxt(p, user_data, find_xmlInputReadCallback_Fct(ioread), find_xmlInputCloseCallback_Fct(ioclose), ioctx, enc); + restoreSaxHandler(&sax_handler, old_saxhandler); + return ret; +} + #define CUSTOM_INIT \ lib->priv.w.p2 = getXml2My(lib); \ my_lib = lib; diff --git a/src/wrapped/wrappedxml2_private.h b/src/wrapped/wrappedxml2_private.h index 81cba09b..6c297d1a 100755 --- a/src/wrapped/wrappedxml2_private.h +++ b/src/wrapped/wrappedxml2_private.h @@ -163,7 +163,7 @@ GO(xmlBufferWriteChar, vFpp) GO(xmlBufferWriteCHAR, vFpp) GO(xmlBufferWriteQuotedString, vFpp) GO(xmlBuildQName, pFpppi) -//GO(xmlBuildRelativeURI, +GO(xmlBuildRelativeURI, pFpp) //GO(xmlBuildURI, GO(xmlByteConsumed, lFp) //GO(xmlC14NDocDumpMemory, @@ -198,7 +198,7 @@ GO(xmlCharEncInFunc, iFppp) GO(xmlCharEncOutFunc, iFppp) //GO(xmlCharInRange, //GO(xmlCharStrdup, -//GO(xmlCharStrndup, +GO(xmlCharStrndup, pFpi) GO(xmlCheckFilename, iFp) GO(xmlCheckHTTPInput, pFpp) GO(xmlCheckLanguageID, iFp) @@ -241,12 +241,12 @@ GO(xmlCreateEntityParserCtxt, pFppp) GO(xmlCreateEnumeration, pFp) GO(xmlCreateFileParserCtxt, pFp) GO(xmlCreateIntSubset, pFpppp) -//GOM(xmlCreateIOParserCtxt, pFEppBBpi) +GOM(xmlCreateIOParserCtxt, pFEpppppi) GO(xmlCreateMemoryParserCtxt, pFpi) GO(xmlCreatePushParserCtxt, pFpppip) //GO(xmlCreateURI, GO(xmlCreateURLParserCtxt, pFpi) -//GO(xmlCtxtGetLastError, +GO(xmlCtxtGetLastError, pFp) GO(xmlCtxtReadDoc, pFppppi) GO(xmlCtxtReadFd, pFpippi) GO(xmlCtxtReadFile, pFpppi) |