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:
parent
31f7ad1545
commit
56ede1074e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219559
@ -5,11 +5,13 @@
|
|||||||
all:
|
all:
|
||||||
@echo "make sysent only"
|
@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
|
syscalls.master syscalls.conf
|
||||||
-mv -f linux32_sysent.c linux32_sysent.c.bak
|
-mv -f linux32_sysent.c linux32_sysent.c.bak
|
||||||
-mv -f linux32_syscall.h linux32_syscall.h.bak
|
-mv -f linux32_syscall.h linux32_syscall.h.bak
|
||||||
-mv -f linux32_proto.h linux32_proto.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
|
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
sysnames="/dev/null"
|
sysnames="linux32_syscalls.c"
|
||||||
sysproto="linux32_proto.h"
|
sysproto="linux32_proto.h"
|
||||||
sysproto_h=_LINUX_SYSPROTO_H_
|
sysproto_h=_LINUX_SYSPROTO_H_
|
||||||
syshdr="linux32_syscall.h"
|
syshdr="linux32_syscall.h"
|
||||||
@ -8,4 +8,4 @@ sysmk="/dev/null"
|
|||||||
syscallprefix="LINUX_SYS_"
|
syscallprefix="LINUX_SYS_"
|
||||||
switchname="linux_sysent"
|
switchname="linux_sysent"
|
||||||
namesname="linux_syscallnames"
|
namesname="linux_syscallnames"
|
||||||
systrace="/dev/null"
|
systrace="linux32_systrace_args.c"
|
||||||
|
@ -291,7 +291,7 @@
|
|||||||
l_uid16_t *euid, l_uid16_t *suid); }
|
l_uid16_t *euid, l_uid16_t *suid); }
|
||||||
166 AUE_NULL UNIMPL vm86
|
166 AUE_NULL UNIMPL vm86
|
||||||
167 AUE_NULL STD { int linux_query_module(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, int timeout); }
|
unsigned int nfds, int timeout); }
|
||||||
169 AUE_NULL STD { int linux_nfsservctl(void); }
|
169 AUE_NULL STD { int linux_nfsservctl(void); }
|
||||||
170 AUE_SETRESGID STD { int linux_setresgid16(l_gid16_t rgid, \
|
170 AUE_SETRESGID STD { int linux_setresgid16(l_gid16_t rgid, \
|
||||||
|
@ -5,15 +5,17 @@
|
|||||||
all:
|
all:
|
||||||
@echo "make sysent only"
|
@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
|
../../kern/makesyscalls.sh syscalls.master syscalls.conf
|
||||||
-mv -f freebsd32_sysent.c freebsd32_sysent.c.bak
|
-mv -f freebsd32_sysent.c freebsd32_sysent.c.bak
|
||||||
-mv -f freebsd32_syscalls.c freebsd32_syscalls.c.bak
|
-mv -f freebsd32_syscalls.c freebsd32_syscalls.c.bak
|
||||||
-mv -f freebsd32_syscall.h freebsd32_syscall.h.bak
|
-mv -f freebsd32_syscall.h freebsd32_syscall.h.bak
|
||||||
-mv -f freebsd32_proto.h freebsd32_proto.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
|
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f freebsd32_sysent.c freebsd32_syscalls.c freebsd32_syscall.h freebsd32_proto.h
|
rm -f freebsd32_sysent.c freebsd32_syscalls.c freebsd32_syscall.h freebsd32_proto.h
|
||||||
|
rm -f freebsd32_systrace_args.c
|
||||||
|
@ -8,4 +8,4 @@ sysmk="/dev/null"
|
|||||||
syscallprefix="FREEBSD32_SYS_"
|
syscallprefix="FREEBSD32_SYS_"
|
||||||
switchname="freebsd32_sysent"
|
switchname="freebsd32_sysent"
|
||||||
namesname="freebsd32_syscallnames"
|
namesname="freebsd32_syscallnames"
|
||||||
systrace="/dev/null"
|
systrace="freebsd32_systrace_args.c"
|
||||||
|
@ -5,11 +5,13 @@
|
|||||||
all:
|
all:
|
||||||
@echo "make sysent only"
|
@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 \
|
linux_sysent.c linux_syscall.h linux_proto.h linux_syscalls.c linux_systrace_args.c: \
|
||||||
syscalls.master syscalls.conf
|
../../kern/makesyscalls.sh syscalls.master syscalls.conf
|
||||||
-mv -f linux_sysent.c linux_sysent.c.bak
|
-mv -f linux_sysent.c linux_sysent.c.bak
|
||||||
-mv -f linux_syscall.h linux_syscall.h.bak
|
-mv -f linux_syscall.h linux_syscall.h.bak
|
||||||
-mv -f linux_proto.h linux_proto.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
|
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
sysnames="/dev/null"
|
sysnames="linux_syscalls.c"
|
||||||
sysproto="linux_proto.h"
|
sysproto="linux_proto.h"
|
||||||
sysproto_h=_LINUX_SYSPROTO_H_
|
sysproto_h=_LINUX_SYSPROTO_H_
|
||||||
syshdr="linux_syscall.h"
|
syshdr="linux_syscall.h"
|
||||||
@ -8,4 +8,4 @@ sysmk="/dev/null"
|
|||||||
syscallprefix="LINUX_SYS_"
|
syscallprefix="LINUX_SYS_"
|
||||||
switchname="linux_sysent"
|
switchname="linux_sysent"
|
||||||
namesname="linux_syscallnames"
|
namesname="linux_syscallnames"
|
||||||
systrace="/dev/null"
|
systrace="linux_systrace_args.c"
|
||||||
|
@ -102,7 +102,7 @@
|
|||||||
46 AUE_SETGID STD { int linux_setgid16(l_gid16_t gid); }
|
46 AUE_SETGID STD { int linux_setgid16(l_gid16_t gid); }
|
||||||
47 AUE_GETGID STD { int linux_getgid16(void); }
|
47 AUE_GETGID STD { int linux_getgid16(void); }
|
||||||
48 AUE_NULL STD { int linux_signal(l_int sig, \
|
48 AUE_NULL STD { int linux_signal(l_int sig, \
|
||||||
l_handler_t handler); }
|
void *handler); }
|
||||||
49 AUE_GETEUID STD { int linux_geteuid16(void); }
|
49 AUE_GETEUID STD { int linux_geteuid16(void); }
|
||||||
50 AUE_GETEGID STD { int linux_getegid16(void); }
|
50 AUE_GETEGID STD { int linux_getegid16(void); }
|
||||||
51 AUE_ACCT NOPROTO { int acct(char *path); }
|
51 AUE_ACCT NOPROTO { int acct(char *path); }
|
||||||
@ -148,7 +148,7 @@
|
|||||||
struct timeval *tp, \
|
struct timeval *tp, \
|
||||||
struct timezone *tzp); }
|
struct timezone *tzp); }
|
||||||
79 AUE_SETTIMEOFDAY NOPROTO { int settimeofday( \
|
79 AUE_SETTIMEOFDAY NOPROTO { int settimeofday( \
|
||||||
struct timeval *tp, \
|
struct timeval *tv, \
|
||||||
struct timezone *tzp); }
|
struct timezone *tzp); }
|
||||||
80 AUE_GETGROUPS STD { int linux_getgroups16(l_uint gidsetsize, \
|
80 AUE_GETGROUPS STD { int linux_getgroups16(l_uint gidsetsize, \
|
||||||
l_gid16_t *gidset); }
|
l_gid16_t *gidset); }
|
||||||
@ -293,7 +293,7 @@
|
|||||||
l_uid16_t *euid, l_uid16_t *suid); }
|
l_uid16_t *euid, l_uid16_t *suid); }
|
||||||
166 AUE_NULL STD { int linux_vm86(void); }
|
166 AUE_NULL STD { int linux_vm86(void); }
|
||||||
167 AUE_NULL STD { int linux_query_module(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); }
|
unsigned int nfds, long timeout); }
|
||||||
169 AUE_NULL STD { int linux_nfsservctl(void); }
|
169 AUE_NULL STD { int linux_nfsservctl(void); }
|
||||||
170 AUE_SETRESGID STD { int linux_setresgid16(l_gid16_t rgid, \
|
170 AUE_SETRESGID STD { int linux_setresgid16(l_gid16_t rgid, \
|
||||||
|
@ -200,6 +200,8 @@ s/\$//g
|
|||||||
print > syscompat6
|
print > syscompat6
|
||||||
print > syscompat7
|
print > syscompat7
|
||||||
print > sysnames
|
print > sysnames
|
||||||
|
print > systrace
|
||||||
|
print > systracetmp
|
||||||
savesyscall = syscall
|
savesyscall = syscall
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
@ -212,6 +214,8 @@ s/\$//g
|
|||||||
print > syscompat6
|
print > syscompat6
|
||||||
print > syscompat7
|
print > syscompat7
|
||||||
print > sysnames
|
print > sysnames
|
||||||
|
print > systrace
|
||||||
|
print > systracetmp
|
||||||
syscall = savesyscall
|
syscall = savesyscall
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
@ -224,6 +228,8 @@ s/\$//g
|
|||||||
print > syscompat6
|
print > syscompat6
|
||||||
print > syscompat7
|
print > syscompat7
|
||||||
print > sysnames
|
print > sysnames
|
||||||
|
print > systrace
|
||||||
|
print > systracetmp
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
syscall != $1 {
|
syscall != $1 {
|
||||||
|
Loading…
Reference in New Issue
Block a user