about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-07-08 19:27:15 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-07-08 19:27:15 +0200
commitd20d0079333a78b8013a9bcc09f1aaa294fec3ae (patch)
treee40933d56dcebb641d6dc9c6a7f7dc5f4e280cc1
parenta91d2d08416c01dd275949efdf6f164fa451becd (diff)
downloadbox64-d20d0079333a78b8013a9bcc09f1aaa294fec3ae.tar.gz
box64-d20d0079333a78b8013a9bcc09f1aaa294fec3ae.zip
Added wrapped getrandom function to libc
-rw-r--r--src/wrapped/generated/functions_list.txt1
-rw-r--r--src/wrapped/generated/wrapper.c3
-rw-r--r--src/wrapped/generated/wrapper.h1
-rwxr-xr-xsrc/wrapped/wrappedlibc_private.h2
4 files changed, 6 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index dc53bc8d..03bed385 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -350,6 +350,7 @@
 #() lFlll
 #() lFlpi
 #() lFpip
+#() lFpLu
 #() lFppi
 #() lFppL
 #() lFSpl
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 83f18425..b4441bd4 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -384,6 +384,7 @@ typedef intptr_t (*lFipL_t)(int64_t, void*, uintptr_t);
 typedef intptr_t (*lFlll_t)(intptr_t, intptr_t, intptr_t);
 typedef intptr_t (*lFlpi_t)(intptr_t, void*, int64_t);
 typedef intptr_t (*lFpip_t)(void*, int64_t, void*);
+typedef intptr_t (*lFpLu_t)(void*, uintptr_t, uint64_t);
 typedef intptr_t (*lFppi_t)(void*, void*, int64_t);
 typedef intptr_t (*lFppL_t)(void*, void*, uintptr_t);
 typedef intptr_t (*lFSpl_t)(void*, void*, intptr_t);
@@ -1722,6 +1723,7 @@ void lFipL(x64emu_t *emu, uintptr_t fcn) { lFipL_t fn = (lFipL_t)fcn; R_RAX=(int
 void lFlll(x64emu_t *emu, uintptr_t fcn) { lFlll_t fn = (lFlll_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX); }
 void lFlpi(x64emu_t *emu, uintptr_t fcn) { lFlpi_t fn = (lFlpi_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX); }
 void lFpip(x64emu_t *emu, uintptr_t fcn) { lFpip_t fn = (lFpip_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX); }
+void lFpLu(x64emu_t *emu, uintptr_t fcn) { lFpLu_t fn = (lFpLu_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uint64_t)R_RDX); }
 void lFppi(x64emu_t *emu, uintptr_t fcn) { lFppi_t fn = (lFppi_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX); }
 void lFppL(x64emu_t *emu, uintptr_t fcn) { lFppL_t fn = (lFppL_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
 void lFSpl(x64emu_t *emu, uintptr_t fcn) { lFSpl_t fn = (lFSpl_t)fcn; R_RAX=(intptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (intptr_t)R_RDX); }
@@ -3022,6 +3024,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &lFlll) return 1;
 	if (fun == &lFlpi) return 1;
 	if (fun == &lFpip) return 1;
+	if (fun == &lFpLu) return 1;
 	if (fun == &lFppi) return 1;
 	if (fun == &lFppL) return 1;
 	if (fun == &LFipL) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 7f3a1f93..2f8d6e0a 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -380,6 +380,7 @@ void lFipL(x64emu_t *emu, uintptr_t fnc);
 void lFlll(x64emu_t *emu, uintptr_t fnc);
 void lFlpi(x64emu_t *emu, uintptr_t fnc);
 void lFpip(x64emu_t *emu, uintptr_t fnc);
+void lFpLu(x64emu_t *emu, uintptr_t fnc);
 void lFppi(x64emu_t *emu, uintptr_t fnc);
 void lFppL(x64emu_t *emu, uintptr_t fnc);
 void lFSpl(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h
index eed4cdc5..375d6bd9 100755
--- a/src/wrapped/wrappedlibc_private.h
+++ b/src/wrapped/wrappedlibc_private.h
@@ -585,7 +585,7 @@ GO(getpwnam, pFp)
 GO(getpwnam_r, iFpppLp)
 GO(getpwuid, pFu)
 GO(getpwuid_r, iFuppLp)
-//GO(getrandom, 
+GO(getrandom, lFpLu)
 GO(getresgid, iFppp)
 GO(getresuid, iFppp)
 GO(__getrlimit, iFip)