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.txt9
-rw-r--r--src/wrapped/generated/wrappedlibsqlite3types.h6
-rw-r--r--src/wrapped/generated/wrapper.c9
-rw-r--r--src/wrapped/generated/wrapper.h3
-rw-r--r--src/wrapped/wrappedlibsqlite3.c70
-rw-r--r--src/wrapped/wrappedlibsqlite3_private.h158
6 files changed, 178 insertions, 77 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 091c98a7..6dfb16e0 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -559,6 +559,7 @@
 #() iFpil
 #() iFpiL
 #() iFpip
+#() iFpIp
 #() iFpCu
 #() iFpCp
 #() iFpWW
@@ -1096,6 +1097,7 @@
 #() iFpipL
 #() iFpipp
 #() iFpipV
+#() iFpIip
 #() iFpCCC
 #() iFpCCp
 #() iFpCuu
@@ -1159,6 +1161,7 @@
 #() iFpLpL
 #() iFpLpp
 #() iFppii
+#() iFppiI
 #() iFppiu
 #() iFppiU
 #() iFppiL
@@ -5151,6 +5154,12 @@ wrappedlibsndfile:
 - pFpipp:
   - sf_open_virtual
 wrappedlibsqlite3:
+- pFp:
+  - sqlite3_database_file_object
+- pFpV:
+  - sqlite3_mprintf
+- pFpA:
+  - sqlite3_vmprintf
 - iFppppp:
   - sqlite3_exec
 wrappedlibssh2:
diff --git a/src/wrapped/generated/wrappedlibsqlite3types.h b/src/wrapped/generated/wrappedlibsqlite3types.h
index ddf07c9e..d36376dc 100644
--- a/src/wrapped/generated/wrappedlibsqlite3types.h
+++ b/src/wrapped/generated/wrappedlibsqlite3types.h
@@ -11,9 +11,15 @@
 #define ADDED_FUNCTIONS() 
 #endif
 
+typedef void* (*pFp_t)(void*);
+typedef void* (*pFpV_t)(void*, ...);
+typedef void* (*pFpA_t)(void*, va_list);
 typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*);
 
 #define SUPER() ADDED_FUNCTIONS() \
+	GO(sqlite3_database_file_object, pFp_t) \
+	GO(sqlite3_mprintf, pFpV_t) \
+	GO(sqlite3_vmprintf, pFpA_t) \
 	GO(sqlite3_exec, iFppppp_t)
 
 #endif // __wrappedlibsqlite3TYPES_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index d4aa4fa5..92ffd295 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -594,6 +594,7 @@ typedef int32_t (*iFpid_t)(void*, int32_t, double);
 typedef int32_t (*iFpil_t)(void*, int32_t, intptr_t);
 typedef int32_t (*iFpiL_t)(void*, int32_t, uintptr_t);
 typedef int32_t (*iFpip_t)(void*, int32_t, void*);
+typedef int32_t (*iFpIp_t)(void*, int64_t, void*);
 typedef int32_t (*iFpCu_t)(void*, uint8_t, uint32_t);
 typedef int32_t (*iFpCp_t)(void*, uint8_t, void*);
 typedef int32_t (*iFpWW_t)(void*, uint16_t, uint16_t);
@@ -1127,6 +1128,7 @@ typedef int32_t (*iFpipu_t)(void*, int32_t, void*, uint32_t);
 typedef int32_t (*iFpipL_t)(void*, int32_t, void*, uintptr_t);
 typedef int32_t (*iFpipp_t)(void*, int32_t, void*, void*);
 typedef int32_t (*iFpipV_t)(void*, int32_t, void*, void*);
+typedef int32_t (*iFpIip_t)(void*, int64_t, int32_t, void*);
 typedef int32_t (*iFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
 typedef int32_t (*iFpCCp_t)(void*, uint8_t, uint8_t, void*);
 typedef int32_t (*iFpCuu_t)(void*, uint8_t, uint32_t, uint32_t);
@@ -1189,6 +1191,7 @@ typedef int32_t (*iFpLpd_t)(void*, uintptr_t, void*, double);
 typedef int32_t (*iFpLpL_t)(void*, uintptr_t, void*, uintptr_t);
 typedef int32_t (*iFpLpp_t)(void*, uintptr_t, void*, void*);
 typedef int32_t (*iFppii_t)(void*, void*, int32_t, int32_t);
+typedef int32_t (*iFppiI_t)(void*, void*, int32_t, int64_t);
 typedef int32_t (*iFppiu_t)(void*, void*, int32_t, uint32_t);
 typedef int32_t (*iFppiU_t)(void*, void*, int32_t, uint64_t);
 typedef int32_t (*iFppiL_t)(void*, void*, int32_t, uintptr_t);
@@ -4010,6 +4013,7 @@ void iFpid(x64emu_t *emu, uintptr_t fcn) { iFpid_t fn = (iFpid_t)fcn; R_RAX=(uin
 void iFpil(x64emu_t *emu, uintptr_t fcn) { iFpil_t fn = (iFpil_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (intptr_t)R_RDX); }
 void iFpiL(x64emu_t *emu, uintptr_t fcn) { iFpiL_t fn = (iFpiL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX); }
 void iFpip(x64emu_t *emu, uintptr_t fcn) { iFpip_t fn = (iFpip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX); }
+void iFpIp(x64emu_t *emu, uintptr_t fcn) { iFpIp_t fn = (iFpIp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX); }
 void iFpCu(x64emu_t *emu, uintptr_t fcn) { iFpCu_t fn = (iFpCu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX); }
 void iFpCp(x64emu_t *emu, uintptr_t fcn) { iFpCp_t fn = (iFpCp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (void*)R_RDX); }
 void iFpWW(x64emu_t *emu, uintptr_t fcn) { iFpWW_t fn = (iFpWW_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint16_t)R_RSI, (uint16_t)R_RDX); }
@@ -4543,6 +4547,7 @@ void iFpipu(x64emu_t *emu, uintptr_t fcn) { iFpipu_t fn = (iFpipu_t)fcn; R_RAX=(
 void iFpipL(x64emu_t *emu, uintptr_t fcn) { iFpipL_t fn = (iFpipL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void iFpipp(x64emu_t *emu, uintptr_t fcn) { iFpipp_t fn = (iFpipp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFpipV(x64emu_t *emu, uintptr_t fcn) { iFpipV_t fn = (iFpipV_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
+void iFpIip(x64emu_t *emu, uintptr_t fcn) { iFpIip_t fn = (iFpIip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int64_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void iFpCCC(x64emu_t *emu, uintptr_t fcn) { iFpCCC_t fn = (iFpCCC_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX); }
 void iFpCCp(x64emu_t *emu, uintptr_t fcn) { iFpCCp_t fn = (iFpCCp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (void*)R_RCX); }
 void iFpCuu(x64emu_t *emu, uintptr_t fcn) { iFpCuu_t fn = (iFpCuu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
@@ -4605,6 +4610,7 @@ void iFpLpd(x64emu_t *emu, uintptr_t fcn) { iFpLpd_t fn = (iFpLpd_t)fcn; R_RAX=(
 void iFpLpL(x64emu_t *emu, uintptr_t fcn) { iFpLpL_t fn = (iFpLpL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void iFpLpp(x64emu_t *emu, uintptr_t fcn) { iFpLpp_t fn = (iFpLpp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFppii(x64emu_t *emu, uintptr_t fcn) { iFppii_t fn = (iFppii_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
+void iFppiI(x64emu_t *emu, uintptr_t fcn) { iFppiI_t fn = (iFppiI_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int64_t)R_RCX); }
 void iFppiu(x64emu_t *emu, uintptr_t fcn) { iFppiu_t fn = (iFppiu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX); }
 void iFppiU(x64emu_t *emu, uintptr_t fcn) { iFppiU_t fn = (iFppiU_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uint64_t)R_RCX); }
 void iFppiL(x64emu_t *emu, uintptr_t fcn) { iFppiL_t fn = (iFppiL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX); }
@@ -7328,6 +7334,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpil) return 1;
 	if (fun == &iFpiL) return 1;
 	if (fun == &iFpip) return 1;
+	if (fun == &iFpIp) return 1;
 	if (fun == &iFpCu) return 1;
 	if (fun == &iFpCp) return 1;
 	if (fun == &iFpWW) return 1;
@@ -7746,6 +7753,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpipu) return 1;
 	if (fun == &iFpipL) return 1;
 	if (fun == &iFpipp) return 1;
+	if (fun == &iFpIip) return 1;
 	if (fun == &iFpCCC) return 1;
 	if (fun == &iFpCCp) return 1;
 	if (fun == &iFpCuu) return 1;
@@ -7807,6 +7815,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpLpL) return 1;
 	if (fun == &iFpLpp) return 1;
 	if (fun == &iFppii) return 1;
+	if (fun == &iFppiI) return 1;
 	if (fun == &iFppiu) return 1;
 	if (fun == &iFppiU) return 1;
 	if (fun == &iFppiL) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index d95ea687..4dd75544 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -596,6 +596,7 @@ void iFpid(x64emu_t *emu, uintptr_t fnc);
 void iFpil(x64emu_t *emu, uintptr_t fnc);
 void iFpiL(x64emu_t *emu, uintptr_t fnc);
 void iFpip(x64emu_t *emu, uintptr_t fnc);
+void iFpIp(x64emu_t *emu, uintptr_t fnc);
 void iFpCu(x64emu_t *emu, uintptr_t fnc);
 void iFpCp(x64emu_t *emu, uintptr_t fnc);
 void iFpWW(x64emu_t *emu, uintptr_t fnc);
@@ -1133,6 +1134,7 @@ void iFpipu(x64emu_t *emu, uintptr_t fnc);
 void iFpipL(x64emu_t *emu, uintptr_t fnc);
 void iFpipp(x64emu_t *emu, uintptr_t fnc);
 void iFpipV(x64emu_t *emu, uintptr_t fnc);
+void iFpIip(x64emu_t *emu, uintptr_t fnc);
 void iFpCCC(x64emu_t *emu, uintptr_t fnc);
 void iFpCCp(x64emu_t *emu, uintptr_t fnc);
 void iFpCuu(x64emu_t *emu, uintptr_t fnc);
@@ -1196,6 +1198,7 @@ void iFpLpD(x64emu_t *emu, uintptr_t fnc);
 void iFpLpL(x64emu_t *emu, uintptr_t fnc);
 void iFpLpp(x64emu_t *emu, uintptr_t fnc);
 void iFppii(x64emu_t *emu, uintptr_t fnc);
+void iFppiI(x64emu_t *emu, uintptr_t fnc);
 void iFppiu(x64emu_t *emu, uintptr_t fnc);
 void iFppiU(x64emu_t *emu, uintptr_t fnc);
 void iFppiL(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibsqlite3.c b/src/wrapped/wrappedlibsqlite3.c
index e1720667..2ca6f08c 100644
--- a/src/wrapped/wrappedlibsqlite3.c
+++ b/src/wrapped/wrappedlibsqlite3.c
@@ -27,6 +27,32 @@ const char* libsqlite3Name = "libsqlite3.so.0";
 
 #include "wrappercallback.h"
 
+typedef struct my_sqlite3_io_methods_s {
+  int iVersion;
+  int (*xClose)(void*);
+  int (*xRead)(void*, void*, int iAmt, int64_t iOfst);
+  int (*xWrite)(void*, const void*, int iAmt, int64_t iOfst);
+  int (*xTruncate)(void*, int64_t size);
+  int (*xSync)(void*, int flags);
+  int (*xFileSize)(void*, int64_t *pSize);
+  int (*xLock)(void*, int);
+  int (*xUnlock)(void*, int);
+  int (*xCheckReservedLock)(void*, int *pResOut);
+  int (*xFileControl)(void*, int op, void *pArg);
+  int (*xSectorSize)(void*);
+  int (*xDeviceCharacteristics)(void*);
+  int (*xShmMap)(void*, int iPg, int pgsz, int, void volatile**);
+  int (*xShmLock)(void*, int offset, int n, int flags);
+  void (*xShmBarrier)(void*);
+  int (*xShmUnmap)(void*, int deleteFlag);
+  int (*xFetch)(void*, int64_t iOfst, int iAmt, void **pp);
+  int (*xUnfetch)(void*, int64_t iOfst, void *p);
+} my_sqlite3_io_methods_t;
+
+typedef struct my_sqlite3_file_s {
+  const my_sqlite3_io_methods_t *pMethods;
+} my_sqlite3_file_t;
+
 #define SUPER() \
 GO(0)   \
 GO(1)   \
@@ -61,4 +87,48 @@ EXPORT int my_sqlite3_exec(x64emu_t* emu, void *db, char *sql, void* callback, v
     return my->sqlite3_exec(db, sql, find_sqlite3_exec_fct(callback), data, errmsg);
 }
 
+EXPORT void* my_sqlite3_vmprintf(x64emu_t *emu, void* fmt, x64_va_list_t b) {
+    (void)emu;
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(b);
+    #else
+    myStackAlignValist(emu, (const char*)fmt, emu->scratch, b);
+    PREPARE_VALIST;
+    #endif
+    return my->sqlite3_vmprintf(fmt, VARARGS);
+}
+EXPORT void* my_sqlite3_mprintf(x64emu_t *emu, void* fmt, void* b) {
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1);
+    PREPARE_VALIST;
+    return my->sqlite3_vmprintf(fmt, VARARGS);
+}
+
+EXPORT void* my_sqlite3_database_file_object(x64emu_t* emu, void* a)
+{
+    my_sqlite3_file_t* ret = my->sqlite3_database_file_object(a);
+    // add autobridge on all the functions
+    #define GO(A, W)    if(ret->pMethods->A) AddAutomaticBridge(my_lib->w.bridge, W, ret->pMethods->A, 0, #A)
+    GO(xClose, iFp);
+    GO(xRead, iFppiI);
+    GO(xWrite, iFppiI);
+    GO(xTruncate, iFpI);
+    GO(xSync, iFpi);
+    GO(xFileSize, iFpp);
+    GO(xLock, iFpi);
+    GO(xUnlock, iFpi);
+    GO(xCheckReservedLock, iFpp);
+    GO(xFileControl, iFpip);
+    GO(xSectorSize, iFp);
+    GO(xDeviceCharacteristics, iFp);
+    GO(xShmMap, iFpiiip);
+    GO(xShmLock, iFpiii);
+    GO(xShmBarrier, iFp);
+    GO(xShmUnmap, iFpi);
+    GO(xFetch, iFpIip);
+    GO(xUnfetch, iFpIp);
+    #undef GO
+    return ret;
+}
+
+
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibsqlite3_private.h b/src/wrapped/wrappedlibsqlite3_private.h
index a5c9dd99..a3cd085e 100644
--- a/src/wrapped/wrappedlibsqlite3_private.h
+++ b/src/wrapped/wrappedlibsqlite3_private.h
@@ -1,16 +1,16 @@
 #if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
-error Meh...
+#error Meh...
 #endif
 
 GO(sqlite3_aggregate_context, pFpi)
 GO(sqlite3_aggregate_count, iFp)
-// GO(sqlite3_auto_extension, 
+//GOM(sqlite3_auto_extension, iFEp)
 GO(sqlite3_backup_finish, iFp)
 GO(sqlite3_backup_init, pFpppp)
-// GO(sqlite3_backup_pagecount, iFp)
+GO(sqlite3_backup_pagecount, iFp)
 GO(sqlite3_backup_step, iFpi)
-// GO(sqlite3_bind_blob, 
-// GO(sqlite3_bind_blob64, 
+//GOM(sqlite3_bind_blob, iFEpipip)
+//GOM(sqlite3_bind_blob64, iFEpipUp)
 GO(sqlite3_bind_double, iFpid)
 GO(sqlite3_bind_int, iFpii)
 GO(sqlite3_bind_int64, iFpiI)
@@ -18,10 +18,10 @@ GO(sqlite3_bind_null, iFpi)
 GO(sqlite3_bind_parameter_count, iFp)
 GO(sqlite3_bind_parameter_index, iFpp)
 GO(sqlite3_bind_parameter_name, pFpi)
-// GO(sqlite3_bind_pointer, 
-// GO(sqlite3_bind_text, 
-// GO(sqlite3_bind_text16, 
-// GO(sqlite3_bind_text64, 
+//GOM(sqlite3_bind_pointer, iFEpippp)
+//GOM(sqlite3_bind_text, iFEpipip)
+//GOM(sqlite3_bind_text16, iFEpipip)
+//GOM(sqlite3_bind_text64, iFEpipUpC)
 GO(sqlite3_bind_value, iFpip)
 GO(sqlite3_bind_zeroblob, iFpii)
 GO(sqlite3_bind_zeroblob64, iFpiU)
@@ -30,15 +30,15 @@ GO(sqlite3_blob_close, iFp)
 GO(sqlite3_blob_open, iFppppIip)
 GO(sqlite3_blob_read, iFppii)
 GO(sqlite3_blob_write, iFppii)
-// GO(sqlite3_busy_handler, 
+//GOM(sqlite3_busy_handler, iFEppp)
 GO(sqlite3_busy_timeout, iFpi)
-// GO(sqlite3_cancel_auto_extension, 
+//GOM(sqlite3_cancel_auto_extension, iFEp)
 GO(sqlite3_changes, iFp)
 GO(sqlite3_clear_bindings, iFp)
 GO(sqlite3_close_v2, iFp)
 GO(sqlite3_close, iFp)
-// GO(sqlite3_collation_needed, 
-// GO(sqlite3_collation_needed16, 
+//GOM(sqlite3_collation_needed, iFEppp)
+//GOM(sqlite3_collation_needed16, iFEppp)
 GO(sqlite3_column_blob, pFpi)
 GO(sqlite3_column_bytes, iFpi)
 GO(sqlite3_column_count, iFp)
@@ -58,28 +58,28 @@ GO(sqlite3_column_table_name16, pFpi)
 GO(sqlite3_column_text16, pFpi)
 GO(sqlite3_column_type, iFpi)
 GO(sqlite3_column_value, pFpi)
-// GO(sqlite3_commit_hook, 
+//GOM(sqlite3_commit_hook, pFEppp)
 GO(sqlite3_compileoption_get, pFi)
 GO(sqlite3_compileoption_used, iFp)
 GO(sqlite3_complete, iFp)
 GO(sqlite3_complete16, iFp)
-// GO(sqlite3_config, 
+//GOM(sqlite3_config, iFEiV)
 GO(sqlite3_context_db_handle, pFp)
-// GO(sqlite3_create_collation_v2, 
-// GO(sqlite3_create_collation, 
-// GO(sqlite3_create_collation16, 
+//GOM(sqlite3_create_collation_v2, iFEppippp)
+//GOM(sqlite3_create_collation, iFEppipp)
+//GOM(sqlite3_create_collation16, iFEppipp)
 GO(sqlite3_create_filename, pFpppip)
-// GO(sqlite3_create_function_v2, 
-// GO(sqlite3_create_function, 
-// GO(sqlite3_create_function16, 
-// GO(sqlite3_create_module_v2, 
-// GO(sqlite3_create_module, 
-// GO(sqlite3_create_window_function, 
+//GOM(sqlite3_create_function_v2, iFEppiippppp)
+//GOM(sqlite3_create_function, iFEppiipppp)
+//GOM(sqlite3_create_function16, iFEppiipppp)
+//GOM(sqlite3_create_module_v2, iFEppppp)
+//GOM(sqlite3_create_module, iFEpppp)
+//GOM(sqlite3_create_window_function, iFEppiipppppp)
 GO(sqlite3_data_count, iFp)
-// GO(sqlite3_data_directory, 
-GO(sqlite3_database_file_object, pFp)
+DATA(sqlite3_data_directory, 8)
+GOM(sqlite3_database_file_object, pFEp)
 GO(sqlite3_db_cacheflush, iFp)
-// GO(sqlite3_db_config, 
+//GOM(sqlite3_db_config, iFEpiV)
 GO(sqlite3_db_filename, pFpp)
 GO(sqlite3_db_handle, pFp)
 GO(sqlite3_db_mutex, pFp)
@@ -120,13 +120,13 @@ GO(sqlite3_libversion_number, iFv)
 GO(sqlite3_libversion, pFv)
 GO(sqlite3_limit, iFpii)
 GO(sqlite3_load_extension, iFpppp)
-// GO(sqlite3_log, 
+//GOM(sqlite3_log, vFEipV)
 GO(sqlite3_malloc, pFi)
 GO(sqlite3_malloc64, pFU)
-// GO(sqlite3_memory_alarm, 
+//GOM(sqlite3_memory_alarm, iFEppI)
 GO(sqlite3_memory_highwater, IFi)
 GO(sqlite3_memory_used, IFv)
-// GO(sqlite3_mprintf, 
+GOM(sqlite3_mprintf, pFEpV)
 GO(sqlite3_msize, UFp)
 GO(sqlite3_mutex_alloc, pFi)
 GO(sqlite3_mutex_enter, vFp)
@@ -139,20 +139,20 @@ GO(sqlite3_os_end, iFv)
 GO(sqlite3_os_init, iFv)
 GO(sqlite3_overload_function, iFppi)
 GO(sqlite3_prepare_v2, iFppipp)
-GO(sqlite3_prepare_v3, iFppippp)
+GO(sqlite3_prepare_v3, iFppiupp)
 GO(sqlite3_prepare16_v2, iFppipp)
-GO(sqlite3_prepare16_v3, iFppippp)
+GO(sqlite3_prepare16_v3, iFppiupp)
 GO(sqlite3_prepare16, iFppipp)
-// GO(sqlite3_profile, 
-// GO(sqlite3_progress_handler, 
+//GOM(sqlite3_profile, pFEppp)
+//GOM(sqlite3_progress_handler, vFEpipp)
 GO(sqlite3_randomness, vFip)
 GO(sqlite3_realloc, pFpi)
 GO(sqlite3_realloc64, pFpU)
 GO(sqlite3_release_memory, iFi)
 GO(sqlite3_reset_auto_extension, vFv)
 GO(sqlite3_reset, iFp)
-// GO(sqlite3_result_blob, 
-// GO(sqlite3_result_blob64, 
+//GOM(sqlite3_result_blob, vFEppip)
+//GOM(sqlite3_result_blob64, vFEppUp)
 GO(sqlite3_result_error_code, vFpi)
 GO(sqlite3_result_error_nomem, vFp)
 GO(sqlite3_result_error_toobig, vFp)
@@ -161,25 +161,25 @@ GO(sqlite3_result_error16, vFppi)
 GO(sqlite3_result_int, vFpi)
 GO(sqlite3_result_int64, vFpI)
 GO(sqlite3_result_null, vFp)
-// GO(sqlite3_result_pointer, 
+//GOM(sqlite3_result_pointer, vFEpppp)
 GO(sqlite3_result_subtype, vFpu)
-// GO(sqlite3_result_text, 
-// GO(sqlite3_result_text16, 
-// GO(sqlite3_result_text16be, 
-// GO(sqlite3_result_text16le, 
-// GO(sqlite3_result_text64, 
+//GOM(sqlite3_result_text, vFEppip)
+//GOM(sqlite3_result_text16, vFEppip)
+//GOM(sqlite3_result_text16be, vFEppip)
+//GOM(sqlite3_result_text16le, vFEppip)
+//GOM(sqlite3_result_text64, vFEppUpC)
 GO(sqlite3_result_value, vFpp)
 GO(sqlite3_result_zeroblob, vFpi)
 GO(sqlite3_result_zeroblob64, iFpU)
-// GO(sqlite3_rollback_hook, 
-// GO(sqlite3_rtree_geometry_callback, 
-// GO(sqlite3_rtree_query_callback, 
-// GO(sqlite3_set_authorizer, 
-// GO(sqlite3_set_auxdata, 
-// GO(sqlite3_set_last_insert_rowid, 
+//GOM(sqlite3_rollback_hook, pFEppp)
+//GOM(sqlite3_rtree_geometry_callback, iFEpppp)
+//GOM(sqlite3_rtree_query_callback, iFEppppp)
+//GOM(sqlite3_set_authorizer, iFEppp)
+//GOM(sqlite3_set_auxdata, vFEpipp)
+GO(sqlite3_set_last_insert_rowid, vFpI)
 GO(sqlite3_shutdown, iFv)
 GO(sqlite3_sleep, iFi)
-// GO(sqlite3_snprintf, 
+//GOM(sqlite3_snprintf, pFEippV)
 GO(sqlite3_soft_heap_limit, vFi)
 GO(sqlite3_soft_heap_limit64, IFI)
 GO(sqlite3_sourceid, pFv)
@@ -194,37 +194,37 @@ GO(sqlite3_stmt_status, iFpii)
 GO(sqlite3_str_append, vFppi)
 GO(sqlite3_str_appendall, vFpp)
 GO(sqlite3_str_appendchar, vFpic)
-// GO(sqlite3_str_appendf, 
+//GOM(sqlite3_str_appendf, vFEppV)
 GO(sqlite3_str_errcode, iFp)
 GO(sqlite3_str_finish, pFp)
 GO(sqlite3_str_length, iFp)
 GO(sqlite3_str_new, pFp)
 GO(sqlite3_str_reset, vFp)
 GO(sqlite3_str_value, pFp)
-// GO(sqlite3_str_vappendf, 
+//GOM(sqlite3_str_vappendf, vFEppA)
 GO(sqlite3_strglob, iFpp)
 GO(sqlite3_stricmp, iFpp)
 GO(sqlite3_strlike, iFppu)
 GO(sqlite3_strnicmp, iFppi)
 GO(sqlite3_system_errno, iFp)
-// GO(sqlite3_table_column_metadata, 
-// GO(sqlite3_temp_directory, 
-// GO(sqlite3_test_control, 
-// GO(sqlite3_thread_cleanup, 
-// GO(sqlite3_threadsafe, 
-// GO(sqlite3_total_changes, 
-// GO(sqlite3_trace_v2, 
-// GO(sqlite3_trace, 
-// GO(sqlite3_transfer_bindings, 
-// GO(sqlite3_txn_state, 
-// GO(sqlite3_unlock_notify, 
-// GO(sqlite3_unsupported_selecttrace, 
-// GO(sqlite3_update_hook, 
+GO(sqlite3_table_column_metadata, iFppppppppp)
+DATA(sqlite3_temp_directory, 8)
+//GOM(sqlite3_test_control, iFEiV)
+GO(sqlite3_thread_cleanup, vFv)
+GO(sqlite3_threadsafe, iFv)
+GO(sqlite3_total_changes, iFp)
+//GOM(sqlite3_trace_v2, iFEpupp)
+//GOM(sqlite3_trace, pFEppp)
+GO(sqlite3_transfer_bindings, iFpp)
+GO(sqlite3_txn_state, iFpp)
+//GOM(sqlite3_unlock_notify, iFEppp)
+//GO(sqlite3_unsupported_selecttrace, 
+//GOM(sqlite3_update_hook, pFEppp)
 GO(sqlite3_uri_boolean, iFppi)
 GO(sqlite3_uri_int64, IFppI)
 GO(sqlite3_uri_key, pFpi)
 GO(sqlite3_uri_parameter, pFpp)
-// GO(sqlite3_user_data, 
+GO(sqlite3_user_data, pFp)
 GO(sqlite3_value_blob, pFp)
 GO(sqlite3_value_bytes, iFp)
 GO(sqlite3_value_bytes16, iFp)
@@ -242,20 +242,20 @@ GO(sqlite3_value_text16, pFp)
 GO(sqlite3_value_text16be, pFp)
 GO(sqlite3_value_text16le, pFp)
 GO(sqlite3_value_type, iFp)
-// GO(sqlite3_version, 
-// GO(sqlite3_vfs_find, 
-// GO(sqlite3_vfs_register, 
-// GO(sqlite3_vfs_unregister, 
-// GO(sqlite3_vmprintf, 
-// GO(sqlite3_vsnprintf, 
-// GO(sqlite3_vtab_collation, 
-// GO(sqlite3_vtab_config, 
-// GO(sqlite3_vtab_nochange, 
-// GO(sqlite3_vtab_on_conflict, 
-// GO(sqlite3_wal_autocheckpoint, 
+//GO(sqlite3_version, 
+//GOM(sqlite3_vfs_find, pFEp)
+//GOM(sqlite3_vfs_register, iFEpi)
+//GOM(sqlite3_vfs_unregister, iFEp)
+GOM(sqlite3_vmprintf, pFEpA)
+//GOM(sqlite3_vsnprintf, pFEippA)
+GO(sqlite3_vtab_collation, pFpi)
+//GOM(sqlite3_vtab_config, iFEpiV)
+GO(sqlite3_vtab_nochange, iFp)
+GO(sqlite3_vtab_on_conflict, iFp)
+GO(sqlite3_wal_autocheckpoint, iFpi)
 GO(sqlite3_wal_checkpoint_v2, iFppipp)
 GO(sqlite3_wal_checkpoint, iFpp)
-// GO(sqlite3_wal_hook, 
+//GOM(sqlite3_wal_hook, pFEppp)
 GO(sqlite3_backup_remaining, iFp)
 GO(sqlite3_blob_reopen, iFpI)
 GO(sqlite3_column_bytes16, iFpi)
@@ -267,3 +267,7 @@ GO(sqlite3_open, iFpp)
 GO(sqlite3_prepare, iFppipp)
 GO(sqlite3_result_double, vFpd)
 GO(sqlite3_value_pointer, pFpp)
+
+GO(dummy_iFppiI, iFppiI)
+GO(dummy_iFpIip, iFpIip)
+GO(dummy_iFpIp, iFpIp)
\ No newline at end of file