Commit 4028762a9a

Alex Rønne Petersen <alex@alexrp.com>
2024-07-26 05:37:43
generate_linux_syscalls: Add generation code for mips n32.
1 parent 2598aa5
Changed files (1)
tools/generate_linux_syscalls.zig
@@ -237,6 +237,31 @@ pub fn main() !void {
 
         try writer.writeAll("};\n\n");
     }
+    {
+        try writer.writeAll(
+            \\pub const MipsN32 = enum(usize) {
+            \\    const linux_base = 6000;
+            \\
+            \\
+        );
+
+        const table = try linux_dir.readFile("arch/mips/kernel/syscalls/syscall_n32.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 n32
+            _ = 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} = linux_base + {s},\n", .{ zig.fmtId(fixed_name), number });
+        }
+
+        try writer.writeAll("};\n\n");
+    }
     {
         try writer.writeAll("pub const PowerPC = enum(usize) {\n");