git: 119fa6ee8a80 - main - syscalls.master: Add a new syscall type: RESERVED

Brooks Davis brooks at FreeBSD.org
Tue Jan 26 18:28:23 UTC 2021


The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/src/commit/?id=119fa6ee8a8056aab5e4ab1719d3c563cdb4a95a

commit 119fa6ee8a8056aab5e4ab1719d3c563cdb4a95a
Author:     Brooks Davis <brooks at FreeBSD.org>
AuthorDate: 2021-01-26 18:27:44 +0000
Commit:     Brooks Davis <brooks at FreeBSD.org>
CommitDate: 2021-01-26 18:27:44 +0000

    syscalls.master: Add a new syscall type: RESERVED
    
    RESERVED syscall number are reserved for local/vendor use.  RESERVED is
    identical to UNIMPL except that comments are ignored.
    
    Reviewed by:    kevans
    Sponsored by:   DARPA
    Differential Revision:  https://reviews.freebsd.org/D27988
---
 sys/kern/syscalls.master   |  3 ++-
 sys/tools/makesyscalls.lua | 23 +++++++++++++++--------
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index c4841ffed3ee..2ddf984549a7 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -11,7 +11,7 @@
 ;		there is no audit event for the call at this time. For the
 ;		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,
+;	type	one of STD, OBSOL, RESERVED, UNIMPL, COMPAT, COMPAT4, COMPAT6,
 ;		COMPAT7, COMPAT11, COMPAT12, 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)
@@ -32,6 +32,7 @@
 ;	COMPAT11 included on COMPAT_FREEBSD11 #ifdef (FreeBSD 11 compat)
 ;	COMPAT12 included on COMPAT_FREEBSD12 #ifdef (FreeBSD 12 compat)
 ;	OBSOL	obsolete, not included in system, only specifies name
+;	RESERVED reserved for local or vendor use
 ;	UNIMPL	not implemented, placeholder only
 ;	NOSTD	implemented but as a lkm that can be statically
 ;		compiled in; sysent entry will be filled with lkmressys
diff --git a/sys/tools/makesyscalls.lua b/sys/tools/makesyscalls.lua
index e225e9f7ebbe..3b88c65c4440 100644
--- a/sys/tools/makesyscalls.lua
+++ b/sys/tools/makesyscalls.lua
@@ -144,12 +144,13 @@ local known_abi_flags = {
 local known_flags = {
 	STD		= 0x00000001,
 	OBSOL		= 0x00000002,
-	UNIMPL		= 0x00000004,
-	NODEF		= 0x00000008,
-	NOARGS		= 0x00000010,
-	NOPROTO		= 0x00000020,
-	NOSTD		= 0x00000040,
-	NOTSTATIC	= 0x00000080,
+	RESERVED	= 0x00000004,
+	UNIMPL		= 0x00000008,
+	NODEF		= 0x00000010,
+	NOARGS		= 0x00000020,
+	NOPROTO		= 0x00000040,
+	NOSTD		= 0x00000080,
+	NOTSTATIC	= 0x00000100,
 
 	-- Compat flags start from here.  We have plenty of space.
 }
@@ -905,6 +906,10 @@ local function handle_unimpl(sysnum, sysstart, sysend, comment)
 	end
 end
 
+local function handle_reserved(sysnum, sysstart, sysend, comment)
+	handle_unimpl(sysnum, sysstart, sysend, "reserved for local use")
+end
+
 process_syscall_def = function(line)
 	local sysstart, sysend, flags, funcname, sysflags
 	local thr_flag, syscallret
@@ -949,8 +954,8 @@ process_syscall_def = function(line)
 		flags = flags | known_flags[flag]
 	end
 
-	if (flags & known_flags["UNIMPL"]) == 0 and sysnum == nil then
-		abort(1, "Range only allowed with UNIMPL: " .. line)
+	if (flags & get_mask({"RESERVED", "UNIMPL"})) == 0 and sysnum == nil then
+		abort(1, "Range only allowed with RESERVED and UNIMPL: " .. line)
 	end
 
 	if (flags & known_flags["NOTSTATIC"]) ~= 0 then
@@ -1114,6 +1119,8 @@ process_syscall_def = function(line)
 		    argalias)
 	elseif flags & known_flags["OBSOL"] ~= 0 then
 		handle_obsol(sysnum, funcname, funcomment)
+	elseif flags & known_flags["RESERVED"] ~= 0 then
+		handle_reserved(sysnum, sysstart, sysend)
 	elseif flags & known_flags["UNIMPL"] ~= 0 then
 		handle_unimpl(sysnum, sysstart, sysend, funcomment)
 	else


More information about the dev-commits-src-all mailing list