aboutsummaryrefslogtreecommitdiff
path: root/tools/generate_linux_syscalls.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-07-26 05:47:13 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2024-07-30 01:32:48 +0200
commit09914868ea552167130e06977aee689b8be989f0 (patch)
tree05ebf4c22956486e37391eec2ecfa0e09c7e589e /tools/generate_linux_syscalls.zig
parent6e7d619dc33c3b9968d6fccdd51661e22f9db5e6 (diff)
downloadzig-09914868ea552167130e06977aee689b8be989f0.tar.gz
zig-09914868ea552167130e06977aee689b8be989f0.zip
generate_linux_syscalls: Add generation code for m68k.
Diffstat (limited to 'tools/generate_linux_syscalls.zig')
-rw-r--r--tools/generate_linux_syscalls.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/generate_linux_syscalls.zig b/tools/generate_linux_syscalls.zig
index fb0e0fb93d..e730c47642 100644
--- a/tools/generate_linux_syscalls.zig
+++ b/tools/generate_linux_syscalls.zig
@@ -187,6 +187,26 @@ pub fn main() !void {
try writer.writeAll("};\n\n");
}
{
+ try writer.writeAll("pub const M68k = enum(usize) {\n");
+
+ const table = try linux_dir.readFile("arch/m68k/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");
+ }
+ {
try writer.writeAll(
\\pub const MipsO32 = enum(usize) {
\\ const linux_base = 4000;