about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-29 20:28:50 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-03-29 20:28:50 +0200
commitb69f9b953637a8e3246a449e15b1a2388d204cb1 (patch)
treebf083bf11f4168a13c4f0ec0de97fb991cc9cb0d /src
parent6dbc4d44a8b02619a0edaf33800fcd6e0f0fecbb (diff)
downloadbox64-b69f9b953637a8e3246a449e15b1a2388d204cb1.tar.gz
box64-b69f9b953637a8e3246a449e15b1a2388d204cb1.zip
Added wrapped syslog and __syslog_chk
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt1
-rw-r--r--src/wrapped/generated/wrapper.c2
-rw-r--r--src/wrapped/generated/wrapper.h1
-rwxr-xr-xsrc/wrapped/wrappedlibc.c16
-rwxr-xr-xsrc/wrapped/wrappedlibc_private.h4
5 files changed, 22 insertions, 2 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 800b6dca..4f4e1052 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -544,6 +544,7 @@
 #() pFpppL
 #() pFpppp
 #() pFSppi
+#() vFEiipV
 #() vFEpuup
 #() vFEpLLp
 #() vFEpppp
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 57990bce..a1247ac6 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -577,6 +577,7 @@ typedef void* (*pFpppu_t)(void*, void*, void*, uint32_t);
 typedef void* (*pFpppL_t)(void*, void*, void*, uintptr_t);
 typedef void* (*pFpppp_t)(void*, void*, void*, void*);
 typedef void* (*pFSppi_t)(void*, void*, void*, int32_t);
+typedef void (*vFEiipV_t)(x64emu_t*, int32_t, int32_t, void*, void*);
 typedef void (*vFEpuup_t)(x64emu_t*, void*, uint32_t, uint32_t, void*);
 typedef void (*vFEpLLp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, void*);
 typedef void (*vFEpppp_t)(x64emu_t*, void*, void*, void*, void*);
@@ -1668,6 +1669,7 @@ void pFpppu(x64emu_t *emu, uintptr_t fcn) { pFpppu_t fn = (pFpppu_t)fcn; R_RAX=(
 void pFpppL(x64emu_t *emu, uintptr_t fcn) { pFpppL_t fn = (pFpppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void pFpppp(x64emu_t *emu, uintptr_t fcn) { pFpppp_t fn = (pFpppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void pFSppi(x64emu_t *emu, uintptr_t fcn) { pFSppi_t fn = (pFSppi_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
+void vFEiipV(x64emu_t *emu, uintptr_t fcn) { vFEiipV_t fn = (vFEiipV_t)fcn; fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
 void vFEpuup(x64emu_t *emu, uintptr_t fcn) { vFEpuup_t fn = (vFEpuup_t)fcn; fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
 void vFEpLLp(x64emu_t *emu, uintptr_t fcn) { vFEpLLp_t fn = (vFEpLLp_t)fcn; fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); }
 void vFEpppp(x64emu_t *emu, uintptr_t fcn) { vFEpppp_t fn = (vFEpppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 6dc17259..e04ce7cf 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -574,6 +574,7 @@ void pFpppu(x64emu_t *emu, uintptr_t fnc);
 void pFpppL(x64emu_t *emu, uintptr_t fnc);
 void pFpppp(x64emu_t *emu, uintptr_t fnc);
 void pFSppi(x64emu_t *emu, uintptr_t fnc);
+void vFEiipV(x64emu_t *emu, uintptr_t fnc);
 void vFEpuup(x64emu_t *emu, uintptr_t fnc);
 void vFEpLLp(x64emu_t *emu, uintptr_t fnc);
 void vFEpppp(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index ae75aa9f..451d9b6d 100755
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -34,6 +34,9 @@
 #include <setjmp.h>
 #include <sys/vfs.h>
 #include <spawn.h>
+#include <syslog.h>
+#undef LOG_INFO
+#undef LOG_DEBUG
 
 #include "wrappedlibs.h"
 
@@ -817,6 +820,19 @@ EXPORT void my_vwarn(x64emu_t* emu, void* fmt, void* b) {
     #endif
 }
 #endif
+EXPORT void my_syslog(x64emu_t* emu, int priority, const char* fmt, uint64_t* b)
+{
+    myStackAlign(emu, fmt, b, emu->scratch, R_EAX, 2);
+    PREPARE_VALIST;
+    return vsyslog(priority, fmt, VARARGS);
+}
+EXPORT void my___syslog_chk(x64emu_t* emu, int priority, int flags, const char* fmt, uint64_t* b)
+{
+    myStackAlign(emu, fmt, b, emu->scratch, R_EAX, 3);
+    PREPARE_VALIST;
+    return vsyslog(priority, fmt, VARARGS);
+}
+
 EXPORT int my___swprintf_chk(x64emu_t* emu, void* s, size_t n, int32_t flag, size_t slen, void* fmt, uint64_t* b)
 {
     myStackAlignW(emu, (const char*)fmt, b, emu->scratch, R_EAX, 5);
diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h
index d4e580f8..f09c84e8 100755
--- a/src/wrapped/wrappedlibc_private.h
+++ b/src/wrapped/wrappedlibc_private.h
@@ -1924,8 +1924,8 @@ GOW(sysconf, lFi)
 DATA(_sys_errlist, sizeof(void*))
 DATA(sys_errlist, sizeof(void*))
 //GOW(sysinfo, 
-//GO(syslog, 
-//GO(__syslog_chk, 
+GOM(syslog, vFEipV)
+GOM(__syslog_chk, vFEiipV)
 //DATA(sys_sigabbrev, 
 //DATA(sys_sigabbrev, 
 //DATA(_sys_siglist,