about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt13
-rw-r--r--src/wrapped/generated/wrappedglib2types.h1
-rw-r--r--src/wrapped/generated/wrappedlibctypes.h2
-rw-r--r--src/wrapped/generated/wrappedlzmatypes.h1
-rw-r--r--src/wrapped/generated/wrappedxml2types.h8
-rw-r--r--src/wrapped/generated/wrapper.c11
-rw-r--r--src/wrapped/generated/wrapper.h3
-rwxr-xr-xsrc/wrapped/wrappedglib2.c5
-rwxr-xr-xsrc/wrapped/wrappedglib2_private.h2
-rwxr-xr-xsrc/wrapped/wrappedgtk3_private.h2
-rwxr-xr-xsrc/wrapped/wrappedlibc.c12
-rwxr-xr-xsrc/wrapped/wrappedlibc_private.h4
-rwxr-xr-xsrc/wrapped/wrappedlzma.c8
-rwxr-xr-xsrc/wrapped/wrappedlzma_private.h8
-rwxr-xr-xsrc/wrapped/wrappedxml2.c52
-rwxr-xr-xsrc/wrapped/wrappedxml2_private.h28
16 files changed, 132 insertions, 28 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 9538d51e..82d2b3b7 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -489,6 +489,7 @@
 #() uFpuu
 #() uFpup
 #() uFpfu
+#() uFpLu
 #() uFpLp
 #() uFppi
 #() uFppu
@@ -878,6 +879,7 @@
 #() iFppui
 #() iFppuu
 #() iFppup
+#() iFppdd
 #() iFppdp
 #() iFppll
 #() iFpplp
@@ -1228,6 +1230,7 @@
 #() iFEpppL
 #() iFEpppp
 #() iFEpppV
+#() iFEpppA
 #() iFiiipu
 #() iFiiipp
 #() iFiiupp
@@ -2851,6 +2854,7 @@ wrappedglib2:
   - g_thread_create
 - pFpppp:
   - g_hash_table_new_full
+  - g_list_insert_sorted_with_data
   - g_slist_insert_sorted_with_data
   - g_thread_try_new
 - vFpiLpp:
@@ -3349,6 +3353,8 @@ wrappedlibc:
   - fts64_open
   - fts_open
 - pFppp:
+  - tdelete
+  - tfind
   - tsearch
 - vFiipV:
   - __syslog_chk
@@ -3903,6 +3909,7 @@ wrappedlzma:
   - lzma_alone_encoder
   - lzma_raw_decoder
   - lzma_raw_encoder
+  - lzma_stream_encoder_mt
 - iFpui:
   - lzma_easy_encoder
 - iFpUi:
@@ -4598,6 +4605,7 @@ wrappedxml2:
   - xmlHashScanFull
   - xmlSchemaSetParserStructuredErrors
   - xmlSchemaSetValidStructuredErrors
+  - xmlTextReaderSetErrorHandler
 - iFppp:
   - xmlHashRemoveEntry
   - xmlXPathRegisterFunc
@@ -4611,6 +4619,10 @@ wrappedxml2:
   - xmlHashUpdateEntry
   - xmlRegisterInputCallbacks
   - xmlRegisterOutputCallbacks
+- iFpppV:
+  - xmlTextWriterWriteFormatAttribute
+- iFpppA:
+  - xmlTextWriterWriteVFormatAttribute
 - pFpppi:
   - xmlParserInputBufferCreateIO
 - pFpppp:
@@ -4627,6 +4639,7 @@ wrappedxml2:
   - xmlHashUpdateEntry3
 - pFpppppi:
   - xmlCreateIOParserCtxt
+  - xmlReaderForIO
 wrappedxshmfence:
 wrappedxslt:
 - vFp:
diff --git a/src/wrapped/generated/wrappedglib2types.h b/src/wrapped/generated/wrappedglib2types.h
index fa7231cd..8a30a358 100644
--- a/src/wrapped/generated/wrappedglib2types.h
+++ b/src/wrapped/generated/wrappedglib2types.h
@@ -154,6 +154,7 @@ typedef int32_t (*iFpppippppppp_t)(void*, void*, void*, int32_t, void*, void*, v
 	GO(g_datalist_id_dup_data, pFpupp_t) \
 	GO(g_thread_create, pFppip_t) \
 	GO(g_hash_table_new_full, pFpppp_t) \
+	GO(g_list_insert_sorted_with_data, pFpppp_t) \
 	GO(g_slist_insert_sorted_with_data, pFpppp_t) \
 	GO(g_thread_try_new, pFpppp_t) \
 	GO(g_qsort_with_data, vFpiLpp_t) \
diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h
index cf1b0143..8c4ab887 100644
--- a/src/wrapped/generated/wrappedlibctypes.h
+++ b/src/wrapped/generated/wrappedlibctypes.h
@@ -211,6 +211,8 @@ typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*
 	GO(strlcpy, LFppL_t) \
 	GO(fts64_open, pFpip_t) \
 	GO(fts_open, pFpip_t) \
+	GO(tdelete, pFppp_t) \
+	GO(tfind, pFppp_t) \
 	GO(tsearch, pFppp_t) \
 	GO(__syslog_chk, vFiipV_t) \
 	GO(__vsyslog_chk, vFiipA_t) \
diff --git a/src/wrapped/generated/wrappedlzmatypes.h b/src/wrapped/generated/wrappedlzmatypes.h
index 02c343ff..a2d6d8cc 100644
--- a/src/wrapped/generated/wrappedlzmatypes.h
+++ b/src/wrapped/generated/wrappedlzmatypes.h
@@ -27,6 +27,7 @@ typedef int32_t (*iFpupppLppL_t)(void*, uint32_t, void*, void*, void*, uintptr_t
 	GO(lzma_alone_encoder, iFpp_t) \
 	GO(lzma_raw_decoder, iFpp_t) \
 	GO(lzma_raw_encoder, iFpp_t) \
+	GO(lzma_stream_encoder_mt, iFpp_t) \
 	GO(lzma_easy_encoder, iFpui_t) \
 	GO(lzma_stream_decoder, iFpUi_t) \
 	GO(lzma_stream_encoder, iFppi_t) \
diff --git a/src/wrapped/generated/wrappedxml2types.h b/src/wrapped/generated/wrappedxml2types.h
index fb721595..b39a1161 100644
--- a/src/wrapped/generated/wrappedxml2types.h
+++ b/src/wrapped/generated/wrappedxml2types.h
@@ -21,6 +21,8 @@ typedef int32_t (*iFppp_t)(void*, void*, void*);
 typedef void* (*pFppp_t)(void*, void*, void*);
 typedef void (*vFpppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
+typedef int32_t (*iFpppV_t)(void*, void*, void*, ...);
+typedef int32_t (*iFpppA_t)(void*, void*, void*, va_list);
 typedef void* (*pFpppi_t)(void*, void*, void*, int32_t);
 typedef void* (*pFpppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*);
@@ -43,6 +45,7 @@ typedef void* (*pFpppppi_t)(void*, void*, void*, void*, void*, int32_t);
 	GO(xmlHashScanFull, vFppp_t) \
 	GO(xmlSchemaSetParserStructuredErrors, vFppp_t) \
 	GO(xmlSchemaSetValidStructuredErrors, vFppp_t) \
+	GO(xmlTextReaderSetErrorHandler, vFppp_t) \
 	GO(xmlHashRemoveEntry, iFppp_t) \
 	GO(xmlXPathRegisterFunc, iFppp_t) \
 	GO(xmlNewCharEncodingHandler, pFppp_t) \
@@ -52,6 +55,8 @@ typedef void* (*pFpppppi_t)(void*, void*, void*, void*, void*, int32_t);
 	GO(xmlHashUpdateEntry, iFpppp_t) \
 	GO(xmlRegisterInputCallbacks, iFpppp_t) \
 	GO(xmlRegisterOutputCallbacks, iFpppp_t) \
+	GO(xmlTextWriterWriteFormatAttribute, iFpppV_t) \
+	GO(xmlTextWriterWriteVFormatAttribute, iFpppA_t) \
 	GO(xmlParserInputBufferCreateIO, pFpppi_t) \
 	GO(xmlOutputBufferCreateIO, pFpppp_t) \
 	GO(xmlHashRemoveEntry3, iFppppp_t) \
@@ -60,6 +65,7 @@ typedef void* (*pFpppppi_t)(void*, void*, void*, void*, void*, int32_t);
 	GO(xmlHashScan3, vFpppppp_t) \
 	GO(xmlHashScanFull3, vFpppppp_t) \
 	GO(xmlHashUpdateEntry3, iFpppppp_t) \
-	GO(xmlCreateIOParserCtxt, pFpppppi_t)
+	GO(xmlCreateIOParserCtxt, pFpppppi_t) \
+	GO(xmlReaderForIO, pFpppppi_t)
 
 #endif // __wrappedxml2TYPES_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 1a7ebf84..3a6e7de0 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -525,6 +525,7 @@ typedef uint32_t (*uFpuC_t)(void*, uint32_t, uint8_t);
 typedef uint32_t (*uFpuu_t)(void*, uint32_t, uint32_t);
 typedef uint32_t (*uFpup_t)(void*, uint32_t, void*);
 typedef uint32_t (*uFpfu_t)(void*, float, uint32_t);
+typedef uint32_t (*uFpLu_t)(void*, uintptr_t, uint32_t);
 typedef uint32_t (*uFpLp_t)(void*, uintptr_t, void*);
 typedef uint32_t (*uFppi_t)(void*, void*, int32_t);
 typedef uint32_t (*uFppu_t)(void*, void*, uint32_t);
@@ -1265,6 +1266,7 @@ typedef int32_t (*iFEpppi_t)(x64emu_t*, void*, void*, void*, int32_t);
 typedef int32_t (*iFEpppL_t)(x64emu_t*, void*, void*, void*, uintptr_t);
 typedef int32_t (*iFEpppp_t)(x64emu_t*, void*, void*, void*, void*);
 typedef int32_t (*iFEpppV_t)(x64emu_t*, void*, void*, void*, void*);
+typedef int32_t (*iFEpppA_t)(x64emu_t*, void*, void*, void*, void*);
 typedef int32_t (*iFiiipu_t)(int32_t, int32_t, int32_t, void*, uint32_t);
 typedef int32_t (*iFiiipp_t)(int32_t, int32_t, int32_t, void*, void*);
 typedef int32_t (*iFiiupp_t)(int32_t, int32_t, uint32_t, void*, void*);
@@ -1980,7 +1982,6 @@ typedef void* (*pFpppdddi_t)(void*, void*, void*, double, double, double, int32_
 typedef void* (*pFpppllli_t)(void*, void*, void*, intptr_t, intptr_t, intptr_t, int32_t);
 typedef void* (*pFpppLLLi_t)(void*, void*, void*, uintptr_t, uintptr_t, uintptr_t, int32_t);
 typedef void* (*pFppppuuu_t)(void*, void*, void*, void*, uint32_t, uint32_t, uint32_t);
-typedef void* (*pFpppppip_t)(void*, void*, void*, void*, void*, int32_t, void*);
 typedef void* (*pFpppppuu_t)(void*, void*, void*, void*, void*, uint32_t, uint32_t);
 typedef void* (*pFppppppi_t)(void*, void*, void*, void*, void*, void*, int32_t);
 typedef void* (*pFppppppp_t)(void*, void*, void*, void*, void*, void*, void*);
@@ -2932,6 +2933,7 @@ void uFpuC(x64emu_t *emu, uintptr_t fcn) { uFpuC_t fn = (uFpuC_t)fcn; R_RAX=(uin
 void uFpuu(x64emu_t *emu, uintptr_t fcn) { uFpuu_t fn = (uFpuu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
 void uFpup(x64emu_t *emu, uintptr_t fcn) { uFpup_t fn = (uFpup_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
 void uFpfu(x64emu_t *emu, uintptr_t fcn) { uFpfu_t fn = (uFpfu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, emu->xmm[0].f[0], (uint32_t)R_RSI); }
+void uFpLu(x64emu_t *emu, uintptr_t fcn) { uFpLu_t fn = (uFpLu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uint32_t)R_RDX); }
 void uFpLp(x64emu_t *emu, uintptr_t fcn) { uFpLp_t fn = (uFpLp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); }
 void uFppi(x64emu_t *emu, uintptr_t fcn) { uFppi_t fn = (uFppi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void uFppu(x64emu_t *emu, uintptr_t fcn) { uFppu_t fn = (uFppu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
@@ -3321,7 +3323,7 @@ void iFppuw(x64emu_t *emu, uintptr_t fcn) { iFppuw_t fn = (iFppuw_t)fcn; R_RAX=(
 void iFppui(x64emu_t *emu, uintptr_t fcn) { iFppui_t fn = (iFppui_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX); }
 void iFppuu(x64emu_t *emu, uintptr_t fcn) { iFppuu_t fn = (iFppuu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
 void iFppup(x64emu_t *emu, uintptr_t fcn) { iFppup_t fn = (iFppup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
-void iFppdd(x64emu_t *emu, uintptr_t fcn) { iFppdd_t fn = (iFppdd_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], emu->xmm[0].d[1]); }
+void iFppdd(x64emu_t *emu, uintptr_t fcn) { iFppdd_t fn = (iFppdd_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], emu->xmm[1].d[0]); }
 void iFppdp(x64emu_t *emu, uintptr_t fcn) { iFppdp_t fn = (iFppdp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], (void*)R_RDX); }
 void iFppll(x64emu_t *emu, uintptr_t fcn) { iFppll_t fn = (iFppll_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); }
 void iFpplp(x64emu_t *emu, uintptr_t fcn) { iFpplp_t fn = (iFpplp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (void*)R_RCX); }
@@ -3672,6 +3674,7 @@ void iFEpppi(x64emu_t *emu, uintptr_t fcn) { iFEpppi_t fn = (iFEpppi_t)fcn; R_RA
 void iFEpppL(x64emu_t *emu, uintptr_t fcn) { iFEpppL_t fn = (iFEpppL_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void iFEpppp(x64emu_t *emu, uintptr_t fcn) { iFEpppp_t fn = (iFEpppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFEpppV(x64emu_t *emu, uintptr_t fcn) { iFEpppV_t fn = (iFEpppV_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
+void iFEpppA(x64emu_t *emu, uintptr_t fcn) { iFEpppA_t fn = (iFEpppA_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFiiipu(x64emu_t *emu, uintptr_t fcn) { iFiiipu_t fn = (iFiiipu_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8); }
 void iFiiipp(x64emu_t *emu, uintptr_t fcn) { iFiiipp_t fn = (iFiiipp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFiiupp(x64emu_t *emu, uintptr_t fcn) { iFiiupp_t fn = (iFiiupp_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
@@ -4387,7 +4390,6 @@ void pFpppdddi(x64emu_t *emu, uintptr_t fcn) { pFpppdddi_t fn = (pFpppdddi_t)fcn
 void pFpppllli(x64emu_t *emu, uintptr_t fcn) { pFpppllli_t fn = (pFpppllli_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (intptr_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void pFpppLLLi(x64emu_t *emu, uintptr_t fcn) { pFpppLLLi_t fn = (pFpppLLLi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8, (uintptr_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void pFppppuuu(x64emu_t *emu, uintptr_t fcn) { pFppppuuu_t fn = (pFppppuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
-void pFpppppip(x64emu_t *emu, uintptr_t fcn) { pFpppppip_t fn = (pFpppppip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
 void pFpppppuu(x64emu_t *emu, uintptr_t fcn) { pFpppppuu_t fn = (pFpppppuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void pFppppppi(x64emu_t *emu, uintptr_t fcn) { pFppppppi_t fn = (pFppppppi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
 void pFppppppp(x64emu_t *emu, uintptr_t fcn) { pFppppppp_t fn = (pFppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
@@ -5267,6 +5269,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &uFpuu) return 1;
 	if (fun == &uFpup) return 1;
 	if (fun == &uFpfu) return 2;
+	if (fun == &uFpLu) return 1;
 	if (fun == &uFpLp) return 1;
 	if (fun == &uFppi) return 1;
 	if (fun == &uFppu) return 1;
@@ -5585,7 +5588,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFppui) return 1;
 	if (fun == &iFppuu) return 1;
 	if (fun == &iFppup) return 1;
-	if (fun == &iFppdd) return 2;
+	if (fun == &iFppdd) return 3;
 	if (fun == &iFppdp) return 2;
 	if (fun == &iFppll) return 1;
 	if (fun == &iFpplp) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 523daf87..d7e9b5c5 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -526,6 +526,7 @@ void uFpuC(x64emu_t *emu, uintptr_t fnc);
 void uFpuu(x64emu_t *emu, uintptr_t fnc);
 void uFpup(x64emu_t *emu, uintptr_t fnc);
 void uFpfu(x64emu_t *emu, uintptr_t fnc);
+void uFpLu(x64emu_t *emu, uintptr_t fnc);
 void uFpLp(x64emu_t *emu, uintptr_t fnc);
 void uFppi(x64emu_t *emu, uintptr_t fnc);
 void uFppu(x64emu_t *emu, uintptr_t fnc);
@@ -1266,6 +1267,7 @@ void iFEpppi(x64emu_t *emu, uintptr_t fnc);
 void iFEpppL(x64emu_t *emu, uintptr_t fnc);
 void iFEpppp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppV(x64emu_t *emu, uintptr_t fnc);
+void iFEpppA(x64emu_t *emu, uintptr_t fnc);
 void iFiiipu(x64emu_t *emu, uintptr_t fnc);
 void iFiiipp(x64emu_t *emu, uintptr_t fnc);
 void iFiiupp(x64emu_t *emu, uintptr_t fnc);
@@ -1981,7 +1983,6 @@ void pFpppdddi(x64emu_t *emu, uintptr_t fnc);
 void pFpppllli(x64emu_t *emu, uintptr_t fnc);
 void pFpppLLLi(x64emu_t *emu, uintptr_t fnc);
 void pFppppuuu(x64emu_t *emu, uintptr_t fnc);
-void pFpppppip(x64emu_t *emu, uintptr_t fnc);
 void pFpppppuu(x64emu_t *emu, uintptr_t fnc);
 void pFppppppi(x64emu_t *emu, uintptr_t fnc);
 void pFppppppp(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c
index 1ddd6cb5..30bfbdd6 100755
--- a/src/wrapped/wrappedglib2.c
+++ b/src/wrapped/wrappedglib2.c
@@ -1388,6 +1388,11 @@ EXPORT void my_g_slist_free_full(x64emu_t* emu, void* list, void* f)
     my->g_slist_free_full(list, findDestroyFct(f));
 }
 
+EXPORT void* my_g_list_insert_sorted_with_data(x64emu_t* emu, void* list, void* data, void* f, void* user)
+{
+    return my->g_list_insert_sorted_with_data(list, data, findGCompareDataFuncFct(f), user);
+}
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
diff --git a/src/wrapped/wrappedglib2_private.h b/src/wrapped/wrappedglib2_private.h
index 5559f0e9..c714900d 100755
--- a/src/wrapped/wrappedglib2_private.h
+++ b/src/wrapped/wrappedglib2_private.h
@@ -588,7 +588,7 @@ GO(g_list_index, iFpp)
 GO(g_list_insert, pFppi)
 GO(g_list_insert_before, pFppp)
 GOM(g_list_insert_sorted, pFEppp)
-//GO(g_list_insert_sorted_with_data, pFEppBp)
+GOM(g_list_insert_sorted_with_data, pFEpppp)
 GO(g_list_last, pFp)
 GO(g_list_length, uFp)
 GO(g_list_nth, pFpu)
diff --git a/src/wrapped/wrappedgtk3_private.h b/src/wrapped/wrappedgtk3_private.h
index b9cf5707..46b69727 100755
--- a/src/wrapped/wrappedgtk3_private.h
+++ b/src/wrapped/wrappedgtk3_private.h
@@ -4205,3 +4205,5 @@ GO(gtk_gesture_get_type, LFv)
 GO(gtk_event_controller_get_type, LFv)
 GO(gtk_stack_set_visible_child_name, vFpp)
 GO(gtk_stack_get_visible_child_name, pFp)
+
+GO(dummy_iFppdd, iFppdd)    // for GtkEventController wrapping
\ No newline at end of file
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index 0e87ca92..cc68c216 100755
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -1291,7 +1291,17 @@ EXPORT void* my_tsearch(x64emu_t* emu, void* key, void* root, void* fnc)
 EXPORT void my_tdestroy(x64emu_t* emu, void* root, void* fnc)
 {
     (void)emu;
-    return tdestroy(root, findfreeFct(fnc));
+    tdestroy(root, findfreeFct(fnc));
+}
+EXPORT void* my_tdelete(x64emu_t* emu, void* key, void** root, void* fnc)
+{
+    (void)emu;
+    return tdelete(key, root, findcompareFct(fnc));
+}
+EXPORT void* my_tfind(x64emu_t* emu, void* key, void** root, void* fnc)
+{
+    (void)emu;
+    return tfind(key, root, findcompareFct(fnc));
 }
 EXPORT void* my_lfind(x64emu_t* emu, void* key, void* base, size_t* nmemb, size_t size, void* fnc)
 {
diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h
index 213a10f6..5a9f5af0 100755
--- a/src/wrapped/wrappedlibc_private.h
+++ b/src/wrapped/wrappedlibc_private.h
@@ -1956,14 +1956,14 @@ GO(tcsendbreak, iFii)
 GO(tcsetattr, iFiip)
 GO(tcsetpgrp, iFii)
 //GO(__tdelete, 
-//GOW(tdelete, pFpp@)
+GOWM(tdelete, pFEppp)
 GOWM(tdestroy, vFEpp)
 GO(tee, lFiiLu)
 GO(telldir, lFp)
 GO(tempnam, pFpp)
 GOW(textdomain, pFp)
 //GO(__tfind, 
-//GOW(tfind, pFpp@)
+GOWM(tfind, pFEppp)
 GOW(tgkill, iFiii)
 //GO(thrd_current, 
 //GO(thrd_equal, 
diff --git a/src/wrapped/wrappedlzma.c b/src/wrapped/wrappedlzma.c
index 638a38dc..ad796fcf 100755
--- a/src/wrapped/wrappedlzma.c
+++ b/src/wrapped/wrappedlzma.c
@@ -200,6 +200,14 @@ EXPORT int my_lzma_alone_encoder(x64emu_t* emu, lzma_stream_t* stream, void* opt
     return my->lzma_alone_encoder(stream, options);
 }
 
+EXPORT int my_lzma_stream_encoder_mt(x64emu_t* emu, lzma_stream_t* stream, void* options)
+{
+    // not restoring the allocator after, so lzma_code and lzma_end can be used without "GOM" wrapping
+    if(stream->allocator)
+        wrap_alloc_struct(stream->allocator, stream->allocator);
+    return my->lzma_stream_encoder_mt(stream, options);
+}
+
 #define CUSTOM_INIT \
     getMy(lib);
 
diff --git a/src/wrapped/wrappedlzma_private.h b/src/wrapped/wrappedlzma_private.h
index 3b82a076..5dff2439 100755
--- a/src/wrapped/wrappedlzma_private.h
+++ b/src/wrapped/wrappedlzma_private.h
@@ -20,8 +20,8 @@ GO(lzma_auto_decoder, iFpUu)
 GO(lzma_check_is_supported, iFi)
 //GO(lzma_check_size, 
 GO(lzma_code, iFpi)
-//GO(lzma_cputhreads, 
-//GO(lzma_crc32, 
+GO(lzma_cputhreads, uFv)
+GO(lzma_crc32, uFpLu)
 //GO(lzma_crc64, 
 //GO(lzma_easy_buffer_encode, 
 //GO(lzma_easy_decoder_memusage, 
@@ -70,7 +70,7 @@ GO(lzma_index_uncompressed_size, UFp)
 GO(lzma_lzma_preset, iFpu)
 //GO(lzma_memlimit_get, 
 //GO(lzma_memlimit_set, 
-//GO(lzma_memusage, 
+GO(lzma_memusage, UFp)
 //GO(lzma_mf_is_supported, 
 //GO(lzma_mode_is_supported, 
 //GO(lzma_physmem, 
@@ -88,7 +88,7 @@ GOM(lzma_stream_buffer_decode, iFEpupppLppL)
 //GO(lzma_stream_buffer_encode, 
 GOM(lzma_stream_decoder, iFEpUi)
 GOM(lzma_stream_encoder, iFEppi)
-//GO(lzma_stream_encoder_mt, 
+GOM(lzma_stream_encoder_mt, iFEpp)
 //GO(lzma_stream_encoder_mt_memusage, 
 //GO(lzma_stream_flags_compare, 
 GO(lzma_stream_footer_decode, iFpp)
diff --git a/src/wrapped/wrappedxml2.c b/src/wrapped/wrappedxml2.c
index bcf0391a..e9f8dff8 100755
--- a/src/wrapped/wrappedxml2.c
+++ b/src/wrapped/wrappedxml2.c
@@ -16,6 +16,7 @@
 #include "box64context.h"
 #include "librarian.h"
 #include "callback.h"
+#include "myalign.h"
 
 const char* xml2Name =
 #ifdef ANDROID
@@ -1215,6 +1216,29 @@ static void* find_xmlOutputOpenCallback_Fct(void* fct) // this one have a VAArg
     return NULL;
 }
 
+// xmlTextReaderErrorFunc ...
+#define GO(A)   \
+static uintptr_t my_xmlTextReaderErrorFunc_fct_##A = 0;                         \
+static void my_xmlTextReaderErrorFunc_##A(void* a, void* b, int c, void* d)     \
+{                                                                               \
+    RunFunction(my_context, my_xmlTextReaderErrorFunc_fct_##A, 4, a, b, c, d);  \
+}
+SUPER()
+#undef GO
+static void* find_xmlTextReaderErrorFunc_Fct(void* fct) // this one have a VAArg
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_xmlTextReaderErrorFunc_fct_##A == (uintptr_t)fct) return my_xmlTextReaderErrorFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_xmlTextReaderErrorFunc_fct_##A == 0) {my_xmlTextReaderErrorFunc_fct_##A = (uintptr_t)fct; return my_xmlTextReaderErrorFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libxml2 xmlTextReaderErrorFunc callback\n");
+    return NULL;
+}
+
 #undef SUPER
 
 EXPORT void* my_xmlHashCopy(x64emu_t* emu, void* table, void* f)
@@ -1438,6 +1462,34 @@ EXPORT int my_xmlRegisterOutputCallbacks(x64emu_t* emu, void* match, void* open,
     return my->xmlRegisterOutputCallbacks(find_xmlOutputMatchCallback_Fct(match), find_xmlOutputOpenCallback_Fct(open), find_xmlOutputWriteCallback_Fct(write), find_xmlOutputCloseCallback_Fct(close));
 }
 
+EXPORT int my_xmlTextWriterWriteVFormatAttribute(x64emu_t* emu, void* writer, void* name, void* fmt, x64_va_list_t b)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(b);
+    #else
+    myStackAlignValist(emu, (const char*)fmt, emu->scratch, b);
+    PREPARE_VALIST;
+    #endif
+    return my->xmlTextWriterWriteVFormatAttribute(writer, name, fmt, VARARGS);
+}
+
+EXPORT int my_xmlTextWriterWriteFormatAttribute(x64emu_t* emu, void* writer, void* name, void* fmt, void* b)
+{
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 2);
+    PREPARE_VALIST;
+    return my->xmlTextWriterWriteVFormatAttribute(writer, name, fmt, VARARGS);
+}
+
+EXPORT void* my_xmlReaderForIO(void *emu, void * ioread, void * ioclose, void * ioctx, char * URL, char * encoding, int  options)
+{
+    return my->xmlReaderForIO(find_xmlInputReadCallback_Fct(ioread), find_xmlInputCloseCallback_Fct(ioclose), ioctx, URL, encoding, options);
+}
+
+EXPORT void my_xmlTextReaderSetErrorHandler(x64emu_t* emu, void* reader, void* f, void* arg)
+{
+    my->xmlTextReaderSetErrorHandler(reader, find_xmlTextReaderErrorFunc_Fct(f), arg);
+}
+
 #define CUSTOM_INIT \
     getMy(lib);
 
diff --git a/src/wrapped/wrappedxml2_private.h b/src/wrapped/wrappedxml2_private.h
index dd699a9b..4a43dac1 100755
--- a/src/wrapped/wrappedxml2_private.h
+++ b/src/wrapped/wrappedxml2_private.h
@@ -362,7 +362,7 @@ GO(xmlFreeRefTable, vFp)
 //GO(xmlFreeRMutex, 
 //GO(xmlFreeStreamCtxt, 
 GO(xmlFreeTextReader, vFp)
-//GO(xmlFreeTextWriter, 
+GO(xmlFreeTextWriter, vFp)
 //GO(xmlFreeURI, 
 GO(xmlFreeValidCtxt, vFp)
 //GO(xmlGcMemGet, 
@@ -622,7 +622,7 @@ GO(xmlNewTextLen, pFpi)
 //GO(xmlNewTextWriter, 
 //GO(xmlNewTextWriterDoc, 
 //GO(xmlNewTextWriterFilename, 
-//GO(xmlNewTextWriterMemory, 
+GO(xmlNewTextWriterMemory, pFpi)
 //GO(xmlNewTextWriterPushParser, 
 //GO(xmlNewTextWriterTree, 
 GO(xmlNewValidCtxt, pFv)
@@ -776,7 +776,7 @@ GO(xmlReadDoc, pFpppi)
 //GO(xmlReaderForDoc, 
 //GO(xmlReaderForFd, 
 //GO(xmlReaderForFile, 
-//GO(xmlReaderForIO, 
+GOM(xmlReaderForIO, pFEpppppi)
 GO(xmlReaderForMemory, pFpippi)
 //GO(xmlReaderNewDoc, 
 //GO(xmlReaderNewFd, 
@@ -1103,7 +1103,7 @@ GO(xmlTextReaderRead, iFp)
 //GO(xmlTextReaderRelaxNGValidate, 
 //GO(xmlTextReaderSchemaValidate, 
 //GO(xmlTextReaderSchemaValidateCtxt, 
-//GO(xmlTextReaderSetErrorHandler, 
+GOM(xmlTextReaderSetErrorHandler, vFEppp)
 //GO(xmlTextReaderSetParserProp, 
 //GO(xmlTextReaderSetSchema, 
 //GO(xmlTextReaderSetStructuredErrorHandler, 
@@ -1114,32 +1114,32 @@ GO(xmlTextReaderRead, iFp)
 //GO(xmlTextWriterEndAttribute, 
 //GO(xmlTextWriterEndCDATA, 
 //GO(xmlTextWriterEndComment, 
-//GO(xmlTextWriterEndDocument, 
+GO(xmlTextWriterEndDocument, iFp)
 //GO(xmlTextWriterEndDTD, 
 //GO(xmlTextWriterEndDTDAttlist, 
 //GO(xmlTextWriterEndDTDElement, 
 //GO(xmlTextWriterEndDTDEntity, 
-//GO(xmlTextWriterEndElement, 
+GO(xmlTextWriterEndElement, iFp)
 //GO(xmlTextWriterEndPI, 
 //GO(xmlTextWriterFlush, 
 //GO(xmlTextWriterFullEndElement, 
-//GO(xmlTextWriterSetIndent, 
+GO(xmlTextWriterSetIndent, iFpi)
 //GO(xmlTextWriterSetIndentString, 
 //GO(xmlTextWriterStartAttribute, 
 //GO(xmlTextWriterStartAttributeNS, 
 //GO(xmlTextWriterStartCDATA, 
 //GO(xmlTextWriterStartComment, 
-//GO(xmlTextWriterStartDocument, 
+GO(xmlTextWriterStartDocument, iFpppp)
 //GO(xmlTextWriterStartDTD, 
 //GO(xmlTextWriterStartDTDAttlist, 
 //GO(xmlTextWriterStartDTDElement, 
 //GO(xmlTextWriterStartDTDEntity, 
-//GO(xmlTextWriterStartElement, 
+GO(xmlTextWriterStartElement, iFpp)
 //GO(xmlTextWriterStartElementNS, 
 //GO(xmlTextWriterStartPI, 
-//GO(xmlTextWriterWriteAttribute, 
+GO(xmlTextWriterWriteAttribute, iFppp)
 //GO(xmlTextWriterWriteAttributeNS, 
-//GO(xmlTextWriterWriteBase64, 
+GO(xmlTextWriterWriteBase64, iFppii)
 //GO(xmlTextWriterWriteBinHex, 
 //GO(xmlTextWriterWriteCDATA, 
 //GO(xmlTextWriterWriteComment, 
@@ -1153,7 +1153,7 @@ GO(xmlTextReaderRead, iFp)
 //GO(xmlTextWriterWriteDTDNotation, 
 //GO(xmlTextWriterWriteElement, 
 //GO(xmlTextWriterWriteElementNS, 
-//GO(xmlTextWriterWriteFormatAttribute, 
+GOM(xmlTextWriterWriteFormatAttribute, iFEpppV)
 //GO(xmlTextWriterWriteFormatAttributeNS, 
 //GO(xmlTextWriterWriteFormatCDATA, 
 //GO(xmlTextWriterWriteFormatComment, 
@@ -1169,8 +1169,8 @@ GO(xmlTextReaderRead, iFp)
 //GO(xmlTextWriterWritePI, 
 //GO(xmlTextWriterWriteRaw, 
 //GO(xmlTextWriterWriteRawLen, 
-//GO(xmlTextWriterWriteString, 
-//GO(xmlTextWriterWriteVFormatAttribute, 
+GO(xmlTextWriterWriteString, iFpp)
+GOM(xmlTextWriterWriteVFormatAttribute, iFEpppA)
 //GO(xmlTextWriterWriteVFormatAttributeNS, 
 //GO(xmlTextWriterWriteVFormatCDATA, 
 //GO(xmlTextWriterWriteVFormatComment,