about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-25 11:53:49 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-25 11:53:49 +0100
commit8fa2368a635c6040ccbd5ba2fc70acb48423d17b (patch)
tree917cf71a453e8e5e9d0213fbf09d1a30736eed71 /src
parent72ca99051b9ea5786e22214d2cbb0befd70be670 (diff)
downloadbox64-8fa2368a635c6040ccbd5ba2fc70acb48423d17b.tar.gz
box64-8fa2368a635c6040ccbd5ba2fc70acb48423d17b.zip
Added wrapped libogg
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h2
-rw-r--r--src/wrapped/generated/functions_list.txt2
-rw-r--r--src/wrapped/generated/wrapper.c4
-rw-r--r--src/wrapped/generated/wrapper.h2
-rwxr-xr-xsrc/wrapped/wrappedlibogg.c18
-rwxr-xr-xsrc/wrapped/wrappedlibogg_private.h78
6 files changed, 105 insertions, 1 deletions
diff --git a/src/library_list.h b/src/library_list.h
index 11816a05..ad9f8d9d 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -27,7 +27,7 @@ GO("libsmpeg-0.4.so.0", smpeg)
 GO("libsmpeg2-2.0.so.0", smpeg2)
 //GO("libvorbisfile.so.3", vorbisfile)
 //GO("libvorbis.so.0", libvorbis)
-//GO("libogg.so.0", libogg)
+GO("libogg.so.0", libogg)
 //GO("libpng12.so.0", png12)
 //GO("libpng16.so.16", png16)
 GO("libXxf86vm.so.1", libxxf86vm)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 66744e51..cfbf716d 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -74,6 +74,7 @@
 #() vFpi
 #() vFpu
 #() vFpf
+#() vFpl
 #() vFpL
 #() vFpp
 #() vFpS
@@ -131,6 +132,7 @@
 #() dFdd
 #() dFdp
 #() dFpp
+#() lFpi
 #() LFpi
 #() LFpL
 #() LFpp
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 696468c8..ed5fe423 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -107,6 +107,7 @@ typedef void (*vFdd_t)(double, double);
 typedef void (*vFpi_t)(void*, int32_t);
 typedef void (*vFpu_t)(void*, uint32_t);
 typedef void (*vFpf_t)(void*, float);
+typedef void (*vFpl_t)(void*, intptr_t);
 typedef void (*vFpL_t)(void*, uintptr_t);
 typedef void (*vFpp_t)(void*, void*);
 typedef void (*vFpS_t)(void*, void*);
@@ -164,6 +165,7 @@ typedef double (*dFdi_t)(double, int32_t);
 typedef double (*dFdd_t)(double, double);
 typedef double (*dFdp_t)(double, void*);
 typedef double (*dFpp_t)(void*, void*);
+typedef intptr_t (*lFpi_t)(void*, int32_t);
 typedef uintptr_t (*LFpi_t)(void*, int32_t);
 typedef uintptr_t (*LFpL_t)(void*, uintptr_t);
 typedef uintptr_t (*LFpp_t)(void*, void*);
@@ -1075,6 +1077,7 @@ void vFdd(x64emu_t *emu, uintptr_t fcn) { vFdd_t fn = (vFdd_t)fcn; fn(emu->xmm[0
 void vFpi(x64emu_t *emu, uintptr_t fcn) { vFpi_t fn = (vFpi_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI); }
 void vFpu(x64emu_t *emu, uintptr_t fcn) { vFpu_t fn = (vFpu_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI); }
 void vFpf(x64emu_t *emu, uintptr_t fcn) { vFpf_t fn = (vFpf_t)fcn; fn((void*)R_RDI, emu->xmm[0].f[0]); }
+void vFpl(x64emu_t *emu, uintptr_t fcn) { vFpl_t fn = (vFpl_t)fcn; fn((void*)R_RDI, (intptr_t)R_RSI); }
 void vFpL(x64emu_t *emu, uintptr_t fcn) { vFpL_t fn = (vFpL_t)fcn; fn((void*)R_RDI, (uintptr_t)R_RSI); }
 void vFpp(x64emu_t *emu, uintptr_t fcn) { vFpp_t fn = (vFpp_t)fcn; fn((void*)R_RDI, (void*)R_RSI); }
 void vFpS(x64emu_t *emu, uintptr_t fcn) { vFpS_t fn = (vFpS_t)fcn; fn((void*)R_RDI, io_convert((void*)R_RSI)); }
@@ -1132,6 +1135,7 @@ void dFdi(x64emu_t *emu, uintptr_t fcn) { dFdi_t fn = (dFdi_t)fcn; emu->xmm[0].d
 void dFdd(x64emu_t *emu, uintptr_t fcn) { dFdd_t fn = (dFdd_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0], emu->xmm[1].d[0]); }
 void dFdp(x64emu_t *emu, uintptr_t fcn) { dFdp_t fn = (dFdp_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0], (void*)R_RDI); }
 void dFpp(x64emu_t *emu, uintptr_t fcn) { dFpp_t fn = (dFpp_t)fcn; emu->xmm[0].d[0]=fn((void*)R_RDI, (void*)R_RSI); }
+void lFpi(x64emu_t *emu, uintptr_t fcn) { lFpi_t fn = (lFpi_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (int32_t)R_RSI); }
 void LFpi(x64emu_t *emu, uintptr_t fcn) { LFpi_t fn = (LFpi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI); }
 void LFpL(x64emu_t *emu, uintptr_t fcn) { LFpL_t fn = (LFpL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI); }
 void LFpp(x64emu_t *emu, uintptr_t fcn) { LFpp_t fn = (LFpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI); }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 977e5954..1fbcd582 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -104,6 +104,7 @@ void vFdd(x64emu_t *emu, uintptr_t fnc);
 void vFpi(x64emu_t *emu, uintptr_t fnc);
 void vFpu(x64emu_t *emu, uintptr_t fnc);
 void vFpf(x64emu_t *emu, uintptr_t fnc);
+void vFpl(x64emu_t *emu, uintptr_t fnc);
 void vFpL(x64emu_t *emu, uintptr_t fnc);
 void vFpp(x64emu_t *emu, uintptr_t fnc);
 void vFpS(x64emu_t *emu, uintptr_t fnc);
@@ -161,6 +162,7 @@ void dFdi(x64emu_t *emu, uintptr_t fnc);
 void dFdd(x64emu_t *emu, uintptr_t fnc);
 void dFdp(x64emu_t *emu, uintptr_t fnc);
 void dFpp(x64emu_t *emu, uintptr_t fnc);
+void lFpi(x64emu_t *emu, uintptr_t fnc);
 void LFpi(x64emu_t *emu, uintptr_t fnc);
 void LFpL(x64emu_t *emu, uintptr_t fnc);
 void LFpp(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibogg.c b/src/wrapped/wrappedlibogg.c
new file mode 100755
index 00000000..f922d8af
--- /dev/null
+++ b/src/wrapped/wrappedlibogg.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* liboggName = "libogg.so.0";
+#define LIBNAME libogg
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibogg_private.h b/src/wrapped/wrappedlibogg_private.h
new file mode 100755
index 00000000..3440cc2e
--- /dev/null
+++ b/src/wrapped/wrappedlibogg_private.h
@@ -0,0 +1,78 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+// ogg_stream_state doesn't need align :)
+// oggpack_buffer probably doesn't need align
+
+GO(oggpack_adv, vFpi)
+//GO(oggpack_adv1, 
+//GO(oggpackB_adv, 
+//GO(oggpackB_adv1, 
+//GO(oggpackB_bits, 
+GO(oggpackB_bytes, iFp)
+GO(oggpackB_get_buffer, pFp)
+//GO(oggpack_bits, 
+//GO(oggpackB_look, 
+//GO(oggpackB_look1, 
+GO(oggpackB_read, lFpi)
+//GO(oggpackB_read1, 
+GO(oggpackB_readinit, vFppi)
+GO(oggpackB_reset, vFp)
+GO(oggpackB_write, vFpui)
+//GO(oggpackB_writealign, 
+//GO(oggpackB_writecheck, 
+GO(oggpackB_writeclear, vFp)
+//GO(oggpackB_writecopy, 
+GO(oggpackB_writeinit, vFp)
+//GO(oggpackB_writetrunc, 
+GO(oggpack_bytes, lFp)
+//GO(ogg_packet_clear, 
+GO(oggpack_get_buffer, pFp)
+GO(oggpack_look, lFpi)
+//GO(oggpack_look1, 
+GO(oggpack_read, lFpi)
+//GO(oggpack_read1, 
+GO(oggpack_readinit, vFppi)
+GO(oggpack_reset, vFp)
+GO(oggpack_write, vFpui)
+//GO(oggpack_writealign, 
+//GO(oggpack_writecheck, 
+GO(oggpack_writeclear, vFp)
+//GO(oggpack_writecopy, 
+GO(oggpack_writeinit, vFp)
+GO(oggpack_writetrunc, vFpl)
+GO(ogg_page_bos, iFp)
+GO(ogg_page_checksum_set, iFp)
+GO(ogg_page_continued, iFp)
+GO(ogg_page_eos, iFp)
+GO(ogg_page_granulepos, IFp)
+//GO(ogg_page_packets, 
+//GO(ogg_page_pageno, 
+GO(ogg_page_serialno, iFp)
+//GO(ogg_page_version, 
+//GO(ogg_stream_check, 
+GO(ogg_stream_clear, iFp)
+//GO(ogg_stream_destroy, 
+//GO(ogg_stream_eos, 
+GO(ogg_stream_flush, iFpp)
+GO(ogg_stream_flush_fill, iFppi)
+GO(ogg_stream_init, iFpi)
+//GO(ogg_stream_iovecin, 
+GO(ogg_stream_packetin, iFpp)
+GO(ogg_stream_packetout, iFpp)
+GO(ogg_stream_packetpeek, iFpp)
+GO(ogg_stream_pagein, iFpp)
+GO(ogg_stream_pageout, iFpp)
+//GO(ogg_stream_pageout_fill, 
+GO(ogg_stream_reset, iFp)
+GO(ogg_stream_reset_serialno, iFpi)
+GO(ogg_sync_buffer, pFpi)
+//GO(ogg_sync_check, 
+GO(ogg_sync_clear, iFp)
+//GO(ogg_sync_destroy, 
+GO(ogg_sync_init, iFp)
+GO(ogg_sync_pageout, iFpp)
+GO(ogg_sync_pageseek, iFpp)
+GO(ogg_sync_reset, iFp)
+GO(ogg_sync_wrote, iFpi)