Author: avg
Date: Sat Mar 12 08:51:43 2011
New Revision: 219559
URL: http://svn.freebsd.org/changeset/base/219559

Log:
  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 <fbsdl...@src.cx>
  Reviewed by:  jhb (ealier version)
  MFC after:    3 weeks

Modified:
  head/sys/amd64/linux32/Makefile
  head/sys/amd64/linux32/syscalls.conf
  head/sys/amd64/linux32/syscalls.master
  head/sys/compat/freebsd32/Makefile
  head/sys/compat/freebsd32/syscalls.conf
  head/sys/i386/linux/Makefile
  head/sys/i386/linux/syscalls.conf
  head/sys/i386/linux/syscalls.master
  head/sys/kern/makesyscalls.sh

Modified: head/sys/amd64/linux32/Makefile
==============================================================================
--- head/sys/amd64/linux32/Makefile     Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/amd64/linux32/Makefile     Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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

Modified: head/sys/amd64/linux32/syscalls.conf
==============================================================================
--- head/sys/amd64/linux32/syscalls.conf        Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/amd64/linux32/syscalls.conf        Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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"

Modified: head/sys/amd64/linux32/syscalls.master
==============================================================================
--- head/sys/amd64/linux32/syscalls.master      Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/amd64/linux32/syscalls.master      Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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, \

Modified: head/sys/compat/freebsd32/Makefile
==============================================================================
--- head/sys/compat/freebsd32/Makefile  Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/compat/freebsd32/Makefile  Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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 

Modified: head/sys/compat/freebsd32/syscalls.conf
==============================================================================
--- head/sys/compat/freebsd32/syscalls.conf     Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/compat/freebsd32/syscalls.conf     Sat Mar 12 08:51:43 2011        
(r219559)
@@ -8,4 +8,4 @@ sysmk="/dev/null"
 syscallprefix="FREEBSD32_SYS_"
 switchname="freebsd32_sysent"
 namesname="freebsd32_syscallnames"
-systrace="/dev/null"
+systrace="freebsd32_systrace_args.c"

Modified: head/sys/i386/linux/Makefile
==============================================================================
--- head/sys/i386/linux/Makefile        Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/i386/linux/Makefile        Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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

Modified: head/sys/i386/linux/syscalls.conf
==============================================================================
--- head/sys/i386/linux/syscalls.conf   Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/i386/linux/syscalls.conf   Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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"

Modified: head/sys/i386/linux/syscalls.master
==============================================================================
--- head/sys/i386/linux/syscalls.master Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/i386/linux/syscalls.master Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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, \

Modified: head/sys/kern/makesyscalls.sh
==============================================================================
--- head/sys/kern/makesyscalls.sh       Sat Mar 12 07:47:05 2011        
(r219558)
+++ head/sys/kern/makesyscalls.sh       Sat Mar 12 08:51:43 2011        
(r219559)
@@ -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 {
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to