| ... | ... | @@ -298,6 +298,26 @@ pub fn main() !void { |
| 298 | 298 | try writer.writeAll(list_64.items); |
| 299 | 299 | try writer.writeAll("};\n\n"); |
| 300 | 300 | } |
| 301 | { |
| 302 | try writer.writeAll("pub const S390x = enum(usize) {\n"); |
| 303 | |
| 304 | const table = try linux_dir.readFile("arch/s390/kernel/syscalls/syscall.tbl", buf); |
| 305 | var lines = mem.tokenizeScalar(u8, table, '\n'); |
| 306 | while (lines.next()) |line| { |
| 307 | if (line[0] == '#') continue; |
| 308 | |
| 309 | var fields = mem.tokenizeAny(u8, line, " \t"); |
| 310 | const number = fields.next() orelse return error.Incomplete; |
| 311 | const abi = fields.next() orelse return error.Incomplete; |
| 312 | if (mem.eql(u8, abi, "32")) continue; // 32-bit s390 support in linux is deprecated |
| 313 | const name = fields.next() orelse return error.Incomplete; |
| 314 | const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name; |
| 315 | |
| 316 | try writer.print(" {p} = {s},\n", .{ zig.fmtId(fixed_name), number }); |
| 317 | } |
| 318 | |
| 319 | try writer.writeAll("};\n\n"); |
| 320 | } |
| 301 | 321 | |
| 302 | 322 | // Newer architectures (starting with aarch64 c. 2012) now use the same C |
| 303 | 323 | // header file for their syscall numbers. Arch-specific headers are used to |