authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-16 23:39:11+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-17 01:20:33+02:00
logcfdc0f0e34b00a7e1a4dc23f1d6672f213bbf9ca
treece0d1478c80373c0167bf8708cc82ac8c546d2f2
parentfc7a5f2ae49aa0a0c5e1f1dd1c5678ee3e49b1b6
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.os.linux: replace usize/isize in arch bits with fixed types for clarity


16 files changed, 432 insertions(+), 432 deletions(-)

lib/std/os/linux/aarch64.zig+27-27
......@@ -14,33 +14,33 @@ const stack_t = linux.stack_t;
1414const sigset_t = linux.sigset_t;
1515const timespec = std.os.linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {
17pub fn syscall0(number: SYS) u64 {
1818 return asm volatile ("svc #0"
19 : [ret] "={x0}" (-> usize),
19 : [ret] "={x0}" (-> u64),
2020 : [number] "{x8}" (@intFromEnum(number)),
2121 : .{ .memory = true });
2222}
2323
24pub fn syscall1(number: SYS, arg1: usize) usize {
24pub fn syscall1(number: SYS, arg1: u64) u64 {
2525 return asm volatile ("svc #0"
26 : [ret] "={x0}" (-> usize),
26 : [ret] "={x0}" (-> u64),
2727 : [number] "{x8}" (@intFromEnum(number)),
2828 [arg1] "{x0}" (arg1),
2929 : .{ .memory = true });
3030}
3131
32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
32pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
3333 return asm volatile ("svc #0"
34 : [ret] "={x0}" (-> usize),
34 : [ret] "={x0}" (-> u64),
3535 : [number] "{x8}" (@intFromEnum(number)),
3636 [arg1] "{x0}" (arg1),
3737 [arg2] "{x1}" (arg2),
3838 : .{ .memory = true });
3939}
4040
41pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
41pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
4242 return asm volatile ("svc #0"
43 : [ret] "={x0}" (-> usize),
43 : [ret] "={x0}" (-> u64),
4444 : [number] "{x8}" (@intFromEnum(number)),
4545 [arg1] "{x0}" (arg1),
4646 [arg2] "{x1}" (arg2),
......@@ -48,9 +48,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4848 : .{ .memory = true });
4949}
5050
51pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
51pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
5252 return asm volatile ("svc #0"
53 : [ret] "={x0}" (-> usize),
53 : [ret] "={x0}" (-> u64),
5454 : [number] "{x8}" (@intFromEnum(number)),
5555 [arg1] "{x0}" (arg1),
5656 [arg2] "{x1}" (arg2),
......@@ -59,9 +59,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5959 : .{ .memory = true });
6060}
6161
62pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
62pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
6363 return asm volatile ("svc #0"
64 : [ret] "={x0}" (-> usize),
64 : [ret] "={x0}" (-> u64),
6565 : [number] "{x8}" (@intFromEnum(number)),
6666 [arg1] "{x0}" (arg1),
6767 [arg2] "{x1}" (arg2),
......@@ -73,15 +73,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7373
7474pub fn syscall6(
7575 number: SYS,
76 arg1: usize,
77 arg2: usize,
78 arg3: usize,
79 arg4: usize,
80 arg5: usize,
81 arg6: usize,
82) usize {
76 arg1: u64,
77 arg2: u64,
78 arg3: u64,
79 arg4: u64,
80 arg5: u64,
81 arg6: u64,
82) u64 {
8383 return asm volatile ("svc #0"
84 : [ret] "={x0}" (-> usize),
84 : [ret] "={x0}" (-> u64),
8585 : [number] "{x8}" (@intFromEnum(number)),
8686 [arg1] "{x0}" (arg1),
8787 [arg2] "{x1}" (arg2),
......@@ -92,7 +92,7 @@ pub fn syscall6(
9292 : .{ .memory = true });
9393}
9494
95pub fn clone() callconv(.naked) usize {
95pub fn clone() callconv(.naked) u64 {
9696 // __clone(func, stack, flags, arg, ptid, tls, ctid)
9797 // x0, x1, w2, x3, x4, x5, x6
9898 //
......@@ -192,12 +192,12 @@ pub const Flock = extern struct {
192192
193193pub const blksize_t = i32;
194194pub const nlink_t = u32;
195pub const time_t = isize;
195pub const time_t = i64;
196196pub const mode_t = u32;
197pub const off_t = isize;
198pub const ino_t = usize;
199pub const dev_t = usize;
200pub const blkcnt_t = isize;
197pub const off_t = i64;
198pub const ino_t = u64;
199pub const dev_t = u64;
200pub const blkcnt_t = i64;
201201
202202// The `stat` definition used by the Linux kernel.
203203pub const Stat = extern struct {
......@@ -208,7 +208,7 @@ pub const Stat = extern struct {
208208 uid: uid_t,
209209 gid: gid_t,
210210 rdev: dev_t,
211 __pad: usize,
211 __pad: u64,
212212 size: off_t,
213213 blksize: blksize_t,
214214 __pad2: i32,
lib/std/os/linux/arm.zig+22-22
......@@ -13,33 +13,33 @@ const pid_t = linux.pid_t;
1313const sockaddr = linux.sockaddr;
1414const timespec = linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {
16pub fn syscall0(number: SYS) u32 {
1717 return asm volatile ("svc #0"
18 : [ret] "={r0}" (-> usize),
18 : [ret] "={r0}" (-> u32),
1919 : [number] "{r7}" (@intFromEnum(number)),
2020 : .{ .memory = true });
2121}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {
23pub fn syscall1(number: SYS, arg1: u32) u32 {
2424 return asm volatile ("svc #0"
25 : [ret] "={r0}" (-> usize),
25 : [ret] "={r0}" (-> u32),
2626 : [number] "{r7}" (@intFromEnum(number)),
2727 [arg1] "{r0}" (arg1),
2828 : .{ .memory = true });
2929}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
31pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
3232 return asm volatile ("svc #0"
33 : [ret] "={r0}" (-> usize),
33 : [ret] "={r0}" (-> u32),
3434 : [number] "{r7}" (@intFromEnum(number)),
3535 [arg1] "{r0}" (arg1),
3636 [arg2] "{r1}" (arg2),
3737 : .{ .memory = true });
3838}
3939
40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
40pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
4141 return asm volatile ("svc #0"
42 : [ret] "={r0}" (-> usize),
42 : [ret] "={r0}" (-> u32),
4343 : [number] "{r7}" (@intFromEnum(number)),
4444 [arg1] "{r0}" (arg1),
4545 [arg2] "{r1}" (arg2),
......@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4747 : .{ .memory = true });
4848}
4949
50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
50pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
5151 return asm volatile ("svc #0"
52 : [ret] "={r0}" (-> usize),
52 : [ret] "={r0}" (-> u32),
5353 : [number] "{r7}" (@intFromEnum(number)),
5454 [arg1] "{r0}" (arg1),
5555 [arg2] "{r1}" (arg2),
......@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5858 : .{ .memory = true });
5959}
6060
61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
61pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
6262 return asm volatile ("svc #0"
63 : [ret] "={r0}" (-> usize),
63 : [ret] "={r0}" (-> u32),
6464 : [number] "{r7}" (@intFromEnum(number)),
6565 [arg1] "{r0}" (arg1),
6666 [arg2] "{r1}" (arg2),
......@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
7373pub fn syscall6(
7474 number: SYS,
75 arg1: usize,
76 arg2: usize,
77 arg3: usize,
78 arg4: usize,
79 arg5: usize,
80 arg6: usize,
81) usize {
75 arg1: u32,
76 arg2: u32,
77 arg3: u32,
78 arg4: u32,
79 arg5: u32,
80 arg6: u32,
81) u32 {
8282 return asm volatile ("svc #0"
83 : [ret] "={r0}" (-> usize),
83 : [ret] "={r0}" (-> u32),
8484 : [number] "{r7}" (@intFromEnum(number)),
8585 [arg1] "{r0}" (arg1),
8686 [arg2] "{r1}" (arg2),
......@@ -91,7 +91,7 @@ pub fn syscall6(
9191 : .{ .memory = true });
9292}
9393
94pub fn clone() callconv(.naked) usize {
94pub fn clone() callconv(.naked) u32 {
9595 // __clone(func, stack, flags, arg, ptid, tls, ctid)
9696 // r0, r1, r2, r3, +0, +4, +8
9797 //
......@@ -228,7 +228,7 @@ pub const Flock = extern struct {
228228
229229pub const blksize_t = i32;
230230pub const nlink_t = u32;
231pub const time_t = isize;
231pub const time_t = i32;
232232pub const mode_t = u32;
233233pub const off_t = i64;
234234pub const ino_t = u64;
lib/std/os/linux/hexagon.zig+21-21
......@@ -13,33 +13,33 @@ const stack_t = linux.stack_t;
1313const sigset_t = linux.sigset_t;
1414const timespec = std.os.linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {
16pub fn syscall0(number: SYS) u32 {
1717 return asm volatile ("trap0(#1)"
18 : [ret] "={r0}" (-> usize),
18 : [ret] "={r0}" (-> u32),
1919 : [number] "{r6}" (@intFromEnum(number)),
2020 : .{ .memory = true });
2121}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {
23pub fn syscall1(number: SYS, arg1: u32) u32 {
2424 return asm volatile ("trap0(#1)"
25 : [ret] "={r0}" (-> usize),
25 : [ret] "={r0}" (-> u32),
2626 : [number] "{r6}" (@intFromEnum(number)),
2727 [arg1] "{r0}" (arg1),
2828 : .{ .memory = true });
2929}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
31pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
3232 return asm volatile ("trap0(#1)"
33 : [ret] "={r0}" (-> usize),
33 : [ret] "={r0}" (-> u32),
3434 : [number] "{r6}" (@intFromEnum(number)),
3535 [arg1] "{r0}" (arg1),
3636 [arg2] "{r1}" (arg2),
3737 : .{ .memory = true });
3838}
3939
40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
40pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
4141 return asm volatile ("trap0(#1)"
42 : [ret] "={r0}" (-> usize),
42 : [ret] "={r0}" (-> u32),
4343 : [number] "{r6}" (@intFromEnum(number)),
4444 [arg1] "{r0}" (arg1),
4545 [arg2] "{r1}" (arg2),
......@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4747 : .{ .memory = true });
4848}
4949
50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
50pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
5151 return asm volatile ("trap0(#1)"
52 : [ret] "={r0}" (-> usize),
52 : [ret] "={r0}" (-> u32),
5353 : [number] "{r6}" (@intFromEnum(number)),
5454 [arg1] "{r0}" (arg1),
5555 [arg2] "{r1}" (arg2),
......@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5858 : .{ .memory = true });
5959}
6060
61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
61pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
6262 return asm volatile ("trap0(#1)"
63 : [ret] "={r0}" (-> usize),
63 : [ret] "={r0}" (-> u32),
6464 : [number] "{r6}" (@intFromEnum(number)),
6565 [arg1] "{r0}" (arg1),
6666 [arg2] "{r1}" (arg2),
......@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
7373pub fn syscall6(
7474 number: SYS,
75 arg1: usize,
76 arg2: usize,
77 arg3: usize,
78 arg4: usize,
79 arg5: usize,
80 arg6: usize,
81) usize {
75 arg1: u32,
76 arg2: u32,
77 arg3: u32,
78 arg4: u32,
79 arg5: u32,
80 arg6: u32,
81) u32 {
8282 return asm volatile ("trap0(#1)"
83 : [ret] "={r0}" (-> usize),
83 : [ret] "={r0}" (-> u32),
8484 : [number] "{r6}" (@intFromEnum(number)),
8585 [arg1] "{r0}" (arg1),
8686 [arg2] "{r1}" (arg2),
......@@ -91,7 +91,7 @@ pub fn syscall6(
9191 : .{ .memory = true });
9292}
9393
94pub fn clone() callconv(.naked) usize {
94pub fn clone() callconv(.naked) u32 {
9595 // __clone(func, stack, flags, arg, ptid, tls, ctid)
9696 // r0, r1, r2, r3, r4, r5, +0
9797 //
lib/std/os/linux/loongarch64.zig+21-21
......@@ -12,37 +12,37 @@ const sockaddr = linux.sockaddr;
1212const socklen_t = linux.socklen_t;
1313const timespec = linux.timespec;
1414
15pub fn syscall0(number: SYS) usize {
15pub fn syscall0(number: SYS) u64 {
1616 return asm volatile (
1717 \\ syscall 0
18 : [ret] "={$r4}" (-> usize),
18 : [ret] "={$r4}" (-> u64),
1919 : [number] "{$r11}" (@intFromEnum(number)),
2020 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
2121}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {
23pub fn syscall1(number: SYS, arg1: u64) u64 {
2424 return asm volatile (
2525 \\ syscall 0
26 : [ret] "={$r4}" (-> usize),
26 : [ret] "={$r4}" (-> u64),
2727 : [number] "{$r11}" (@intFromEnum(number)),
2828 [arg1] "{$r4}" (arg1),
2929 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
3030}
3131
32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
32pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
3333 return asm volatile (
3434 \\ syscall 0
35 : [ret] "={$r4}" (-> usize),
35 : [ret] "={$r4}" (-> u64),
3636 : [number] "{$r11}" (@intFromEnum(number)),
3737 [arg1] "{$r4}" (arg1),
3838 [arg2] "{$r5}" (arg2),
3939 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
4040}
4141
42pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
42pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
4343 return asm volatile (
4444 \\ syscall 0
45 : [ret] "={$r4}" (-> usize),
45 : [ret] "={$r4}" (-> u64),
4646 : [number] "{$r11}" (@intFromEnum(number)),
4747 [arg1] "{$r4}" (arg1),
4848 [arg2] "{$r5}" (arg2),
......@@ -50,10 +50,10 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
5050 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
5151}
5252
53pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
53pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
5454 return asm volatile (
5555 \\ syscall 0
56 : [ret] "={$r4}" (-> usize),
56 : [ret] "={$r4}" (-> u64),
5757 : [number] "{$r11}" (@intFromEnum(number)),
5858 [arg1] "{$r4}" (arg1),
5959 [arg2] "{$r5}" (arg2),
......@@ -62,10 +62,10 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
6262 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
6363}
6464
65pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
65pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
6666 return asm volatile (
6767 \\ syscall 0
68 : [ret] "={$r4}" (-> usize),
68 : [ret] "={$r4}" (-> u64),
6969 : [number] "{$r11}" (@intFromEnum(number)),
7070 [arg1] "{$r4}" (arg1),
7171 [arg2] "{$r5}" (arg2),
......@@ -77,16 +77,16 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7777
7878pub fn syscall6(
7979 number: SYS,
80 arg1: usize,
81 arg2: usize,
82 arg3: usize,
83 arg4: usize,
84 arg5: usize,
85 arg6: usize,
86) usize {
80 arg1: u64,
81 arg2: u64,
82 arg3: u64,
83 arg4: u64,
84 arg5: u64,
85 arg6: u64,
86) u64 {
8787 return asm volatile (
8888 \\ syscall 0
89 : [ret] "={$r4}" (-> usize),
89 : [ret] "={$r4}" (-> u64),
9090 : [number] "{$r11}" (@intFromEnum(number)),
9191 [arg1] "{$r4}" (arg1),
9292 [arg2] "{$r5}" (arg2),
......@@ -97,7 +97,7 @@ pub fn syscall6(
9797 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
9898}
9999
100pub fn clone() callconv(.naked) usize {
100pub fn clone() callconv(.naked) u64 {
101101 // __clone(func, stack, flags, arg, ptid, tls, ctid)
102102 // a0, a1, a2, a3, a4, a5, a6
103103 // sys_clone(flags, stack, ptid, ctid, tls)
lib/std/os/linux/m68k.zig+21-21
......@@ -11,33 +11,33 @@ const sockaddr = linux.sockaddr;
1111const socklen_t = linux.socklen_t;
1212const timespec = std.os.linux.timespec;
1313
14pub fn syscall0(number: SYS) usize {
14pub fn syscall0(number: SYS) u32 {
1515 return asm volatile ("trap #0"
16 : [ret] "={d0}" (-> usize),
16 : [ret] "={d0}" (-> u32),
1717 : [number] "{d0}" (@intFromEnum(number)),
1818 : .{ .memory = true });
1919}
2020
21pub fn syscall1(number: SYS, arg1: usize) usize {
21pub fn syscall1(number: SYS, arg1: u32) u32 {
2222 return asm volatile ("trap #0"
23 : [ret] "={d0}" (-> usize),
23 : [ret] "={d0}" (-> u32),
2424 : [number] "{d0}" (@intFromEnum(number)),
2525 [arg1] "{d1}" (arg1),
2626 : .{ .memory = true });
2727}
2828
29pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
29pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
3030 return asm volatile ("trap #0"
31 : [ret] "={d0}" (-> usize),
31 : [ret] "={d0}" (-> u32),
3232 : [number] "{d0}" (@intFromEnum(number)),
3333 [arg1] "{d1}" (arg1),
3434 [arg2] "{d2}" (arg2),
3535 : .{ .memory = true });
3636}
3737
38pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
38pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
3939 return asm volatile ("trap #0"
40 : [ret] "={d0}" (-> usize),
40 : [ret] "={d0}" (-> u32),
4141 : [number] "{d0}" (@intFromEnum(number)),
4242 [arg1] "{d1}" (arg1),
4343 [arg2] "{d2}" (arg2),
......@@ -45,9 +45,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4545 : .{ .memory = true });
4646}
4747
48pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
48pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
4949 return asm volatile ("trap #0"
50 : [ret] "={d0}" (-> usize),
50 : [ret] "={d0}" (-> u32),
5151 : [number] "{d0}" (@intFromEnum(number)),
5252 [arg1] "{d1}" (arg1),
5353 [arg2] "{d2}" (arg2),
......@@ -56,9 +56,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5656 : .{ .memory = true });
5757}
5858
59pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
59pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
6060 return asm volatile ("trap #0"
61 : [ret] "={d0}" (-> usize),
61 : [ret] "={d0}" (-> u32),
6262 : [number] "{d0}" (@intFromEnum(number)),
6363 [arg1] "{d1}" (arg1),
6464 [arg2] "{d2}" (arg2),
......@@ -70,15 +70,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7070
7171pub fn syscall6(
7272 number: SYS,
73 arg1: usize,
74 arg2: usize,
75 arg3: usize,
76 arg4: usize,
77 arg5: usize,
78 arg6: usize,
79) usize {
73 arg1: u32,
74 arg2: u32,
75 arg3: u32,
76 arg4: u32,
77 arg5: u32,
78 arg6: u32,
79) u32 {
8080 return asm volatile ("trap #0"
81 : [ret] "={d0}" (-> usize),
81 : [ret] "={d0}" (-> u32),
8282 : [number] "{d0}" (@intFromEnum(number)),
8383 [arg1] "{d1}" (arg1),
8484 [arg2] "{d2}" (arg2),
......@@ -89,7 +89,7 @@ pub fn syscall6(
8989 : .{ .memory = true });
9090}
9191
92pub fn clone() callconv(.naked) usize {
92pub fn clone() callconv(.naked) u32 {
9393 // __clone(func, stack, flags, arg, ptid, tls, ctid)
9494 // +4, +8, +12, +16, +20, +24, +28
9595 //
lib/std/os/linux/mips.zig+32-32
......@@ -14,19 +14,19 @@ const sigset_t = linux.sigset_t;
1414const sockaddr = linux.sockaddr;
1515const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {
17pub fn syscall0(number: SYS) u32 {
1818 return asm volatile (
1919 \\ syscall
2020 \\ beq $7, $zero, 1f
2121 \\ blez $2, 1f
2222 \\ subu $2, $0, $2
2323 \\ 1:
24 : [ret] "={$2}" (-> usize),
24 : [ret] "={$2}" (-> u32),
2525 : [number] "{$2}" (@intFromEnum(number)),
2626 : .{ .r1 = true, .r3 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
2727}
2828
29pub fn syscall_pipe(fd: *[2]i32) usize {
29pub fn syscall_pipe(fd: *[2]i32) u32 {
3030 return asm volatile (
3131 \\ .set noat
3232 \\ .set noreorder
......@@ -39,47 +39,47 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
3939 \\ sw $2, 0($4)
4040 \\ sw $3, 4($4)
4141 \\ 2:
42 : [ret] "={$2}" (-> usize),
42 : [ret] "={$2}" (-> u32),
4343 : [number] "{$2}" (@intFromEnum(SYS.pipe)),
4444 [fd] "{$4}" (fd),
4545 : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
4646}
4747
48pub fn syscall1(number: SYS, arg1: usize) usize {
48pub fn syscall1(number: SYS, arg1: u32) u32 {
4949 return asm volatile (
5050 \\ syscall
5151 \\ beq $7, $zero, 1f
5252 \\ blez $2, 1f
5353 \\ subu $2, $0, $2
5454 \\ 1:
55 : [ret] "={$2}" (-> usize),
55 : [ret] "={$2}" (-> u32),
5656 : [number] "{$2}" (@intFromEnum(number)),
5757 [arg1] "{$4}" (arg1),
5858 : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
5959}
6060
61pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
61pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
6262 return asm volatile (
6363 \\ syscall
6464 \\ beq $7, $zero, 1f
6565 \\ blez $2, 1f
6666 \\ subu $2, $0, $2
6767 \\ 1:
68 : [ret] "={$2}" (-> usize),
68 : [ret] "={$2}" (-> u32),
6969 : [number] "{$2}" (@intFromEnum(number)),
7070 [arg1] "{$4}" (arg1),
7171 [arg2] "{$5}" (arg2),
7272 : .{ .r1 = true, .r3 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
7373}
7474
75pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
75pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
7676 return asm volatile (
7777 \\ syscall
7878 \\ beq $7, $zero, 1f
7979 \\ blez $2, 1f
8080 \\ subu $2, $0, $2
8181 \\ 1:
82 : [ret] "={$2}" (-> usize),
82 : [ret] "={$2}" (-> u32),
8383 : [number] "{$2}" (@intFromEnum(number)),
8484 [arg1] "{$4}" (arg1),
8585 [arg2] "{$5}" (arg2),
......@@ -87,14 +87,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
8787 : .{ .r1 = true, .r3 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
8888}
8989
90pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
90pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
9191 return asm volatile (
9292 \\ syscall
9393 \\ beq $7, $zero, 1f
9494 \\ blez $2, 1f
9595 \\ subu $2, $0, $2
9696 \\ 1:
97 : [ret] "={$2}" (-> usize),
97 : [ret] "={$2}" (-> u32),
9898 : [number] "{$2}" (@intFromEnum(number)),
9999 [arg1] "{$4}" (arg1),
100100 [arg2] "{$5}" (arg2),
......@@ -103,7 +103,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
103103 : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
104104}
105105
106pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
106pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
107107 return asm volatile (
108108 \\ .set noat
109109 \\ subu $sp, $sp, 24
......@@ -114,7 +114,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
114114 \\ blez $2, 1f
115115 \\ subu $2, $0, $2
116116 \\ 1:
117 : [ret] "={$2}" (-> usize),
117 : [ret] "={$2}" (-> u32),
118118 : [number] "{$2}" (@intFromEnum(number)),
119119 [arg1] "{$4}" (arg1),
120120 [arg2] "{$5}" (arg2),
......@@ -129,13 +129,13 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
129129
130130pub fn syscall6(
131131 number: SYS,
132 arg1: usize,
133 arg2: usize,
134 arg3: usize,
135 arg4: usize,
136 arg5: usize,
137 arg6: usize,
138) usize {
132 arg1: u32,
133 arg2: u32,
134 arg3: u32,
135 arg4: u32,
136 arg5: u32,
137 arg6: u32,
138) u32 {
139139 return asm volatile (
140140 \\ .set noat
141141 \\ subu $sp, $sp, 24
......@@ -147,7 +147,7 @@ pub fn syscall6(
147147 \\ blez $2, 1f
148148 \\ subu $2, $0, $2
149149 \\ 1:
150 : [ret] "={$2}" (-> usize),
150 : [ret] "={$2}" (-> u32),
151151 : [number] "{$2}" (@intFromEnum(number)),
152152 [arg1] "{$4}" (arg1),
153153 [arg2] "{$5}" (arg2),
......@@ -160,14 +160,14 @@ pub fn syscall6(
160160
161161pub fn syscall7(
162162 number: SYS,
163 arg1: usize,
164 arg2: usize,
165 arg3: usize,
166 arg4: usize,
167 arg5: usize,
168 arg6: usize,
169 arg7: usize,
170) usize {
163 arg1: u32,
164 arg2: u32,
165 arg3: u32,
166 arg4: u32,
167 arg5: u32,
168 arg6: u32,
169 arg7: u32,
170) u32 {
171171 return asm volatile (
172172 \\ .set noat
173173 \\ subu $sp, $sp, 32
......@@ -180,7 +180,7 @@ pub fn syscall7(
180180 \\ blez $2, 1f
181181 \\ subu $2, $0, $2
182182 \\ 1:
183 : [ret] "={$2}" (-> usize),
183 : [ret] "={$2}" (-> u32),
184184 : [number] "{$2}" (@intFromEnum(number)),
185185 [arg1] "{$4}" (arg1),
186186 [arg2] "{$5}" (arg2),
......@@ -192,7 +192,7 @@ pub fn syscall7(
192192 : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
193193}
194194
195pub fn clone() callconv(.naked) usize {
195pub fn clone() callconv(.naked) u32 {
196196 // __clone(func, stack, flags, arg, ptid, tls, ctid)
197197 // 3, 4, 5, 6, 7, 8, 9
198198 //
lib/std/os/linux/mips64.zig+32-32
......@@ -14,19 +14,19 @@ const sigset_t = linux.sigset_t;
1414const sockaddr = linux.sockaddr;
1515const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {
17pub fn syscall0(number: SYS) u64 {
1818 return asm volatile (
1919 \\ syscall
2020 \\ beq $7, $zero, 1f
2121 \\ blez $2, 1f
2222 \\ dsubu $2, $0, $2
2323 \\ 1:
24 : [ret] "={$2}" (-> usize),
24 : [ret] "={$2}" (-> u64),
2525 : [number] "{$2}" (@intFromEnum(number)),
2626 : .{ .r1 = true, .r3 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
2727}
2828
29pub fn syscall_pipe(fd: *[2]i32) usize {
29pub fn syscall_pipe(fd: *[2]i32) u64 {
3030 return asm volatile (
3131 \\ .set noat
3232 \\ .set noreorder
......@@ -39,13 +39,13 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
3939 \\ sw $2, 0($4)
4040 \\ sw $3, 4($4)
4141 \\ 2:
42 : [ret] "={$2}" (-> usize),
42 : [ret] "={$2}" (-> u64),
4343 : [number] "{$2}" (@intFromEnum(SYS.pipe)),
4444 [fd] "{$4}" (fd),
4545 : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
4646}
4747
48pub fn syscall1(number: SYS, arg1: usize) usize {
48pub fn syscall1(number: SYS, arg1: u64) u64 {
4949 return asm volatile (
5050 \\ syscall
5151 \\ beq $7, $zero, 1f
......@@ -53,34 +53,34 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
5353 \\ nop
5454 \\ dsubu $2, $0, $2
5555 \\ 1:
56 : [ret] "={$2}" (-> usize),
56 : [ret] "={$2}" (-> u64),
5757 : [number] "{$2}" (@intFromEnum(number)),
5858 [arg1] "{$4}" (arg1),
5959 : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
6060}
6161
62pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
62pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
6363 return asm volatile (
6464 \\ syscall
6565 \\ beq $7, $zero, 1f
6666 \\ blez $2, 1f
6767 \\ dsubu $2, $0, $2
6868 \\ 1:
69 : [ret] "={$2}" (-> usize),
69 : [ret] "={$2}" (-> u64),
7070 : [number] "{$2}" (@intFromEnum(number)),
7171 [arg1] "{$4}" (arg1),
7272 [arg2] "{$5}" (arg2),
7373 : .{ .r1 = true, .r3 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
7474}
7575
76pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
76pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
7777 return asm volatile (
7878 \\ syscall
7979 \\ beq $7, $zero, 1f
8080 \\ blez $2, 1f
8181 \\ dsubu $2, $0, $2
8282 \\ 1:
83 : [ret] "={$2}" (-> usize),
83 : [ret] "={$2}" (-> u64),
8484 : [number] "{$2}" (@intFromEnum(number)),
8585 [arg1] "{$4}" (arg1),
8686 [arg2] "{$5}" (arg2),
......@@ -88,14 +88,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
8888 : .{ .r1 = true, .r3 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
8989}
9090
91pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
91pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
9292 return asm volatile (
9393 \\ syscall
9494 \\ beq $7, $zero, 1f
9595 \\ blez $2, 1f
9696 \\ dsubu $2, $0, $2
9797 \\ 1:
98 : [ret] "={$2}" (-> usize),
98 : [ret] "={$2}" (-> u64),
9999 : [number] "{$2}" (@intFromEnum(number)),
100100 [arg1] "{$4}" (arg1),
101101 [arg2] "{$5}" (arg2),
......@@ -104,14 +104,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
104104 : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
105105}
106106
107pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
107pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
108108 return asm volatile (
109109 \\ syscall
110110 \\ beq $7, $zero, 1f
111111 \\ blez $2, 1f
112112 \\ dsubu $2, $0, $2
113113 \\ 1:
114 : [ret] "={$2}" (-> usize),
114 : [ret] "={$2}" (-> u64),
115115 : [number] "{$2}" (@intFromEnum(number)),
116116 [arg1] "{$4}" (arg1),
117117 [arg2] "{$5}" (arg2),
......@@ -123,20 +123,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
123123
124124pub fn syscall6(
125125 number: SYS,
126 arg1: usize,
127 arg2: usize,
128 arg3: usize,
129 arg4: usize,
130 arg5: usize,
131 arg6: usize,
132) usize {
126 arg1: u64,
127 arg2: u64,
128 arg3: u64,
129 arg4: u64,
130 arg5: u64,
131 arg6: u64,
132) u64 {
133133 return asm volatile (
134134 \\ syscall
135135 \\ beq $7, $zero, 1f
136136 \\ blez $2, 1f
137137 \\ dsubu $2, $0, $2
138138 \\ 1:
139 : [ret] "={$2}" (-> usize),
139 : [ret] "={$2}" (-> u64),
140140 : [number] "{$2}" (@intFromEnum(number)),
141141 [arg1] "{$4}" (arg1),
142142 [arg2] "{$5}" (arg2),
......@@ -149,21 +149,21 @@ pub fn syscall6(
149149
150150pub fn syscall7(
151151 number: SYS,
152 arg1: usize,
153 arg2: usize,
154 arg3: usize,
155 arg4: usize,
156 arg5: usize,
157 arg6: usize,
158 arg7: usize,
159) usize {
152 arg1: u64,
153 arg2: u64,
154 arg3: u64,
155 arg4: u64,
156 arg5: u64,
157 arg6: u64,
158 arg7: u64,
159) u64 {
160160 return asm volatile (
161161 \\ syscall
162162 \\ beq $7, $zero, 1f
163163 \\ blez $2, 1f
164164 \\ dsubu $2, $0, $2
165165 \\ 1:
166 : [ret] "={$2}" (-> usize),
166 : [ret] "={$2}" (-> u64),
167167 : [number] "{$2}" (@intFromEnum(number)),
168168 [arg1] "{$4}" (arg1),
169169 [arg2] "{$5}" (arg2),
......@@ -175,7 +175,7 @@ pub fn syscall7(
175175 : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
176176}
177177
178pub fn clone() callconv(.naked) usize {
178pub fn clone() callconv(.naked) u64 {
179179 // __clone(func, stack, flags, arg, ptid, tls, ctid)
180180 // 3, 4, 5, 6, 7, 8, 9
181181 //
lib/std/os/linux/powerpc.zig+44-44
......@@ -14,48 +14,48 @@ const sigset_t = linux.sigset_t;
1414const sockaddr = linux.sockaddr;
1515const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {
17pub fn syscall0(number: SYS) u32 {
1818 // r0 is both an input register and a clobber. musl and glibc achieve this with
1919 // a "+" constraint, which isn't supported in Zig, so instead we separately list
2020 // r0 as both an input and an output. (Listing it as an input and a clobber would
2121 // cause the C backend to emit invalid code; see #25209.)
22 var r0_out: usize = undefined;
22 var r0_out: u32 = undefined;
2323 return asm volatile (
2424 \\ sc
2525 \\ bns+ 1f
2626 \\ neg 3, 3
2727 \\ 1:
28 : [ret] "={r3}" (-> usize),
28 : [ret] "={r3}" (-> u32),
2929 [r0_out] "={r0}" (r0_out),
3030 : [number] "{r0}" (@intFromEnum(number)),
3131 : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
3232}
3333
34pub fn syscall1(number: SYS, arg1: usize) usize {
34pub fn syscall1(number: SYS, arg1: u32) u32 {
3535 // r0 is both an input and a clobber.
36 var r0_out: usize = undefined;
36 var r0_out: u32 = undefined;
3737 return asm volatile (
3838 \\ sc
3939 \\ bns+ 1f
4040 \\ neg 3, 3
4141 \\ 1:
42 : [ret] "={r3}" (-> usize),
42 : [ret] "={r3}" (-> u32),
4343 [r0_out] "={r0}" (r0_out),
4444 : [number] "{r0}" (@intFromEnum(number)),
4545 [arg1] "{r3}" (arg1),
4646 : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
4747}
4848
49pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
49pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
5050 // These registers are both inputs and clobbers.
51 var r0_out: usize = undefined;
52 var r4_out: usize = undefined;
51 var r0_out: u32 = undefined;
52 var r4_out: u32 = undefined;
5353 return asm volatile (
5454 \\ sc
5555 \\ bns+ 1f
5656 \\ neg 3, 3
5757 \\ 1:
58 : [ret] "={r3}" (-> usize),
58 : [ret] "={r3}" (-> u32),
5959 [r0_out] "={r0}" (r0_out),
6060 [r4_out] "={r4}" (r4_out),
6161 : [number] "{r0}" (@intFromEnum(number)),
......@@ -64,17 +64,17 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
6464 : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
6565}
6666
67pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
67pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
6868 // These registers are both inputs and clobbers.
69 var r0_out: usize = undefined;
70 var r4_out: usize = undefined;
71 var r5_out: usize = undefined;
69 var r0_out: u32 = undefined;
70 var r4_out: u32 = undefined;
71 var r5_out: u32 = undefined;
7272 return asm volatile (
7373 \\ sc
7474 \\ bns+ 1f
7575 \\ neg 3, 3
7676 \\ 1:
77 : [ret] "={r3}" (-> usize),
77 : [ret] "={r3}" (-> u32),
7878 [r0_out] "={r0}" (r0_out),
7979 [r4_out] "={r4}" (r4_out),
8080 [r5_out] "={r5}" (r5_out),
......@@ -85,18 +85,18 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
8585 : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
8686}
8787
88pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
88pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
8989 // These registers are both inputs and clobbers.
90 var r0_out: usize = undefined;
91 var r4_out: usize = undefined;
92 var r5_out: usize = undefined;
93 var r6_out: usize = undefined;
90 var r0_out: u32 = undefined;
91 var r4_out: u32 = undefined;
92 var r5_out: u32 = undefined;
93 var r6_out: u32 = undefined;
9494 return asm volatile (
9595 \\ sc
9696 \\ bns+ 1f
9797 \\ neg 3, 3
9898 \\ 1:
99 : [ret] "={r3}" (-> usize),
99 : [ret] "={r3}" (-> u32),
100100 [r0_out] "={r0}" (r0_out),
101101 [r4_out] "={r4}" (r4_out),
102102 [r5_out] "={r5}" (r5_out),
......@@ -109,19 +109,19 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
109109 : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
110110}
111111
112pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
112pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
113113 // These registers are both inputs and clobbers.
114 var r0_out: usize = undefined;
115 var r4_out: usize = undefined;
116 var r5_out: usize = undefined;
117 var r6_out: usize = undefined;
118 var r7_out: usize = undefined;
114 var r0_out: u32 = undefined;
115 var r4_out: u32 = undefined;
116 var r5_out: u32 = undefined;
117 var r6_out: u32 = undefined;
118 var r7_out: u32 = undefined;
119119 return asm volatile (
120120 \\ sc
121121 \\ bns+ 1f
122122 \\ neg 3, 3
123123 \\ 1:
124 : [ret] "={r3}" (-> usize),
124 : [ret] "={r3}" (-> u32),
125125 [r0_out] "={r0}" (r0_out),
126126 [r4_out] "={r4}" (r4_out),
127127 [r5_out] "={r5}" (r5_out),
......@@ -138,26 +138,26 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
138138
139139pub fn syscall6(
140140 number: SYS,
141 arg1: usize,
142 arg2: usize,
143 arg3: usize,
144 arg4: usize,
145 arg5: usize,
146 arg6: usize,
147) usize {
141 arg1: u32,
142 arg2: u32,
143 arg3: u32,
144 arg4: u32,
145 arg5: u32,
146 arg6: u32,
147) u32 {
148148 // These registers are both inputs and clobbers.
149 var r0_out: usize = undefined;
150 var r4_out: usize = undefined;
151 var r5_out: usize = undefined;
152 var r6_out: usize = undefined;
153 var r7_out: usize = undefined;
154 var r8_out: usize = undefined;
149 var r0_out: u32 = undefined;
150 var r4_out: u32 = undefined;
151 var r5_out: u32 = undefined;
152 var r6_out: u32 = undefined;
153 var r7_out: u32 = undefined;
154 var r8_out: u32 = undefined;
155155 return asm volatile (
156156 \\ sc
157157 \\ bns+ 1f
158158 \\ neg 3, 3
159159 \\ 1:
160 : [ret] "={r3}" (-> usize),
160 : [ret] "={r3}" (-> u32),
161161 [r0_out] "={r0}" (r0_out),
162162 [r4_out] "={r4}" (r4_out),
163163 [r5_out] "={r5}" (r5_out),
......@@ -174,7 +174,7 @@ pub fn syscall6(
174174 : .{ .memory = true, .cr0 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
175175}
176176
177pub fn clone() callconv(.naked) usize {
177pub fn clone() callconv(.naked) u32 {
178178 // __clone(func, stack, flags, arg, ptid, tls, ctid)
179179 // 3, 4, 5, 6, 7, 8, 9
180180 //
......@@ -303,7 +303,7 @@ pub const Flock = extern struct {
303303
304304pub const blksize_t = i32;
305305pub const nlink_t = u32;
306pub const time_t = isize;
306pub const time_t = i32;
307307pub const mode_t = u32;
308308pub const off_t = i64;
309309pub const ino_t = u64;
lib/std/os/linux/powerpc64.zig+43-43
......@@ -14,48 +14,48 @@ const sigset_t = linux.sigset_t;
1414const sockaddr = linux.sockaddr;
1515const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {
17pub fn syscall0(number: SYS) u64 {
1818 // r0 is both an input register and a clobber. musl and glibc achieve this with
1919 // a "+" constraint, which isn't supported in Zig, so instead we separately list
2020 // r0 as both an input and an output. (Listing it as an input and a clobber would
2121 // cause the C backend to emit invalid code; see #25209.)
22 var r0_out: usize = undefined;
22 var r0_out: u64 = undefined;
2323 return asm volatile (
2424 \\ sc
2525 \\ bns+ 1f
2626 \\ neg 3, 3
2727 \\ 1:
28 : [ret] "={r3}" (-> usize),
28 : [ret] "={r3}" (-> u64),
2929 [r0_out] "={r0}" (r0_out),
3030 : [number] "{r0}" (@intFromEnum(number)),
3131 : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
3232}
3333
34pub fn syscall1(number: SYS, arg1: usize) usize {
34pub fn syscall1(number: SYS, arg1: u64) u64 {
3535 // r0 is both an input and a clobber.
36 var r0_out: usize = undefined;
36 var r0_out: u64 = undefined;
3737 return asm volatile (
3838 \\ sc
3939 \\ bns+ 1f
4040 \\ neg 3, 3
4141 \\ 1:
42 : [ret] "={r3}" (-> usize),
42 : [ret] "={r3}" (-> u64),
4343 [r0_out] "={r0}" (r0_out),
4444 : [number] "{r0}" (@intFromEnum(number)),
4545 [arg1] "{r3}" (arg1),
4646 : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
4747}
4848
49pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
49pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
5050 // These registers are both inputs and clobbers.
51 var r0_out: usize = undefined;
52 var r4_out: usize = undefined;
51 var r0_out: u64 = undefined;
52 var r4_out: u64 = undefined;
5353 return asm volatile (
5454 \\ sc
5555 \\ bns+ 1f
5656 \\ neg 3, 3
5757 \\ 1:
58 : [ret] "={r3}" (-> usize),
58 : [ret] "={r3}" (-> u64),
5959 [r0_out] "={r0}" (r0_out),
6060 [r4_out] "={r4}" (r4_out),
6161 : [number] "{r0}" (@intFromEnum(number)),
......@@ -64,17 +64,17 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
6464 : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
6565}
6666
67pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
67pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
6868 // These registers are both inputs and clobbers.
69 var r0_out: usize = undefined;
70 var r4_out: usize = undefined;
71 var r5_out: usize = undefined;
69 var r0_out: u64 = undefined;
70 var r4_out: u64 = undefined;
71 var r5_out: u64 = undefined;
7272 return asm volatile (
7373 \\ sc
7474 \\ bns+ 1f
7575 \\ neg 3, 3
7676 \\ 1:
77 : [ret] "={r3}" (-> usize),
77 : [ret] "={r3}" (-> u64),
7878 [r0_out] "={r0}" (r0_out),
7979 [r4_out] "={r4}" (r4_out),
8080 [r5_out] "={r5}" (r5_out),
......@@ -85,18 +85,18 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
8585 : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
8686}
8787
88pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
88pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
8989 // These registers are both inputs and clobbers.
90 var r0_out: usize = undefined;
91 var r4_out: usize = undefined;
92 var r5_out: usize = undefined;
93 var r6_out: usize = undefined;
90 var r0_out: u64 = undefined;
91 var r4_out: u64 = undefined;
92 var r5_out: u64 = undefined;
93 var r6_out: u64 = undefined;
9494 return asm volatile (
9595 \\ sc
9696 \\ bns+ 1f
9797 \\ neg 3, 3
9898 \\ 1:
99 : [ret] "={r3}" (-> usize),
99 : [ret] "={r3}" (-> u64),
100100 [r0_out] "={r0}" (r0_out),
101101 [r4_out] "={r4}" (r4_out),
102102 [r5_out] "={r5}" (r5_out),
......@@ -109,19 +109,19 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
109109 : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
110110}
111111
112pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
112pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
113113 // These registers are both inputs and clobbers.
114 var r0_out: usize = undefined;
115 var r4_out: usize = undefined;
116 var r5_out: usize = undefined;
117 var r6_out: usize = undefined;
118 var r7_out: usize = undefined;
114 var r0_out: u64 = undefined;
115 var r4_out: u64 = undefined;
116 var r5_out: u64 = undefined;
117 var r6_out: u64 = undefined;
118 var r7_out: u64 = undefined;
119119 return asm volatile (
120120 \\ sc
121121 \\ bns+ 1f
122122 \\ neg 3, 3
123123 \\ 1:
124 : [ret] "={r3}" (-> usize),
124 : [ret] "={r3}" (-> u64),
125125 [r0_out] "={r0}" (r0_out),
126126 [r4_out] "={r4}" (r4_out),
127127 [r5_out] "={r5}" (r5_out),
......@@ -138,26 +138,26 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
138138
139139pub fn syscall6(
140140 number: SYS,
141 arg1: usize,
142 arg2: usize,
143 arg3: usize,
144 arg4: usize,
145 arg5: usize,
146 arg6: usize,
147) usize {
141 arg1: u64,
142 arg2: u64,
143 arg3: u64,
144 arg4: u64,
145 arg5: u64,
146 arg6: u64,
147) u64 {
148148 // These registers are both inputs and clobbers.
149 var r0_out: usize = undefined;
150 var r4_out: usize = undefined;
151 var r5_out: usize = undefined;
152 var r6_out: usize = undefined;
153 var r7_out: usize = undefined;
154 var r8_out: usize = undefined;
149 var r0_out: u64 = undefined;
150 var r4_out: u64 = undefined;
151 var r5_out: u64 = undefined;
152 var r6_out: u64 = undefined;
153 var r7_out: u64 = undefined;
154 var r8_out: u64 = undefined;
155155 return asm volatile (
156156 \\ sc
157157 \\ bns+ 1f
158158 \\ neg 3, 3
159159 \\ 1:
160 : [ret] "={r3}" (-> usize),
160 : [ret] "={r3}" (-> u64),
161161 [r0_out] "={r0}" (r0_out),
162162 [r4_out] "={r4}" (r4_out),
163163 [r5_out] "={r5}" (r5_out),
......@@ -174,7 +174,7 @@ pub fn syscall6(
174174 : .{ .memory = true, .cr0 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
175175}
176176
177pub fn clone() callconv(.naked) usize {
177pub fn clone() callconv(.naked) u64 {
178178 // __clone(func, stack, flags, arg, ptid, tls, ctid)
179179 // 3, 4, 5, 6, 7, 8, 9
180180 //
lib/std/os/linux/riscv32.zig+22-22
......@@ -13,33 +13,33 @@ const sockaddr = linux.sockaddr;
1313const socklen_t = linux.socklen_t;
1414const timespec = std.os.linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {
16pub fn syscall0(number: SYS) u32 {
1717 return asm volatile ("ecall"
18 : [ret] "={x10}" (-> usize),
18 : [ret] "={x10}" (-> u32),
1919 : [number] "{x17}" (@intFromEnum(number)),
2020 : .{ .memory = true });
2121}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {
23pub fn syscall1(number: SYS, arg1: u32) u32 {
2424 return asm volatile ("ecall"
25 : [ret] "={x10}" (-> usize),
25 : [ret] "={x10}" (-> u32),
2626 : [number] "{x17}" (@intFromEnum(number)),
2727 [arg1] "{x10}" (arg1),
2828 : .{ .memory = true });
2929}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
31pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
3232 return asm volatile ("ecall"
33 : [ret] "={x10}" (-> usize),
33 : [ret] "={x10}" (-> u32),
3434 : [number] "{x17}" (@intFromEnum(number)),
3535 [arg1] "{x10}" (arg1),
3636 [arg2] "{x11}" (arg2),
3737 : .{ .memory = true });
3838}
3939
40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
40pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
4141 return asm volatile ("ecall"
42 : [ret] "={x10}" (-> usize),
42 : [ret] "={x10}" (-> u32),
4343 : [number] "{x17}" (@intFromEnum(number)),
4444 [arg1] "{x10}" (arg1),
4545 [arg2] "{x11}" (arg2),
......@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4747 : .{ .memory = true });
4848}
4949
50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
50pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
5151 return asm volatile ("ecall"
52 : [ret] "={x10}" (-> usize),
52 : [ret] "={x10}" (-> u32),
5353 : [number] "{x17}" (@intFromEnum(number)),
5454 [arg1] "{x10}" (arg1),
5555 [arg2] "{x11}" (arg2),
......@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5858 : .{ .memory = true });
5959}
6060
61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
61pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
6262 return asm volatile ("ecall"
63 : [ret] "={x10}" (-> usize),
63 : [ret] "={x10}" (-> u32),
6464 : [number] "{x17}" (@intFromEnum(number)),
6565 [arg1] "{x10}" (arg1),
6666 [arg2] "{x11}" (arg2),
......@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
7373pub fn syscall6(
7474 number: SYS,
75 arg1: usize,
76 arg2: usize,
77 arg3: usize,
78 arg4: usize,
79 arg5: usize,
80 arg6: usize,
81) usize {
75 arg1: u32,
76 arg2: u32,
77 arg3: u32,
78 arg4: u32,
79 arg5: u32,
80 arg6: u32,
81) u32 {
8282 return asm volatile ("ecall"
83 : [ret] "={x10}" (-> usize),
83 : [ret] "={x10}" (-> u32),
8484 : [number] "{x17}" (@intFromEnum(number)),
8585 [arg1] "{x10}" (arg1),
8686 [arg2] "{x11}" (arg2),
......@@ -91,7 +91,7 @@ pub fn syscall6(
9191 : .{ .memory = true });
9292}
9393
94pub fn clone() callconv(.naked) usize {
94pub fn clone() callconv(.naked) u32 {
9595 // __clone(func, stack, flags, arg, ptid, tls, ctid)
9696 // a0, a1, a2, a3, a4, a5, a6
9797 //
......@@ -186,7 +186,7 @@ pub const Stat = extern struct {
186186 uid: uid_t,
187187 gid: gid_t,
188188 rdev: dev_t,
189 __pad: usize,
189 __pad: u32,
190190 size: off_t,
191191 blksize: blksize_t,
192192 __pad2: i32,
lib/std/os/linux/riscv64.zig+22-22
......@@ -13,33 +13,33 @@ const sockaddr = linux.sockaddr;
1313const socklen_t = linux.socklen_t;
1414const timespec = std.os.linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {
16pub fn syscall0(number: SYS) u64 {
1717 return asm volatile ("ecall"
18 : [ret] "={x10}" (-> usize),
18 : [ret] "={x10}" (-> u64),
1919 : [number] "{x17}" (@intFromEnum(number)),
2020 : .{ .memory = true });
2121}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {
23pub fn syscall1(number: SYS, arg1: u64) u64 {
2424 return asm volatile ("ecall"
25 : [ret] "={x10}" (-> usize),
25 : [ret] "={x10}" (-> u64),
2626 : [number] "{x17}" (@intFromEnum(number)),
2727 [arg1] "{x10}" (arg1),
2828 : .{ .memory = true });
2929}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
31pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
3232 return asm volatile ("ecall"
33 : [ret] "={x10}" (-> usize),
33 : [ret] "={x10}" (-> u64),
3434 : [number] "{x17}" (@intFromEnum(number)),
3535 [arg1] "{x10}" (arg1),
3636 [arg2] "{x11}" (arg2),
3737 : .{ .memory = true });
3838}
3939
40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
40pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
4141 return asm volatile ("ecall"
42 : [ret] "={x10}" (-> usize),
42 : [ret] "={x10}" (-> u64),
4343 : [number] "{x17}" (@intFromEnum(number)),
4444 [arg1] "{x10}" (arg1),
4545 [arg2] "{x11}" (arg2),
......@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4747 : .{ .memory = true });
4848}
4949
50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
50pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
5151 return asm volatile ("ecall"
52 : [ret] "={x10}" (-> usize),
52 : [ret] "={x10}" (-> u64),
5353 : [number] "{x17}" (@intFromEnum(number)),
5454 [arg1] "{x10}" (arg1),
5555 [arg2] "{x11}" (arg2),
......@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5858 : .{ .memory = true });
5959}
6060
61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
61pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
6262 return asm volatile ("ecall"
63 : [ret] "={x10}" (-> usize),
63 : [ret] "={x10}" (-> u64),
6464 : [number] "{x17}" (@intFromEnum(number)),
6565 [arg1] "{x10}" (arg1),
6666 [arg2] "{x11}" (arg2),
......@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
7373pub fn syscall6(
7474 number: SYS,
75 arg1: usize,
76 arg2: usize,
77 arg3: usize,
78 arg4: usize,
79 arg5: usize,
80 arg6: usize,
81) usize {
75 arg1: u64,
76 arg2: u64,
77 arg3: u64,
78 arg4: u64,
79 arg5: u64,
80 arg6: u64,
81) u64 {
8282 return asm volatile ("ecall"
83 : [ret] "={x10}" (-> usize),
83 : [ret] "={x10}" (-> u64),
8484 : [number] "{x17}" (@intFromEnum(number)),
8585 [arg1] "{x10}" (arg1),
8686 [arg2] "{x11}" (arg2),
......@@ -91,7 +91,7 @@ pub fn syscall6(
9191 : .{ .memory = true });
9292}
9393
94pub fn clone() callconv(.naked) usize {
94pub fn clone() callconv(.naked) u64 {
9595 // __clone(func, stack, flags, arg, ptid, tls, ctid)
9696 // a0, a1, a2, a3, a4, a5, a6
9797 //
......@@ -186,7 +186,7 @@ pub const Stat = extern struct {
186186 uid: uid_t,
187187 gid: gid_t,
188188 rdev: dev_t,
189 __pad: usize,
189 __pad: u64,
190190 size: off_t,
191191 blksize: blksize_t,
192192 __pad2: i32,
lib/std/os/linux/s390x.zig+15-15
......@@ -13,33 +13,33 @@ const timespec = std.os.linux.timespec;
1313const stack_t = std.os.linux.stack_t;
1414const sigset_t = std.os.linux.sigset_t;
1515
16pub fn syscall0(number: SYS) usize {
16pub fn syscall0(number: SYS) u64 {
1717 return asm volatile ("svc 0"
18 : [ret] "={r2}" (-> usize),
18 : [ret] "={r2}" (-> u64),
1919 : [number] "{r1}" (@intFromEnum(number)),
2020 : .{ .memory = true });
2121}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {
23pub fn syscall1(number: SYS, arg1: u64) u64 {
2424 return asm volatile ("svc 0"
25 : [ret] "={r2}" (-> usize),
25 : [ret] "={r2}" (-> u64),
2626 : [number] "{r1}" (@intFromEnum(number)),
2727 [arg1] "{r2}" (arg1),
2828 : .{ .memory = true });
2929}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
31pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
3232 return asm volatile ("svc 0"
33 : [ret] "={r2}" (-> usize),
33 : [ret] "={r2}" (-> u64),
3434 : [number] "{r1}" (@intFromEnum(number)),
3535 [arg1] "{r2}" (arg1),
3636 [arg2] "{r3}" (arg2),
3737 : .{ .memory = true });
3838}
3939
40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
40pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
4141 return asm volatile ("svc 0"
42 : [ret] "={r2}" (-> usize),
42 : [ret] "={r2}" (-> u64),
4343 : [number] "{r1}" (@intFromEnum(number)),
4444 [arg1] "{r2}" (arg1),
4545 [arg2] "{r3}" (arg2),
......@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4747 : .{ .memory = true });
4848}
4949
50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
50pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
5151 return asm volatile ("svc 0"
52 : [ret] "={r2}" (-> usize),
52 : [ret] "={r2}" (-> u64),
5353 : [number] "{r1}" (@intFromEnum(number)),
5454 [arg1] "{r2}" (arg1),
5555 [arg2] "{r3}" (arg2),
......@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5858 : .{ .memory = true });
5959}
6060
61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
61pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
6262 return asm volatile ("svc 0"
63 : [ret] "={r2}" (-> usize),
63 : [ret] "={r2}" (-> u64),
6464 : [number] "{r1}" (@intFromEnum(number)),
6565 [arg1] "{r2}" (arg1),
6666 [arg2] "{r3}" (arg2),
......@@ -70,9 +70,9 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7070 : .{ .memory = true });
7171}
7272
73pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize, arg6: usize) usize {
73pub fn syscall6(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64, arg6: u64) u64 {
7474 return asm volatile ("svc 0"
75 : [ret] "={r2}" (-> usize),
75 : [ret] "={r2}" (-> u64),
7676 : [number] "{r1}" (@intFromEnum(number)),
7777 [arg1] "{r2}" (arg1),
7878 [arg2] "{r3}" (arg2),
......@@ -83,7 +83,7 @@ pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
8383 : .{ .memory = true });
8484}
8585
86pub fn clone() callconv(.naked) usize {
86pub fn clone() callconv(.naked) u64 {
8787 asm volatile (
8888 \\# int clone(
8989 \\# fn, a = r2
lib/std/os/linux/sparc64.zig+29-29
......@@ -15,7 +15,7 @@ const iovec = std.posix.iovec;
1515const iovec_const = std.posix.iovec_const;
1616const timespec = linux.timespec;
1717
18pub fn syscall_pipe(fd: *[2]i32) usize {
18pub fn syscall_pipe(fd: *[2]i32) u64 {
1919 return asm volatile (
2020 \\ mov %[arg], %%g3
2121 \\ t 0x6d
......@@ -29,13 +29,13 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
2929 \\ st %%o1, [%%g3+4]
3030 \\ clr %%o0
3131 \\2:
32 : [ret] "={o0}" (-> usize),
32 : [ret] "={o0}" (-> u64),
3333 : [number] "{g1}" (@intFromEnum(SYS.pipe)),
3434 [arg] "r" (fd),
3535 : .{ .memory = true, .g3 = true });
3636}
3737
38pub fn syscall_fork() usize {
38pub fn syscall_fork() u64 {
3939 // Linux/sparc64 fork() returns two values in %o0 and %o1:
4040 // - On the parent's side, %o0 is the child's PID and %o1 is 0.
4141 // - On the child's side, %o0 is the parent's PID and %o1 is 1.
......@@ -52,58 +52,58 @@ pub fn syscall_fork() usize {
5252 \\ dec %%o1
5353 \\ and %%o1, %%o0, %%o0
5454 \\ 2:
55 : [ret] "={o0}" (-> usize),
55 : [ret] "={o0}" (-> u64),
5656 : [number] "{g1}" (@intFromEnum(SYS.fork)),
5757 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
5858}
5959
60pub fn syscall0(number: SYS) usize {
60pub fn syscall0(number: SYS) u64 {
6161 return asm volatile (
6262 \\ t 0x6d
6363 \\ bcc,pt %%xcc, 1f
6464 \\ nop
6565 \\ neg %%o0
6666 \\ 1:
67 : [ret] "={o0}" (-> usize),
67 : [ret] "={o0}" (-> u64),
6868 : [number] "{g1}" (@intFromEnum(number)),
6969 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
7070}
7171
72pub fn syscall1(number: SYS, arg1: usize) usize {
72pub fn syscall1(number: SYS, arg1: u64) u64 {
7373 return asm volatile (
7474 \\ t 0x6d
7575 \\ bcc,pt %%xcc, 1f
7676 \\ nop
7777 \\ neg %%o0
7878 \\ 1:
79 : [ret] "={o0}" (-> usize),
79 : [ret] "={o0}" (-> u64),
8080 : [number] "{g1}" (@intFromEnum(number)),
8181 [arg1] "{o0}" (arg1),
8282 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
8383}
8484
85pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
85pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
8686 return asm volatile (
8787 \\ t 0x6d
8888 \\ bcc,pt %%xcc, 1f
8989 \\ nop
9090 \\ neg %%o0
9191 \\ 1:
92 : [ret] "={o0}" (-> usize),
92 : [ret] "={o0}" (-> u64),
9393 : [number] "{g1}" (@intFromEnum(number)),
9494 [arg1] "{o0}" (arg1),
9595 [arg2] "{o1}" (arg2),
9696 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
9797}
9898
99pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
99pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
100100 return asm volatile (
101101 \\ t 0x6d
102102 \\ bcc,pt %%xcc, 1f
103103 \\ nop
104104 \\ neg %%o0
105105 \\ 1:
106 : [ret] "={o0}" (-> usize),
106 : [ret] "={o0}" (-> u64),
107107 : [number] "{g1}" (@intFromEnum(number)),
108108 [arg1] "{o0}" (arg1),
109109 [arg2] "{o1}" (arg2),
......@@ -111,14 +111,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
111111 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
112112}
113113
114pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
114pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
115115 return asm volatile (
116116 \\ t 0x6d
117117 \\ bcc,pt %%xcc, 1f
118118 \\ nop
119119 \\ neg %%o0
120120 \\ 1:
121 : [ret] "={o0}" (-> usize),
121 : [ret] "={o0}" (-> u64),
122122 : [number] "{g1}" (@intFromEnum(number)),
123123 [arg1] "{o0}" (arg1),
124124 [arg2] "{o1}" (arg2),
......@@ -127,14 +127,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
127127 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
128128}
129129
130pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
130pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
131131 return asm volatile (
132132 \\ t 0x6d
133133 \\ bcc,pt %%xcc, 1f
134134 \\ nop
135135 \\ neg %%o0
136136 \\ 1:
137 : [ret] "={o0}" (-> usize),
137 : [ret] "={o0}" (-> u64),
138138 : [number] "{g1}" (@intFromEnum(number)),
139139 [arg1] "{o0}" (arg1),
140140 [arg2] "{o1}" (arg2),
......@@ -146,20 +146,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
146146
147147pub fn syscall6(
148148 number: SYS,
149 arg1: usize,
150 arg2: usize,
151 arg3: usize,
152 arg4: usize,
153 arg5: usize,
154 arg6: usize,
155) usize {
149 arg1: u64,
150 arg2: u64,
151 arg3: u64,
152 arg4: u64,
153 arg5: u64,
154 arg6: u64,
155) u64 {
156156 return asm volatile (
157157 \\ t 0x6d
158158 \\ bcc,pt %%xcc, 1f
159159 \\ nop
160160 \\ neg %%o0
161161 \\ 1:
162 : [ret] "={o0}" (-> usize),
162 : [ret] "={o0}" (-> u64),
163163 : [number] "{g1}" (@intFromEnum(number)),
164164 [arg1] "{o0}" (arg1),
165165 [arg2] "{o1}" (arg2),
......@@ -170,7 +170,7 @@ pub fn syscall6(
170170 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
171171}
172172
173pub fn clone() callconv(.naked) usize {
173pub fn clone() callconv(.naked) u64 {
174174 // __clone(func, stack, flags, arg, ptid, tls, ctid)
175175 // i0, i1, i2, i3, i4, i5, sp
176176 //
......@@ -274,12 +274,12 @@ pub const Flock = extern struct {
274274
275275pub const off_t = i64;
276276pub const ino_t = u64;
277pub const time_t = isize;
277pub const time_t = i64;
278278pub const mode_t = u32;
279pub const dev_t = usize;
279pub const dev_t = u64;
280280pub const nlink_t = u32;
281pub const blksize_t = isize;
282pub const blkcnt_t = isize;
281pub const blksize_t = i64;
282pub const blkcnt_t = i64;
283283
284284// The `stat64` definition used by the kernel.
285285pub const Stat = extern struct {
lib/std/os/linux/thumb.zig+27-27
......@@ -7,53 +7,53 @@ const std = @import("../../std.zig");
77const linux = std.os.linux;
88const SYS = linux.SYS;
99
10pub fn syscall0(number: SYS) usize {
11 var buf: [2]usize = .{ @intFromEnum(number), undefined };
10pub fn syscall0(number: SYS) u32 {
11 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
1212 return asm volatile (
1313 \\ str r7, [%[tmp], #4]
1414 \\ ldr r7, [%[tmp]]
1515 \\ svc #0
1616 \\ ldr r7, [%[tmp], #4]
17 : [ret] "={r0}" (-> usize),
17 : [ret] "={r0}" (-> u32),
1818 : [tmp] "{r1}" (&buf),
1919 : .{ .memory = true });
2020}
2121
22pub fn syscall1(number: SYS, arg1: usize) usize {
23 var buf: [2]usize = .{ @intFromEnum(number), undefined };
22pub fn syscall1(number: SYS, arg1: u32) u32 {
23 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
2424 return asm volatile (
2525 \\ str r7, [%[tmp], #4]
2626 \\ ldr r7, [%[tmp]]
2727 \\ svc #0
2828 \\ ldr r7, [%[tmp], #4]
29 : [ret] "={r0}" (-> usize),
29 : [ret] "={r0}" (-> u32),
3030 : [tmp] "{r1}" (&buf),
3131 [arg1] "{r0}" (arg1),
3232 : .{ .memory = true });
3333}
3434
35pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
36 var buf: [2]usize = .{ @intFromEnum(number), undefined };
35pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
36 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
3737 return asm volatile (
3838 \\ str r7, [%[tmp], #4]
3939 \\ ldr r7, [%[tmp]]
4040 \\ svc #0
4141 \\ ldr r7, [%[tmp], #4]
42 : [ret] "={r0}" (-> usize),
42 : [ret] "={r0}" (-> u32),
4343 : [tmp] "{r2}" (&buf),
4444 [arg1] "{r0}" (arg1),
4545 [arg2] "{r1}" (arg2),
4646 : .{ .memory = true });
4747}
4848
49pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
50 var buf: [2]usize = .{ @intFromEnum(number), undefined };
49pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
50 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
5151 return asm volatile (
5252 \\ str r7, [%[tmp], #4]
5353 \\ ldr r7, [%[tmp]]
5454 \\ svc #0
5555 \\ ldr r7, [%[tmp], #4]
56 : [ret] "={r0}" (-> usize),
56 : [ret] "={r0}" (-> u32),
5757 : [tmp] "{r3}" (&buf),
5858 [arg1] "{r0}" (arg1),
5959 [arg2] "{r1}" (arg2),
......@@ -61,14 +61,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
6161 : .{ .memory = true });
6262}
6363
64pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
65 var buf: [2]usize = .{ @intFromEnum(number), undefined };
64pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
65 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
6666 return asm volatile (
6767 \\ str r7, [%[tmp], #4]
6868 \\ ldr r7, [%[tmp]]
6969 \\ svc #0
7070 \\ ldr r7, [%[tmp], #4]
71 : [ret] "={r0}" (-> usize),
71 : [ret] "={r0}" (-> u32),
7272 : [tmp] "{r4}" (&buf),
7373 [arg1] "{r0}" (arg1),
7474 [arg2] "{r1}" (arg2),
......@@ -77,14 +77,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
7777 : .{ .memory = true });
7878}
7979
80pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
81 var buf: [2]usize = .{ @intFromEnum(number), undefined };
80pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
81 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
8282 return asm volatile (
8383 \\ str r7, [%[tmp], #4]
8484 \\ ldr r7, [%[tmp]]
8585 \\ svc #0
8686 \\ ldr r7, [%[tmp], #4]
87 : [ret] "={r0}" (-> usize),
87 : [ret] "={r0}" (-> u32),
8888 : [tmp] "{r5}" (&buf),
8989 [arg1] "{r0}" (arg1),
9090 [arg2] "{r1}" (arg2),
......@@ -96,20 +96,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
9696
9797pub fn syscall6(
9898 number: SYS,
99 arg1: usize,
100 arg2: usize,
101 arg3: usize,
102 arg4: usize,
103 arg5: usize,
104 arg6: usize,
105) usize {
106 var buf: [2]usize = .{ @intFromEnum(number), undefined };
99 arg1: u32,
100 arg2: u32,
101 arg3: u32,
102 arg4: u32,
103 arg5: u32,
104 arg6: u32,
105) u32 {
106 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
107107 return asm volatile (
108108 \\ str r7, [%[tmp], #4]
109109 \\ ldr r7, [%[tmp]]
110110 \\ svc #0
111111 \\ ldr r7, [%[tmp], #4]
112 : [ret] "={r0}" (-> usize),
112 : [ret] "={r0}" (-> u32),
113113 : [tmp] "{r6}" (&buf),
114114 [arg1] "{r0}" (arg1),
115115 [arg2] "{r1}" (arg2),
lib/std/os/linux/x86.zig+25-25
......@@ -14,33 +14,33 @@ const sigset_t = linux.sigset_t;
1414const sockaddr = linux.sockaddr;
1515const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {
17pub fn syscall0(number: SYS) u32 {
1818 return asm volatile ("int $0x80"
19 : [ret] "={eax}" (-> usize),
19 : [ret] "={eax}" (-> u32),
2020 : [number] "{eax}" (@intFromEnum(number)),
2121 : .{ .memory = true });
2222}
2323
24pub fn syscall1(number: SYS, arg1: usize) usize {
24pub fn syscall1(number: SYS, arg1: u32) u32 {
2525 return asm volatile ("int $0x80"
26 : [ret] "={eax}" (-> usize),
26 : [ret] "={eax}" (-> u32),
2727 : [number] "{eax}" (@intFromEnum(number)),
2828 [arg1] "{ebx}" (arg1),
2929 : .{ .memory = true });
3030}
3131
32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
32pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
3333 return asm volatile ("int $0x80"
34 : [ret] "={eax}" (-> usize),
34 : [ret] "={eax}" (-> u32),
3535 : [number] "{eax}" (@intFromEnum(number)),
3636 [arg1] "{ebx}" (arg1),
3737 [arg2] "{ecx}" (arg2),
3838 : .{ .memory = true });
3939}
4040
41pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
41pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
4242 return asm volatile ("int $0x80"
43 : [ret] "={eax}" (-> usize),
43 : [ret] "={eax}" (-> u32),
4444 : [number] "{eax}" (@intFromEnum(number)),
4545 [arg1] "{ebx}" (arg1),
4646 [arg2] "{ecx}" (arg2),
......@@ -48,9 +48,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
4848 : .{ .memory = true });
4949}
5050
51pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
51pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
5252 return asm volatile ("int $0x80"
53 : [ret] "={eax}" (-> usize),
53 : [ret] "={eax}" (-> u32),
5454 : [number] "{eax}" (@intFromEnum(number)),
5555 [arg1] "{ebx}" (arg1),
5656 [arg2] "{ecx}" (arg2),
......@@ -59,9 +59,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
5959 : .{ .memory = true });
6060}
6161
62pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
62pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
6363 return asm volatile ("int $0x80"
64 : [ret] "={eax}" (-> usize),
64 : [ret] "={eax}" (-> u32),
6565 : [number] "{eax}" (@intFromEnum(number)),
6666 [arg1] "{ebx}" (arg1),
6767 [arg2] "{ecx}" (arg2),
......@@ -73,20 +73,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7373
7474pub fn syscall6(
7575 number: SYS,
76 arg1: usize,
77 arg2: usize,
78 arg3: usize,
79 arg4: usize,
80 arg5: usize,
81 arg6: usize,
82) usize {
76 arg1: u32,
77 arg2: u32,
78 arg3: u32,
79 arg4: u32,
80 arg5: u32,
81 arg6: u32,
82) u32 {
8383 // arg6 can't be passed to asm in a register because ebp might be reserved as the frame pointer
8484 // and there are no more GPRs available; so we'll need a memory operand for it. Adding that
8585 // memory operand means that on PIC we might need a reference to the GOT, which in turn needs
8686 // *its* own GPR, so we need to pass another arg in memory too! This is surprisingly hard to get
8787 // right, because we can't touch esp or ebp until we're done with the memory input (as that
8888 // input could be relative to esp or ebp).
89 const args56: [2]usize = .{ arg5, arg6 };
89 const args56: [2]u32 = .{ arg5, arg6 };
9090 return asm volatile (
9191 \\ push %[args56]
9292 \\ push %%ebp
......@@ -99,7 +99,7 @@ pub fn syscall6(
9999 \\ int $0x80
100100 \\ pop %%ebp
101101 \\ pop %%edi
102 : [ret] "={eax}" (-> usize),
102 : [ret] "={eax}" (-> u32),
103103 : [number] "{eax}" (@intFromEnum(number)),
104104 [arg1] "{ebx}" (arg1),
105105 [arg2] "{ecx}" (arg2),
......@@ -109,16 +109,16 @@ pub fn syscall6(
109109 : .{ .memory = true });
110110}
111111
112pub fn socketcall(call: usize, args: [*]const usize) usize {
112pub fn socketcall(call: u32, args: [*]const u32) u32 {
113113 return asm volatile ("int $0x80"
114 : [ret] "={eax}" (-> usize),
114 : [ret] "={eax}" (-> u32),
115115 : [number] "{eax}" (@intFromEnum(SYS.socketcall)),
116116 [arg1] "{ebx}" (call),
117117 [arg2] "{ecx}" (@intFromPtr(args)),
118118 : .{ .memory = true });
119119}
120120
121pub fn clone() callconv(.naked) usize {
121pub fn clone() callconv(.naked) u32 {
122122 // __clone(func, stack, flags, arg, ptid, tls, ctid)
123123 // +8, +12, +16, +20, +24, +28, +32
124124 //
......@@ -239,7 +239,7 @@ pub const Flock = extern struct {
239239
240240pub const blksize_t = i32;
241241pub const nlink_t = u32;
242pub const time_t = isize;
242pub const time_t = i32;
243243pub const mode_t = u32;
244244pub const off_t = i64;
245245pub const ino_t = u64;
lib/std/os/linux/x86_64.zig+29-29
......@@ -16,33 +16,33 @@ const sockaddr = linux.sockaddr;
1616const socklen_t = linux.socklen_t;
1717const timespec = linux.timespec;
1818
19pub fn syscall0(number: SYS) usize {
19pub fn syscall0(number: SYS) u64 {
2020 return asm volatile ("syscall"
21 : [ret] "={rax}" (-> usize),
21 : [ret] "={rax}" (-> u64),
2222 : [number] "{rax}" (@intFromEnum(number)),
2323 : .{ .rcx = true, .r11 = true, .memory = true });
2424}
2525
26pub fn syscall1(number: SYS, arg1: usize) usize {
26pub fn syscall1(number: SYS, arg1: u64) u64 {
2727 return asm volatile ("syscall"
28 : [ret] "={rax}" (-> usize),
28 : [ret] "={rax}" (-> u64),
2929 : [number] "{rax}" (@intFromEnum(number)),
3030 [arg1] "{rdi}" (arg1),
3131 : .{ .rcx = true, .r11 = true, .memory = true });
3232}
3333
34pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
34pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
3535 return asm volatile ("syscall"
36 : [ret] "={rax}" (-> usize),
36 : [ret] "={rax}" (-> u64),
3737 : [number] "{rax}" (@intFromEnum(number)),
3838 [arg1] "{rdi}" (arg1),
3939 [arg2] "{rsi}" (arg2),
4040 : .{ .rcx = true, .r11 = true, .memory = true });
4141}
4242
43pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
43pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
4444 return asm volatile ("syscall"
45 : [ret] "={rax}" (-> usize),
45 : [ret] "={rax}" (-> u64),
4646 : [number] "{rax}" (@intFromEnum(number)),
4747 [arg1] "{rdi}" (arg1),
4848 [arg2] "{rsi}" (arg2),
......@@ -50,9 +50,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
5050 : .{ .rcx = true, .r11 = true, .memory = true });
5151}
5252
53pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
53pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
5454 return asm volatile ("syscall"
55 : [ret] "={rax}" (-> usize),
55 : [ret] "={rax}" (-> u64),
5656 : [number] "{rax}" (@intFromEnum(number)),
5757 [arg1] "{rdi}" (arg1),
5858 [arg2] "{rsi}" (arg2),
......@@ -61,9 +61,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
6161 : .{ .rcx = true, .r11 = true, .memory = true });
6262}
6363
64pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
64pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
6565 return asm volatile ("syscall"
66 : [ret] "={rax}" (-> usize),
66 : [ret] "={rax}" (-> u64),
6767 : [number] "{rax}" (@intFromEnum(number)),
6868 [arg1] "{rdi}" (arg1),
6969 [arg2] "{rsi}" (arg2),
......@@ -75,15 +75,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7575
7676pub fn syscall6(
7777 number: SYS,
78 arg1: usize,
79 arg2: usize,
80 arg3: usize,
81 arg4: usize,
82 arg5: usize,
83 arg6: usize,
84) usize {
78 arg1: u64,
79 arg2: u64,
80 arg3: u64,
81 arg4: u64,
82 arg5: u64,
83 arg6: u64,
84) u64 {
8585 return asm volatile ("syscall"
86 : [ret] "={rax}" (-> usize),
86 : [ret] "={rax}" (-> u64),
8787 : [number] "{rax}" (@intFromEnum(number)),
8888 [arg1] "{rdi}" (arg1),
8989 [arg2] "{rsi}" (arg2),
......@@ -94,7 +94,7 @@ pub fn syscall6(
9494 : .{ .rcx = true, .r11 = true, .memory = true });
9595}
9696
97pub fn clone() callconv(.naked) usize {
97pub fn clone() callconv(.naked) u64 {
9898 asm volatile (
9999 \\ movl $56,%%eax // SYS_clone
100100 \\ movq %%rdi,%%r11
......@@ -146,11 +146,11 @@ pub fn restore_rt() callconv(.naked) noreturn {
146146 }
147147}
148148
149pub const mode_t = usize;
150pub const time_t = isize;
151pub const nlink_t = usize;
152pub const blksize_t = isize;
153pub const blkcnt_t = isize;
149pub const mode_t = u64;
150pub const time_t = i64;
151pub const nlink_t = u64;
152pub const blksize_t = i64;
153pub const blkcnt_t = i64;
154154
155155pub const F = struct {
156156 pub const DUPFD = 0;
......@@ -206,7 +206,7 @@ pub const dev_t = u64;
206206pub const Stat = extern struct {
207207 dev: dev_t,
208208 ino: ino_t,
209 nlink: usize,
209 nlink: u64,
210210
211211 mode: u32,
212212 uid: uid_t,
......@@ -214,13 +214,13 @@ pub const Stat = extern struct {
214214 __pad0: u32,
215215 rdev: dev_t,
216216 size: off_t,
217 blksize: isize,
217 blksize: i64,
218218 blocks: i64,
219219
220220 atim: timespec,
221221 mtim: timespec,
222222 ctim: timespec,
223 __unused: [3]isize,
223 __unused: [3]i64,
224224
225225 pub fn atime(self: @This()) timespec {
226226 return self.atim;