add DTrace systrace support for linux32 and freebsd32 on amd64 syscalls

This commits makes necessary changes in syscall/sysent generation
infrastructure.

PR:		kern/152822
Submitted by:	Artem Belevich <fbsdlist@src.cx>
Reviewed by:	jhb (ealier version)
MFC after:	3 weeks
This commit is contained in:
Andriy Gapon 2011-03-12 08:51:43 +00:00
parent 31f7ad1545
commit 56ede1074e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219559
9 changed files with 28 additions and 16 deletions

View File

@ -5,11 +5,13 @@
all:
@echo "make sysent only"
sysent: linux32_sysent.c linux32_syscall.h linux32_proto.h
sysent: linux32_sysent.c linux32_syscall.h linux32_proto.h linux32_syscalls.c linux32_systrace_args.c
linux32_sysent.c linux32_syscall.h linux32_proto.h: ../../kern/makesyscalls.sh \
linux32_sysent.c linux32_syscall.h linux32_proto.h linux32_syscalls.c linux32_systrace_args.c: ../../kern/makesyscalls.sh \
syscalls.master syscalls.conf
-mv -f linux32_sysent.c linux32_sysent.c.bak
-mv -f linux32_syscall.h linux32_syscall.h.bak
-mv -f linux32_proto.h linux32_proto.h.bak
-mv -f linux32_syscalls.c linux32_syscalls.c.bak
-mv -f linux32_systrace_args.c linux32_systrace_args.c.bak
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf

View File

@ -1,5 +1,5 @@
# $FreeBSD$
sysnames="/dev/null"
sysnames="linux32_syscalls.c"
sysproto="linux32_proto.h"
sysproto_h=_LINUX_SYSPROTO_H_
syshdr="linux32_syscall.h"
@ -8,4 +8,4 @@ sysmk="/dev/null"
syscallprefix="LINUX_SYS_"
switchname="linux_sysent"
namesname="linux_syscallnames"
systrace="/dev/null"
systrace="linux32_systrace_args.c"

View File

@ -291,7 +291,7 @@
l_uid16_t *euid, l_uid16_t *suid); }
166 AUE_NULL UNIMPL vm86
167 AUE_NULL STD { int linux_query_module(void); }
168 AUE_POLL NOPROTO { int poll(struct pollfd*, \
168 AUE_POLL NOPROTO { int poll(struct pollfd *fds, \
unsigned int nfds, int timeout); }
169 AUE_NULL STD { int linux_nfsservctl(void); }
170 AUE_SETRESGID STD { int linux_setresgid16(l_gid16_t rgid, \

View File

@ -5,15 +5,17 @@
all:
@echo "make sysent only"
sysent: freebsd32_sysent.c freebsd32_syscall.h freebsd32_proto.h
sysent: freebsd32_sysent.c freebsd32_syscall.h freebsd32_proto.h freebsd32_systrace_args.c
freebsd32_sysent.c freebsd32_syscalls.c freebsd32_syscall.h freebsd32_proto.h: \
freebsd32_sysent.c freebsd32_syscalls.c freebsd32_syscall.h freebsd32_proto.h freebsd32_systrace_args.c : \
../../kern/makesyscalls.sh syscalls.master syscalls.conf
-mv -f freebsd32_sysent.c freebsd32_sysent.c.bak
-mv -f freebsd32_syscalls.c freebsd32_syscalls.c.bak
-mv -f freebsd32_syscall.h freebsd32_syscall.h.bak
-mv -f freebsd32_proto.h freebsd32_proto.h.bak
-mv -f freebsd32_systrace_args.c freebsd32_systrace_args.c.bak
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf
clean:
rm -f freebsd32_sysent.c freebsd32_syscalls.c freebsd32_syscall.h freebsd32_proto.h
rm -f freebsd32_systrace_args.c

View File

@ -8,4 +8,4 @@ sysmk="/dev/null"
syscallprefix="FREEBSD32_SYS_"
switchname="freebsd32_sysent"
namesname="freebsd32_syscallnames"
systrace="/dev/null"
systrace="freebsd32_systrace_args.c"

View File

@ -5,11 +5,13 @@
all:
@echo "make sysent only"
sysent: linux_sysent.c linux_syscall.h linux_proto.h
sysent: linux_sysent.c linux_syscall.h linux_proto.h linux_syscalls.c linux_systrace_args.c
linux_sysent.c linux_syscall.h linux_proto.h: ../../kern/makesyscalls.sh \
syscalls.master syscalls.conf
linux_sysent.c linux_syscall.h linux_proto.h linux_syscalls.c linux_systrace_args.c: \
../../kern/makesyscalls.sh syscalls.master syscalls.conf
-mv -f linux_sysent.c linux_sysent.c.bak
-mv -f linux_syscall.h linux_syscall.h.bak
-mv -f linux_proto.h linux_proto.h.bak
-mv -f linux_syscalls.c linux_syscalls.c.bak
-mv -f linux_systrace_args.c linux_systrace_args.c.bak
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf

View File

@ -1,5 +1,5 @@
# $FreeBSD$
sysnames="/dev/null"
sysnames="linux_syscalls.c"
sysproto="linux_proto.h"
sysproto_h=_LINUX_SYSPROTO_H_
syshdr="linux_syscall.h"
@ -8,4 +8,4 @@ sysmk="/dev/null"
syscallprefix="LINUX_SYS_"
switchname="linux_sysent"
namesname="linux_syscallnames"
systrace="/dev/null"
systrace="linux_systrace_args.c"

View File

@ -102,7 +102,7 @@
46 AUE_SETGID STD { int linux_setgid16(l_gid16_t gid); }
47 AUE_GETGID STD { int linux_getgid16(void); }
48 AUE_NULL STD { int linux_signal(l_int sig, \
l_handler_t handler); }
void *handler); }
49 AUE_GETEUID STD { int linux_geteuid16(void); }
50 AUE_GETEGID STD { int linux_getegid16(void); }
51 AUE_ACCT NOPROTO { int acct(char *path); }
@ -148,7 +148,7 @@
struct timeval *tp, \
struct timezone *tzp); }
79 AUE_SETTIMEOFDAY NOPROTO { int settimeofday( \
struct timeval *tp, \
struct timeval *tv, \
struct timezone *tzp); }
80 AUE_GETGROUPS STD { int linux_getgroups16(l_uint gidsetsize, \
l_gid16_t *gidset); }
@ -293,7 +293,7 @@
l_uid16_t *euid, l_uid16_t *suid); }
166 AUE_NULL STD { int linux_vm86(void); }
167 AUE_NULL STD { int linux_query_module(void); }
168 AUE_POLL NOPROTO { int poll(struct pollfd*, \
168 AUE_POLL NOPROTO { int poll(struct pollfd* fds, \
unsigned int nfds, long timeout); }
169 AUE_NULL STD { int linux_nfsservctl(void); }
170 AUE_SETRESGID STD { int linux_setresgid16(l_gid16_t rgid, \

View File

@ -200,6 +200,8 @@ s/\$//g
print > syscompat6
print > syscompat7
print > sysnames
print > systrace
print > systracetmp
savesyscall = syscall
next
}
@ -212,6 +214,8 @@ s/\$//g
print > syscompat6
print > syscompat7
print > sysnames
print > systrace
print > systracetmp
syscall = savesyscall
next
}
@ -224,6 +228,8 @@ s/\$//g
print > syscompat6
print > syscompat7
print > sysnames
print > systrace
print > systracetmp
next
}
syscall != $1 {