aboutsummaryrefslogtreecommitdiff
path: root/tools/generate_linux_syscalls.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-07-26 05:29:15 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2024-07-30 01:32:47 +0200
commit2598aa574bf8a4c033a29b441b2faa791849e1a5 (patch)
tree4ef099dfe2e6e5f6ffe81945ecaa22a7832b8e93 /tools/generate_linux_syscalls.zig
parentfb249cf3e130c292c639f2357ba3b7f66b2aa1b1 (diff)
downloadzig-2598aa574bf8a4c033a29b441b2faa791849e1a5.tar.gz
zig-2598aa574bf8a4c033a29b441b2faa791849e1a5.zip
generate_linux_syscalls: Add generation code for sparc32.
Diffstat (limited to 'tools/generate_linux_syscalls.zig')
-rw-r--r--tools/generate_linux_syscalls.zig19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/generate_linux_syscalls.zig b/tools/generate_linux_syscalls.zig
index c34fede294..6aa61bfeb7 100644
--- a/tools/generate_linux_syscalls.zig
+++ b/tools/generate_linux_syscalls.zig
@@ -149,6 +149,25 @@ pub fn main() !void {
);
}
{
+ try writer.writeAll("pub const Sparc = enum(usize) {\n");
+ const table = try linux_dir.readFile("arch/sparc/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;
+ const abi = fields.next() orelse return error.Incomplete;
+ if (mem.eql(u8, abi, "64")) continue;
+ 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 Sparc64 = enum(usize) {\n");
const table = try linux_dir.readFile("arch/sparc/kernel/syscalls/syscall.tbl", buf);
var lines = mem.tokenizeScalar(u8, table, '\n');