From 264b83096411f0fb948cd399ef99c4f4883a838d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Fri, 26 Jul 2024 05:49:43 +0200 Subject: [PATCH] generate_linux_syscalls: Add generation code for xtensa. --- tools/generate_linux_syscalls.zig | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/generate_linux_syscalls.zig b/tools/generate_linux_syscalls.zig index e730c47642..3a296f85bf 100644 --- a/tools/generate_linux_syscalls.zig +++ b/tools/generate_linux_syscalls.zig @@ -338,6 +338,26 @@ pub fn main() !void { try writer.writeAll("};\n\n"); } + { + try writer.writeAll("pub const Xtensa = enum(usize) {\n"); + + const table = try linux_dir.readFile("arch/xtensa/kernel/syscalls/syscall.tbl", buf); + var lines = mem.tokenizeScalar(u8, table, '\n'); + while (lines.next()) |line| { + if (line[0] == '#') continue; + + var fields = mem.tokenizeAny(u8, line, " \t"); + const number = fields.next() orelse return error.Incomplete; + // abi is always common + _ = fields.next() orelse return error.Incomplete; + const name = fields.next() orelse return error.Incomplete; + const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name; + + try writer.print(" {p} = {s},\n", .{ zig.fmtId(fixed_name), number }); + } + + try writer.writeAll("};\n\n"); + } // Newer architectures (starting with aarch64 c. 2012) now use the same C // header file for their syscall numbers. Arch-specific headers are used to