Added some more wrapped functions

This commit is contained in:
ptitSeb 2019-03-02 08:35:06 +01:00
parent 4f8849e914
commit 916a10fae8
5 changed files with 89 additions and 25 deletions

View File

@ -17,6 +17,7 @@ typedef void (*sighandler_t)(int);
#include <unistd.h>
#include <glob.h>
#include <ctype.h>
#include <dirent.h>
#include "wrappedlibs.h"
@ -283,6 +284,20 @@ EXPORT int my_vasprintf(x86emu_t* emu, void* strp, void* fmt, void* b, va_list V
return r;
#endif
}
EXPORT int my___vasprintf_chk(x86emu_t* emu, void* strp, int flags, void* fmt, void* b, va_list V)
{
#ifndef NOALIGN
// need to align on arm
myStackAlign((const char*)fmt, *(uint32_t**)b, emu->scratch);
void* f = vasprintf;
int r = ((iFppp_t)f)(strp, fmt, emu->scratch);
return r;
#else
void* f = vasprintf;
int r = ((iFppp_t)f)(strp, fmt, *(uint32_t**)b);
return r;
#endif
}
EXPORT int my_vswprintf(x86emu_t* emu, void* buff, uint32_t s, void * fmt, void * b, va_list V) {
#ifndef NOALIGN
@ -455,6 +470,37 @@ EXPORT int32_t my_glob(x86emu_t *emu, void* pat, int32_t flags, void* errfnc, vo
return r;
}
x86emu_t *scandir64selemu = NULL; // issue with multi threads...
x86emu_t *scandir64compemu = NULL; // issue with multi threads...
static int scandir64_selcb(const struct dirent64* dir)
{
if(scandir64selemu) {
SetCallbackArg(scandir64selemu, 0, (void*)dir);
return (int32_t)RunCallback(scandir64selemu);
}
return 0;
}
static int scandir64_compcb(const void* a, const void* b)
{
if(scandir64compemu) {
SetCallbackArg(scandir64compemu, 0, (void*)a);
SetCallbackArg(scandir64compemu, 1, (void*)b);
return (int32_t)RunCallback(scandir64compemu);
}
return 0;
}
EXPORT int my_scandir64(x86emu_t *emu, void* dir, void* namelist, void* sel, void* comp)
{
scandir64selemu = AddSharedCallback(emu, (uintptr_t)sel, 1, NULL, NULL, NULL, NULL);
scandir64compemu = AddSharedCallback(emu, (uintptr_t)comp, 2, NULL, NULL, NULL, NULL);
int ret = scandir64(dir, namelist, scandir64_selcb, scandir64_compcb);
FreeCallback(scandir64selemu);
FreeCallback(scandir64compemu);
scandir64selemu = NULL;
scandir64compemu = NULL;
return ret;
}
EXPORT int32_t my_execvp(x86emu_t* emu, void* a, void* b, va_list v)
{
return execvp(a, b);

View File

@ -35,7 +35,7 @@ DATAV(__after_morecore_hook, 4)
GO(alarm, iFu)
GO2(aligned_alloc, pFuu, memalign)
// alphasort
// alphasort64
GO(alphasort64, iFpp)
DATA(argp_err_exit_status, 4)
// argp_error // Weak
// argp_failure // Weak
@ -246,9 +246,9 @@ DATAV(_environ, 4)
// envz_merge
// envz_remove
// envz_strip
// epoll_create
// epoll_create1
// epoll_ctl
GO(epoll_create, iFi)
GO(epoll_create1, iFi)
GO(epoll_ctl, iFiiip)
// epoll_pwait
// epoll_wait
// erand48
@ -270,7 +270,7 @@ GO(__errno_location, pFv)
// ether_ntoa_r
// ether_ntohost
// euidaccess // Weak
// eventfd
GO(eventfd, iFui)
// eventfd_read
GO(eventfd_write, iFiU)
GOM(execl, iFEpVV)
@ -348,7 +348,7 @@ GOW(flockfile, vFp)
// _flushlbf // Weak
// fmemopen
// fmtmsg
// fnmatch
GO(fnmatch, iFppi)
GO(fopen, pFpp)
GOW(fopen64, pFpp)
//GOM(fopencookie, pFppp) // last p are 4 callbacks...
@ -419,7 +419,7 @@ GOW(ftrylockfile, iFp)
// ftw64
GOW(funlockfile, vFp)
// futimens
// futimes // Weak
GOW(futimes, iFipp) //int futimes(int fd, const struct timeval tv[2]) TODO: check how it ends up
// futimesat
// fwide
// fwprintf // Weak
@ -1045,7 +1045,7 @@ DATAV(__malloc_initialize_hook, 4)
// malloc_set_state // Weak
// malloc_stats // Weak
// malloc_trim // Weak
// malloc_usable_size // Weak
GOW(malloc_usable_size, uFp)
// mallopt // Weak
// mallwatch // type B
// mblen
@ -1089,7 +1089,7 @@ GO(__memset_chk, pFpiuu)
GOW(mkdir, iFpu)
// mkdirat
GO(mkdtemp, pFp)
// mkfifo
GO(mkfifo, iFpu)
// mkfifoat
GO(mkostemp, iFpi)
GO(mkostemp64, iFpi)
@ -1134,7 +1134,7 @@ GO(__newlocale, pFipp)
// nftw
// nftw64
// ngettext // Weak
// nice
GO(nice, iFi)
// _nl_default_dirname // type R
// _nl_domain_bindings // type B
GO(nl_langinfo, pFu)
@ -1221,7 +1221,7 @@ GOW(pipe, iFp) // the array of 2 int seems to converted as a pointer, on both x
GOW(poll, iFpii)
GO(__poll, iFpii)
GO(popen, pFpp)
// posix_fadvise
GO(posix_fadvise, iFiuui)
// posix_fadvise64
// posix_fallocate
// posix_fallocate64
@ -1330,7 +1330,7 @@ GO(readv, iFipi)
GO(realloc, pFpu)
DATAV(__realloc_hook, 4)
GO(realpath, pFpp)
// __realpath_chk
GO(__realpath_chk, pFppu)
// reboot
// re_comp // Weak
// re_compile_fastmap // Weak
@ -1399,7 +1399,7 @@ GO(readdir64_r, iFppp) // is this present?
// scalbnf // Weak
// scalbnl // Weak
// scandir
// scandir64
GOM(scandir64, iFEpppp)
GO2(scanf, iFpp, vscanf)
// __sched_cpualloc
// __sched_cpucount
@ -1427,14 +1427,14 @@ GO2(__secure_getenv, pFp, getenv) //__secure_getenv not always defined
// seekdir
GOW(select, iFipppp)
GO(__select, iFipppp)
// semctl
// semget // Weak
// semop // Weak
// semtimedop
GO(semctl, iFiiippppp) // use vararg after the 3 i
GOW(semget, iFuii)
GOW(semop, iFipu)
GO(semtimedop, iFipup)
GOW(send, iFipui)
// __send // Weak
// sendfile
// sendfile64
GO(sendfile64, iFiipu)
GOW(sendmsg, iFipi)
GOW(sendto, iFipuipu)
// setaliasent
@ -1445,7 +1445,7 @@ GOW(setbuffer, vFppu)
// setegid
GOW(setenv, iFppi)
// _seterr_reply
// seteuid
GO(seteuid, iFu)
// setfsent
// setfsgid
// setfsuid
@ -1833,7 +1833,7 @@ GO(utime, iFpp)
// utmpxname
// valloc // Weak
GOM(vasprintf, iFEppVV)
// __vasprintf_chk
GOM(__vasprintf_chk, iFEpipVV)
// vdprintf // Weak
// __vdprintf_chk
GOM(verr, vFEpV)
@ -1899,7 +1899,7 @@ GO(wcscmp, iFpp)
GOW(wcscoll, iFpp)
GO(__wcscoll_l, iFppp)
GOW(wcscoll_l, iFppp)
// wcscpy
GO(wcscpy, pFpp)
GO(__wcscpy_chk, pFppu)
// wcscspn
// wcsdup
@ -1949,9 +1949,9 @@ GO(wcstoll, IFppi)
GO(wcstombs, uFppu)
// __wcstombs_chk
// wcstoq // Weak
// wcstoul
GO(wcstoul, iFppi)
// __wcstoul_internal
// wcstoull
GO(wcstoull, UFppi)
// __wcstoul_l
// wcstoul_l // Weak
// __wcstoull_internal

View File

@ -47,10 +47,10 @@ GO(pthread_cancel, iFi)
// _pthread_cleanup_push_defer
// __pthread_cleanup_routine
GO(pthread_condattr_destroy, iFp)
// pthread_condattr_getclock
GO(pthread_condattr_getclock, iFpp)
// pthread_condattr_getpshared
GO(pthread_condattr_init, iFp)
// pthread_condattr_setclock
GO(pthread_condattr_setclock, iFpp)
// pthread_condattr_setpshared
GOM(pthread_cond_broadcast, iFEp)
GOM(pthread_cond_destroy, iFEp)

View File

@ -194,6 +194,7 @@ typedef int32_t (*iFiup_t)(int32_t, uint32_t, void*);
typedef int32_t (*iFipi_t)(int32_t, void*, int32_t);
typedef int32_t (*iFipu_t)(int32_t, void*, uint32_t);
typedef int32_t (*iFipp_t)(int32_t, void*, void*);
typedef int32_t (*iFuii_t)(uint32_t, int32_t, int32_t);
typedef int32_t (*iFuui_t)(uint32_t, uint32_t, int32_t);
typedef int32_t (*iFuuu_t)(uint32_t, uint32_t, uint32_t);
typedef int32_t (*iFuup_t)(uint32_t, uint32_t, void*);
@ -332,11 +333,14 @@ typedef int32_t (*iFiiii_t)(int32_t, int32_t, int32_t, int32_t);
typedef int32_t (*iFiiiu_t)(int32_t, int32_t, int32_t, uint32_t);
typedef int32_t (*iFiiip_t)(int32_t, int32_t, int32_t, void*);
typedef int32_t (*iFiipi_t)(int32_t, int32_t, void*, int32_t);
typedef int32_t (*iFiipu_t)(int32_t, int32_t, void*, uint32_t);
typedef int32_t (*iFiuii_t)(int32_t, uint32_t, int32_t, int32_t);
typedef int32_t (*iFiuui_t)(int32_t, uint32_t, uint32_t, int32_t);
typedef int32_t (*iFipii_t)(int32_t, void*, int32_t, int32_t);
typedef int32_t (*iFipui_t)(int32_t, void*, uint32_t, int32_t);
typedef int32_t (*iFipuI_t)(int32_t, void*, uint32_t, int64_t);
typedef int32_t (*iFipuu_t)(int32_t, void*, uint32_t, uint32_t);
typedef int32_t (*iFipup_t)(int32_t, void*, uint32_t, void*);
typedef int32_t (*iFuipp_t)(uint32_t, int32_t, void*, void*);
typedef int32_t (*iFuuff_t)(uint32_t, uint32_t, float, float);
typedef int32_t (*iFuppp_t)(uint32_t, void*, void*, void*);
@ -564,6 +568,7 @@ typedef void (*vFppiipi_t)(void*, void*, int32_t, int32_t, void*, int32_t);
typedef void (*vFppupii_t)(void*, void*, uint32_t, void*, int32_t, int32_t);
typedef void (*vFpppppp_t)(void*, void*, void*, void*, void*, void*);
typedef int32_t (*iFEpippi_t)(x86emu_t*, void*, int32_t, void*, void*, int32_t);
typedef int32_t (*iFEpipVV_t)(x86emu_t*, void*, int32_t, void*, void*, void*);
typedef int32_t (*iFEpupVV_t)(x86emu_t*, void*, uint32_t, void*, void*, void*);
typedef int32_t (*iFiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, void*);
typedef int32_t (*iFiuiipi_t)(int32_t, uint32_t, int32_t, int32_t, void*, int32_t);
@ -696,6 +701,7 @@ typedef int32_t (*iFEpippppp_t)(x86emu_t*, void*, int32_t, void*, void*, void*,
typedef int32_t (*iFEpuuiuui_t)(x86emu_t*, void*, uint32_t, uint32_t, int32_t, uint32_t, uint32_t, int32_t);
typedef int32_t (*iFEppiiiip_t)(x86emu_t*, void*, void*, int32_t, int32_t, int32_t, int32_t, void*);
typedef int32_t (*iFiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
typedef int32_t (*iFiiippppp_t)(int32_t, int32_t, int32_t, void*, void*, void*, void*, void*);
typedef int32_t (*iFuiifpppp_t)(uint32_t, int32_t, int32_t, float, void*, void*, void*, void*);
typedef int32_t (*iFpiiiiipi_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
typedef int32_t (*iFpuippupp_t)(void*, uint32_t, int32_t, void*, void*, uint32_t, void*, void*);
@ -971,6 +977,7 @@ void iFiup(x86emu_t *emu, uintptr_t fcn) { iFiup_t fn = (iFiup_t)fcn; R_EAX=fn(*
void iFipi(x86emu_t *emu, uintptr_t fcn) { iFipi_t fn = (iFipi_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(int32_t*)(R_ESP + 12)); }
void iFipu(x86emu_t *emu, uintptr_t fcn) { iFipu_t fn = (iFipu_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12)); }
void iFipp(x86emu_t *emu, uintptr_t fcn) { iFipp_t fn = (iFipp_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12)); }
void iFuii(x86emu_t *emu, uintptr_t fcn) { iFuii_t fn = (iFuii_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12)); }
void iFuui(x86emu_t *emu, uintptr_t fcn) { iFuui_t fn = (iFuui_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12)); }
void iFuuu(x86emu_t *emu, uintptr_t fcn) { iFuuu_t fn = (iFuuu_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(uint32_t*)(R_ESP + 12)); }
void iFuup(x86emu_t *emu, uintptr_t fcn) { iFuup_t fn = (iFuup_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(void**)(R_ESP + 12)); }
@ -1109,11 +1116,14 @@ void iFiiii(x86emu_t *emu, uintptr_t fcn) { iFiiii_t fn = (iFiiii_t)fcn; R_EAX=f
void iFiiiu(x86emu_t *emu, uintptr_t fcn) { iFiiiu_t fn = (iFiiiu_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(uint32_t*)(R_ESP + 16)); }
void iFiiip(x86emu_t *emu, uintptr_t fcn) { iFiiip_t fn = (iFiiip_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(void**)(R_ESP + 16)); }
void iFiipi(x86emu_t *emu, uintptr_t fcn) { iFiipi_t fn = (iFiipi_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), *(int32_t*)(R_ESP + 16)); }
void iFiipu(x86emu_t *emu, uintptr_t fcn) { iFiipu_t fn = (iFiipu_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), *(uint32_t*)(R_ESP + 16)); }
void iFiuii(x86emu_t *emu, uintptr_t fcn) { iFiuii_t fn = (iFiuii_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16)); }
void iFiuui(x86emu_t *emu, uintptr_t fcn) { iFiuui_t fn = (iFiuui_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16)); }
void iFipii(x86emu_t *emu, uintptr_t fcn) { iFipii_t fn = (iFipii_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16)); }
void iFipui(x86emu_t *emu, uintptr_t fcn) { iFipui_t fn = (iFipui_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16)); }
void iFipuI(x86emu_t *emu, uintptr_t fcn) { iFipuI_t fn = (iFipuI_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(int64_t*)(R_ESP + 16)); }
void iFipuu(x86emu_t *emu, uintptr_t fcn) { iFipuu_t fn = (iFipuu_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(uint32_t*)(R_ESP + 16)); }
void iFipup(x86emu_t *emu, uintptr_t fcn) { iFipup_t fn = (iFipup_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(void**)(R_ESP + 16)); }
void iFuipp(x86emu_t *emu, uintptr_t fcn) { iFuipp_t fn = (iFuipp_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16)); }
void iFuuff(x86emu_t *emu, uintptr_t fcn) { iFuuff_t fn = (iFuuff_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(float*)(R_ESP + 12), *(float*)(R_ESP + 16)); }
void iFuppp(x86emu_t *emu, uintptr_t fcn) { iFuppp_t fn = (iFuppp_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16)); }
@ -1341,6 +1351,7 @@ void vFppiipi(x86emu_t *emu, uintptr_t fcn) { vFppiipi_t fn = (vFppiipi_t)fcn; f
void vFppupii(x86emu_t *emu, uintptr_t fcn) { vFppupii_t fn = (vFppupii_t)fcn; fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(void**)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24)); }
void vFpppppp(x86emu_t *emu, uintptr_t fcn) { vFpppppp_t fn = (vFpppppp_t)fcn; fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24)); }
void iFEpippi(x86emu_t *emu, uintptr_t fcn) { iFEpippi_t fn = (iFEpippi_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(int32_t*)(R_ESP + 20)); }
void iFEpipVV(x86emu_t *emu, uintptr_t fcn) { iFEpipVV_t fn = (iFEpipVV_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), (void*)(R_ESP + 16), (void*)(R_ESP + 16)); }
void iFEpupVV(x86emu_t *emu, uintptr_t fcn) { iFEpupVV_t fn = (iFEpupVV_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(void**)(R_ESP + 12), (void*)(R_ESP + 16), (void*)(R_ESP + 16)); }
void iFiiiiip(x86emu_t *emu, uintptr_t fcn) { iFiiiiip_t fn = (iFiiiiip_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(void**)(R_ESP + 24)); }
void iFiuiipi(x86emu_t *emu, uintptr_t fcn) { iFiuiipi_t fn = (iFiuiipi_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(void**)(R_ESP + 20), *(int32_t*)(R_ESP + 24)); }
@ -1473,6 +1484,7 @@ void iFEpippppp(x86emu_t *emu, uintptr_t fcn) { iFEpippppp_t fn = (iFEpippppp_t)
void iFEpuuiuui(x86emu_t *emu, uintptr_t fcn) { iFEpuuiuui_t fn = (iFEpuuiuui_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(uint32_t*)(R_ESP + 20), *(uint32_t*)(R_ESP + 24), *(int32_t*)(R_ESP + 28)); }
void iFEppiiiip(x86emu_t *emu, uintptr_t fcn) { iFEppiiiip_t fn = (iFEppiiiip_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(void**)(R_ESP + 28)); }
void iFiiiiiiip(x86emu_t *emu, uintptr_t fcn) { iFiiiiiiip_t fn = (iFiiiiiiip_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(int32_t*)(R_ESP + 28), *(void**)(R_ESP + 32)); }
void iFiiippppp(x86emu_t *emu, uintptr_t fcn) { iFiiippppp_t fn = (iFiiippppp_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32)); }
void iFuiifpppp(x86emu_t *emu, uintptr_t fcn) { iFuiifpppp_t fn = (iFuiifpppp_t)fcn; R_EAX=fn(*(uint32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(float*)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32)); }
void iFpiiiiipi(x86emu_t *emu, uintptr_t fcn) { iFpiiiiipi_t fn = (iFpiiiiipi_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(void**)(R_ESP + 28), *(int32_t*)(R_ESP + 32)); }
void iFpuippupp(x86emu_t *emu, uintptr_t fcn) { iFpuippupp_t fn = (iFpuippupp_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(uint32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20), *(uint32_t*)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32)); }

View File

@ -193,6 +193,7 @@ void iFiup(x86emu_t *emu, uintptr_t fnc);
void iFipi(x86emu_t *emu, uintptr_t fnc);
void iFipu(x86emu_t *emu, uintptr_t fnc);
void iFipp(x86emu_t *emu, uintptr_t fnc);
void iFuii(x86emu_t *emu, uintptr_t fnc);
void iFuui(x86emu_t *emu, uintptr_t fnc);
void iFuuu(x86emu_t *emu, uintptr_t fnc);
void iFuup(x86emu_t *emu, uintptr_t fnc);
@ -331,11 +332,14 @@ void iFiiii(x86emu_t *emu, uintptr_t fnc);
void iFiiiu(x86emu_t *emu, uintptr_t fnc);
void iFiiip(x86emu_t *emu, uintptr_t fnc);
void iFiipi(x86emu_t *emu, uintptr_t fnc);
void iFiipu(x86emu_t *emu, uintptr_t fnc);
void iFiuii(x86emu_t *emu, uintptr_t fnc);
void iFiuui(x86emu_t *emu, uintptr_t fnc);
void iFipii(x86emu_t *emu, uintptr_t fnc);
void iFipui(x86emu_t *emu, uintptr_t fnc);
void iFipuI(x86emu_t *emu, uintptr_t fnc);
void iFipuu(x86emu_t *emu, uintptr_t fnc);
void iFipup(x86emu_t *emu, uintptr_t fnc);
void iFuipp(x86emu_t *emu, uintptr_t fnc);
void iFuuff(x86emu_t *emu, uintptr_t fnc);
void iFuppp(x86emu_t *emu, uintptr_t fnc);
@ -563,6 +567,7 @@ void vFppiipi(x86emu_t *emu, uintptr_t fnc);
void vFppupii(x86emu_t *emu, uintptr_t fnc);
void vFpppppp(x86emu_t *emu, uintptr_t fnc);
void iFEpippi(x86emu_t *emu, uintptr_t fnc);
void iFEpipVV(x86emu_t *emu, uintptr_t fnc);
void iFEpupVV(x86emu_t *emu, uintptr_t fnc);
void iFiiiiip(x86emu_t *emu, uintptr_t fnc);
void iFiuiipi(x86emu_t *emu, uintptr_t fnc);
@ -695,6 +700,7 @@ void iFEpippppp(x86emu_t *emu, uintptr_t fnc);
void iFEpuuiuui(x86emu_t *emu, uintptr_t fnc);
void iFEppiiiip(x86emu_t *emu, uintptr_t fnc);
void iFiiiiiiip(x86emu_t *emu, uintptr_t fnc);
void iFiiippppp(x86emu_t *emu, uintptr_t fnc);
void iFuiifpppp(x86emu_t *emu, uintptr_t fnc);
void iFpiiiiipi(x86emu_t *emu, uintptr_t fnc);
void iFpuippupp(x86emu_t *emu, uintptr_t fnc);