aboutsummaryrefslogtreecommitdiff
path: root/tools/generate_linux_syscalls.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-02-18 09:33:27 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-02-18 09:33:27 -0700
commitefdc94c10712f610e7de5e49fd9cd6f88b4bbbae (patch)
tree4b66ec30176843b0efd87b73199c75aa2fba675d /tools/generate_linux_syscalls.zig
parent06df842e4d313e81444063803deff306602e0a17 (diff)
parentc32171991b25b323cd68ff96c294bf5a6fa753b8 (diff)
downloadzig-efdc94c10712f610e7de5e49fd9cd6f88b4bbbae.tar.gz
zig-efdc94c10712f610e7de5e49fd9cd6f88b4bbbae.zip
Merge remote-tracking branch 'origin/master' into llvm16
Diffstat (limited to 'tools/generate_linux_syscalls.zig')
-rw-r--r--tools/generate_linux_syscalls.zig25
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/generate_linux_syscalls.zig b/tools/generate_linux_syscalls.zig
index 67f098ac4f..11b18ae3bf 100644
--- a/tools/generate_linux_syscalls.zig
+++ b/tools/generate_linux_syscalls.zig
@@ -168,6 +168,31 @@ pub fn main() !void {
try writer.writeAll("};\n\n");
}
{
+ try writer.writeAll(
+ \\pub const Mips64 = enum(usize) {
+ \\ pub const Linux = 5000;
+ \\
+ \\
+ );
+
+ const table = try linux_dir.readFile("arch/mips/kernel/syscalls/syscall_n64.tbl", buf);
+ var lines = mem.tokenize(u8, table, "\n");
+ while (lines.next()) |line| {
+ if (line[0] == '#') continue;
+
+ var fields = mem.tokenize(u8, line, " \t");
+ const number = fields.next() orelse return error.Incomplete;
+ // abi is always n64
+ _ = 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(" {s} = Linux + {s},\n", .{ zig.fmtId(fixed_name), number });
+ }
+
+ try writer.writeAll("};\n\n");
+ }
+ {
try writer.writeAll("pub const PowerPC = enum(usize) {\n");
const table = try linux_dir.readFile("arch/powerpc/kernel/syscalls/syscall.tbl", buf);