diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master index b80fd9c..e16156a 100644 --- a/sys/compat/freebsd32/syscalls.master +++ b/sys/compat/freebsd32/syscalls.master @@ -13,7 +13,7 @@ ; case where the event exists, but we don't want auditing, the ; event should be #defined to AUE_NULL in audit_kevents.h. ; type one of STD, OBSOL, UNIMPL, COMPAT, COMPAT4, COMPAT6, -; COMPAT7, NODEF, NOARGS, NOPROTO, NOSTD +; COMPAT7, COMPAT8, COMPAT9, NODEF, NOARGS, NOPROTO, NOSTD ; The COMPAT* options may be combined with one or more NO* ; options separated by '|' with no spaces (e.g. COMPAT|NOARGS) ; name psuedo-prototype of syscall routine @@ -29,6 +29,8 @@ ; COMPAT4 included on COMPAT4 #ifdef (FreeBSD 4 compat) ; COMPAT6 included on COMPAT6 #ifdef (FreeBSD 6 compat) ; COMPAT7 included on COMPAT7 #ifdef (FreeBSD 7 compat) +; COMPAT8 included on COMPAT8 #ifdef (FreeBSD 8 compat) +; COMPAT9 included on COMPAT9 #ifdef (FreeBSD 9 compat) ; OBSOL obsolete, not included in system, only specifies name ; UNIMPL not implemented, placeholder only ; NOSTD implemented but as a lkm that can be statically @@ -743,7 +745,7 @@ 419 AUE_NULL UNIMPL __xfstat 420 AUE_NULL UNIMPL __xlstat 421 AUE_NULL STD { int freebsd32_getcontext( \ - struct freebsd32_ucontext *ucp); } + struct freebsd32_ucontext9 *ucp); } 422 AUE_NULL STD { int freebsd32_setcontext( \ const struct freebsd32_ucontext *ucp); } 423 AUE_NULL STD { int freebsd32_swapcontext( \ diff --git a/sys/conf/options b/sys/conf/options index 12dbc81..14500fb 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -75,6 +75,8 @@ COMPAT_FREEBSD4 opt_compat.h COMPAT_FREEBSD5 opt_compat.h COMPAT_FREEBSD6 opt_compat.h COMPAT_FREEBSD7 opt_compat.h +COMPAT_FREEBSD8 opt_compat.h +COMPAT_FREEBSD9 opt_compat.h COMPILING_LINT opt_global.h COMPRESS_USER_CORES opt_core.h CY_PCI_FASTINTR diff --git a/sys/kern/makesyscalls.sh b/sys/kern/makesyscalls.sh index 21e6046..45721d9 100644 --- a/sys/kern/makesyscalls.sh +++ b/sys/kern/makesyscalls.sh @@ -9,6 +9,8 @@ compat=COMPAT_43 compat4=COMPAT_FREEBSD4 compat6=COMPAT_FREEBSD6 compat7=COMPAT_FREEBSD7 +compat8=COMPAT_FREEBSD8 +compat9=COMPAT_FREEBSD9 # output files: sysnames="syscalls.c" @@ -33,6 +35,10 @@ syscompat6="sysent.compat6.$$" syscompat6dcl="sysent.compat6dcl.$$" syscompat7="sysent.compat7.$$" syscompat7dcl="sysent.compat7dcl.$$" +syscompat8="sysent.compat8.$$" +syscompat8dcl="sysent.compat8dcl.$$" +syscompat9="sysent.compat9.$$" +syscompat9dcl="sysent.compat9dcl.$$" sysent="sysent.switch.$$" sysinc="sysinc.switch.$$" sysarg="sysarg.switch.$$" @@ -47,9 +53,9 @@ else capenabled="" fi -trap "rm $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp $systraceret" 0 +trap "rm $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $syscompat8 $syscompat8dcl $syscompat9 $syscompat9dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp $systraceret" 0 -touch $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp $systraceret +touch $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $syscompat8 $syscompat8dcl $syscompat9 $syscompat9dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp $systraceret case $# in 0) echo "usage: $0 input-file " 1>&2 @@ -88,6 +94,10 @@ s/\$//g syscompat6dcl = \"$syscompat6dcl\" syscompat7 = \"$syscompat7\" syscompat7dcl = \"$syscompat7dcl\" + syscompat8 = \"$syscompat8\" + syscompat8dcl = \"$syscompat8dcl\" + syscompat9 = \"$syscompat9\" + syscompat9dcl = \"$syscompat9dcl\" sysent = \"$sysent\" syssw = \"$syssw\" sysinc = \"$sysinc\" @@ -102,6 +112,8 @@ s/\$//g compat4 = \"$compat4\" compat6 = \"$compat6\" compat7 = \"$compat7\" + compat8 = \"$compat8\" + compat9 = \"$compat9\" syscallprefix = \"$syscallprefix\" switchname = \"$switchname\" namesname = \"$namesname\" @@ -123,6 +135,8 @@ s/\$//g printf "\n#ifdef %s\n\n", compat4 > syscompat4 printf "\n#ifdef %s\n\n", compat6 > syscompat6 printf "\n#ifdef %s\n\n", compat7 > syscompat7 + printf "\n#ifdef %s\n\n", compat8 > syscompat8 + printf "\n#ifdef %s\n\n", compat9 > syscompat9 printf "/*\n * System call names.\n *\n" > sysnames printf " * DO NOT EDIT-- this file is automatically generated.\n" > sysnames @@ -205,6 +219,8 @@ s/\$//g print > syscompat4 print > syscompat6 print > syscompat7 + print > syscompat8 + print > syscompat9 print > sysnames print > systrace print > systracetmp @@ -220,6 +236,8 @@ s/\$//g print > syscompat4 print > syscompat6 print > syscompat7 + print > syscompat8 + print > syscompat9 print > sysnames print > systrace print > systracetmp @@ -235,6 +253,8 @@ s/\$//g print > syscompat4 print > syscompat6 print > syscompat7 + print > syscompat8 + print > syscompat9 print > sysnames print > systrace print > systracetmp @@ -340,6 +360,10 @@ s/\$//g argalias = "freebsd6_" argalias if (flag("COMPAT7")) argalias = "freebsd7_" argalias + if (flag("COMPAT8")) + argalias = "freebsd8_" argalias + if (flag("COMPAT9")) + argalias = "freebsd9_" argalias } f++ @@ -483,7 +507,7 @@ s/\$//g next } type("COMPAT") || type("COMPAT4") || type("COMPAT6") || \ - type("COMPAT7") { + type("COMPAT7") || type("COMPAT8") || type("COMPAT9") { if (flag("COMPAT")) { ncompat++ out = syscompat @@ -512,6 +536,20 @@ s/\$//g wrap = "compat7" prefix = "freebsd7_" descr = "freebsd7" + } else if (flag("COMPAT8")) { + ncompat8++ + out = syscompat8 + outdcl = syscompat8dcl + wrap = "compat8" + prefix = "freebsd8_" + descr = "freebsd8" + } else if (flag("COMPAT9")) { + ncompat9++ + out = syscompat9 + outdcl = syscompat9dcl + wrap = "compat9" + prefix = "freebsd9_" + descr = "freebsd9" } parseline() if (argc != 0 && !flag("NOARGS") && !flag("NOPROTO") && \ @@ -586,7 +624,8 @@ s/\$//g END { printf "\n#define AS(name) (sizeof(struct name) / sizeof(register_t))\n" > sysinc - if (ncompat != 0 || ncompat4 != 0 || ncompat6 != 0 || ncompat7 != 0) + if (ncompat != 0 || ncompat4 != 0 || ncompat6 != 0 || \ + ncompat7 != 0 || ncompat8 != 0 || ncompat9 != 0) printf "#include \"opt_compat.h\"\n\n" > syssw if (ncompat != 0) { @@ -621,10 +660,28 @@ s/\$//g printf "#endif\n" > sysinc } + if (ncompat8 != 0) { + printf "\n#ifdef %s\n", compat8 > sysinc + printf "#define compat8(n, name) n, (sy_call_t *)__CONCAT(freebsd8_,name)\n" > sysinc + printf "#else\n" > sysinc + printf "#define compat8(n, name) 0, (sy_call_t *)nosys\n" > sysinc + printf "#endif\n" > sysinc + } + + if (ncompat9 != 0) { + printf "\n#ifdef %s\n", compat9 > sysinc + printf "#define compat9(n, name) n, (sy_call_t *)__CONCAT(freebsd9_,name)\n" > sysinc + printf "#else\n" > sysinc + printf "#define compat9(n, name) 0, (sy_call_t *)nosys\n" > sysinc + printf "#endif\n" > sysinc + } + printf("\n#endif /* %s */\n\n", compat) > syscompatdcl printf("\n#endif /* %s */\n\n", compat4) > syscompat4dcl printf("\n#endif /* %s */\n\n", compat6) > syscompat6dcl printf("\n#endif /* %s */\n\n", compat7) > syscompat7dcl + printf("\n#endif /* %s */\n\n", compat8) > syscompat8dcl + printf("\n#endif /* %s */\n\n", compat9) > syscompat9dcl printf("\n#undef PAD_\n") > sysprotoend printf("#undef PADL_\n") > sysprotoend @@ -647,6 +704,8 @@ cat $sysarg $sysdcl \ $syscompat4 $syscompat4dcl \ $syscompat6 $syscompat6dcl \ $syscompat7 $syscompat7dcl \ + $syscompat8 $syscompat8dcl \ + $syscompat9 $syscompat9dcl \ $sysaue $sysprotoend > $sysproto cat $systracetmp >> $systrace cat $systraceret >> $systrace diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index e10af89..935faa8 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -12,7 +12,7 @@ ; case where the event exists, but we don't want auditing, the ; event should be #defined to AUE_NULL in audit_kevents.h. ; type one of STD, OBSOL, UNIMPL, COMPAT, COMPAT4, COMPAT6, -; COMPAT7, NODEF, NOARGS, NOPROTO, NOSTD +; COMPAT7, COMPAT8, COMPAT9, NODEF, NOARGS, NOPROTO, NOSTD ; The COMPAT* options may be combined with one or more NO* ; options separated by '|' with no spaces (e.g. COMPAT|NOARGS) ; name psuedo-prototype of syscall routine @@ -28,6 +28,8 @@ ; COMPAT4 included on COMPAT4 #ifdef (FreeBSD 4 compat) ; COMPAT6 included on COMPAT6 #ifdef (FreeBSD 6 compat) ; COMPAT7 included on COMPAT7 #ifdef (FreeBSD 7 compat) +; COMPAT8 included on COMPAT8 #ifdef (FreeBSD 8 compat) +; COMPAT9 included on COMPAT9 #ifdef (FreeBSD 8 compat) ; OBSOL obsolete, not included in system, only specifies name ; UNIMPL not implemented, placeholder only ; NOSTD implemented but as a lkm that can be statically @@ -751,7 +753,7 @@ 418 AUE_NULL UNIMPL __xstat 419 AUE_NULL UNIMPL __xfstat 420 AUE_NULL UNIMPL __xlstat -421 AUE_NULL STD { int getcontext(struct __ucontext *ucp); } +421 AUE_NULL STD { int getcontext(struct ucontext9 *ucp); } 422 AUE_NULL STD { int setcontext( \ const struct __ucontext *ucp); } 423 AUE_NULL STD { int swapcontext(struct __ucontext *oucp, \