Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Feb 2025 22:04:59 GMT
From:      Brooks Davis <brooks@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 9355ad0b0bfa - main - makesyscalls: emit cpp in syscalls.map
Message-ID:  <202502182204.51IM4xlG009516@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/src/commit/?id=9355ad0b0bfaba9dc39972819185a7dc787a8950

commit 9355ad0b0bfaba9dc39972819185a7dc787a8950
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2025-02-18 22:02:19 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2025-02-18 22:03:33 +0000

    makesyscalls: emit cpp in syscalls.map
    
    If there are per-platform differences in which syscalls are supported,
    we should only try to export implemented ones in libc.  Fortunately,
    syscall maps are run though cpp.  This is arguably incomplete as
    syscall.mk isn't (and can't practically be) supported.
    
    Reviewed by:    kevans
    Sponsored by:   DARPA, AFRL
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/1575
---
 sys/tools/syscalls/examples/cpp/syscalls.conf     |  1 +
 sys/tools/syscalls/examples/cpp/test_syscalls.map | 18 ++++++++++++++++++
 sys/tools/syscalls/scripts/syscalls_map.lua       |  4 +++-
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/sys/tools/syscalls/examples/cpp/syscalls.conf b/sys/tools/syscalls/examples/cpp/syscalls.conf
index 7fc15b6bb01f..ffcfa8d4c6aa 100644
--- a/sys/tools/syscalls/examples/cpp/syscalls.conf
+++ b/sys/tools/syscalls/examples/cpp/syscalls.conf
@@ -7,4 +7,5 @@ syscallprefix="TEST_SYS_"
 switchname="test_sysent"
 namesname="test_syscallnames"
 systrace="test_systrace_args.c"
+libsysmap="test_syscalls.map"
 compat_set=""
diff --git a/sys/tools/syscalls/examples/cpp/test_syscalls.map b/sys/tools/syscalls/examples/cpp/test_syscalls.map
new file mode 100644
index 000000000000..137496186402
--- /dev/null
+++ b/sys/tools/syscalls/examples/cpp/test_syscalls.map
@@ -0,0 +1,18 @@
+/*
+ * FreeBSD system call symbols.
+ *
+ * DO NOT EDIT-- this file is automatically @generated.
+ */
+
+FBSDprivate_1.0 {
+#ifdef PLATFORM_FOO
+	_syscall1;
+	__sys_syscall1;
+#else
+#endif
+#ifdef PLATFORM_FOO
+#else
+	_syscall2;
+	__sys_syscall2;
+#endif
+};
diff --git a/sys/tools/syscalls/scripts/syscalls_map.lua b/sys/tools/syscalls/scripts/syscalls_map.lua
index 023b43052921..52c3b294e338 100755
--- a/sys/tools/syscalls/scripts/syscalls_map.lua
+++ b/sys/tools/syscalls/scripts/syscalls_map.lua
@@ -37,7 +37,7 @@ function syscalls_map.generate(tbl, config, fh)
 	gen:write(string.format("FBSDprivate_1.0 {\n"))
 
 	for _, v in pairs(s) do
-		--print("num " .. v.num .. " name " .. v.name)
+		gen:write(v.prolog)
 		if v:native() and not v.type.NODEF and not v.type.NOLIB then
 			if v.name ~= "exit" and v.name ~= "vfork" then
 				gen:write(string.format("\t_%s;\n", v.name))
@@ -45,6 +45,8 @@ function syscalls_map.generate(tbl, config, fh)
 			gen:write(string.format("\t__sys_%s;\n", v.name))
 		end
 	end
+	gen:write(tbl.epilog)
+
 	-- End
 	gen:write("};\n")
 end



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502182204.51IM4xlG009516>