authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-26 05:37:43+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-30 01:32:47+02:00
log4028762a9a7fed702e87622ed89800d87bfe7077
tree6ed15a4ef1f13b2447004eb8c602c1026ac6e59e
parent2598aa574bf8a4c033a29b441b2faa791849e1a5
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

generate_linux_syscalls: Add generation code for mips n32.


1 files changed, 25 insertions(+), 0 deletions(-)

tools/generate_linux_syscalls.zig+25
......@@ -237,6 +237,31 @@ pub fn main() !void {
237237
238238 try writer.writeAll("};\n\n");
239239 }
240 {
241 try writer.writeAll(
242 \\pub const MipsN32 = enum(usize) {
243 \\ const linux_base = 6000;
244 \\
245 \\
246 );
247
248 const table = try linux_dir.readFile("arch/mips/kernel/syscalls/syscall_n32.tbl", buf);
249 var lines = mem.tokenizeScalar(u8, table, '\n');
250 while (lines.next()) |line| {
251 if (line[0] == '#') continue;
252
253 var fields = mem.tokenizeAny(u8, line, " \t");
254 const number = fields.next() orelse return error.Incomplete;
255 // abi is always n32
256 _ = fields.next() orelse return error.Incomplete;
257 const name = fields.next() orelse return error.Incomplete;
258 const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name;
259
260 try writer.print(" {p} = linux_base + {s},\n", .{ zig.fmtId(fixed_name), number });
261 }
262
263 try writer.writeAll("};\n\n");
264 }
240265 {
241266 try writer.writeAll("pub const PowerPC = enum(usize) {\n");
242267