mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-03 12:12:06 +00:00
* Major refactoring in r_syscall
- Requires rebuild, still not fully tested - Use r_pair (nosql db) to store all this info - Added lot of new platform descriptions for RSyscall
This commit is contained in:
parent
2c92c7d172
commit
833abfa19b
3
Makefile
3
Makefile
@ -83,6 +83,7 @@ install-doc-symlink:
|
||||
install: install-doc install-man
|
||||
cd libr && ${MAKE} install PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
cd binr && ${MAKE} install PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
cd libr/syscall/d ; ${MAKE} install PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
|
||||
install-pkgconfig-symlink:
|
||||
@${INSTALL_DIR} ${DESTDIR}/${LIBDIR}/pkgconfig
|
||||
@ -91,10 +92,12 @@ install-pkgconfig-symlink:
|
||||
symstall install-symlink: install-man-symlink install-doc-symlink install-pkgconfig-symlink
|
||||
cd libr && ${MAKE} install-symlink PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
cd binr && ${MAKE} install-symlink PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
cd libr/syscall/d ; ${MAKE} install-symlink PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
|
||||
deinstall uninstall:
|
||||
cd libr && ${MAKE} uninstall PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
cd binr && ${MAKE} uninstall PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
cd libr/db/d && ${MAKE} uninstall PARENT=1 PREFIX=${PREFIX} DESTDIR=${DESTDIR}
|
||||
@echo
|
||||
@echo "Run 'make purge' to also remove installed files from previous versions of r2"
|
||||
@echo
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
#include <r_db.h>
|
||||
#include <r_util.h>
|
||||
//#undef UT32_MAX
|
||||
//#undef UT64_MAX
|
||||
#include "sdb/src/sdb.h"
|
||||
|
||||
/*
|
||||
@ -14,15 +12,29 @@ var out = p.get ("foo")
|
||||
|
||||
R_API RPair *r_pair_new () {
|
||||
RPair *p = R_NEW0 (RPair);
|
||||
p->file = NULL;
|
||||
p->sdb = NULL;
|
||||
p->ht = r_hashtable_new ();
|
||||
p->dbs = r_list_new ();
|
||||
p->dbs->free = (RListFree)sdb_free;
|
||||
return p;
|
||||
}
|
||||
|
||||
R_API RPair *r_pair_new_from_file (const char *file) {
|
||||
RPair *p = r_pair_new ();
|
||||
p->file = strdup (file);
|
||||
p->sdb = sdb_new (file, 0);
|
||||
return p;
|
||||
}
|
||||
|
||||
R_API void r_pair_free (RPair *p) {
|
||||
if (p==NULL) return;
|
||||
r_hashtable_free (p->ht);
|
||||
r_list_destroy (p->dbs);
|
||||
if (p->file) {
|
||||
free (p->file);
|
||||
sdb_free (p->sdb);
|
||||
}
|
||||
free (p->dir);
|
||||
free (p);
|
||||
}
|
||||
@ -52,7 +64,6 @@ static Sdb *pair_sdb_new(RPair *p, const char *dom, ut32 hdom) {
|
||||
r_sys_rmkdir (p->dir);
|
||||
r_sys_chdir (p->dir);
|
||||
}
|
||||
|
||||
sdb = sdb_new (dom, 0);
|
||||
if (old) {
|
||||
r_sys_chdir (old);
|
||||
@ -66,9 +77,12 @@ static Sdb *pair_sdb_new(RPair *p, const char *dom, ut32 hdom) {
|
||||
R_API char *r_pair_get (RPair *p, const char *name) {
|
||||
Sdb *sdb;
|
||||
ut32 hdom;
|
||||
char *dom, *key, *okey = strdup (name);
|
||||
char *dom, *key, *okey;
|
||||
|
||||
key = okey;
|
||||
if (p->file)
|
||||
return sdb_get (p->sdb, name);
|
||||
|
||||
key = okey = strdup (name);
|
||||
dom = r_str_lchr (okey, '.');
|
||||
if (dom) {
|
||||
char *tmp = okey;
|
||||
@ -88,8 +102,13 @@ R_API char *r_pair_get (RPair *p, const char *name) {
|
||||
R_API void r_pair_set (RPair *p, const char *name, const char *value) {
|
||||
Sdb *sdb;
|
||||
ut32 hdom;
|
||||
char *dom, *key = strdup (name);
|
||||
char *dom, *key;
|
||||
|
||||
if (p->file) {
|
||||
sdb_set (p->sdb, name, value);
|
||||
return;
|
||||
}
|
||||
key = strdup (name);
|
||||
dom = r_str_lchr (key, '.');
|
||||
if (dom) {
|
||||
char *okey = key;
|
||||
@ -105,8 +124,13 @@ R_API void r_pair_set (RPair *p, const char *name, const char *value) {
|
||||
}
|
||||
|
||||
R_API RList *r_pair_list (RPair *p, const char *domain) {
|
||||
ut32 hdom = r_str_hash (domain);
|
||||
Sdb *s = r_hashtable_lookup (p->ht, hdom);
|
||||
Sdb *s;
|
||||
if (p->file) {
|
||||
s = p->sdb;
|
||||
} else {
|
||||
ut32 hdom = r_str_hash (domain);
|
||||
s = r_hashtable_lookup (p->ht, hdom);
|
||||
}
|
||||
if (s) {
|
||||
RList *list = r_list_new ();
|
||||
char key[SDB_KEYSIZE];
|
||||
@ -138,9 +162,6 @@ R_API void r_pair_set_sync_dir (RPair *p, const char *dir) {
|
||||
p->dir = strdup (dir);
|
||||
}
|
||||
|
||||
// use sync dir
|
||||
//R_API void r_pair_load (RPair *p) { /* TODO */ }
|
||||
|
||||
R_API void r_pair_reset (RPair *p) {
|
||||
Sdb *s;
|
||||
RListIter *iter;
|
||||
@ -152,6 +173,10 @@ R_API void r_pair_sync (RPair *p) {
|
||||
Sdb *s;
|
||||
char *old = NULL;
|
||||
RListIter *iter;
|
||||
if (p->file) {
|
||||
sdb_sync (p->sdb);
|
||||
return;
|
||||
}
|
||||
if (p->dir) {
|
||||
old = r_sys_getdir ();
|
||||
r_sys_rmkdir (p->dir);
|
||||
|
@ -7,6 +7,8 @@
|
||||
// TODO: add support for network. (udp). memcache, with hooks
|
||||
typedef struct r_pair_t {
|
||||
char *dir;
|
||||
char *file;
|
||||
void *sdb;
|
||||
RHashTable *ht;
|
||||
RList *dbs;
|
||||
} RPair;
|
||||
@ -66,6 +68,7 @@ R_API RPairItem *r_pair_item_new ();
|
||||
R_API void r_pair_item_free (RPairItem*);
|
||||
|
||||
R_API RPair *r_pair_new ();
|
||||
R_API RPair *r_pair_new_from_file (const char *file);
|
||||
R_API void r_pair_free (RPair *p);
|
||||
R_API void r_pair_delete (RPair *p, const char *name);
|
||||
R_API char *r_pair_get (RPair *p, const char *name);
|
||||
|
@ -4,6 +4,7 @@
|
||||
#define _INCLUDE_R_SYSCALL_H_
|
||||
|
||||
#include <r_types.h>
|
||||
#include <r_db.h>
|
||||
#include <list.h>
|
||||
|
||||
#define R_SYSCALL_ARGS 6
|
||||
@ -32,6 +33,7 @@ typedef struct r_syscall_t {
|
||||
RSyscallRegs *regs;
|
||||
RSyscallItem *sysptr;
|
||||
RSyscallPort *sysport;
|
||||
RPair *syspair;
|
||||
// TODO: deprecate
|
||||
PrintfCallback printf;
|
||||
} RSyscall;
|
||||
@ -69,7 +71,7 @@ R_API int r_syscall_setup_file(RSyscall *ctx, const char *path);
|
||||
R_API RSyscallItem *r_syscall_get(RSyscall *ctx, int num, int swi);
|
||||
R_API int r_syscall_get_num(RSyscall *ctx, const char *str);
|
||||
R_API RSyscallItem *r_syscall_get_n(RSyscall *ctx, int n); // broken iterator.. must remove
|
||||
R_API const char *r_syscall_get_i(RSyscall *ctx, int num, int swi); // XXX const char *
|
||||
R_API char *r_syscall_get_i(RSyscall *ctx, int num, int swi);
|
||||
R_API const char *r_syscall_reg(RSyscall *s, int idx, int num);
|
||||
R_API void r_syscall_list(RSyscall *ctx);
|
||||
#endif
|
||||
|
@ -1,6 +1,8 @@
|
||||
NAME=r_syscall
|
||||
DEPS=r_util
|
||||
OBJ=syscall.o freebsd.o netbsd.o linux.o darwin.o win7.o ioports.o openbsd.o
|
||||
DEPS=r_util r_db
|
||||
#OBJ=syscall.o freebsd.o netbsd.o linux.o darwin.o win7.o ioports.o openbsd.o
|
||||
|
||||
OBJ=syscall.o ioports.o
|
||||
CFLAGS+=-DLIL_ENDIAN=1 -D__UNIX__ -Wall -g
|
||||
|
||||
include ../rules.mk
|
||||
|
@ -1,10 +1,45 @@
|
||||
FILES=netbsd-x86-32
|
||||
F=
|
||||
F+= linux-x86-32
|
||||
F+= linux-arm-32
|
||||
F+= linux-mips-32
|
||||
F+= linux-sparc-32
|
||||
F+= darwin-x86-32
|
||||
F+= netbsd-x86-32
|
||||
F+= freebsd-x86-32
|
||||
F+= openbsd-x86-32
|
||||
F+= windows-x86-32
|
||||
|
||||
all:
|
||||
@for a in ${FILES} ; do \
|
||||
echo " SDB $$a.sdb" ; \
|
||||
sh gen.sh < $$a | sdb $$a.sdb = ; \
|
||||
# XXX: use config.mk
|
||||
PREFIX?=/usr
|
||||
DESTDIR?=
|
||||
|
||||
SDB=../../db/sdb/src/sdb
|
||||
|
||||
all: ${SDB}
|
||||
@for a in ${F} ; do \
|
||||
echo " SDB $$a.sdb" ; \
|
||||
sh gen.sh < $$a | ${SDB} $$a.sdb = ; \
|
||||
done
|
||||
|
||||
clean:
|
||||
rm -f *.sdb
|
||||
|
||||
${SDB}:
|
||||
cd ../../db/sdb/src && ${MAKE}
|
||||
|
||||
.PHONY: all clean install install-symlink symstall
|
||||
|
||||
linux-x86-32.sdb:
|
||||
${MAKE}
|
||||
|
||||
install: linux-x86-32.sdb
|
||||
mkdir -p ${PREFIX}/lib/radare2/syscall
|
||||
cp -f *.sdb ${PREFIX}/lib/radare2/syscall
|
||||
|
||||
CWD=$(shell pwd)
|
||||
symstall install-symlink:
|
||||
mkdir -p ${PREFIX}/lib/radare2/syscall
|
||||
for a in *.sdb ; do ln -fs ${CWD}/$$a ${PREFIX}/lib/radare2/syscall/$$a ; done
|
||||
|
||||
uninstall:
|
||||
rm -rf ${PREFIX}/lib/radare2/syscall
|
||||
|
107
libr/syscall/d/darwin-x86-32
Normal file
107
libr/syscall/d/darwin-x86-32
Normal file
@ -0,0 +1,107 @@
|
||||
_=0x80
|
||||
syscall=0x80,0,4,
|
||||
exit=0x80,1,1,
|
||||
fork=0x80,2,0,
|
||||
read=0x80,3,3,
|
||||
write=0x80,4,3,
|
||||
open=0x80,5,3,
|
||||
close=0x80,6,1,
|
||||
wait4=0x80,7,3,
|
||||
old_creat=0x80,8,2,
|
||||
link=0x80,9,2,
|
||||
unlink=0x80,10,1,
|
||||
old_execve=0x80,11,3,
|
||||
chdir=0x80,12,1,
|
||||
fchdir=0x80,13,1,
|
||||
mknod=0x80,14,1,
|
||||
chmod=0x80,15,1,
|
||||
chown=0x80,16,1,
|
||||
break=0x80,17,1,
|
||||
old_fsstat=0x80,18,1,
|
||||
old_lseek=0x80,19,1,
|
||||
getpid=0x80,20,0,
|
||||
mount=0x80,21,0,
|
||||
unmount=0x80,22,0,
|
||||
setuid=0x80,23,1,
|
||||
getuid=0x80,24,0,
|
||||
ptrace=0x80,26,4,
|
||||
recvmsg=0x80,27,4,
|
||||
sendmsg=0x80,28,4,
|
||||
recvfrom=0x80,29,4,
|
||||
accept=0x80,30,4,
|
||||
getpeername=0x80,31,3,
|
||||
getsockname=0x80,32,3,
|
||||
access=0x80,33,2,
|
||||
chflags=0x80,34,2,
|
||||
fchflags=0x80,35,2,
|
||||
sync=0x80,36,0,
|
||||
kill=0x80,37,2,
|
||||
dup=0x80,41,2,
|
||||
pipe=0x80,42,1,
|
||||
getepid=0x80,43,0,
|
||||
profil=0x80,44,4,/*
|
||||
ktrace=0x80,45,4,
|
||||
getgid=0x80,47,0,
|
||||
signal=0x80,48,2,
|
||||
getlogin=0x80,49,0,/*
|
||||
setlogin=0x80,50,1,/*
|
||||
acct=0x80,51,1,/*
|
||||
sigaltstack=0x80,53,2,/*
|
||||
ioctl=0x80,54,3,
|
||||
reboot=0x80,55,1,
|
||||
revoke=0x80,56,1,/*
|
||||
symlink=0x80,57,2,
|
||||
readlink=0x80,58,1,
|
||||
execve=0x80,59,2,
|
||||
umask=0x80,60,1,
|
||||
chroot=0x80,61,1,
|
||||
mmap=0x80,90,6,
|
||||
munmap=0x80,91,1,
|
||||
socketcall=0x80,102,2,
|
||||
sigreturn=0x80,119,1,
|
||||
clone=0x80,120,4,
|
||||
mprotect=0x80,125,3,
|
||||
rt_sigaction=0x80,174,3,
|
||||
rt_sigprocmask=0x80,175,3,
|
||||
sysctl=0x80,149,1,
|
||||
mmap2=0x80,192,6,
|
||||
fstat64=0x80,197,2,
|
||||
fcntl64=0x80,221,3,
|
||||
gettid=0x80,224,0,
|
||||
set_thread_area=0x80,243,2,
|
||||
get_thread_area=0x80,244,2,
|
||||
exit_group=0x80,252,1,
|
||||
mach_reply_port=0x81,26,1,
|
||||
thread_self_trap=0x81,27,1,
|
||||
task_self_trap=0x81,28,1,
|
||||
host_self_trap=0x81,29,1,
|
||||
mach_msg_trap=0x81,31,1,
|
||||
mach_msg_overwrite_trap=0x81,32,1,
|
||||
semaphore_signal_trap=0x81,33,1,
|
||||
semaphore_signal_all_trap=0x81,34,1,
|
||||
semaphore_signal_thread_trap=0x81,35,1,
|
||||
semaphore_wait_trap=0x81,36,1,
|
||||
semaphore_wait_signal_trap=0x81,37,1,
|
||||
semaphore_timedwait_trap=0x81,38,1,
|
||||
semaphore_timedwait_signal_trap=0x81,39,1,
|
||||
init_process=0x81,41,1,
|
||||
map_fd=0x81,43,1,
|
||||
task_for_pid=0x81,45,1,
|
||||
pid_for_task=0x81,46,1,
|
||||
macx_swapon=0x81,48,1,
|
||||
macx_swapoff=0x81,49,1,
|
||||
macx_triggers=0x81,51,1,
|
||||
macx_backing_store_suspend=0x81,52,1,
|
||||
macx_backing_store_recovery=0x81,53,1,
|
||||
swtch_pri=0x81,59,1,
|
||||
swtch=0x81,60,1,
|
||||
thread_switch=0x81,61,1,
|
||||
clock_sleep_trap=0x81,62,1,
|
||||
mach_timebase_info_trap=0x81,89,1,
|
||||
mach_wait_until_trap=0x81,90,1,
|
||||
mk_timer_create_trap=0x81,91,1,
|
||||
mk_timer_destroy_trap=0x81,92,1,
|
||||
mk_timer_arm_trap=0x81,93,1,
|
||||
mk_timer_cancel_trap=0x81,94,1,
|
||||
mk_timebase_info_trap=0x81,95,1,
|
||||
iokit_user_client_trap=0x81,100,1,
|
73
libr/syscall/d/freebsd-x86-32
Normal file
73
libr/syscall/d/freebsd-x86-32
Normal file
@ -0,0 +1,73 @@
|
||||
_=0x80
|
||||
syscall=0x80,0,4,sysnum
|
||||
exit=0x80,1,1,
|
||||
fork=0x80,2,0,
|
||||
read=0x80,3,3,
|
||||
write=0x80,4,3,
|
||||
open=0x80,5,3,
|
||||
close=0x80,6,1,
|
||||
wait4=0x80,7,3,
|
||||
old_creat=0x80,8,2,
|
||||
link=0x80,9,2,
|
||||
unlink=0x80,10,1,
|
||||
old_execve=0x80,11,3,
|
||||
chdir=0x80,12,1,
|
||||
fchdir=0x80,13,1,
|
||||
mknod=0x80,14,1,
|
||||
chmod=0x80,15,1,
|
||||
chown=0x80,16,1,
|
||||
break=0x80,17,1,
|
||||
old_fsstat=0x80,18,1,
|
||||
old_lseek=0x80,19,1,
|
||||
getpid=0x80,20,0,
|
||||
mount=0x80,21,0,
|
||||
unmount=0x80,22,0,
|
||||
setuid=0x80,23,1,
|
||||
getuid=0x80,24,0,
|
||||
ptrace=0x80,26,4,
|
||||
recvmsg=0x80,27,4,
|
||||
sendmsg=0x80,28,4,
|
||||
recvfrom=0x80,29,4,
|
||||
accept=0x80,30,4,
|
||||
getpeername=0x80,31,3,
|
||||
getsockname=0x80,32,3,
|
||||
access=0x80,33,2,
|
||||
chflags=0x80,34,2,
|
||||
fchflags=0x80,35,2,
|
||||
sync=0x80,36,0,
|
||||
kill=0x80,37,2,
|
||||
dup=0x80,41,2,
|
||||
pipe=0x80,42,1,
|
||||
getepid=0x80,43,0,
|
||||
profil=0x80,44,4,/*
|
||||
ktrace=0x80,45,4,
|
||||
getgid=0x80,47,0,
|
||||
signal=0x80,48,2,
|
||||
getlogin=0x80,49,0,/*
|
||||
setlogin=0x80,50,1,/*
|
||||
acct=0x80,51,1,/*
|
||||
sigaltstack=0x80,53,2,/*
|
||||
ioctl=0x80,54,3,
|
||||
reboot=0x80,55,1,
|
||||
revoke=0x80,56,1,/*
|
||||
symlink=0x80,57,2,
|
||||
readlink=0x80,58,1,
|
||||
execve=0x80,59,2,
|
||||
umask=0x80,60,1,
|
||||
chroot=0x80,61,1,
|
||||
mmap=0x80,90,6,
|
||||
munmap=0x80,91,1,
|
||||
socketcall=0x80,102,2,
|
||||
sigreturn=0x80,119,1,
|
||||
clone=0x80,120,4,
|
||||
mprotect=0x80,125,3,
|
||||
rt_sigaction=0x80,174,3,
|
||||
rt_sigprocmask=0x80,175,3,
|
||||
sysctl=0x80,149,1,
|
||||
mmap2=0x80,192,6,
|
||||
fstat64=0x80,197,2,
|
||||
fcntl64=0x80,221,3,
|
||||
gettid=0x80,224,0,
|
||||
set_thread_area=0x80,243,2,
|
||||
get_thread_area=0x80,244,2,
|
||||
exit_group=0x80,252,1,
|
@ -1,4 +1,5 @@
|
||||
#!/bin/sh
|
||||
echo "_=0x80"
|
||||
awk -F '(=|,)' '{
|
||||
# 0x80.1=exit
|
||||
print $2"."$3"="$1
|
||||
|
44
libr/syscall/d/linux-arm-32
Normal file
44
libr/syscall/d/linux-arm-32
Normal file
@ -0,0 +1,44 @@
|
||||
_=0x900000
|
||||
exit=0x900000,1,1,i
|
||||
fork=0x900000,2,0,
|
||||
read=0x900000,3,3,ipi
|
||||
write=0x900000,4,3,izi
|
||||
open=0x900000,5,3,zxx
|
||||
close=0x900000,6,1,i
|
||||
waitpid=0x900000,7,3,ipx
|
||||
creat=0x900000,8,2,zx
|
||||
link=0x900000,9,2,zz
|
||||
unlink=0x900000,10,1,z
|
||||
execve=0x900000,11,3,zzz
|
||||
chdir=0x900000,12,1,z
|
||||
time=0x900000,13,1,p
|
||||
mknod=0x900000,14,1,zxi
|
||||
chmod=0x900000,15,1,zx
|
||||
lchown=0x900000,16,1,zii
|
||||
getpid=0x900000,20,0,
|
||||
setuid=0x900000,23,1,i
|
||||
getuid=0x900000,24,0,
|
||||
ptrace=0x900000,26,4,
|
||||
utime=0x900000,30,2,
|
||||
access=0x900000,33,2,
|
||||
kill=0x900000,37,2,
|
||||
dup=0x900000,41,2,
|
||||
brk=0x900000,45,1,
|
||||
signal=0x900000,48,2,
|
||||
ioctl=0x900000,54,3,
|
||||
mmap=0x900000,90,6,
|
||||
munmap=0x900000,91,1,
|
||||
socketcall=0x900000,102,2,
|
||||
sigreturn=0x900000,119,1,
|
||||
clone=0x900000,120,4,
|
||||
mprotect=0x900000,125,3,
|
||||
rt_sigaction=0x900000,174,3,
|
||||
rt_sigprocmask=0x900000,175,3,
|
||||
sysctl=0x900000,149,1,
|
||||
mmap2=0x900000,192,6,
|
||||
fstat64=0x900000,197,2,
|
||||
fcntl64=0x900000,221,3,
|
||||
gettid=0x900000,224,0,
|
||||
set_thread_area=0x900000,243,2,
|
||||
get_thread_area=0x900000,244,2,
|
||||
exit_group=0x900000,252,1,
|
45
libr/syscall/d/linux-mips-32
Normal file
45
libr/syscall/d/linux-mips-32
Normal file
@ -0,0 +1,45 @@
|
||||
_=4000
|
||||
syscall=4000,1,1,i
|
||||
exit=4001,1,1,i
|
||||
fork=4002,2,0,
|
||||
read=4003,3,3,ipi
|
||||
write=4004,4,3,izi
|
||||
open=4005,5,3,zxx
|
||||
close=4006,6,1,i
|
||||
waitpid=4007,7,3,ipx
|
||||
creat=4008,8,2,zx
|
||||
link=4009,9,2,zz
|
||||
unlink=4010,10,1,z
|
||||
execve=4011,11,3,zzz
|
||||
chdir=4012,12,1,z
|
||||
time=4013,13,1,p
|
||||
mknod=4014,14,1,zxi
|
||||
chmod=4015,15,1,zx
|
||||
lchown=4016,16,1,zii
|
||||
getpid=4020,20,0,
|
||||
setuid=4023,23,1,i
|
||||
getuid=4024,24,0,
|
||||
ptrace=4026,26,4,
|
||||
utime=4030,30,2,
|
||||
access=4033,33,2,
|
||||
kill=4037,37,2,
|
||||
dup=4041,41,2,
|
||||
brk=4045,45,1,
|
||||
signal=4048,48,2,
|
||||
ioctl=4054,54,3,
|
||||
mmap=4090,90,6,
|
||||
munmap=4091,91,1,
|
||||
socketcall=4000+102,102,2,
|
||||
sigreturn=4000+119,119,1,
|
||||
clone=4000+120,120,4,
|
||||
mprotect=4000+125,125,3,
|
||||
rt_sigaction=4000+174,174,3,
|
||||
rt_sigprocmask=4000+175,175,3,
|
||||
sysctl=4000+149,149,1,
|
||||
mmap2=4000+192,192,6,
|
||||
fstat64=4000+197,197,2,
|
||||
fcntl64=4000+221,221,3,
|
||||
gettid=4000+224,224,0,
|
||||
set_thread_area=4000+243,243,2,
|
||||
get_thread_area=4000+244,244,2,
|
||||
exit_group=4000+252,252,1,
|
34
libr/syscall/d/linux-sparc-32
Normal file
34
libr/syscall/d/linux-sparc-32
Normal file
@ -0,0 +1,34 @@
|
||||
_=0x10
|
||||
exit=0x10,1,1,i
|
||||
fork=0x10,2,0,
|
||||
read=0x10,3,3,ipi
|
||||
write=0x10,4,3,izi
|
||||
open=0x10,5,3,zxx
|
||||
close=0x10,6,1,i
|
||||
waitpid=0x10,7,3,ipx
|
||||
creat=0x10,8,2,zx
|
||||
link=0x10,9,2,zz
|
||||
unlink=0x10,10,1,z
|
||||
execve=0x10,11,3,zzz
|
||||
chdir=0x10,12,1,z
|
||||
getpid=0x10,20,0,
|
||||
setuid=0x10,23,1,i
|
||||
getuid=0x10,24,0,
|
||||
ptrace=0x10,26,4,
|
||||
utime=0x10,30,2,
|
||||
access=0x10,33,2,
|
||||
kill=0x10,37,2,
|
||||
dup=0x10,41,2,
|
||||
brk=0x10,45,1,
|
||||
signal=0x10,48,2,
|
||||
ioctl=0x10,54,3,
|
||||
mmap=0x10,90,6,
|
||||
munmap=0x10,91,1,
|
||||
socketcall=0x10,102,2,
|
||||
sigreturn=0x10,119,1,
|
||||
clone=0x10,120,4,
|
||||
mprotect=0x10,125,3,
|
||||
rt_sigaction=0x10,174,3,
|
||||
rt_sigprocmask=0x10,175,3,
|
||||
sysctl=0x10,149,1,
|
||||
mmap2=0x10,192,6,
|
40
libr/syscall/d/linux-x86-32
Normal file
40
libr/syscall/d/linux-x86-32
Normal file
@ -0,0 +1,40 @@
|
||||
_=0x80
|
||||
exit=0x80,1,1,i
|
||||
fork=0x80,2,0,
|
||||
read=0x80,3,3,ipi
|
||||
write=0x80,4,3,izi
|
||||
open=0x80,5,3,zxx
|
||||
close=0x80,6,1,i
|
||||
waitpid=0x80,7,3,ipx
|
||||
creat=0x80,8,2,zx
|
||||
link=0x80,9,2,zz
|
||||
unlink=0x80,10,1,z
|
||||
execve=0x80,11,3,zzz
|
||||
chdir=0x80,12,1,z
|
||||
getpid=0x80,20,0,
|
||||
setuid=0x80,23,1,i
|
||||
getuid=0x80,24,0,
|
||||
ptrace=0x80,26,4,
|
||||
utime=0x80,30,2,
|
||||
access=0x80,33,2,
|
||||
kill=0x80,37,2,
|
||||
dup=0x80,41,2,
|
||||
brk=0x80,45,1,
|
||||
signal=0x80,48,2,
|
||||
ioctl=0x80,54,3,
|
||||
mmap=0x80,90,6,
|
||||
munmap=0x80,91,1,
|
||||
socketcall=0x80,102,2,
|
||||
sigreturn=0x80,119,1,
|
||||
clone=0x80,120,4,
|
||||
mprotect=0x80,125,3,
|
||||
rt_sigaction=0x80,174,3,
|
||||
rt_sigprocmask=0x80,175,3,
|
||||
sysctl=0x80,149,1,
|
||||
mmap2=0x80,192,6,
|
||||
fstat64=0x80,197,2,
|
||||
fcntl64=0x80,221,3,
|
||||
gettid=0x80,224,0,
|
||||
set_thread_area=0x80,243,2,
|
||||
get_thread_area=0x80,244,2,
|
||||
exit_group=0x80,252,1,
|
@ -1,4 +1,52 @@
|
||||
syscall=0x80,0,4
|
||||
exit=0x80,1,1,i
|
||||
fork=0x80,2,0
|
||||
read=0x80,3,3,ipi
|
||||
_=0x80
|
||||
syscall=0x80,0,4,
|
||||
exit=0x80,1,1,
|
||||
fork=0x80,2,0,
|
||||
read=0x80,3,3,
|
||||
write=0x80,4,3,
|
||||
open=0x80,5,3,
|
||||
close=0x80,6,1,
|
||||
wait4=0x80,7,3,
|
||||
compat_43_ocreat=0x80,8,2,
|
||||
link=0x80,9,2,
|
||||
unlink=0x80,10,1,
|
||||
//=execve,0x80,11,3
|
||||
chdir=0x80,12,1,
|
||||
fchdir=0x80,13,1,
|
||||
mknod=0x80,14,1,
|
||||
chmod=0x80,15,1,
|
||||
chown=0x80,16,1,
|
||||
break=0x80,17,1,
|
||||
getpid=0x80,20,0,
|
||||
mount=0x80,21,0,
|
||||
unmount=0x80,22,0,
|
||||
setuid=0x80,23,1,
|
||||
getuid=0x80,24,0,
|
||||
ptrace=0x80,26,4,
|
||||
recvmsg=0x80,27,4,
|
||||
sendmsg=0x80,28,4,
|
||||
recvfrom=0x80,29,4,
|
||||
accept=0x80,30,4,
|
||||
access=0x80,33,2,
|
||||
dup=0x80,41,2,
|
||||
ktrace=0x80,45,1,
|
||||
signal=0x80,48,2,
|
||||
utime=0x80,30,2,
|
||||
kill=0x80,37,2,
|
||||
ioctl=0x80,54,3,
|
||||
mmap=0x80,90,6,
|
||||
munmap=0x80,91,1,
|
||||
socketcall=0x80,102,2,
|
||||
sigreturn=0x80,119,1,
|
||||
clone=0x80,120,4,
|
||||
mprotect=0x80,125,3,
|
||||
rt_sigaction=0x80,174,3,
|
||||
rt_sigprocmask=0x80,175,3,
|
||||
sysctl=0x80,149,1,
|
||||
mmap2=0x80,192,6,
|
||||
fstat64=0x80,197,2,
|
||||
fcntl64=0x80,221,3,
|
||||
gettid=0x80,224,0,
|
||||
set_thread_area=0x80,243,2,
|
||||
get_thread_area=0x80,244,2,
|
||||
exit_group=0x80,252,1,
|
||||
|
189
libr/syscall/d/openbsd-x86-32
Normal file
189
libr/syscall/d/openbsd-x86-32
Normal file
@ -0,0 +1,189 @@
|
||||
syscall=0x80,0,2,
|
||||
exit=0x80,1,1,
|
||||
fork=0x80,2,0,
|
||||
read=0x80,3,3,
|
||||
write=0x80,4,3,
|
||||
open=0x80,5,3,
|
||||
close=0x80,6,1,
|
||||
wait4=0x80,7,4,
|
||||
link=0x80,9,2,
|
||||
unlink=0x80,10,1,
|
||||
chdir=0x80,12,1,
|
||||
fchdir=0x80,13,1,
|
||||
mknod=0x80,14,3,
|
||||
chmod=0x80,15,2,
|
||||
chown=0x80,16,3,
|
||||
break=0x80,17,1,
|
||||
getpid=0x80,20,0,
|
||||
mount=0x80,21,4,
|
||||
unmount=0x80,22,2,
|
||||
setuid=0x80,23,1,
|
||||
getuid=0x80,24,0,
|
||||
geteuid=0x80,25,0,
|
||||
ptrace=0x80,26,4,
|
||||
recvmsg=0x80,27,3,
|
||||
sendmsg=0x80,28,3,
|
||||
recvfrom=0x80,29,6,
|
||||
accept=0x80,30,3,
|
||||
getpeername=0x80,31,3,
|
||||
getsockname=0x80,32,3,
|
||||
access=0x80,33,2,
|
||||
chflags=0x80,34,2,
|
||||
fchflags=0x80,35,2,
|
||||
sync=0x80,36,0,
|
||||
kill=0x80,37,2,
|
||||
getppid=0x80,39,0,
|
||||
dup=0x80,41,1,
|
||||
opipe=0x80,42,0,
|
||||
getegid=0x80,43,0,
|
||||
profil=0x80,44,4,
|
||||
ktrace=0x80,45,4,
|
||||
sigaction=0x80,46,3,
|
||||
getgid=0x80,47,0,
|
||||
sigprocmask=0x80,48,2,
|
||||
getlogin=0x80,49,2,
|
||||
setlogin=0x80,50,1,
|
||||
acct=0x80,51,1,
|
||||
sigpending=0x80,52,0,
|
||||
osigaltstack=0x80,53,2,
|
||||
ioctl=0x80,54,3,
|
||||
reboot=0x80,55,1,
|
||||
revoke=0x80,56,1,
|
||||
symlink=0x80,57,2,
|
||||
readlink=0x80,58,3,
|
||||
execve=0x80,59,3,
|
||||
umask=0x80,60,1,
|
||||
chroot=0x80,61,1,
|
||||
vfork=0x80,66,0,
|
||||
sbrk=0x80,69,1,
|
||||
sstk=0x80,70,1,
|
||||
munmap=0x80,73,2,
|
||||
mprotect=0x80,74,3,
|
||||
madvise=0x80,75,3,
|
||||
mincore=0x80,78,3,
|
||||
getgroups=0x80,79,2,
|
||||
setgroups=0x80,80,2,
|
||||
getpgrp=0x80,81,0,
|
||||
setpgid=0x80,82,2,
|
||||
setitimer=0x80,83,3,
|
||||
getitimer=0x80,86,2,
|
||||
dup2=0x80,90,2,
|
||||
fcntl=0x80,92,3,
|
||||
select=0x80,93,5,
|
||||
fsync=0x80,95,1,
|
||||
setpriority=0x80,96,3,
|
||||
socket=0x80,97,3,
|
||||
connect=0x80,98,3,
|
||||
getpriority=0x80,100,2,
|
||||
sigreturn=0x80,103,1,
|
||||
bind=0x80,104,3,
|
||||
setsockopt=0x80,105,5,
|
||||
listen=0x80,106,2,
|
||||
sigsuspend=0x80,111,1,
|
||||
gettimeofday=0x80,116,2,
|
||||
getrusage=0x80,117,2,
|
||||
getsockopt=0x80,118,5,
|
||||
readv=0x80,120,3,
|
||||
writev=0x80,121,3,
|
||||
settimeofday=0x80,122,2,
|
||||
fchown=0x80,123,3,
|
||||
fchmod=0x80,124,2,
|
||||
setreuid=0x80,126,2,
|
||||
setregid=0x80,127,2,
|
||||
rename=0x80,128,2,
|
||||
flock=0x80,131,2,
|
||||
mkfifo=0x80,132,2,
|
||||
sendto=0x80,133,6,
|
||||
shutdown=0x80,134,2,
|
||||
socketpair=0x80,135,4,
|
||||
mkdir=0x80,136,2,
|
||||
rmdir=0x80,137,1,
|
||||
utimes=0x80,138,2,
|
||||
adjtime=0x80,140,2,
|
||||
setsid=0x80,147,0,
|
||||
quotactl=0x80,148,4,
|
||||
nfssvc=0x80,155,2,
|
||||
getfh=0x80,161,2,
|
||||
sysarch=0x80,165,2,
|
||||
pread=0x80,173,5,
|
||||
pwrite=0x80,174,5,
|
||||
setgid=0x80,181,1,
|
||||
setegid=0x80,182,1,
|
||||
seteuid=0x80,183,1,
|
||||
lfs_bmapv=0x80,184,3,
|
||||
lfs_markv=0x80,185,3,
|
||||
lfs_segclean=0x80,186,2,
|
||||
lfs_segwait=0x80,187,2,
|
||||
pathconf=0x80,191,2,
|
||||
fpathconf=0x80,192,2,
|
||||
swapctl=0x80,193,3,
|
||||
getrlimit=0x80,194,2,
|
||||
setrlimit=0x80,195,2,
|
||||
getdirentries=0x80,196,4,
|
||||
mmap=0x80,197,7,
|
||||
__syscall=0x80,198,2,
|
||||
lseek=0x80,199,4,
|
||||
truncate=0x80,200,3,
|
||||
ftruncate=0x80,201,3,
|
||||
__sysctl=0x80,202,6,
|
||||
mlock=0x80,203,2,
|
||||
munlock=0x80,204,2,
|
||||
futimes=0x80,206,2,
|
||||
getpgid=0x80,207,1,
|
||||
nnpfspioctl=0x80,208,5,
|
||||
semget=0x80,221,3,
|
||||
msgget=0x80,225,2,
|
||||
msgsnd=0x80,226,4,
|
||||
msgrcv=0x80,227,5,
|
||||
shmat=0x80,228,3,
|
||||
shmdt=0x80,230,1,
|
||||
clock_gettime=0x80,232,2,
|
||||
clock_settime=0x80,233,2,
|
||||
clock_getres=0x80,234,2,
|
||||
nanosleep=0x80,240,2,
|
||||
minherit=0x80,250,3,
|
||||
rfork=0x80,251,1,
|
||||
poll=0x80,252,3,
|
||||
issetugid=0x80,253,0,
|
||||
lchown=0x80,254,3,
|
||||
getsid=0x80,255,1,
|
||||
msync=0x80,256,3,
|
||||
pipe=0x80,263,1,
|
||||
fhopen=0x80,264,2,
|
||||
preadv=0x80,267,5,
|
||||
pwritev=0x80,268,5,
|
||||
kqueue=0x80,269,0,
|
||||
kevent=0x80,270,6,
|
||||
mlockall=0x80,271,1,
|
||||
munlockall=0x80,272,0,
|
||||
getpeereid=0x80,273,3,
|
||||
getresuid=0x80,281,3,
|
||||
setresuid=0x80,282,3,
|
||||
getresgid=0x80,283,3,
|
||||
setresgid=0x80,284,3,
|
||||
mquery=0x80,286,7,
|
||||
closefrom=0x80,287,1,
|
||||
sigaltstack=0x80,288,2,
|
||||
shmget=0x80,289,3,
|
||||
semop=0x80,290,3,
|
||||
stat=0x80,291,2,
|
||||
fstat=0x80,292,2,
|
||||
lstat=0x80,293,2,
|
||||
fhstat=0x80,294,2,
|
||||
__semctl=0x80,295,4,
|
||||
shmctl=0x80,296,3,
|
||||
msgctl=0x80,297,3,
|
||||
sched_yield=0x80,298,0,
|
||||
getthrid=0x80,299,0,
|
||||
thrsleep=0x80,300,4,
|
||||
thrwakeup=0x80,301,2,
|
||||
threxit=0x80,302,1,
|
||||
thrsigdivert=0x80,303,3,
|
||||
__getcwd=0x80,304,2,
|
||||
adjfreq=0x80,305,2,
|
||||
getfsstat=0x80,306,3,
|
||||
statfs=0x80,307,2,
|
||||
fstatfs=0x80,308,2,
|
||||
fhstatfs=0x80,309,2,
|
||||
setrtable=0x80,310,1,
|
||||
getrtable=0x80,311,0,
|
2
libr/syscall/d/par.sh
Executable file
2
libr/syscall/d/par.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
grep '{ "'|tr '{",}' ' ' |sed -e 's,NULL,,g' | awk '{ print $1"="$2","$3","$4","$5}'
|
1226
libr/syscall/d/windows-x86-32
Normal file
1226
libr/syscall/d/windows-x86-32
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,230 +0,0 @@
|
||||
#include "r_syscall.h"
|
||||
|
||||
/* syscall-bsd */
|
||||
/* int 0x80 */
|
||||
RSyscallItem syscalls_darwin_x86[] = {
|
||||
{ "syscall", 0x80, 0, 4 },
|
||||
{ "exit", 0x80, 1, 1 },
|
||||
{ "fork", 0x80, 2, 0 },
|
||||
{ "read", 0x80, 3, 3 },
|
||||
{ "write", 0x80, 4, 3 },
|
||||
{ "open", 0x80, 5, 3 },
|
||||
{ "close", 0x80, 6, 1 },
|
||||
{ "wait4", 0x80, 7, 3 },
|
||||
{ "old_creat", 0x80, 8, 2 },
|
||||
{ "link", 0x80, 9, 2 },
|
||||
{ "unlink", 0x80, 10, 1 },
|
||||
{ "old_execve", 0x80, 11, 3},
|
||||
{ "chdir", 0x80, 12, 1},
|
||||
{ "fchdir", 0x80, 13, 1},
|
||||
{ "mknod", 0x80, 14, 1},
|
||||
{ "chmod", 0x80, 15, 1},
|
||||
{ "chown", 0x80, 16, 1},
|
||||
{ "break", 0x80, 17, 1},
|
||||
{ "old_fsstat", 0x80, 18, 1},
|
||||
{ "old_lseek", 0x80, 19, 1},
|
||||
{ "getpid", 0x80, 20, 0},
|
||||
{ "mount", 0x80, 21, 0},
|
||||
{ "unmount", 0x80, 22, 0},
|
||||
{ "setuid", 0x80, 23, 1},
|
||||
{ "getuid", 0x80, 24, 0},
|
||||
{ "ptrace", 0x80, 26, 4},
|
||||
{ "recvmsg", 0x80, 27, 4},
|
||||
{ "sendmsg", 0x80, 28, 4},
|
||||
{ "recvfrom", 0x80, 29, 4},
|
||||
{ "accept", 0x80, 30, 4},
|
||||
{ "getpeername", 0x80, 31, 3},
|
||||
{ "getsockname", 0x80, 32, 3},
|
||||
{ "access", 0x80, 33, 2},
|
||||
{ "chflags", 0x80, 34, 2},
|
||||
{ "fchflags", 0x80, 35, 2},
|
||||
{ "sync", 0x80, 36, 0},
|
||||
{ "kill", 0x80, 37, 2},
|
||||
{ "dup", 0x80, 41, 2},
|
||||
{ "pipe", 0x80, 42, 1},
|
||||
{ "getepid", 0x80, 43, 0},
|
||||
{ "profil", 0x80, 44, 4}, /* LOLSOME! THIS IS LIKE linux oprofile! we need to hack on it! */
|
||||
{ "ktrace", 0x80, 45, 4},
|
||||
{ "getgid", 0x80, 47, 0},
|
||||
{ "signal", 0x80, 48, 2},
|
||||
{ "getlogin", 0x80, 49, 0}, /* like getuid but returns a string */
|
||||
{ "setlogin", 0x80, 50, 1}, /* like setuid but passing a string */
|
||||
{ "acct", 0x80, 51, 1}, /* given a string for file */
|
||||
{ "sigaltstack", 0x80, 53, 2}, /* alterate stack context for signals */
|
||||
{ "ioctl", 0x80, 54, 3 },
|
||||
{ "reboot", 0x80, 55, 1},
|
||||
{ "revoke", 0x80, 56, 1}, /* given a string invalidates the access to a file */
|
||||
{ "symlink", 0x80, 57, 2},
|
||||
{ "readlink", 0x80, 58, 1},
|
||||
{ "execve", 0x80, 59, 2},
|
||||
{ "umask", 0x80, 60, 1},
|
||||
{ "chroot", 0x80, 61, 1},
|
||||
{ "mmap", 0x80, 90, 6},
|
||||
{ "munmap", 0x80, 91, 1},
|
||||
{ "socketcall", 0x80, 102, 2 },
|
||||
{ "sigreturn", 0x80, 119, 1 },
|
||||
{ "clone", 0x80, 120, 4 },
|
||||
{ "mprotect", 0x80, 125, 3},
|
||||
{ "rt_sigaction", 0x80, 174, 3},
|
||||
{ "rt_sigprocmask", 0x80, 175, 3},
|
||||
{ "sysctl", 0x80, 149, 1 },
|
||||
{ "mmap2", 0x80, 192, 6},
|
||||
{ "fstat64", 0x80, 197, 2},
|
||||
{ "fcntl64", 0x80, 221, 3},
|
||||
{ "gettid", 0x80, 224, 0},
|
||||
{ "set_thread_area", 0x80, 243, 2},
|
||||
{ "get_thread_area", 0x80, 244, 2},
|
||||
{ "exit_group", 0x80, 252, 1},
|
||||
// TODO: read doc/xtra/xnu-* */
|
||||
/* int 0x81 */
|
||||
//struct syscall_t syscalls_darwin_xnu_x86[] = {
|
||||
{ "mach_reply_port", 0x81, 26 ,1},
|
||||
{ "thread_self_trap", 0x81, 27 ,1},
|
||||
{ "task_self_trap", 0x81, 28 ,1},
|
||||
{ "host_self_trap", 0x81, 29 ,1},
|
||||
{ "mach_msg_trap", 0x81, 31 ,1},
|
||||
{ "mach_msg_overwrite_trap", 0x81, 32 ,1},
|
||||
{ "semaphore_signal_trap", 0x81, 33 ,1},
|
||||
{ "semaphore_signal_all_trap", 0x81, 34 ,1},
|
||||
{ "semaphore_signal_thread_trap", 0x81, 35 ,1},
|
||||
{ "semaphore_wait_trap", 0x81, 36 ,1},
|
||||
{ "semaphore_wait_signal_trap", 0x81, 37 ,1},
|
||||
{ "semaphore_timedwait_trap", 0x81, 38 ,1},
|
||||
{ "semaphore_timedwait_signal_trap", 0x81, 39 ,1},
|
||||
{ "init_process", 0x81, 41 ,1},
|
||||
{ "map_fd", 0x81, 43 ,1},
|
||||
{ "task_for_pid", 0x81, 45 ,1},
|
||||
{ "pid_for_task", 0x81, 46 ,1},
|
||||
{ "macx_swapon", 0x81, 48 ,1},
|
||||
{ "macx_swapoff", 0x81, 49 ,1},
|
||||
{ "macx_triggers", 0x81, 51 ,1},
|
||||
{ "macx_backing_store_suspend", 0x81, 52 ,1},
|
||||
{ "macx_backing_store_recovery", 0x81, 53 ,1},
|
||||
{ "swtch_pri", 0x81, 59 ,1},
|
||||
{ "swtch", 0x81, 60 ,1},
|
||||
{ "thread_switch", 0x81, 61 ,1},
|
||||
{ "clock_sleep_trap", 0x81, 62 ,1},
|
||||
{ "mach_timebase_info_trap", 0x81, 89 ,1},
|
||||
{ "mach_wait_until_trap", 0x81, 90 ,1},
|
||||
{ "mk_timer_create_trap", 0x81, 91 ,1},
|
||||
{ "mk_timer_destroy_trap", 0x81, 92 ,1},
|
||||
{ "mk_timer_arm_trap", 0x81, 93 ,1},
|
||||
{ "mk_timer_cancel_trap", 0x81, 94 ,1},
|
||||
{ "mk_timebase_info_trap", 0x81, 95 ,1},
|
||||
{ "iokit_user_client_trap", 0x81, 100 ,1},
|
||||
{ NULL, 0x81, 0, 0 }
|
||||
};
|
||||
|
||||
/* XXX : copypasted from x86.. some of them are ok.. but table must be reviewed */
|
||||
RSyscallItem syscalls_darwin_arm[] = {
|
||||
{ "syscall", 0x80, 0, 4 },
|
||||
{ "exit", 0x80, 1, 1 },
|
||||
{ "fork", 0x80, 2, 0 },
|
||||
{ "read", 0x80, 3, 3 },
|
||||
{ "write", 0x80, 4, 3 },
|
||||
{ "open", 0x80, 5, 3 },
|
||||
{ "close", 0x80, 6, 1 },
|
||||
{ "wait4", 0x80, 7, 3 },
|
||||
{ "old_creat", 0x80, 8, 2 },
|
||||
{ "link", 0x80, 9, 2 },
|
||||
{ "unlink", 0x80, 10, 1 },
|
||||
{ "old_execve", 0x80, 11, 3},
|
||||
{ "chdir", 0x80, 12, 1},
|
||||
{ "fchdir", 0x80, 13, 1},
|
||||
{ "mknod", 0x80, 14, 1},
|
||||
{ "chmod", 0x80, 15, 1},
|
||||
{ "chown", 0x80, 16, 1},
|
||||
{ "break", 0x80, 17, 1},
|
||||
{ "old_fsstat", 0x80, 18, 1},
|
||||
{ "old_lseek", 0x80, 19, 1},
|
||||
{ "getpid", 0x80, 20, 0},
|
||||
{ "mount", 0x80, 21, 0},
|
||||
{ "unmount", 0x80, 22, 0},
|
||||
{ "setuid", 0x80, 23, 1},
|
||||
{ "getuid", 0x80, 24, 0},
|
||||
{ "ptrace", 0x80, 26, 4},
|
||||
{ "recvmsg", 0x80, 27, 4},
|
||||
{ "sendmsg", 0x80, 28, 4},
|
||||
{ "recvfrom", 0x80, 29, 4},
|
||||
{ "accept", 0x80, 30, 4},
|
||||
{ "getpeername", 0x80, 31, 3},
|
||||
{ "getsockname", 0x80, 32, 3},
|
||||
{ "access", 0x80, 33, 2},
|
||||
{ "chflags", 0x80, 34, 2},
|
||||
{ "fchflags", 0x80, 35, 2},
|
||||
{ "sync", 0x80, 36, 0},
|
||||
{ "kill", 0x80, 37, 2},
|
||||
{ "dup", 0x80, 41, 2},
|
||||
{ "pipe", 0x80, 42, 1},
|
||||
{ "getepid", 0x80, 43, 0},
|
||||
{ "profil", 0x80, 44, 4}, /* LOLSOME! THIS IS LIKE linux oprofile! we need to hack on it! */
|
||||
{ "ktrace", 0x80, 45, 4},
|
||||
{ "getgid", 0x80, 47, 0},
|
||||
{ "signal", 0x80, 48, 2},
|
||||
{ "getlogin", 0x80, 49, 0}, /* like getuid but returns a string */
|
||||
{ "setlogin", 0x80, 50, 1}, /* like setuid but passing a string */
|
||||
{ "acct", 0x80, 51, 1}, /* given a string for file */
|
||||
{ "sigaltstack", 0x80, 53, 2}, /* alterate stack context for signals */
|
||||
{ "ioctl", 0x80, 54, 3 },
|
||||
{ "reboot", 0x80, 55, 1},
|
||||
{ "revoke", 0x80, 56, 1}, /* given a string invalidates the access to a file */
|
||||
{ "symlink", 0x80, 57, 2},
|
||||
{ "readlink", 0x80, 58, 1},
|
||||
{ "execve", 0x80, 59, 2},
|
||||
{ "umask", 0x80, 60, 1},
|
||||
{ "chroot", 0x80, 61, 1},
|
||||
{ "mmap", 0x80, 90, 6},
|
||||
{ "munmap", 0x80, 91, 1},
|
||||
{ "socketcall", 0x80, 102, 2 },
|
||||
{ "sigreturn", 0x80, 119, 1 },
|
||||
{ "clone", 0x80, 120, 4 },
|
||||
{ "mprotect", 0x80, 125, 3},
|
||||
{ "rt_sigaction", 0x80, 174, 3},
|
||||
{ "rt_sigprocmask", 0x80, 175, 3},
|
||||
{ "sysctl", 0x80, 149, 1 },
|
||||
{ "mmap2", 0x80, 192, 6},
|
||||
{ "fstat64", 0x80, 197, 2},
|
||||
{ "fcntl64", 0x80, 221, 3},
|
||||
{ "gettid", 0x80, 224, 0},
|
||||
{ "set_thread_area", 0x80, 243, 2},
|
||||
{ "get_thread_area", 0x80, 244, 2},
|
||||
{ "exit_group", 0x80, 252, 1},
|
||||
// TODO: read doc/xtra/xnu-* */
|
||||
/* int 0x81 */
|
||||
//struct syscall_t syscalls_darwin_xnu_x86[] = {
|
||||
{ "mach_reply_port", 0x81, 26 ,1},
|
||||
{ "thread_self_trap", 0x81, 27 ,1},
|
||||
{ "task_self_trap", 0x81, 28 ,1},
|
||||
{ "host_self_trap", 0x81, 29 ,1},
|
||||
{ "mach_msg_trap", 0x81, 31 ,1},
|
||||
{ "mach_msg_overwrite_trap", 0x81, 32 ,1},
|
||||
{ "semaphore_signal_trap", 0x81, 33 ,1},
|
||||
{ "semaphore_signal_all_trap", 0x81, 34 ,1},
|
||||
{ "semaphore_signal_thread_trap", 0x81, 35 ,1},
|
||||
{ "semaphore_wait_trap", 0x81, 36 ,1},
|
||||
{ "semaphore_wait_signal_trap", 0x81, 37 ,1},
|
||||
{ "semaphore_timedwait_trap", 0x81, 38 ,1},
|
||||
{ "semaphore_timedwait_signal_trap", 0x81, 39 ,1},
|
||||
{ "init_process", 0x81, 41 ,1},
|
||||
{ "map_fd", 0x81, 43 ,1},
|
||||
{ "task_for_pid", 0x81, 45 ,1},
|
||||
{ "pid_for_task", 0x81, 46 ,1},
|
||||
{ "macx_swapon", 0x81, 48 ,1},
|
||||
{ "macx_swapoff", 0x81, 49 ,1},
|
||||
{ "macx_triggers", 0x81, 51 ,1},
|
||||
{ "macx_backing_store_suspend", 0x81, 52 ,1},
|
||||
{ "macx_backing_store_recovery", 0x81, 53 ,1},
|
||||
{ "swtch_pri", 0x81, 59 ,1},
|
||||
{ "swtch", 0x81, 60 ,1},
|
||||
{ "thread_switch", 0x81, 61 ,1},
|
||||
{ "clock_sleep_trap", 0x81, 62 ,1},
|
||||
{ "mach_timebase_info_trap", 0x81, 89 ,1},
|
||||
{ "mach_wait_until_trap", 0x81, 90 ,1},
|
||||
{ "mk_timer_create_trap", 0x81, 91 ,1},
|
||||
{ "mk_timer_destroy_trap", 0x81, 92 ,1},
|
||||
{ "mk_timer_arm_trap", 0x81, 93 ,1},
|
||||
{ "mk_timer_cancel_trap", 0x81, 94 ,1},
|
||||
{ "mk_timebase_info_trap", 0x81, 95 ,1},
|
||||
{ "iokit_user_client_trap", 0x81, 100 ,1},
|
||||
{ NULL, 0x81, 0, 0 }
|
||||
};
|
@ -1,80 +0,0 @@
|
||||
#include <r_syscall.h>
|
||||
|
||||
/* there are LOT of magic syscalls in freebsd...ill really have to look on it */
|
||||
/* jail, jail_attach, utrace, kqueue->EV_FILTER_PROC->NOTE_FORK, nfsclnt */
|
||||
/* syscall-freebsd */
|
||||
RSyscallItem syscalls_freebsd_x86[] = {
|
||||
{ "syscall", 0x80, 0, 4 , "sysnum" },
|
||||
{ "exit", 0x80, 1, 1 },
|
||||
{ "fork", 0x80, 2, 0 },
|
||||
{ "read", 0x80, 3, 3 },
|
||||
{ "write", 0x80, 4, 3 },
|
||||
{ "open", 0x80, 5, 3 },
|
||||
{ "close", 0x80, 6, 1 },
|
||||
{ "wait4", 0x80, 7, 3 },
|
||||
{ "old_creat", 0x80, 8, 2 },
|
||||
{ "link", 0x80, 9, 2 },
|
||||
{ "unlink", 0x80, 10, 1 },
|
||||
{ "old_execve", 0x80, 11, 3},
|
||||
{ "chdir", 0x80, 12, 1},
|
||||
{ "fchdir", 0x80, 13, 1},
|
||||
{ "mknod", 0x80, 14, 1},
|
||||
{ "chmod", 0x80, 15, 1},
|
||||
{ "chown", 0x80, 16, 1},
|
||||
{ "break", 0x80, 17, 1},
|
||||
{ "old_fsstat", 0x80, 18, 1},
|
||||
{ "old_lseek", 0x80, 19, 1},
|
||||
{ "getpid", 0x80, 20, 0},
|
||||
{ "mount", 0x80, 21, 0},
|
||||
{ "unmount", 0x80, 22, 0},
|
||||
{ "setuid", 0x80, 23, 1},
|
||||
{ "getuid", 0x80, 24, 0},
|
||||
{ "ptrace", 0x80, 26, 4},
|
||||
{ "recvmsg", 0x80, 27, 4},
|
||||
{ "sendmsg", 0x80, 28, 4},
|
||||
{ "recvfrom", 0x80, 29, 4},
|
||||
{ "accept", 0x80, 30, 4},
|
||||
{ "getpeername", 0x80, 31, 3},
|
||||
{ "getsockname", 0x80, 32, 3},
|
||||
{ "access", 0x80, 33, 2},
|
||||
{ "chflags", 0x80, 34, 2},
|
||||
{ "fchflags", 0x80, 35, 2},
|
||||
{ "sync", 0x80, 36, 0},
|
||||
{ "kill", 0x80, 37, 2},
|
||||
{ "dup", 0x80, 41, 2},
|
||||
{ "pipe", 0x80, 42, 1},
|
||||
{ "getepid", 0x80, 43, 0},
|
||||
{ "profil", 0x80, 44, 4}, /* LOLSOME! THIS IS LIKE linux oprofile! we need to hack on it! */
|
||||
{ "ktrace", 0x80, 45, 4},
|
||||
{ "getgid", 0x80, 47, 0},
|
||||
{ "signal", 0x80, 48, 2},
|
||||
{ "getlogin", 0x80, 49, 0}, /* like getuid but returns a string */
|
||||
{ "setlogin", 0x80, 50, 1}, /* like setuid but passing a string */
|
||||
{ "acct", 0x80, 51, 1}, /* given a string for file */
|
||||
{ "sigaltstack", 0x80, 53, 2}, /* alterate stack context for signals */
|
||||
{ "ioctl", 0x80, 54, 3 },
|
||||
{ "reboot", 0x80, 55, 1},
|
||||
{ "revoke", 0x80, 56, 1}, /* given a string invalidates the access to a file */
|
||||
{ "symlink", 0x80, 57, 2},
|
||||
{ "readlink", 0x80, 58, 1},
|
||||
{ "execve", 0x80, 59, 2},
|
||||
{ "umask", 0x80, 60, 1},
|
||||
{ "chroot", 0x80, 61, 1},
|
||||
{ "mmap", 0x80, 90, 6},
|
||||
{ "munmap", 0x80, 91, 1},
|
||||
{ "socketcall", 0x80, 102, 2 },
|
||||
{ "sigreturn", 0x80, 119, 1 },
|
||||
{ "clone", 0x80, 120, 4 },
|
||||
{ "mprotect", 0x80, 125, 3},
|
||||
{ "rt_sigaction", 0x80, 174, 3},
|
||||
{ "rt_sigprocmask", 0x80, 175, 3},
|
||||
{ "sysctl", 0x80, 149, 1 },
|
||||
{ "mmap2", 0x80, 192, 6},
|
||||
{ "fstat64", 0x80, 197, 2},
|
||||
{ "fcntl64", 0x80, 221, 3},
|
||||
{ "gettid", 0x80, 224, 0},
|
||||
{ "set_thread_area", 0x80, 243, 2},
|
||||
{ "get_thread_area", 0x80, 244, 2},
|
||||
{ "exit_group", 0x80, 252, 1},
|
||||
{ NULL, 0x80, 0, 0 }
|
||||
};
|
@ -1,189 +0,0 @@
|
||||
#include "r_syscall.h"
|
||||
|
||||
/* syscall-linux */
|
||||
RSyscallItem syscalls_linux_x86[] = {
|
||||
{ "exit", 0x80, 1, 1, "i" },
|
||||
{ "fork", 0x80, 2, 0, NULL },
|
||||
{ "read", 0x80, 3, 3, "ipi" },
|
||||
{ "write", 0x80, 4, 3, "izi" },
|
||||
{ "open", 0x80, 5, 3, "zxx" },
|
||||
{ "close", 0x80, 6, 1, "i" },
|
||||
{ "waitpid", 0x80, 7, 3, "ipx"},
|
||||
{ "creat", 0x80, 8, 2, "zx" },
|
||||
{ "link", 0x80, 9, 2, "zz" },
|
||||
{ "unlink", 0x80, 10, 1, "z" },
|
||||
{ "execve", 0x80, 11, 3, "zzz" }, // XXX this is char**
|
||||
{ "chdir", 0x80, 12, 1, "z" },
|
||||
{ "getpid", 0x80, 20, 0, NULL},
|
||||
{ "setuid", 0x80, 23, 1, "i" },
|
||||
{ "getuid", 0x80, 24, 0, NULL },
|
||||
{ "ptrace", 0x80, 26, 4 },
|
||||
{ "utime", 0x80, 30, 2 },
|
||||
{ "access", 0x80, 33, 2 },
|
||||
{ "kill", 0x80, 37,2 },
|
||||
{ "dup", 0x80, 41, 2 },
|
||||
{ "brk", 0x80, 45, 1 },
|
||||
{ "signal", 0x80, 48, 2 },
|
||||
{ "ioctl", 0x80, 54, 3 },
|
||||
{ "mmap", 0x80, 90, 6 },
|
||||
{ "munmap", 0x80, 91, 1 },
|
||||
{ "socketcall", 0x80, 102, 2 },
|
||||
{ "sigreturn", 0x80, 119, 1 },
|
||||
{ "clone", 0x80, 120, 4 },
|
||||
{ "mprotect", 0x80, 125, 3},
|
||||
{ "rt_sigaction", 0x80, 174, 3},
|
||||
{ "rt_sigprocmask", 0x80, 175, 3},
|
||||
{ "sysctl", 0x80, 149, 1 },
|
||||
{ "mmap2", 0x80, 192, 6},
|
||||
{ "fstat64", 0x80, 197, 2},
|
||||
{ "fcntl64", 0x80, 221, 3},
|
||||
{ "gettid", 0x80, 224, 0},
|
||||
{ "set_thread_area", 0x80, 243, 2},
|
||||
{ "get_thread_area", 0x80, 244, 2},
|
||||
{ "exit_group", 0x80, 252, 1},
|
||||
{ NULL, 0, 0, 0 }
|
||||
};
|
||||
|
||||
RSyscallItem syscalls_linux_sh[] = {{NULL,0,0,0} };
|
||||
// http://lxr.oss.org.cn/source/include/asm-arm/unistd.h
|
||||
/* syscall-linux */
|
||||
// XXX: same as in linux-x86 ?
|
||||
RSyscallItem syscalls_linux_arm[] = {
|
||||
{ "exit", 0x900000, 1, 1, "i" },
|
||||
{ "fork", 0x900000, 2, 0, NULL },
|
||||
{ "read", 0x900000, 3, 3, "ipi" },
|
||||
{ "write", 0x900000, 4, 3, "izi" },
|
||||
{ "open", 0x900000, 5, 3, "zxx" },
|
||||
{ "close", 0x900000, 6, 1, "i" },
|
||||
{ "waitpid", 0x900000, 7, 3, "ipx"},
|
||||
{ "creat", 0x900000, 8, 2, "zx" },
|
||||
{ "link", 0x900000, 9, 2, "zz" },
|
||||
{ "unlink", 0x900000, 10, 1, "z" },
|
||||
{ "execve", 0x900000, 11, 3, "zzz" }, // XXX this is char**
|
||||
{ "chdir", 0x900000, 12, 1, "z" },
|
||||
{ "time", 0x900000, 13, 1, "p" },
|
||||
{ "mknod", 0x900000, 14, 1, "zxi" },
|
||||
{ "chmod", 0x900000, 15, 1, "zx" },
|
||||
{ "lchown", 0x900000, 16, 1, "zii" },
|
||||
{ "getpid", 0x900000, 20, 0, NULL},
|
||||
{ "setuid", 0x900000, 23, 1, "i" },
|
||||
{ "getuid", 0x900000, 24, 0, NULL },
|
||||
{ "ptrace", 0x900000, 26, 4 },
|
||||
{ "utime", 0x900000, 30, 2 },
|
||||
{ "access", 0x900000, 33, 2 },
|
||||
{ "kill", 0x900000, 37,2 },
|
||||
{ "dup", 0x900000, 41, 2 },
|
||||
{ "brk", 0x900000, 45, 1 },
|
||||
{ "signal", 0x900000, 48, 2 },
|
||||
{ "ioctl", 0x900000, 54, 3 },
|
||||
{ "mmap", 0x900000, 90, 6 },
|
||||
{ "munmap", 0x900000, 91, 1 },
|
||||
{ "socketcall", 0x900000, 102, 2 },
|
||||
{ "sigreturn", 0x900000, 119, 1 },
|
||||
{ "clone", 0x900000, 120, 4 },
|
||||
{ "mprotect", 0x900000, 125, 3},
|
||||
{ "rt_sigaction", 0x900000, 174, 3},
|
||||
{ "rt_sigprocmask", 0x900000, 175, 3},
|
||||
{ "sysctl", 0x900000, 149, 1 },
|
||||
{ "mmap2", 0x900000, 192, 6},
|
||||
{ "fstat64", 0x900000, 197, 2},
|
||||
{ "fcntl64", 0x900000, 221, 3},
|
||||
{ "gettid", 0x900000, 224, 0},
|
||||
{ "set_thread_area", 0x900000, 243, 2},
|
||||
{ "get_thread_area", 0x900000, 244, 2},
|
||||
{ "exit_group", 0x900000, 252, 1},
|
||||
{ NULL, 0, 0, 0 }
|
||||
};
|
||||
|
||||
RSyscallItem syscalls_linux_mips[] = {
|
||||
{ "syscall", 4000, 1, 1, "i" },
|
||||
{ "exit", 4001, 1, 1, "i" },
|
||||
{ "fork", 4002, 2, 0, NULL },
|
||||
{ "read", 4003, 3, 3, "ipi" },
|
||||
{ "write", 4004, 4, 3, "izi" },
|
||||
{ "open", 4005, 5, 3, "zxx" },
|
||||
{ "close", 4006, 6, 1, "i" },
|
||||
{ "waitpid", 4007, 7, 3, "ipx"},
|
||||
{ "creat", 4008, 8, 2, "zx" },
|
||||
{ "link", 4009, 9, 2, "zz" },
|
||||
{ "unlink", 4010, 10, 1, "z" },
|
||||
{ "execve", 4011, 11, 3, "zzz" }, // XXX this is char**
|
||||
{ "chdir", 4012, 12, 1, "z" },
|
||||
{ "time", 4013, 13, 1, "p" },
|
||||
{ "mknod", 4014, 14, 1, "zxi" },
|
||||
{ "chmod", 4015, 15, 1, "zx" },
|
||||
{ "lchown", 4016, 16, 1, "zii" },
|
||||
{ "getpid", 4020, 20, 0, NULL},
|
||||
{ "setuid", 4023, 23, 1, "i" },
|
||||
{ "getuid", 4024, 24, 0, NULL },
|
||||
{ "ptrace", 4026, 26, 4 },
|
||||
{ "utime", 4030, 30, 2 },
|
||||
{ "access", 4033, 33, 2 },
|
||||
{ "kill", 4037, 37,2 },
|
||||
{ "dup", 4041, 41, 2 },
|
||||
{ "brk", 4045, 45, 1 },
|
||||
{ "signal", 4048, 48, 2 },
|
||||
{ "ioctl", 4054, 54, 3 },
|
||||
{ "mmap", 4090, 90, 6 },
|
||||
{ "munmap", 4091, 91, 1 },
|
||||
{ "socketcall", 4000+102, 102, 2 },
|
||||
{ "sigreturn", 4000+119, 119, 1 },
|
||||
{ "clone", 4000+120, 120, 4 },
|
||||
{ "mprotect", 4000+125, 125, 3},
|
||||
{ "rt_sigaction", 4000+174, 174, 3},
|
||||
{ "rt_sigprocmask", 4000+175, 175, 3},
|
||||
{ "sysctl", 4000+149, 149, 1 },
|
||||
{ "mmap2", 4000+192, 192, 6},
|
||||
{ "fstat64", 4000+197, 197, 2},
|
||||
{ "fcntl64", 4000+221, 221, 3},
|
||||
{ "gettid", 4000+224, 224, 0},
|
||||
{ "set_thread_area", 4000+243, 243, 2},
|
||||
{ "get_thread_area", 4000+244, 244, 2},
|
||||
{ "exit_group", 4000+252, 252, 1},
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
// TODO: needs to be implemented
|
||||
#if 0
|
||||
#define SP_TRAP_SOLARIS 0x88 /* Solaris System Call */
|
||||
#define SP_TRAP_NETBSD 0x89 /* NetBSD System Call */
|
||||
#define SP_TRAP_LINUX 0x90 /* Linux System Call */
|
||||
#define LINUX_32BIT_SYSCALL_TRAP 0x10 /* linux ok ?? -- http://www.48bits.com/papers/sparc_shellcodes.txt */
|
||||
#endif
|
||||
|
||||
RSyscallItem syscalls_linux_sparc[] = {
|
||||
{ "exit", 0x10, 1, 1, "i" },
|
||||
{ "fork", 0x10, 2, 0, NULL },
|
||||
{ "read", 0x10, 3, 3, "ipi" },
|
||||
{ "write", 0x10, 4, 3, "izi" },
|
||||
{ "open", 0x10, 5, 3, "zxx" },
|
||||
{ "close", 0x10, 6, 1, "i" },
|
||||
{ "waitpid", 0x10, 7, 3, "ipx"},
|
||||
{ "creat", 0x10, 8, 2, "zx" },
|
||||
{ "link", 0x10, 9, 2, "zz" },
|
||||
{ "unlink", 0x10, 10, 1, "z" },
|
||||
{ "execve", 0x10, 11, 3, "zzz" }, // XXX this is char**
|
||||
{ "chdir", 0x10, 12, 1, "z" },
|
||||
{ "getpid", 0x10, 20, 0, NULL},
|
||||
{ "setuid", 0x10, 23, 1, "i" },
|
||||
{ "getuid", 0x10, 24, 0, NULL },
|
||||
{ "ptrace", 0x10, 26, 4 },
|
||||
{ "utime", 0x10, 30, 2 },
|
||||
{ "access", 0x10, 33, 2 },
|
||||
{ "kill", 0x10, 37,2 },
|
||||
{ "dup", 0x10, 41, 2 },
|
||||
{ "brk", 0x10, 45, 1 },
|
||||
{ "signal", 0x10, 48, 2 },
|
||||
{ "ioctl", 0x10, 54, 3 },
|
||||
{ "mmap", 0x10, 90, 6 },
|
||||
{ "munmap", 0x10, 91, 1 },
|
||||
{ "socketcall", 0x10, 102, 2 },
|
||||
{ "sigreturn", 0x10, 119, 1 },
|
||||
{ "clone", 0x10, 120, 4 },
|
||||
{ "mprotect", 0x10, 125, 3},
|
||||
{ "rt_sigaction", 0x10, 174, 3},
|
||||
{ "rt_sigprocmask", 0x10, 175, 3},
|
||||
{ "sysctl", 0x10, 149, 1 },
|
||||
{ "mmap2", 0x10, 192, 6},
|
||||
{ NULL }
|
||||
};
|
@ -1,57 +0,0 @@
|
||||
#include "r_syscall.h"
|
||||
|
||||
/* syscall-netbsd */
|
||||
RSyscallItem syscalls_netbsd_x86[] = {
|
||||
{ "syscall", 0x80, 0, 4 },
|
||||
{ "exit", 0x80, 1, 1 },
|
||||
{ "fork", 0x80, 2, 0 },
|
||||
{ "read", 0x80, 3, 3 },
|
||||
{ "write", 0x80, 4, 3 },
|
||||
{ "open", 0x80, 5, 3 },
|
||||
{ "close", 0x80, 6, 1 },
|
||||
{ "wait4", 0x80, 7, 3 },
|
||||
{ "compat_43_ocreat", 0x80, 8, 2 },
|
||||
{ "link", 0x80, 9, 2 },
|
||||
{ "unlink", 0x80, 10, 1 },
|
||||
//{ "execve", 0x80, 11, 3},
|
||||
{ "chdir", 0x80, 12, 1},
|
||||
{ "fchdir", 0x80, 13, 1},
|
||||
{ "mknod", 0x80, 14, 1},
|
||||
{ "chmod", 0x80, 15, 1},
|
||||
{ "chown", 0x80, 16, 1},
|
||||
{ "break", 0x80, 17, 1},
|
||||
{ "getpid", 0x80, 20, 0},
|
||||
{ "mount", 0x80, 21, 0},
|
||||
{ "unmount", 0x80, 22, 0},
|
||||
{ "setuid", 0x80, 23, 1},
|
||||
{ "getuid", 0x80, 24, 0},
|
||||
{ "ptrace", 0x80, 26, 4},
|
||||
{ "recvmsg", 0x80, 27, 4},
|
||||
{ "sendmsg", 0x80, 28, 4},
|
||||
{ "recvfrom", 0x80, 29, 4},
|
||||
{ "accept", 0x80, 30, 4},
|
||||
{ "access", 0x80, 33, 2},
|
||||
{ "dup", 0x80, 41, 2},
|
||||
{ "ktrace", 0x80, 45, 1},
|
||||
{ "signal", 0x80, 48, 2},
|
||||
{ "utime", 0x80, 30, 2 },
|
||||
{ "kill", 0x80, 37,2 },
|
||||
{ "ioctl", 0x80, 54, 3 },
|
||||
{ "mmap", 0x80, 90, 6},
|
||||
{ "munmap", 0x80, 91, 1},
|
||||
{ "socketcall", 0x80, 102, 2 },
|
||||
{ "sigreturn", 0x80, 119, 1 },
|
||||
{ "clone", 0x80, 120, 4 },
|
||||
{ "mprotect", 0x80, 125, 3},
|
||||
{ "rt_sigaction", 0x80, 174, 3},
|
||||
{ "rt_sigprocmask", 0x80, 175, 3},
|
||||
{ "sysctl", 0x80, 149, 1 },
|
||||
{ "mmap2", 0x80, 192, 6},
|
||||
{ "fstat64", 0x80, 197, 2},
|
||||
{ "fcntl64", 0x80, 221, 3},
|
||||
{ "gettid", 0x80, 224, 0},
|
||||
{ "set_thread_area", 0x80, 243, 2},
|
||||
{ "get_thread_area", 0x80, 244, 2},
|
||||
{ "exit_group", 0x80, 252, 1},
|
||||
{ NULL, 0x80, 0, 0 }
|
||||
};
|
@ -1,195 +0,0 @@
|
||||
#include "r_syscall.h"
|
||||
|
||||
/* syscall-openbsd */
|
||||
RSyscallItem syscalls_openbsd_x86[] = {
|
||||
{ "syscall", 0x80, 0, 2 },
|
||||
{ "exit", 0x80, 1, 1 },
|
||||
{ "fork", 0x80, 2, 0 },
|
||||
{ "read", 0x80, 3, 3 },
|
||||
{ "write", 0x80, 4, 3 },
|
||||
{ "open", 0x80, 5, 3 },
|
||||
{ "close", 0x80, 6, 1 },
|
||||
{ "wait4", 0x80, 7, 4 },
|
||||
{ "link", 0x80, 9, 2 },
|
||||
{ "unlink", 0x80, 10, 1 },
|
||||
{ "chdir", 0x80, 12, 1 },
|
||||
{ "fchdir", 0x80, 13, 1 },
|
||||
{ "mknod", 0x80, 14, 3 },
|
||||
{ "chmod", 0x80, 15, 2 },
|
||||
{ "chown", 0x80, 16, 3 },
|
||||
{ "break", 0x80, 17, 1 },
|
||||
{ "getpid", 0x80, 20, 0 },
|
||||
{ "mount", 0x80, 21, 4 },
|
||||
{ "unmount", 0x80, 22, 2 },
|
||||
{ "setuid", 0x80, 23, 1 },
|
||||
{ "getuid", 0x80, 24, 0 },
|
||||
{ "geteuid", 0x80, 25, 0 },
|
||||
{ "ptrace", 0x80, 26, 4 },
|
||||
{ "recvmsg", 0x80, 27, 3 },
|
||||
{ "sendmsg", 0x80, 28, 3 },
|
||||
{ "recvfrom", 0x80, 29, 6 },
|
||||
{ "accept", 0x80, 30, 3 },
|
||||
{ "getpeername", 0x80, 31, 3 },
|
||||
{ "getsockname", 0x80, 32, 3 },
|
||||
{ "access", 0x80, 33, 2 },
|
||||
{ "chflags", 0x80, 34, 2 },
|
||||
{ "fchflags", 0x80, 35, 2 },
|
||||
{ "sync", 0x80, 36, 0 },
|
||||
{ "kill", 0x80, 37, 2 },
|
||||
{ "getppid", 0x80, 39, 0 },
|
||||
{ "dup", 0x80, 41, 1 },
|
||||
{ "opipe", 0x80, 42, 0 },
|
||||
{ "getegid", 0x80, 43, 0 },
|
||||
{ "profil", 0x80, 44, 4 },
|
||||
{ "ktrace", 0x80, 45, 4 },
|
||||
{ "sigaction", 0x80, 46, 3 },
|
||||
{ "getgid", 0x80, 47, 0 },
|
||||
{ "sigprocmask", 0x80, 48, 2 },
|
||||
{ "getlogin", 0x80, 49, 2 },
|
||||
{ "setlogin", 0x80, 50, 1 },
|
||||
{ "acct", 0x80, 51, 1 },
|
||||
{ "sigpending", 0x80, 52, 0 },
|
||||
{ "osigaltstack", 0x80, 53, 2 },
|
||||
{ "ioctl", 0x80, 54, 3 },
|
||||
{ "reboot", 0x80, 55, 1 },
|
||||
{ "revoke", 0x80, 56, 1 },
|
||||
{ "symlink", 0x80, 57, 2 },
|
||||
{ "readlink", 0x80, 58, 3 },
|
||||
{ "execve", 0x80, 59, 3 },
|
||||
{ "umask", 0x80, 60, 1 },
|
||||
{ "chroot", 0x80, 61, 1 },
|
||||
{ "vfork", 0x80, 66, 0 },
|
||||
{ "sbrk", 0x80, 69, 1 },
|
||||
{ "sstk", 0x80, 70, 1 },
|
||||
{ "munmap", 0x80, 73, 2 },
|
||||
{ "mprotect", 0x80, 74, 3 },
|
||||
{ "madvise", 0x80, 75, 3 },
|
||||
{ "mincore", 0x80, 78, 3 },
|
||||
{ "getgroups", 0x80, 79, 2 },
|
||||
{ "setgroups", 0x80, 80, 2 },
|
||||
{ "getpgrp", 0x80, 81, 0 },
|
||||
{ "setpgid", 0x80, 82, 2 },
|
||||
{ "setitimer", 0x80, 83, 3 },
|
||||
{ "getitimer", 0x80, 86, 2 },
|
||||
{ "dup2", 0x80, 90, 2 },
|
||||
{ "fcntl", 0x80, 92, 3 },
|
||||
{ "select", 0x80, 93, 5 },
|
||||
{ "fsync", 0x80, 95, 1 },
|
||||
{ "setpriority", 0x80, 96, 3 },
|
||||
{ "socket", 0x80, 97, 3 },
|
||||
{ "connect", 0x80, 98, 3 },
|
||||
{ "getpriority", 0x80, 100, 2 },
|
||||
{ "sigreturn", 0x80, 103, 1 },
|
||||
{ "bind", 0x80, 104, 3 },
|
||||
{ "setsockopt", 0x80, 105, 5 },
|
||||
{ "listen", 0x80, 106, 2 },
|
||||
{ "sigsuspend", 0x80, 111, 1 },
|
||||
{ "gettimeofday", 0x80, 116, 2 },
|
||||
{ "getrusage", 0x80, 117, 2 },
|
||||
{ "getsockopt", 0x80, 118, 5 },
|
||||
{ "readv", 0x80, 120, 3 },
|
||||
{ "writev", 0x80, 121, 3 },
|
||||
{ "settimeofday", 0x80, 122, 2 },
|
||||
{ "fchown", 0x80, 123, 3 },
|
||||
{ "fchmod", 0x80, 124, 2 },
|
||||
{ "setreuid", 0x80, 126, 2 },
|
||||
{ "setregid", 0x80, 127, 2 },
|
||||
{ "rename", 0x80, 128, 2 },
|
||||
{ "flock", 0x80, 131, 2 },
|
||||
{ "mkfifo", 0x80, 132, 2 },
|
||||
{ "sendto", 0x80, 133, 6 },
|
||||
{ "shutdown", 0x80, 134, 2 },
|
||||
{ "socketpair", 0x80, 135, 4 },
|
||||
{ "mkdir", 0x80, 136, 2 },
|
||||
{ "rmdir", 0x80, 137, 1 },
|
||||
{ "utimes", 0x80, 138, 2 },
|
||||
{ "adjtime", 0x80, 140, 2 },
|
||||
{ "setsid", 0x80, 147, 0 },
|
||||
{ "quotactl", 0x80, 148, 4 },
|
||||
{ "nfssvc", 0x80, 155, 2 },
|
||||
{ "getfh", 0x80, 161, 2 },
|
||||
{ "sysarch", 0x80, 165, 2 },
|
||||
{ "pread", 0x80, 173, 5 },
|
||||
{ "pwrite", 0x80, 174, 5 },
|
||||
{ "setgid", 0x80, 181, 1 },
|
||||
{ "setegid", 0x80, 182, 1 },
|
||||
{ "seteuid", 0x80, 183, 1 },
|
||||
{ "lfs_bmapv", 0x80, 184, 3 },
|
||||
{ "lfs_markv", 0x80, 185, 3 },
|
||||
{ "lfs_segclean", 0x80, 186, 2 },
|
||||
{ "lfs_segwait", 0x80, 187, 2 },
|
||||
{ "pathconf", 0x80, 191, 2 },
|
||||
{ "fpathconf", 0x80, 192, 2 },
|
||||
{ "swapctl", 0x80, 193, 3 },
|
||||
{ "getrlimit", 0x80, 194, 2 },
|
||||
{ "setrlimit", 0x80, 195, 2 },
|
||||
{ "getdirentries", 0x80, 196, 4 },
|
||||
{ "mmap", 0x80, 197, 7 },
|
||||
{ "__syscall", 0x80, 198, 2 },
|
||||
{ "lseek", 0x80, 199, 4 },
|
||||
{ "truncate", 0x80, 200, 3 },
|
||||
{ "ftruncate", 0x80, 201, 3 },
|
||||
{ "__sysctl", 0x80, 202, 6 },
|
||||
{ "mlock", 0x80, 203, 2 },
|
||||
{ "munlock", 0x80, 204, 2 },
|
||||
{ "futimes", 0x80, 206, 2 },
|
||||
{ "getpgid", 0x80, 207, 1 },
|
||||
{ "nnpfspioctl", 0x80, 208, 5 },
|
||||
{ "semget", 0x80, 221, 3 },
|
||||
{ "msgget", 0x80, 225, 2 },
|
||||
{ "msgsnd", 0x80, 226, 4 },
|
||||
{ "msgrcv", 0x80, 227, 5 },
|
||||
{ "shmat", 0x80, 228, 3 },
|
||||
{ "shmdt", 0x80, 230, 1 },
|
||||
{ "clock_gettime", 0x80, 232, 2 },
|
||||
{ "clock_settime", 0x80, 233, 2 },
|
||||
{ "clock_getres", 0x80, 234, 2 },
|
||||
{ "nanosleep", 0x80, 240, 2 },
|
||||
{ "minherit", 0x80, 250, 3 },
|
||||
{ "rfork", 0x80, 251, 1 },
|
||||
{ "poll", 0x80, 252, 3 },
|
||||
{ "issetugid", 0x80, 253, 0 },
|
||||
{ "lchown", 0x80, 254, 3 },
|
||||
{ "getsid", 0x80, 255, 1 },
|
||||
{ "msync", 0x80, 256, 3 },
|
||||
{ "pipe", 0x80, 263, 1 },
|
||||
{ "fhopen", 0x80, 264, 2 },
|
||||
{ "preadv", 0x80, 267, 5 },
|
||||
{ "pwritev", 0x80, 268, 5 },
|
||||
{ "kqueue", 0x80, 269, 0 },
|
||||
{ "kevent", 0x80, 270, 6 },
|
||||
{ "mlockall", 0x80, 271, 1 },
|
||||
{ "munlockall", 0x80, 272, 0 },
|
||||
{ "getpeereid", 0x80, 273, 3 },
|
||||
{ "getresuid", 0x80, 281, 3 },
|
||||
{ "setresuid", 0x80, 282, 3 },
|
||||
{ "getresgid", 0x80, 283, 3 },
|
||||
{ "setresgid", 0x80, 284, 3 },
|
||||
{ "mquery", 0x80, 286, 7 },
|
||||
{ "closefrom", 0x80, 287, 1 },
|
||||
{ "sigaltstack", 0x80, 288, 2 },
|
||||
{ "shmget", 0x80, 289, 3 },
|
||||
{ "semop", 0x80, 290, 3 },
|
||||
{ "stat", 0x80, 291, 2 },
|
||||
{ "fstat", 0x80, 292, 2 },
|
||||
{ "lstat", 0x80, 293, 2 },
|
||||
{ "fhstat", 0x80, 294, 2 },
|
||||
{ "__semctl", 0x80, 295, 4 },
|
||||
{ "shmctl", 0x80, 296, 3 },
|
||||
{ "msgctl", 0x80, 297, 3 },
|
||||
{ "sched_yield", 0x80, 298, 0 },
|
||||
{ "getthrid", 0x80, 299, 0 },
|
||||
{ "thrsleep", 0x80, 300, 4 },
|
||||
{ "thrwakeup", 0x80, 301, 2 },
|
||||
{ "threxit", 0x80, 302, 1 },
|
||||
{ "thrsigdivert", 0x80, 303, 3 },
|
||||
{ "__getcwd", 0x80, 304, 2 },
|
||||
{ "adjfreq", 0x80, 305, 2 },
|
||||
{ "getfsstat", 0x80, 306, 3 },
|
||||
{ "statfs", 0x80, 307, 2 },
|
||||
{ "fstatfs", 0x80, 308, 2 },
|
||||
{ "fhstatfs", 0x80, 309, 2 },
|
||||
{ "setrtable", 0x80, 310, 1 },
|
||||
{ "getrtable", 0x80, 311, 0 },
|
||||
{ NULL }
|
||||
};
|
@ -2,29 +2,19 @@
|
||||
|
||||
#include <r_types.h>
|
||||
#include <r_util.h>
|
||||
#include <r_db.h>
|
||||
#include <r_syscall.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "fastcall.h"
|
||||
|
||||
extern RSyscallItem syscalls_openbsd_x86[];
|
||||
extern RSyscallItem syscalls_linux_sh[];
|
||||
extern RSyscallItem syscalls_linux_sparc[];
|
||||
extern RSyscallItem syscalls_netbsd_x86[];
|
||||
extern RSyscallItem syscalls_linux_x86[];
|
||||
extern RSyscallItem syscalls_linux_mips[];
|
||||
extern RSyscallItem syscalls_linux_arm[];
|
||||
extern RSyscallItem syscalls_freebsd_x86[];
|
||||
extern RSyscallItem syscalls_darwin_x86[];
|
||||
extern RSyscallItem syscalls_darwin_arm[];
|
||||
extern RSyscallItem syscalls_win7_x86[];
|
||||
extern RSyscallPort sysport_x86[];
|
||||
|
||||
R_API RSyscall* r_syscall_new() {
|
||||
RSyscall *rs = R_NEW (RSyscall);
|
||||
if (rs) {
|
||||
rs->fd = NULL;
|
||||
rs->sysptr = syscalls_linux_x86;
|
||||
rs->sysptr = NULL; //syscalls_linux_x86;
|
||||
rs->sysport = sysport_x86;
|
||||
rs->printf = (PrintfCallback)printf;
|
||||
rs->regs = fastcall_x86;
|
||||
@ -44,78 +34,40 @@ R_API const char *r_syscall_reg(RSyscall *s, int idx, int num) {
|
||||
}
|
||||
|
||||
R_API int r_syscall_setup(RSyscall *ctx, const char *arch, const char *os, int bits) {
|
||||
char file[64];
|
||||
|
||||
#define SYSCALLPATH "lib/radare2/syscall"
|
||||
if (os == NULL)
|
||||
os = R_SYS_OS;
|
||||
if (arch == NULL)
|
||||
arch = R_SYS_ARCH;
|
||||
/// XXX: spaghetti here
|
||||
if (!strcmp (os, "any")) {
|
||||
// ignored
|
||||
return R_TRUE;
|
||||
}
|
||||
// TODO: use r_str_hash.. like in r_egg
|
||||
if (!strcmp (arch, "mips")) {
|
||||
ctx->regs = fastcall_mips;
|
||||
if (!strcmp (os, "linux"))
|
||||
ctx->sysptr = syscalls_linux_mips;
|
||||
else {
|
||||
eprintf ("r_syscall_setup: Unknown arch '%s'\n", arch);
|
||||
return R_FALSE;
|
||||
}
|
||||
} else
|
||||
if (!strcmp (arch, "sparc")) {
|
||||
if (!strcmp (os, "linux"))
|
||||
ctx->sysptr = syscalls_linux_sparc;
|
||||
else
|
||||
if (!strcmp (os, "openbsd"))
|
||||
ctx->sysptr = syscalls_linux_sparc; //XXX
|
||||
else return R_FALSE;
|
||||
} else
|
||||
if (!strcmp (arch, "arm")) {
|
||||
ctx->regs = fastcall_arm;
|
||||
if (!strcmp (os, "linux"))
|
||||
ctx->sysptr = syscalls_linux_arm;
|
||||
else
|
||||
if (!strcmp (os, "macos") || !strcmp (os, "darwin") || !strcmp (os, "osx"))
|
||||
ctx->sysptr = syscalls_darwin_arm;
|
||||
else {
|
||||
eprintf ("r_syscall_setup: Unknown OS '%s'\n", os);
|
||||
return R_FALSE;
|
||||
}
|
||||
} else
|
||||
if (!strcmp (arch, "x86")) {
|
||||
ctx->regs = fastcall_x86;
|
||||
// TODO: use bits
|
||||
if (!strcmp (os, "linux"))
|
||||
ctx->sysptr = syscalls_linux_x86;
|
||||
else if (!strcmp (os, "netbsd"))
|
||||
ctx->sysptr = syscalls_netbsd_x86;
|
||||
else if (!strcmp (os, "freebsd"))
|
||||
ctx->sysptr = syscalls_freebsd_x86;
|
||||
else if (!strcmp (os, "openbsd"))
|
||||
ctx->sysptr = syscalls_openbsd_x86;
|
||||
else if ((!strcmp (os, "darwin")) || (!strcmp (os, "macos")) || (!strcmp (os, "osx")))
|
||||
ctx->sysptr = syscalls_darwin_x86;
|
||||
else if (!strcmp (os, "windows") || (!strcmp (os, "w32"))) //win7
|
||||
ctx->sysptr = syscalls_win7_x86;
|
||||
else {
|
||||
eprintf ("r_syscall_setup: Unknown os '%s'\n", os);
|
||||
return R_FALSE;
|
||||
}
|
||||
} else
|
||||
if (!strcmp (arch,"sh")){
|
||||
if (!strcmp (arch,"sh")) {
|
||||
ctx->regs = fastcall_sh;
|
||||
if (!strcmp (os, "linux"))
|
||||
ctx->sysptr = syscalls_linux_sh;
|
||||
else {
|
||||
eprintf ("r_syscall_setup: Unknown os '%s'\n",os);
|
||||
return R_FALSE;
|
||||
}
|
||||
|
||||
} else {
|
||||
eprintf ("r_syscall_setup: Unknown os/arch '%s'/'%s'\n", os, arch);
|
||||
}
|
||||
|
||||
snprintf (file, sizeof (file), PREFIX"/%s/%s-%s-%d.sdb",
|
||||
SYSCALLPATH, os, arch, bits);
|
||||
if (!r_file_exist (file)) {
|
||||
eprintf ("Cannot find '%s'\n", file);
|
||||
return R_FALSE;
|
||||
}
|
||||
|
||||
r_pair_free (ctx->syspair);
|
||||
ctx->syspair = r_pair_new_from_file (file);
|
||||
|
||||
if (ctx->fd)
|
||||
fclose (ctx->fd);
|
||||
ctx->fd = NULL;
|
||||
@ -138,6 +90,14 @@ R_API RSyscallItem *r_syscall_item_new_from_string(const char *name, const char
|
||||
|
||||
r_str_split (o, ',');
|
||||
|
||||
/*
|
||||
return r_syscall_item_new (name,
|
||||
r_num_get (NULL, r_str_word_get0 (o, 0)),
|
||||
r_num_get (NULL, r_str_word_get0 (o, 1)),
|
||||
r_num_get (NULL, r_str_word_get0 (o, 2)),
|
||||
r_str_word_get0 (o, 3));
|
||||
*/
|
||||
|
||||
si->name = strdup (name);
|
||||
si->swi = r_num_get (NULL, r_str_word_get0 (o, 0));
|
||||
si->num = r_num_get (NULL, r_str_word_get0 (o, 1));
|
||||
@ -154,46 +114,57 @@ R_API void r_syscall_item_free(RSyscallItem *si) {
|
||||
}
|
||||
|
||||
R_API RSyscallItem *r_syscall_get(RSyscall *ctx, int num, int swi) {
|
||||
int i;
|
||||
#if 0
|
||||
char *s = r_pair_getf ("0x%x.%d", swi, num);
|
||||
if (s) {
|
||||
return parsesyscall(s);
|
||||
}
|
||||
#endif
|
||||
for (i=0; ctx->sysptr[i].name; i++) {
|
||||
if (num == ctx->sysptr[i].num && \
|
||||
(swi == -1 || swi == ctx->sysptr[i].swi))
|
||||
return &ctx->sysptr[i];
|
||||
}
|
||||
return NULL;
|
||||
char *ret, *ret2, foo[32];
|
||||
RSyscallItem *si;
|
||||
if (!ctx->syspair)
|
||||
return NULL;
|
||||
snprintf (foo, sizeof (foo), "0x%x.%d", swi, num);
|
||||
ret = r_pair_get (ctx->syspair, foo);
|
||||
ret2 = r_pair_get (ctx->syspair, ret);
|
||||
free (ret);
|
||||
si = r_syscall_item_new_from_string (foo, ret2);
|
||||
free (ret2);
|
||||
return si;
|
||||
}
|
||||
|
||||
R_API int r_syscall_get_num(RSyscall *ctx, const char *str) {
|
||||
char *o;
|
||||
int i;
|
||||
for (i=0; ctx->sysptr[i].name; i++)
|
||||
if (!strcmp (str, ctx->sysptr[i].name))
|
||||
return ctx->sysptr[i].num;
|
||||
return 0;
|
||||
if (!ctx->syspair)
|
||||
return 0;
|
||||
o = r_pair_get (ctx->syspair, str);
|
||||
if (o && *o) {
|
||||
r_str_split (o, ',');
|
||||
i = r_num_get (NULL, r_str_word_get0 (o, 1));
|
||||
}
|
||||
free (o);
|
||||
return i;
|
||||
}
|
||||
|
||||
// we can probably wrap all this with r_list getters
|
||||
/* XXX: ugly iterator implementation */
|
||||
R_API RSyscallItem *r_syscall_get_n(RSyscall *ctx, int n) {
|
||||
int i;
|
||||
for (i=0; ctx->sysptr[i].name && i!=n; i++)
|
||||
return &ctx->sysptr[i];
|
||||
return NULL;
|
||||
RList *l;
|
||||
if (!ctx->syspair)
|
||||
return NULL;
|
||||
l = r_pair_list (ctx->syspair, NULL);
|
||||
// XXX: memory leak !!
|
||||
return r_list_get_n (l, n);
|
||||
}
|
||||
|
||||
R_API const char *r_syscall_get_i(RSyscall *ctx, int num, int swi) {
|
||||
int i;
|
||||
for (i=0; ctx->sysptr[i].name; i++) {
|
||||
if (num == ctx->sysptr[i].num && \
|
||||
(swi == -1 || swi == ctx->sysptr[i].swi))
|
||||
return ctx->sysptr[i].name;
|
||||
R_API char *r_syscall_get_i(RSyscall *ctx, int num, int swi) {
|
||||
char *ret, foo[32];
|
||||
if (!ctx->syspair)
|
||||
return NULL;
|
||||
if (swi==-1) {
|
||||
char *def = r_pair_get (ctx->syspair, "_");
|
||||
if (def && *def) {
|
||||
swi = r_num_get (NULL, def);
|
||||
} else swi = 0x80; // XXX hardcoded
|
||||
}
|
||||
return NULL;
|
||||
snprintf (foo, sizeof (foo), "0x%x.%d", swi, num);
|
||||
ret = r_pair_get (ctx->syspair, foo);
|
||||
return ret;
|
||||
}
|
||||
|
||||
R_API const char *r_syscall_get_io(RSyscall *ctx, int ioport) {
|
||||
@ -207,6 +178,7 @@ R_API const char *r_syscall_get_io(RSyscall *ctx, int ioport) {
|
||||
|
||||
R_API void r_syscall_list(RSyscall *ctx) {
|
||||
int i;
|
||||
// TODO: use r_pair here
|
||||
for (i=0; ctx->sysptr[i].name; i++) {
|
||||
ctx->printf ("%02x: %d = %s\n",
|
||||
ctx->sysptr[i].swi, ctx->sysptr[i].num, ctx->sysptr[i].name);
|
||||
|
1231
libr/syscall/win7.c
1231
libr/syscall/win7.c
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user