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;...@@ -14,33 +14,33 @@ const stack_t = linux.stack_t;
14const sigset_t = linux.sigset_t;14const sigset_t = linux.sigset_t;
15const timespec = std.os.linux.timespec;15const timespec = std.os.linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {17pub fn syscall0(number: SYS) u64 {
18 return asm volatile ("svc #0"18 return asm volatile ("svc #0"
19 : [ret] "={x0}" (-> usize),19 : [ret] "={x0}" (-> u64),
20 : [number] "{x8}" (@intFromEnum(number)),20 : [number] "{x8}" (@intFromEnum(number)),
21 : .{ .memory = true });21 : .{ .memory = true });
22}22}
2323
24pub fn syscall1(number: SYS, arg1: usize) usize {24pub fn syscall1(number: SYS, arg1: u64) u64 {
25 return asm volatile ("svc #0"25 return asm volatile ("svc #0"
26 : [ret] "={x0}" (-> usize),26 : [ret] "={x0}" (-> u64),
27 : [number] "{x8}" (@intFromEnum(number)),27 : [number] "{x8}" (@intFromEnum(number)),
28 [arg1] "{x0}" (arg1),28 [arg1] "{x0}" (arg1),
29 : .{ .memory = true });29 : .{ .memory = true });
30}30}
3131
32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {32pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
33 return asm volatile ("svc #0"33 return asm volatile ("svc #0"
34 : [ret] "={x0}" (-> usize),34 : [ret] "={x0}" (-> u64),
35 : [number] "{x8}" (@intFromEnum(number)),35 : [number] "{x8}" (@intFromEnum(number)),
36 [arg1] "{x0}" (arg1),36 [arg1] "{x0}" (arg1),
37 [arg2] "{x1}" (arg2),37 [arg2] "{x1}" (arg2),
38 : .{ .memory = true });38 : .{ .memory = true });
39}39}
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 {
42 return asm volatile ("svc #0"42 return asm volatile ("svc #0"
43 : [ret] "={x0}" (-> usize),43 : [ret] "={x0}" (-> u64),
44 : [number] "{x8}" (@intFromEnum(number)),44 : [number] "{x8}" (@intFromEnum(number)),
45 [arg1] "{x0}" (arg1),45 [arg1] "{x0}" (arg1),
46 [arg2] "{x1}" (arg2),46 [arg2] "{x1}" (arg2),
...@@ -48,9 +48,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -48,9 +48,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
48 : .{ .memory = true });48 : .{ .memory = true });
49}49}
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 {
52 return asm volatile ("svc #0"52 return asm volatile ("svc #0"
53 : [ret] "={x0}" (-> usize),53 : [ret] "={x0}" (-> u64),
54 : [number] "{x8}" (@intFromEnum(number)),54 : [number] "{x8}" (@intFromEnum(number)),
55 [arg1] "{x0}" (arg1),55 [arg1] "{x0}" (arg1),
56 [arg2] "{x1}" (arg2),56 [arg2] "{x1}" (arg2),
...@@ -59,9 +59,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -59,9 +59,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
59 : .{ .memory = true });59 : .{ .memory = true });
60}60}
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 {
63 return asm volatile ("svc #0"63 return asm volatile ("svc #0"
64 : [ret] "={x0}" (-> usize),64 : [ret] "={x0}" (-> u64),
65 : [number] "{x8}" (@intFromEnum(number)),65 : [number] "{x8}" (@intFromEnum(number)),
66 [arg1] "{x0}" (arg1),66 [arg1] "{x0}" (arg1),
67 [arg2] "{x1}" (arg2),67 [arg2] "{x1}" (arg2),
...@@ -73,15 +73,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -73,15 +73,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7373
74pub fn syscall6(74pub fn syscall6(
75 number: SYS,75 number: SYS,
76 arg1: usize,76 arg1: u64,
77 arg2: usize,77 arg2: u64,
78 arg3: usize,78 arg3: u64,
79 arg4: usize,79 arg4: u64,
80 arg5: usize,80 arg5: u64,
81 arg6: usize,81 arg6: u64,
82) usize {82) u64 {
83 return asm volatile ("svc #0"83 return asm volatile ("svc #0"
84 : [ret] "={x0}" (-> usize),84 : [ret] "={x0}" (-> u64),
85 : [number] "{x8}" (@intFromEnum(number)),85 : [number] "{x8}" (@intFromEnum(number)),
86 [arg1] "{x0}" (arg1),86 [arg1] "{x0}" (arg1),
87 [arg2] "{x1}" (arg2),87 [arg2] "{x1}" (arg2),
...@@ -92,7 +92,7 @@ pub fn syscall6(...@@ -92,7 +92,7 @@ pub fn syscall6(
92 : .{ .memory = true });92 : .{ .memory = true });
93}93}
9494
95pub fn clone() callconv(.naked) usize {95pub fn clone() callconv(.naked) u64 {
96 // __clone(func, stack, flags, arg, ptid, tls, ctid)96 // __clone(func, stack, flags, arg, ptid, tls, ctid)
97 // x0, x1, w2, x3, x4, x5, x697 // x0, x1, w2, x3, x4, x5, x6
98 //98 //
...@@ -192,12 +192,12 @@ pub const Flock = extern struct {...@@ -192,12 +192,12 @@ pub const Flock = extern struct {
192192
193pub const blksize_t = i32;193pub const blksize_t = i32;
194pub const nlink_t = u32;194pub const nlink_t = u32;
195pub const time_t = isize;195pub const time_t = i64;
196pub const mode_t = u32;196pub const mode_t = u32;
197pub const off_t = isize;197pub const off_t = i64;
198pub const ino_t = usize;198pub const ino_t = u64;
199pub const dev_t = usize;199pub const dev_t = u64;
200pub const blkcnt_t = isize;200pub const blkcnt_t = i64;
201201
202// The `stat` definition used by the Linux kernel.202// The `stat` definition used by the Linux kernel.
203pub const Stat = extern struct {203pub const Stat = extern struct {
...@@ -208,7 +208,7 @@ pub const Stat = extern struct {...@@ -208,7 +208,7 @@ pub const Stat = extern struct {
208 uid: uid_t,208 uid: uid_t,
209 gid: gid_t,209 gid: gid_t,
210 rdev: dev_t,210 rdev: dev_t,
211 __pad: usize,211 __pad: u64,
212 size: off_t,212 size: off_t,
213 blksize: blksize_t,213 blksize: blksize_t,
214 __pad2: i32,214 __pad2: i32,
lib/std/os/linux/arm.zig+22-22
...@@ -13,33 +13,33 @@ const pid_t = linux.pid_t;...@@ -13,33 +13,33 @@ const pid_t = linux.pid_t;
13const sockaddr = linux.sockaddr;13const sockaddr = linux.sockaddr;
14const timespec = linux.timespec;14const timespec = linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {16pub fn syscall0(number: SYS) u32 {
17 return asm volatile ("svc #0"17 return asm volatile ("svc #0"
18 : [ret] "={r0}" (-> usize),18 : [ret] "={r0}" (-> u32),
19 : [number] "{r7}" (@intFromEnum(number)),19 : [number] "{r7}" (@intFromEnum(number)),
20 : .{ .memory = true });20 : .{ .memory = true });
21}21}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: u32) u32 {
24 return asm volatile ("svc #0"24 return asm volatile ("svc #0"
25 : [ret] "={r0}" (-> usize),25 : [ret] "={r0}" (-> u32),
26 : [number] "{r7}" (@intFromEnum(number)),26 : [number] "{r7}" (@intFromEnum(number)),
27 [arg1] "{r0}" (arg1),27 [arg1] "{r0}" (arg1),
28 : .{ .memory = true });28 : .{ .memory = true });
29}29}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
32 return asm volatile ("svc #0"32 return asm volatile ("svc #0"
33 : [ret] "={r0}" (-> usize),33 : [ret] "={r0}" (-> u32),
34 : [number] "{r7}" (@intFromEnum(number)),34 : [number] "{r7}" (@intFromEnum(number)),
35 [arg1] "{r0}" (arg1),35 [arg1] "{r0}" (arg1),
36 [arg2] "{r1}" (arg2),36 [arg2] "{r1}" (arg2),
37 : .{ .memory = true });37 : .{ .memory = true });
38}38}
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 {
41 return asm volatile ("svc #0"41 return asm volatile ("svc #0"
42 : [ret] "={r0}" (-> usize),42 : [ret] "={r0}" (-> u32),
43 : [number] "{r7}" (@intFromEnum(number)),43 : [number] "{r7}" (@intFromEnum(number)),
44 [arg1] "{r0}" (arg1),44 [arg1] "{r0}" (arg1),
45 [arg2] "{r1}" (arg2),45 [arg2] "{r1}" (arg2),
...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 : .{ .memory = true });47 : .{ .memory = true });
48}48}
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 {
51 return asm volatile ("svc #0"51 return asm volatile ("svc #0"
52 : [ret] "={r0}" (-> usize),52 : [ret] "={r0}" (-> u32),
53 : [number] "{r7}" (@intFromEnum(number)),53 : [number] "{r7}" (@intFromEnum(number)),
54 [arg1] "{r0}" (arg1),54 [arg1] "{r0}" (arg1),
55 [arg2] "{r1}" (arg2),55 [arg2] "{r1}" (arg2),
...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
58 : .{ .memory = true });58 : .{ .memory = true });
59}59}
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 {
62 return asm volatile ("svc #0"62 return asm volatile ("svc #0"
63 : [ret] "={r0}" (-> usize),63 : [ret] "={r0}" (-> u32),
64 : [number] "{r7}" (@intFromEnum(number)),64 : [number] "{r7}" (@intFromEnum(number)),
65 [arg1] "{r0}" (arg1),65 [arg1] "{r0}" (arg1),
66 [arg2] "{r1}" (arg2),66 [arg2] "{r1}" (arg2),
...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
73pub fn syscall6(73pub fn syscall6(
74 number: SYS,74 number: SYS,
75 arg1: usize,75 arg1: u32,
76 arg2: usize,76 arg2: u32,
77 arg3: usize,77 arg3: u32,
78 arg4: usize,78 arg4: u32,
79 arg5: usize,79 arg5: u32,
80 arg6: usize,80 arg6: u32,
81) usize {81) u32 {
82 return asm volatile ("svc #0"82 return asm volatile ("svc #0"
83 : [ret] "={r0}" (-> usize),83 : [ret] "={r0}" (-> u32),
84 : [number] "{r7}" (@intFromEnum(number)),84 : [number] "{r7}" (@intFromEnum(number)),
85 [arg1] "{r0}" (arg1),85 [arg1] "{r0}" (arg1),
86 [arg2] "{r1}" (arg2),86 [arg2] "{r1}" (arg2),
...@@ -91,7 +91,7 @@ pub fn syscall6(...@@ -91,7 +91,7 @@ pub fn syscall6(
91 : .{ .memory = true });91 : .{ .memory = true });
92}92}
9393
94pub fn clone() callconv(.naked) usize {94pub fn clone() callconv(.naked) u32 {
95 // __clone(func, stack, flags, arg, ptid, tls, ctid)95 // __clone(func, stack, flags, arg, ptid, tls, ctid)
96 // r0, r1, r2, r3, +0, +4, +896 // r0, r1, r2, r3, +0, +4, +8
97 //97 //
...@@ -228,7 +228,7 @@ pub const Flock = extern struct {...@@ -228,7 +228,7 @@ pub const Flock = extern struct {
228228
229pub const blksize_t = i32;229pub const blksize_t = i32;
230pub const nlink_t = u32;230pub const nlink_t = u32;
231pub const time_t = isize;231pub const time_t = i32;
232pub const mode_t = u32;232pub const mode_t = u32;
233pub const off_t = i64;233pub const off_t = i64;
234pub const ino_t = u64;234pub const ino_t = u64;
lib/std/os/linux/hexagon.zig+21-21
...@@ -13,33 +13,33 @@ const stack_t = linux.stack_t;...@@ -13,33 +13,33 @@ const stack_t = linux.stack_t;
13const sigset_t = linux.sigset_t;13const sigset_t = linux.sigset_t;
14const timespec = std.os.linux.timespec;14const timespec = std.os.linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {16pub fn syscall0(number: SYS) u32 {
17 return asm volatile ("trap0(#1)"17 return asm volatile ("trap0(#1)"
18 : [ret] "={r0}" (-> usize),18 : [ret] "={r0}" (-> u32),
19 : [number] "{r6}" (@intFromEnum(number)),19 : [number] "{r6}" (@intFromEnum(number)),
20 : .{ .memory = true });20 : .{ .memory = true });
21}21}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: u32) u32 {
24 return asm volatile ("trap0(#1)"24 return asm volatile ("trap0(#1)"
25 : [ret] "={r0}" (-> usize),25 : [ret] "={r0}" (-> u32),
26 : [number] "{r6}" (@intFromEnum(number)),26 : [number] "{r6}" (@intFromEnum(number)),
27 [arg1] "{r0}" (arg1),27 [arg1] "{r0}" (arg1),
28 : .{ .memory = true });28 : .{ .memory = true });
29}29}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
32 return asm volatile ("trap0(#1)"32 return asm volatile ("trap0(#1)"
33 : [ret] "={r0}" (-> usize),33 : [ret] "={r0}" (-> u32),
34 : [number] "{r6}" (@intFromEnum(number)),34 : [number] "{r6}" (@intFromEnum(number)),
35 [arg1] "{r0}" (arg1),35 [arg1] "{r0}" (arg1),
36 [arg2] "{r1}" (arg2),36 [arg2] "{r1}" (arg2),
37 : .{ .memory = true });37 : .{ .memory = true });
38}38}
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 {
41 return asm volatile ("trap0(#1)"41 return asm volatile ("trap0(#1)"
42 : [ret] "={r0}" (-> usize),42 : [ret] "={r0}" (-> u32),
43 : [number] "{r6}" (@intFromEnum(number)),43 : [number] "{r6}" (@intFromEnum(number)),
44 [arg1] "{r0}" (arg1),44 [arg1] "{r0}" (arg1),
45 [arg2] "{r1}" (arg2),45 [arg2] "{r1}" (arg2),
...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 : .{ .memory = true });47 : .{ .memory = true });
48}48}
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 {
51 return asm volatile ("trap0(#1)"51 return asm volatile ("trap0(#1)"
52 : [ret] "={r0}" (-> usize),52 : [ret] "={r0}" (-> u32),
53 : [number] "{r6}" (@intFromEnum(number)),53 : [number] "{r6}" (@intFromEnum(number)),
54 [arg1] "{r0}" (arg1),54 [arg1] "{r0}" (arg1),
55 [arg2] "{r1}" (arg2),55 [arg2] "{r1}" (arg2),
...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
58 : .{ .memory = true });58 : .{ .memory = true });
59}59}
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 {
62 return asm volatile ("trap0(#1)"62 return asm volatile ("trap0(#1)"
63 : [ret] "={r0}" (-> usize),63 : [ret] "={r0}" (-> u32),
64 : [number] "{r6}" (@intFromEnum(number)),64 : [number] "{r6}" (@intFromEnum(number)),
65 [arg1] "{r0}" (arg1),65 [arg1] "{r0}" (arg1),
66 [arg2] "{r1}" (arg2),66 [arg2] "{r1}" (arg2),
...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
73pub fn syscall6(73pub fn syscall6(
74 number: SYS,74 number: SYS,
75 arg1: usize,75 arg1: u32,
76 arg2: usize,76 arg2: u32,
77 arg3: usize,77 arg3: u32,
78 arg4: usize,78 arg4: u32,
79 arg5: usize,79 arg5: u32,
80 arg6: usize,80 arg6: u32,
81) usize {81) u32 {
82 return asm volatile ("trap0(#1)"82 return asm volatile ("trap0(#1)"
83 : [ret] "={r0}" (-> usize),83 : [ret] "={r0}" (-> u32),
84 : [number] "{r6}" (@intFromEnum(number)),84 : [number] "{r6}" (@intFromEnum(number)),
85 [arg1] "{r0}" (arg1),85 [arg1] "{r0}" (arg1),
86 [arg2] "{r1}" (arg2),86 [arg2] "{r1}" (arg2),
...@@ -91,7 +91,7 @@ pub fn syscall6(...@@ -91,7 +91,7 @@ pub fn syscall6(
91 : .{ .memory = true });91 : .{ .memory = true });
92}92}
9393
94pub fn clone() callconv(.naked) usize {94pub fn clone() callconv(.naked) u32 {
95 // __clone(func, stack, flags, arg, ptid, tls, ctid)95 // __clone(func, stack, flags, arg, ptid, tls, ctid)
96 // r0, r1, r2, r3, r4, r5, +096 // r0, r1, r2, r3, r4, r5, +0
97 //97 //
lib/std/os/linux/loongarch64.zig+21-21
...@@ -12,37 +12,37 @@ const sockaddr = linux.sockaddr;...@@ -12,37 +12,37 @@ const sockaddr = linux.sockaddr;
12const socklen_t = linux.socklen_t;12const socklen_t = linux.socklen_t;
13const timespec = linux.timespec;13const timespec = linux.timespec;
1414
15pub fn syscall0(number: SYS) usize {15pub fn syscall0(number: SYS) u64 {
16 return asm volatile (16 return asm volatile (
17 \\ syscall 017 \\ syscall 0
18 : [ret] "={$r4}" (-> usize),18 : [ret] "={$r4}" (-> u64),
19 : [number] "{$r11}" (@intFromEnum(number)),19 : [number] "{$r11}" (@intFromEnum(number)),
20 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });20 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
21}21}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: u64) u64 {
24 return asm volatile (24 return asm volatile (
25 \\ syscall 025 \\ syscall 0
26 : [ret] "={$r4}" (-> usize),26 : [ret] "={$r4}" (-> u64),
27 : [number] "{$r11}" (@intFromEnum(number)),27 : [number] "{$r11}" (@intFromEnum(number)),
28 [arg1] "{$r4}" (arg1),28 [arg1] "{$r4}" (arg1),
29 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });29 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
30}30}
3131
32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {32pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
33 return asm volatile (33 return asm volatile (
34 \\ syscall 034 \\ syscall 0
35 : [ret] "={$r4}" (-> usize),35 : [ret] "={$r4}" (-> u64),
36 : [number] "{$r11}" (@intFromEnum(number)),36 : [number] "{$r11}" (@intFromEnum(number)),
37 [arg1] "{$r4}" (arg1),37 [arg1] "{$r4}" (arg1),
38 [arg2] "{$r5}" (arg2),38 [arg2] "{$r5}" (arg2),
39 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });39 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
40}40}
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 {
43 return asm volatile (43 return asm volatile (
44 \\ syscall 044 \\ syscall 0
45 : [ret] "={$r4}" (-> usize),45 : [ret] "={$r4}" (-> u64),
46 : [number] "{$r11}" (@intFromEnum(number)),46 : [number] "{$r11}" (@intFromEnum(number)),
47 [arg1] "{$r4}" (arg1),47 [arg1] "{$r4}" (arg1),
48 [arg2] "{$r5}" (arg2),48 [arg2] "{$r5}" (arg2),
...@@ -50,10 +50,10 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -50,10 +50,10 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
50 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });50 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
51}51}
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 {
54 return asm volatile (54 return asm volatile (
55 \\ syscall 055 \\ syscall 0
56 : [ret] "={$r4}" (-> usize),56 : [ret] "={$r4}" (-> u64),
57 : [number] "{$r11}" (@intFromEnum(number)),57 : [number] "{$r11}" (@intFromEnum(number)),
58 [arg1] "{$r4}" (arg1),58 [arg1] "{$r4}" (arg1),
59 [arg2] "{$r5}" (arg2),59 [arg2] "{$r5}" (arg2),
...@@ -62,10 +62,10 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -62,10 +62,10 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
62 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });62 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
63}63}
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 {
66 return asm volatile (66 return asm volatile (
67 \\ syscall 067 \\ syscall 0
68 : [ret] "={$r4}" (-> usize),68 : [ret] "={$r4}" (-> u64),
69 : [number] "{$r11}" (@intFromEnum(number)),69 : [number] "{$r11}" (@intFromEnum(number)),
70 [arg1] "{$r4}" (arg1),70 [arg1] "{$r4}" (arg1),
71 [arg2] "{$r5}" (arg2),71 [arg2] "{$r5}" (arg2),
...@@ -77,16 +77,16 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -77,16 +77,16 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7777
78pub fn syscall6(78pub fn syscall6(
79 number: SYS,79 number: SYS,
80 arg1: usize,80 arg1: u64,
81 arg2: usize,81 arg2: u64,
82 arg3: usize,82 arg3: u64,
83 arg4: usize,83 arg4: u64,
84 arg5: usize,84 arg5: u64,
85 arg6: usize,85 arg6: u64,
86) usize {86) u64 {
87 return asm volatile (87 return asm volatile (
88 \\ syscall 088 \\ syscall 0
89 : [ret] "={$r4}" (-> usize),89 : [ret] "={$r4}" (-> u64),
90 : [number] "{$r11}" (@intFromEnum(number)),90 : [number] "{$r11}" (@intFromEnum(number)),
91 [arg1] "{$r4}" (arg1),91 [arg1] "{$r4}" (arg1),
92 [arg2] "{$r5}" (arg2),92 [arg2] "{$r5}" (arg2),
...@@ -97,7 +97,7 @@ pub fn syscall6(...@@ -97,7 +97,7 @@ pub fn syscall6(
97 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });97 : .{ .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r16 = true, .r17 = true, .r18 = true, .r19 = true, .r20 = true, .memory = true });
98}98}
9999
100pub fn clone() callconv(.naked) usize {100pub fn clone() callconv(.naked) u64 {
101 // __clone(func, stack, flags, arg, ptid, tls, ctid)101 // __clone(func, stack, flags, arg, ptid, tls, ctid)
102 // a0, a1, a2, a3, a4, a5, a6102 // a0, a1, a2, a3, a4, a5, a6
103 // sys_clone(flags, stack, ptid, ctid, tls)103 // sys_clone(flags, stack, ptid, ctid, tls)
lib/std/os/linux/m68k.zig+21-21
...@@ -11,33 +11,33 @@ const sockaddr = linux.sockaddr;...@@ -11,33 +11,33 @@ const sockaddr = linux.sockaddr;
11const socklen_t = linux.socklen_t;11const socklen_t = linux.socklen_t;
12const timespec = std.os.linux.timespec;12const timespec = std.os.linux.timespec;
1313
14pub fn syscall0(number: SYS) usize {14pub fn syscall0(number: SYS) u32 {
15 return asm volatile ("trap #0"15 return asm volatile ("trap #0"
16 : [ret] "={d0}" (-> usize),16 : [ret] "={d0}" (-> u32),
17 : [number] "{d0}" (@intFromEnum(number)),17 : [number] "{d0}" (@intFromEnum(number)),
18 : .{ .memory = true });18 : .{ .memory = true });
19}19}
2020
21pub fn syscall1(number: SYS, arg1: usize) usize {21pub fn syscall1(number: SYS, arg1: u32) u32 {
22 return asm volatile ("trap #0"22 return asm volatile ("trap #0"
23 : [ret] "={d0}" (-> usize),23 : [ret] "={d0}" (-> u32),
24 : [number] "{d0}" (@intFromEnum(number)),24 : [number] "{d0}" (@intFromEnum(number)),
25 [arg1] "{d1}" (arg1),25 [arg1] "{d1}" (arg1),
26 : .{ .memory = true });26 : .{ .memory = true });
27}27}
2828
29pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {29pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
30 return asm volatile ("trap #0"30 return asm volatile ("trap #0"
31 : [ret] "={d0}" (-> usize),31 : [ret] "={d0}" (-> u32),
32 : [number] "{d0}" (@intFromEnum(number)),32 : [number] "{d0}" (@intFromEnum(number)),
33 [arg1] "{d1}" (arg1),33 [arg1] "{d1}" (arg1),
34 [arg2] "{d2}" (arg2),34 [arg2] "{d2}" (arg2),
35 : .{ .memory = true });35 : .{ .memory = true });
36}36}
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 {
39 return asm volatile ("trap #0"39 return asm volatile ("trap #0"
40 : [ret] "={d0}" (-> usize),40 : [ret] "={d0}" (-> u32),
41 : [number] "{d0}" (@intFromEnum(number)),41 : [number] "{d0}" (@intFromEnum(number)),
42 [arg1] "{d1}" (arg1),42 [arg1] "{d1}" (arg1),
43 [arg2] "{d2}" (arg2),43 [arg2] "{d2}" (arg2),
...@@ -45,9 +45,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -45,9 +45,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
45 : .{ .memory = true });45 : .{ .memory = true });
46}46}
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 {
49 return asm volatile ("trap #0"49 return asm volatile ("trap #0"
50 : [ret] "={d0}" (-> usize),50 : [ret] "={d0}" (-> u32),
51 : [number] "{d0}" (@intFromEnum(number)),51 : [number] "{d0}" (@intFromEnum(number)),
52 [arg1] "{d1}" (arg1),52 [arg1] "{d1}" (arg1),
53 [arg2] "{d2}" (arg2),53 [arg2] "{d2}" (arg2),
...@@ -56,9 +56,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -56,9 +56,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
56 : .{ .memory = true });56 : .{ .memory = true });
57}57}
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 {
60 return asm volatile ("trap #0"60 return asm volatile ("trap #0"
61 : [ret] "={d0}" (-> usize),61 : [ret] "={d0}" (-> u32),
62 : [number] "{d0}" (@intFromEnum(number)),62 : [number] "{d0}" (@intFromEnum(number)),
63 [arg1] "{d1}" (arg1),63 [arg1] "{d1}" (arg1),
64 [arg2] "{d2}" (arg2),64 [arg2] "{d2}" (arg2),
...@@ -70,15 +70,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -70,15 +70,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7070
71pub fn syscall6(71pub fn syscall6(
72 number: SYS,72 number: SYS,
73 arg1: usize,73 arg1: u32,
74 arg2: usize,74 arg2: u32,
75 arg3: usize,75 arg3: u32,
76 arg4: usize,76 arg4: u32,
77 arg5: usize,77 arg5: u32,
78 arg6: usize,78 arg6: u32,
79) usize {79) u32 {
80 return asm volatile ("trap #0"80 return asm volatile ("trap #0"
81 : [ret] "={d0}" (-> usize),81 : [ret] "={d0}" (-> u32),
82 : [number] "{d0}" (@intFromEnum(number)),82 : [number] "{d0}" (@intFromEnum(number)),
83 [arg1] "{d1}" (arg1),83 [arg1] "{d1}" (arg1),
84 [arg2] "{d2}" (arg2),84 [arg2] "{d2}" (arg2),
...@@ -89,7 +89,7 @@ pub fn syscall6(...@@ -89,7 +89,7 @@ pub fn syscall6(
89 : .{ .memory = true });89 : .{ .memory = true });
90}90}
9191
92pub fn clone() callconv(.naked) usize {92pub fn clone() callconv(.naked) u32 {
93 // __clone(func, stack, flags, arg, ptid, tls, ctid)93 // __clone(func, stack, flags, arg, ptid, tls, ctid)
94 // +4, +8, +12, +16, +20, +24, +2894 // +4, +8, +12, +16, +20, +24, +28
95 //95 //
lib/std/os/linux/mips.zig+32-32
...@@ -14,19 +14,19 @@ const sigset_t = linux.sigset_t;...@@ -14,19 +14,19 @@ const sigset_t = linux.sigset_t;
14const sockaddr = linux.sockaddr;14const sockaddr = linux.sockaddr;
15const timespec = linux.timespec;15const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {17pub fn syscall0(number: SYS) u32 {
18 return asm volatile (18 return asm volatile (
19 \\ syscall19 \\ syscall
20 \\ beq $7, $zero, 1f20 \\ beq $7, $zero, 1f
21 \\ blez $2, 1f21 \\ blez $2, 1f
22 \\ subu $2, $0, $222 \\ subu $2, $0, $2
23 \\ 1:23 \\ 1:
24 : [ret] "={$2}" (-> usize),24 : [ret] "={$2}" (-> u32),
25 : [number] "{$2}" (@intFromEnum(number)),25 : [number] "{$2}" (@intFromEnum(number)),
26 : .{ .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 });26 : .{ .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 });
27}27}
2828
29pub fn syscall_pipe(fd: *[2]i32) usize {29pub fn syscall_pipe(fd: *[2]i32) u32 {
30 return asm volatile (30 return asm volatile (
31 \\ .set noat31 \\ .set noat
32 \\ .set noreorder32 \\ .set noreorder
...@@ -39,47 +39,47 @@ pub fn syscall_pipe(fd: *[2]i32) usize {...@@ -39,47 +39,47 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
39 \\ sw $2, 0($4)39 \\ sw $2, 0($4)
40 \\ sw $3, 4($4)40 \\ sw $3, 4($4)
41 \\ 2:41 \\ 2:
42 : [ret] "={$2}" (-> usize),42 : [ret] "={$2}" (-> u32),
43 : [number] "{$2}" (@intFromEnum(SYS.pipe)),43 : [number] "{$2}" (@intFromEnum(SYS.pipe)),
44 [fd] "{$4}" (fd),44 [fd] "{$4}" (fd),
45 : .{ .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 });45 : .{ .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 });
46}46}
4747
48pub fn syscall1(number: SYS, arg1: usize) usize {48pub fn syscall1(number: SYS, arg1: u32) u32 {
49 return asm volatile (49 return asm volatile (
50 \\ syscall50 \\ syscall
51 \\ beq $7, $zero, 1f51 \\ beq $7, $zero, 1f
52 \\ blez $2, 1f52 \\ blez $2, 1f
53 \\ subu $2, $0, $253 \\ subu $2, $0, $2
54 \\ 1:54 \\ 1:
55 : [ret] "={$2}" (-> usize),55 : [ret] "={$2}" (-> u32),
56 : [number] "{$2}" (@intFromEnum(number)),56 : [number] "{$2}" (@intFromEnum(number)),
57 [arg1] "{$4}" (arg1),57 [arg1] "{$4}" (arg1),
58 : .{ .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 });58 : .{ .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 });
59}59}
6060
61pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {61pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
62 return asm volatile (62 return asm volatile (
63 \\ syscall63 \\ syscall
64 \\ beq $7, $zero, 1f64 \\ beq $7, $zero, 1f
65 \\ blez $2, 1f65 \\ blez $2, 1f
66 \\ subu $2, $0, $266 \\ subu $2, $0, $2
67 \\ 1:67 \\ 1:
68 : [ret] "={$2}" (-> usize),68 : [ret] "={$2}" (-> u32),
69 : [number] "{$2}" (@intFromEnum(number)),69 : [number] "{$2}" (@intFromEnum(number)),
70 [arg1] "{$4}" (arg1),70 [arg1] "{$4}" (arg1),
71 [arg2] "{$5}" (arg2),71 [arg2] "{$5}" (arg2),
72 : .{ .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 });72 : .{ .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 });
73}73}
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 {
76 return asm volatile (76 return asm volatile (
77 \\ syscall77 \\ syscall
78 \\ beq $7, $zero, 1f78 \\ beq $7, $zero, 1f
79 \\ blez $2, 1f79 \\ blez $2, 1f
80 \\ subu $2, $0, $280 \\ subu $2, $0, $2
81 \\ 1:81 \\ 1:
82 : [ret] "={$2}" (-> usize),82 : [ret] "={$2}" (-> u32),
83 : [number] "{$2}" (@intFromEnum(number)),83 : [number] "{$2}" (@intFromEnum(number)),
84 [arg1] "{$4}" (arg1),84 [arg1] "{$4}" (arg1),
85 [arg2] "{$5}" (arg2),85 [arg2] "{$5}" (arg2),
...@@ -87,14 +87,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -87,14 +87,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
87 : .{ .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 });87 : .{ .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 });
88}88}
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 {
91 return asm volatile (91 return asm volatile (
92 \\ syscall92 \\ syscall
93 \\ beq $7, $zero, 1f93 \\ beq $7, $zero, 1f
94 \\ blez $2, 1f94 \\ blez $2, 1f
95 \\ subu $2, $0, $295 \\ subu $2, $0, $2
96 \\ 1:96 \\ 1:
97 : [ret] "={$2}" (-> usize),97 : [ret] "={$2}" (-> u32),
98 : [number] "{$2}" (@intFromEnum(number)),98 : [number] "{$2}" (@intFromEnum(number)),
99 [arg1] "{$4}" (arg1),99 [arg1] "{$4}" (arg1),
100 [arg2] "{$5}" (arg2),100 [arg2] "{$5}" (arg2),
...@@ -103,7 +103,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -103,7 +103,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
103 : .{ .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 });103 : .{ .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 });
104}104}
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 {
107 return asm volatile (107 return asm volatile (
108 \\ .set noat108 \\ .set noat
109 \\ subu $sp, $sp, 24109 \\ subu $sp, $sp, 24
...@@ -114,7 +114,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -114,7 +114,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
114 \\ blez $2, 1f114 \\ blez $2, 1f
115 \\ subu $2, $0, $2115 \\ subu $2, $0, $2
116 \\ 1:116 \\ 1:
117 : [ret] "={$2}" (-> usize),117 : [ret] "={$2}" (-> u32),
118 : [number] "{$2}" (@intFromEnum(number)),118 : [number] "{$2}" (@intFromEnum(number)),
119 [arg1] "{$4}" (arg1),119 [arg1] "{$4}" (arg1),
120 [arg2] "{$5}" (arg2),120 [arg2] "{$5}" (arg2),
...@@ -129,13 +129,13 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -129,13 +129,13 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
129129
130pub fn syscall6(130pub fn syscall6(
131 number: SYS,131 number: SYS,
132 arg1: usize,132 arg1: u32,
133 arg2: usize,133 arg2: u32,
134 arg3: usize,134 arg3: u32,
135 arg4: usize,135 arg4: u32,
136 arg5: usize,136 arg5: u32,
137 arg6: usize,137 arg6: u32,
138) usize {138) u32 {
139 return asm volatile (139 return asm volatile (
140 \\ .set noat140 \\ .set noat
141 \\ subu $sp, $sp, 24141 \\ subu $sp, $sp, 24
...@@ -147,7 +147,7 @@ pub fn syscall6(...@@ -147,7 +147,7 @@ pub fn syscall6(
147 \\ blez $2, 1f147 \\ blez $2, 1f
148 \\ subu $2, $0, $2148 \\ subu $2, $0, $2
149 \\ 1:149 \\ 1:
150 : [ret] "={$2}" (-> usize),150 : [ret] "={$2}" (-> u32),
151 : [number] "{$2}" (@intFromEnum(number)),151 : [number] "{$2}" (@intFromEnum(number)),
152 [arg1] "{$4}" (arg1),152 [arg1] "{$4}" (arg1),
153 [arg2] "{$5}" (arg2),153 [arg2] "{$5}" (arg2),
...@@ -160,14 +160,14 @@ pub fn syscall6(...@@ -160,14 +160,14 @@ pub fn syscall6(
160160
161pub fn syscall7(161pub fn syscall7(
162 number: SYS,162 number: SYS,
163 arg1: usize,163 arg1: u32,
164 arg2: usize,164 arg2: u32,
165 arg3: usize,165 arg3: u32,
166 arg4: usize,166 arg4: u32,
167 arg5: usize,167 arg5: u32,
168 arg6: usize,168 arg6: u32,
169 arg7: usize,169 arg7: u32,
170) usize {170) u32 {
171 return asm volatile (171 return asm volatile (
172 \\ .set noat172 \\ .set noat
173 \\ subu $sp, $sp, 32173 \\ subu $sp, $sp, 32
...@@ -180,7 +180,7 @@ pub fn syscall7(...@@ -180,7 +180,7 @@ pub fn syscall7(
180 \\ blez $2, 1f180 \\ blez $2, 1f
181 \\ subu $2, $0, $2181 \\ subu $2, $0, $2
182 \\ 1:182 \\ 1:
183 : [ret] "={$2}" (-> usize),183 : [ret] "={$2}" (-> u32),
184 : [number] "{$2}" (@intFromEnum(number)),184 : [number] "{$2}" (@intFromEnum(number)),
185 [arg1] "{$4}" (arg1),185 [arg1] "{$4}" (arg1),
186 [arg2] "{$5}" (arg2),186 [arg2] "{$5}" (arg2),
...@@ -192,7 +192,7 @@ pub fn syscall7(...@@ -192,7 +192,7 @@ pub fn syscall7(
192 : .{ .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 });192 : .{ .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 });
193}193}
194194
195pub fn clone() callconv(.naked) usize {195pub fn clone() callconv(.naked) u32 {
196 // __clone(func, stack, flags, arg, ptid, tls, ctid)196 // __clone(func, stack, flags, arg, ptid, tls, ctid)
197 // 3, 4, 5, 6, 7, 8, 9197 // 3, 4, 5, 6, 7, 8, 9
198 //198 //
lib/std/os/linux/mips64.zig+32-32
...@@ -14,19 +14,19 @@ const sigset_t = linux.sigset_t;...@@ -14,19 +14,19 @@ const sigset_t = linux.sigset_t;
14const sockaddr = linux.sockaddr;14const sockaddr = linux.sockaddr;
15const timespec = linux.timespec;15const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {17pub fn syscall0(number: SYS) u64 {
18 return asm volatile (18 return asm volatile (
19 \\ syscall19 \\ syscall
20 \\ beq $7, $zero, 1f20 \\ beq $7, $zero, 1f
21 \\ blez $2, 1f21 \\ blez $2, 1f
22 \\ dsubu $2, $0, $222 \\ dsubu $2, $0, $2
23 \\ 1:23 \\ 1:
24 : [ret] "={$2}" (-> usize),24 : [ret] "={$2}" (-> u64),
25 : [number] "{$2}" (@intFromEnum(number)),25 : [number] "{$2}" (@intFromEnum(number)),
26 : .{ .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 });26 : .{ .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 });
27}27}
2828
29pub fn syscall_pipe(fd: *[2]i32) usize {29pub fn syscall_pipe(fd: *[2]i32) u64 {
30 return asm volatile (30 return asm volatile (
31 \\ .set noat31 \\ .set noat
32 \\ .set noreorder32 \\ .set noreorder
...@@ -39,13 +39,13 @@ pub fn syscall_pipe(fd: *[2]i32) usize {...@@ -39,13 +39,13 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
39 \\ sw $2, 0($4)39 \\ sw $2, 0($4)
40 \\ sw $3, 4($4)40 \\ sw $3, 4($4)
41 \\ 2:41 \\ 2:
42 : [ret] "={$2}" (-> usize),42 : [ret] "={$2}" (-> u64),
43 : [number] "{$2}" (@intFromEnum(SYS.pipe)),43 : [number] "{$2}" (@intFromEnum(SYS.pipe)),
44 [fd] "{$4}" (fd),44 [fd] "{$4}" (fd),
45 : .{ .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 });45 : .{ .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 });
46}46}
4747
48pub fn syscall1(number: SYS, arg1: usize) usize {48pub fn syscall1(number: SYS, arg1: u64) u64 {
49 return asm volatile (49 return asm volatile (
50 \\ syscall50 \\ syscall
51 \\ beq $7, $zero, 1f51 \\ beq $7, $zero, 1f
...@@ -53,34 +53,34 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -53,34 +53,34 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
53 \\ nop53 \\ nop
54 \\ dsubu $2, $0, $254 \\ dsubu $2, $0, $2
55 \\ 1:55 \\ 1:
56 : [ret] "={$2}" (-> usize),56 : [ret] "={$2}" (-> u64),
57 : [number] "{$2}" (@intFromEnum(number)),57 : [number] "{$2}" (@intFromEnum(number)),
58 [arg1] "{$4}" (arg1),58 [arg1] "{$4}" (arg1),
59 : .{ .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 });59 : .{ .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 });
60}60}
6161
62pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {62pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
63 return asm volatile (63 return asm volatile (
64 \\ syscall64 \\ syscall
65 \\ beq $7, $zero, 1f65 \\ beq $7, $zero, 1f
66 \\ blez $2, 1f66 \\ blez $2, 1f
67 \\ dsubu $2, $0, $267 \\ dsubu $2, $0, $2
68 \\ 1:68 \\ 1:
69 : [ret] "={$2}" (-> usize),69 : [ret] "={$2}" (-> u64),
70 : [number] "{$2}" (@intFromEnum(number)),70 : [number] "{$2}" (@intFromEnum(number)),
71 [arg1] "{$4}" (arg1),71 [arg1] "{$4}" (arg1),
72 [arg2] "{$5}" (arg2),72 [arg2] "{$5}" (arg2),
73 : .{ .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 });73 : .{ .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 });
74}74}
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 {
77 return asm volatile (77 return asm volatile (
78 \\ syscall78 \\ syscall
79 \\ beq $7, $zero, 1f79 \\ beq $7, $zero, 1f
80 \\ blez $2, 1f80 \\ blez $2, 1f
81 \\ dsubu $2, $0, $281 \\ dsubu $2, $0, $2
82 \\ 1:82 \\ 1:
83 : [ret] "={$2}" (-> usize),83 : [ret] "={$2}" (-> u64),
84 : [number] "{$2}" (@intFromEnum(number)),84 : [number] "{$2}" (@intFromEnum(number)),
85 [arg1] "{$4}" (arg1),85 [arg1] "{$4}" (arg1),
86 [arg2] "{$5}" (arg2),86 [arg2] "{$5}" (arg2),
...@@ -88,14 +88,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -88,14 +88,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
88 : .{ .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 });88 : .{ .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 });
89}89}
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 {
92 return asm volatile (92 return asm volatile (
93 \\ syscall93 \\ syscall
94 \\ beq $7, $zero, 1f94 \\ beq $7, $zero, 1f
95 \\ blez $2, 1f95 \\ blez $2, 1f
96 \\ dsubu $2, $0, $296 \\ dsubu $2, $0, $2
97 \\ 1:97 \\ 1:
98 : [ret] "={$2}" (-> usize),98 : [ret] "={$2}" (-> u64),
99 : [number] "{$2}" (@intFromEnum(number)),99 : [number] "{$2}" (@intFromEnum(number)),
100 [arg1] "{$4}" (arg1),100 [arg1] "{$4}" (arg1),
101 [arg2] "{$5}" (arg2),101 [arg2] "{$5}" (arg2),
...@@ -104,14 +104,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -104,14 +104,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
104 : .{ .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 });104 : .{ .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 });
105}105}
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 {
108 return asm volatile (108 return asm volatile (
109 \\ syscall109 \\ syscall
110 \\ beq $7, $zero, 1f110 \\ beq $7, $zero, 1f
111 \\ blez $2, 1f111 \\ blez $2, 1f
112 \\ dsubu $2, $0, $2112 \\ dsubu $2, $0, $2
113 \\ 1:113 \\ 1:
114 : [ret] "={$2}" (-> usize),114 : [ret] "={$2}" (-> u64),
115 : [number] "{$2}" (@intFromEnum(number)),115 : [number] "{$2}" (@intFromEnum(number)),
116 [arg1] "{$4}" (arg1),116 [arg1] "{$4}" (arg1),
117 [arg2] "{$5}" (arg2),117 [arg2] "{$5}" (arg2),
...@@ -123,20 +123,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -123,20 +123,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
123123
124pub fn syscall6(124pub fn syscall6(
125 number: SYS,125 number: SYS,
126 arg1: usize,126 arg1: u64,
127 arg2: usize,127 arg2: u64,
128 arg3: usize,128 arg3: u64,
129 arg4: usize,129 arg4: u64,
130 arg5: usize,130 arg5: u64,
131 arg6: usize,131 arg6: u64,
132) usize {132) u64 {
133 return asm volatile (133 return asm volatile (
134 \\ syscall134 \\ syscall
135 \\ beq $7, $zero, 1f135 \\ beq $7, $zero, 1f
136 \\ blez $2, 1f136 \\ blez $2, 1f
137 \\ dsubu $2, $0, $2137 \\ dsubu $2, $0, $2
138 \\ 1:138 \\ 1:
139 : [ret] "={$2}" (-> usize),139 : [ret] "={$2}" (-> u64),
140 : [number] "{$2}" (@intFromEnum(number)),140 : [number] "{$2}" (@intFromEnum(number)),
141 [arg1] "{$4}" (arg1),141 [arg1] "{$4}" (arg1),
142 [arg2] "{$5}" (arg2),142 [arg2] "{$5}" (arg2),
...@@ -149,21 +149,21 @@ pub fn syscall6(...@@ -149,21 +149,21 @@ pub fn syscall6(
149149
150pub fn syscall7(150pub fn syscall7(
151 number: SYS,151 number: SYS,
152 arg1: usize,152 arg1: u64,
153 arg2: usize,153 arg2: u64,
154 arg3: usize,154 arg3: u64,
155 arg4: usize,155 arg4: u64,
156 arg5: usize,156 arg5: u64,
157 arg6: usize,157 arg6: u64,
158 arg7: usize,158 arg7: u64,
159) usize {159) u64 {
160 return asm volatile (160 return asm volatile (
161 \\ syscall161 \\ syscall
162 \\ beq $7, $zero, 1f162 \\ beq $7, $zero, 1f
163 \\ blez $2, 1f163 \\ blez $2, 1f
164 \\ dsubu $2, $0, $2164 \\ dsubu $2, $0, $2
165 \\ 1:165 \\ 1:
166 : [ret] "={$2}" (-> usize),166 : [ret] "={$2}" (-> u64),
167 : [number] "{$2}" (@intFromEnum(number)),167 : [number] "{$2}" (@intFromEnum(number)),
168 [arg1] "{$4}" (arg1),168 [arg1] "{$4}" (arg1),
169 [arg2] "{$5}" (arg2),169 [arg2] "{$5}" (arg2),
...@@ -175,7 +175,7 @@ pub fn syscall7(...@@ -175,7 +175,7 @@ pub fn syscall7(
175 : .{ .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 });175 : .{ .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 });
176}176}
177177
178pub fn clone() callconv(.naked) usize {178pub fn clone() callconv(.naked) u64 {
179 // __clone(func, stack, flags, arg, ptid, tls, ctid)179 // __clone(func, stack, flags, arg, ptid, tls, ctid)
180 // 3, 4, 5, 6, 7, 8, 9180 // 3, 4, 5, 6, 7, 8, 9
181 //181 //
lib/std/os/linux/powerpc.zig+44-44
...@@ -14,48 +14,48 @@ const sigset_t = linux.sigset_t;...@@ -14,48 +14,48 @@ const sigset_t = linux.sigset_t;
14const sockaddr = linux.sockaddr;14const sockaddr = linux.sockaddr;
15const timespec = linux.timespec;15const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {17pub fn syscall0(number: SYS) u32 {
18 // r0 is both an input register and a clobber. musl and glibc achieve this with18 // r0 is both an input register and a clobber. musl and glibc achieve this with
19 // a "+" constraint, which isn't supported in Zig, so instead we separately list19 // a "+" constraint, which isn't supported in Zig, so instead we separately list
20 // r0 as both an input and an output. (Listing it as an input and a clobber would20 // r0 as both an input and an output. (Listing it as an input and a clobber would
21 // cause the C backend to emit invalid code; see #25209.)21 // cause the C backend to emit invalid code; see #25209.)
22 var r0_out: usize = undefined;22 var r0_out: u32 = undefined;
23 return asm volatile (23 return asm volatile (
24 \\ sc24 \\ sc
25 \\ bns+ 1f25 \\ bns+ 1f
26 \\ neg 3, 326 \\ neg 3, 3
27 \\ 1:27 \\ 1:
28 : [ret] "={r3}" (-> usize),28 : [ret] "={r3}" (-> u32),
29 [r0_out] "={r0}" (r0_out),29 [r0_out] "={r0}" (r0_out),
30 : [number] "{r0}" (@intFromEnum(number)),30 : [number] "{r0}" (@intFromEnum(number)),
31 : .{ .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 });31 : .{ .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 });
32}32}
3333
34pub fn syscall1(number: SYS, arg1: usize) usize {34pub fn syscall1(number: SYS, arg1: u32) u32 {
35 // r0 is both an input and a clobber.35 // r0 is both an input and a clobber.
36 var r0_out: usize = undefined;36 var r0_out: u32 = undefined;
37 return asm volatile (37 return asm volatile (
38 \\ sc38 \\ sc
39 \\ bns+ 1f39 \\ bns+ 1f
40 \\ neg 3, 340 \\ neg 3, 3
41 \\ 1:41 \\ 1:
42 : [ret] "={r3}" (-> usize),42 : [ret] "={r3}" (-> u32),
43 [r0_out] "={r0}" (r0_out),43 [r0_out] "={r0}" (r0_out),
44 : [number] "{r0}" (@intFromEnum(number)),44 : [number] "{r0}" (@intFromEnum(number)),
45 [arg1] "{r3}" (arg1),45 [arg1] "{r3}" (arg1),
46 : .{ .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 });46 : .{ .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 });
47}47}
4848
49pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {49pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
50 // These registers are both inputs and clobbers.50 // These registers are both inputs and clobbers.
51 var r0_out: usize = undefined;51 var r0_out: u32 = undefined;
52 var r4_out: usize = undefined;52 var r4_out: u32 = undefined;
53 return asm volatile (53 return asm volatile (
54 \\ sc54 \\ sc
55 \\ bns+ 1f55 \\ bns+ 1f
56 \\ neg 3, 356 \\ neg 3, 3
57 \\ 1:57 \\ 1:
58 : [ret] "={r3}" (-> usize),58 : [ret] "={r3}" (-> u32),
59 [r0_out] "={r0}" (r0_out),59 [r0_out] "={r0}" (r0_out),
60 [r4_out] "={r4}" (r4_out),60 [r4_out] "={r4}" (r4_out),
61 : [number] "{r0}" (@intFromEnum(number)),61 : [number] "{r0}" (@intFromEnum(number)),
...@@ -64,17 +64,17 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -64,17 +64,17 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
64 : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });64 : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
65}65}
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 {
68 // These registers are both inputs and clobbers.68 // These registers are both inputs and clobbers.
69 var r0_out: usize = undefined;69 var r0_out: u32 = undefined;
70 var r4_out: usize = undefined;70 var r4_out: u32 = undefined;
71 var r5_out: usize = undefined;71 var r5_out: u32 = undefined;
72 return asm volatile (72 return asm volatile (
73 \\ sc73 \\ sc
74 \\ bns+ 1f74 \\ bns+ 1f
75 \\ neg 3, 375 \\ neg 3, 3
76 \\ 1:76 \\ 1:
77 : [ret] "={r3}" (-> usize),77 : [ret] "={r3}" (-> u32),
78 [r0_out] "={r0}" (r0_out),78 [r0_out] "={r0}" (r0_out),
79 [r4_out] "={r4}" (r4_out),79 [r4_out] "={r4}" (r4_out),
80 [r5_out] "={r5}" (r5_out),80 [r5_out] "={r5}" (r5_out),
...@@ -85,18 +85,18 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -85,18 +85,18 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
85 : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });85 : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
86}86}
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 {
89 // These registers are both inputs and clobbers.89 // These registers are both inputs and clobbers.
90 var r0_out: usize = undefined;90 var r0_out: u32 = undefined;
91 var r4_out: usize = undefined;91 var r4_out: u32 = undefined;
92 var r5_out: usize = undefined;92 var r5_out: u32 = undefined;
93 var r6_out: usize = undefined;93 var r6_out: u32 = undefined;
94 return asm volatile (94 return asm volatile (
95 \\ sc95 \\ sc
96 \\ bns+ 1f96 \\ bns+ 1f
97 \\ neg 3, 397 \\ neg 3, 3
98 \\ 1:98 \\ 1:
99 : [ret] "={r3}" (-> usize),99 : [ret] "={r3}" (-> u32),
100 [r0_out] "={r0}" (r0_out),100 [r0_out] "={r0}" (r0_out),
101 [r4_out] "={r4}" (r4_out),101 [r4_out] "={r4}" (r4_out),
102 [r5_out] "={r5}" (r5_out),102 [r5_out] "={r5}" (r5_out),
...@@ -109,19 +109,19 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -109,19 +109,19 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
109 : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });109 : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
110}110}
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 {
113 // These registers are both inputs and clobbers.113 // These registers are both inputs and clobbers.
114 var r0_out: usize = undefined;114 var r0_out: u32 = undefined;
115 var r4_out: usize = undefined;115 var r4_out: u32 = undefined;
116 var r5_out: usize = undefined;116 var r5_out: u32 = undefined;
117 var r6_out: usize = undefined;117 var r6_out: u32 = undefined;
118 var r7_out: usize = undefined;118 var r7_out: u32 = undefined;
119 return asm volatile (119 return asm volatile (
120 \\ sc120 \\ sc
121 \\ bns+ 1f121 \\ bns+ 1f
122 \\ neg 3, 3122 \\ neg 3, 3
123 \\ 1:123 \\ 1:
124 : [ret] "={r3}" (-> usize),124 : [ret] "={r3}" (-> u32),
125 [r0_out] "={r0}" (r0_out),125 [r0_out] "={r0}" (r0_out),
126 [r4_out] "={r4}" (r4_out),126 [r4_out] "={r4}" (r4_out),
127 [r5_out] "={r5}" (r5_out),127 [r5_out] "={r5}" (r5_out),
...@@ -138,26 +138,26 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -138,26 +138,26 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
138138
139pub fn syscall6(139pub fn syscall6(
140 number: SYS,140 number: SYS,
141 arg1: usize,141 arg1: u32,
142 arg2: usize,142 arg2: u32,
143 arg3: usize,143 arg3: u32,
144 arg4: usize,144 arg4: u32,
145 arg5: usize,145 arg5: u32,
146 arg6: usize,146 arg6: u32,
147) usize {147) u32 {
148 // These registers are both inputs and clobbers.148 // These registers are both inputs and clobbers.
149 var r0_out: usize = undefined;149 var r0_out: u32 = undefined;
150 var r4_out: usize = undefined;150 var r4_out: u32 = undefined;
151 var r5_out: usize = undefined;151 var r5_out: u32 = undefined;
152 var r6_out: usize = undefined;152 var r6_out: u32 = undefined;
153 var r7_out: usize = undefined;153 var r7_out: u32 = undefined;
154 var r8_out: usize = undefined;154 var r8_out: u32 = undefined;
155 return asm volatile (155 return asm volatile (
156 \\ sc156 \\ sc
157 \\ bns+ 1f157 \\ bns+ 1f
158 \\ neg 3, 3158 \\ neg 3, 3
159 \\ 1:159 \\ 1:
160 : [ret] "={r3}" (-> usize),160 : [ret] "={r3}" (-> u32),
161 [r0_out] "={r0}" (r0_out),161 [r0_out] "={r0}" (r0_out),
162 [r4_out] "={r4}" (r4_out),162 [r4_out] "={r4}" (r4_out),
163 [r5_out] "={r5}" (r5_out),163 [r5_out] "={r5}" (r5_out),
...@@ -174,7 +174,7 @@ pub fn syscall6(...@@ -174,7 +174,7 @@ pub fn syscall6(
174 : .{ .memory = true, .cr0 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });174 : .{ .memory = true, .cr0 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
175}175}
176176
177pub fn clone() callconv(.naked) usize {177pub fn clone() callconv(.naked) u32 {
178 // __clone(func, stack, flags, arg, ptid, tls, ctid)178 // __clone(func, stack, flags, arg, ptid, tls, ctid)
179 // 3, 4, 5, 6, 7, 8, 9179 // 3, 4, 5, 6, 7, 8, 9
180 //180 //
...@@ -303,7 +303,7 @@ pub const Flock = extern struct {...@@ -303,7 +303,7 @@ pub const Flock = extern struct {
303303
304pub const blksize_t = i32;304pub const blksize_t = i32;
305pub const nlink_t = u32;305pub const nlink_t = u32;
306pub const time_t = isize;306pub const time_t = i32;
307pub const mode_t = u32;307pub const mode_t = u32;
308pub const off_t = i64;308pub const off_t = i64;
309pub const ino_t = u64;309pub const ino_t = u64;
lib/std/os/linux/powerpc64.zig+43-43
...@@ -14,48 +14,48 @@ const sigset_t = linux.sigset_t;...@@ -14,48 +14,48 @@ const sigset_t = linux.sigset_t;
14const sockaddr = linux.sockaddr;14const sockaddr = linux.sockaddr;
15const timespec = linux.timespec;15const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {17pub fn syscall0(number: SYS) u64 {
18 // r0 is both an input register and a clobber. musl and glibc achieve this with18 // r0 is both an input register and a clobber. musl and glibc achieve this with
19 // a "+" constraint, which isn't supported in Zig, so instead we separately list19 // a "+" constraint, which isn't supported in Zig, so instead we separately list
20 // r0 as both an input and an output. (Listing it as an input and a clobber would20 // r0 as both an input and an output. (Listing it as an input and a clobber would
21 // cause the C backend to emit invalid code; see #25209.)21 // cause the C backend to emit invalid code; see #25209.)
22 var r0_out: usize = undefined;22 var r0_out: u64 = undefined;
23 return asm volatile (23 return asm volatile (
24 \\ sc24 \\ sc
25 \\ bns+ 1f25 \\ bns+ 1f
26 \\ neg 3, 326 \\ neg 3, 3
27 \\ 1:27 \\ 1:
28 : [ret] "={r3}" (-> usize),28 : [ret] "={r3}" (-> u64),
29 [r0_out] "={r0}" (r0_out),29 [r0_out] "={r0}" (r0_out),
30 : [number] "{r0}" (@intFromEnum(number)),30 : [number] "{r0}" (@intFromEnum(number)),
31 : .{ .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 });31 : .{ .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 });
32}32}
3333
34pub fn syscall1(number: SYS, arg1: usize) usize {34pub fn syscall1(number: SYS, arg1: u64) u64 {
35 // r0 is both an input and a clobber.35 // r0 is both an input and a clobber.
36 var r0_out: usize = undefined;36 var r0_out: u64 = undefined;
37 return asm volatile (37 return asm volatile (
38 \\ sc38 \\ sc
39 \\ bns+ 1f39 \\ bns+ 1f
40 \\ neg 3, 340 \\ neg 3, 3
41 \\ 1:41 \\ 1:
42 : [ret] "={r3}" (-> usize),42 : [ret] "={r3}" (-> u64),
43 [r0_out] "={r0}" (r0_out),43 [r0_out] "={r0}" (r0_out),
44 : [number] "{r0}" (@intFromEnum(number)),44 : [number] "{r0}" (@intFromEnum(number)),
45 [arg1] "{r3}" (arg1),45 [arg1] "{r3}" (arg1),
46 : .{ .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 });46 : .{ .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 });
47}47}
4848
49pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {49pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
50 // These registers are both inputs and clobbers.50 // These registers are both inputs and clobbers.
51 var r0_out: usize = undefined;51 var r0_out: u64 = undefined;
52 var r4_out: usize = undefined;52 var r4_out: u64 = undefined;
53 return asm volatile (53 return asm volatile (
54 \\ sc54 \\ sc
55 \\ bns+ 1f55 \\ bns+ 1f
56 \\ neg 3, 356 \\ neg 3, 3
57 \\ 1:57 \\ 1:
58 : [ret] "={r3}" (-> usize),58 : [ret] "={r3}" (-> u64),
59 [r0_out] "={r0}" (r0_out),59 [r0_out] "={r0}" (r0_out),
60 [r4_out] "={r4}" (r4_out),60 [r4_out] "={r4}" (r4_out),
61 : [number] "{r0}" (@intFromEnum(number)),61 : [number] "{r0}" (@intFromEnum(number)),
...@@ -64,17 +64,17 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -64,17 +64,17 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
64 : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });64 : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
65}65}
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 {
68 // These registers are both inputs and clobbers.68 // These registers are both inputs and clobbers.
69 var r0_out: usize = undefined;69 var r0_out: u64 = undefined;
70 var r4_out: usize = undefined;70 var r4_out: u64 = undefined;
71 var r5_out: usize = undefined;71 var r5_out: u64 = undefined;
72 return asm volatile (72 return asm volatile (
73 \\ sc73 \\ sc
74 \\ bns+ 1f74 \\ bns+ 1f
75 \\ neg 3, 375 \\ neg 3, 3
76 \\ 1:76 \\ 1:
77 : [ret] "={r3}" (-> usize),77 : [ret] "={r3}" (-> u64),
78 [r0_out] "={r0}" (r0_out),78 [r0_out] "={r0}" (r0_out),
79 [r4_out] "={r4}" (r4_out),79 [r4_out] "={r4}" (r4_out),
80 [r5_out] "={r5}" (r5_out),80 [r5_out] "={r5}" (r5_out),
...@@ -85,18 +85,18 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -85,18 +85,18 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
85 : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });85 : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
86}86}
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 {
89 // These registers are both inputs and clobbers.89 // These registers are both inputs and clobbers.
90 var r0_out: usize = undefined;90 var r0_out: u64 = undefined;
91 var r4_out: usize = undefined;91 var r4_out: u64 = undefined;
92 var r5_out: usize = undefined;92 var r5_out: u64 = undefined;
93 var r6_out: usize = undefined;93 var r6_out: u64 = undefined;
94 return asm volatile (94 return asm volatile (
95 \\ sc95 \\ sc
96 \\ bns+ 1f96 \\ bns+ 1f
97 \\ neg 3, 397 \\ neg 3, 3
98 \\ 1:98 \\ 1:
99 : [ret] "={r3}" (-> usize),99 : [ret] "={r3}" (-> u64),
100 [r0_out] "={r0}" (r0_out),100 [r0_out] "={r0}" (r0_out),
101 [r4_out] "={r4}" (r4_out),101 [r4_out] "={r4}" (r4_out),
102 [r5_out] "={r5}" (r5_out),102 [r5_out] "={r5}" (r5_out),
...@@ -109,19 +109,19 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -109,19 +109,19 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
109 : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });109 : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
110}110}
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 {
113 // These registers are both inputs and clobbers.113 // These registers are both inputs and clobbers.
114 var r0_out: usize = undefined;114 var r0_out: u64 = undefined;
115 var r4_out: usize = undefined;115 var r4_out: u64 = undefined;
116 var r5_out: usize = undefined;116 var r5_out: u64 = undefined;
117 var r6_out: usize = undefined;117 var r6_out: u64 = undefined;
118 var r7_out: usize = undefined;118 var r7_out: u64 = undefined;
119 return asm volatile (119 return asm volatile (
120 \\ sc120 \\ sc
121 \\ bns+ 1f121 \\ bns+ 1f
122 \\ neg 3, 3122 \\ neg 3, 3
123 \\ 1:123 \\ 1:
124 : [ret] "={r3}" (-> usize),124 : [ret] "={r3}" (-> u64),
125 [r0_out] "={r0}" (r0_out),125 [r0_out] "={r0}" (r0_out),
126 [r4_out] "={r4}" (r4_out),126 [r4_out] "={r4}" (r4_out),
127 [r5_out] "={r5}" (r5_out),127 [r5_out] "={r5}" (r5_out),
...@@ -138,26 +138,26 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -138,26 +138,26 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
138138
139pub fn syscall6(139pub fn syscall6(
140 number: SYS,140 number: SYS,
141 arg1: usize,141 arg1: u64,
142 arg2: usize,142 arg2: u64,
143 arg3: usize,143 arg3: u64,
144 arg4: usize,144 arg4: u64,
145 arg5: usize,145 arg5: u64,
146 arg6: usize,146 arg6: u64,
147) usize {147) u64 {
148 // These registers are both inputs and clobbers.148 // These registers are both inputs and clobbers.
149 var r0_out: usize = undefined;149 var r0_out: u64 = undefined;
150 var r4_out: usize = undefined;150 var r4_out: u64 = undefined;
151 var r5_out: usize = undefined;151 var r5_out: u64 = undefined;
152 var r6_out: usize = undefined;152 var r6_out: u64 = undefined;
153 var r7_out: usize = undefined;153 var r7_out: u64 = undefined;
154 var r8_out: usize = undefined;154 var r8_out: u64 = undefined;
155 return asm volatile (155 return asm volatile (
156 \\ sc156 \\ sc
157 \\ bns+ 1f157 \\ bns+ 1f
158 \\ neg 3, 3158 \\ neg 3, 3
159 \\ 1:159 \\ 1:
160 : [ret] "={r3}" (-> usize),160 : [ret] "={r3}" (-> u64),
161 [r0_out] "={r0}" (r0_out),161 [r0_out] "={r0}" (r0_out),
162 [r4_out] "={r4}" (r4_out),162 [r4_out] "={r4}" (r4_out),
163 [r5_out] "={r5}" (r5_out),163 [r5_out] "={r5}" (r5_out),
...@@ -174,7 +174,7 @@ pub fn syscall6(...@@ -174,7 +174,7 @@ pub fn syscall6(
174 : .{ .memory = true, .cr0 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });174 : .{ .memory = true, .cr0 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
175}175}
176176
177pub fn clone() callconv(.naked) usize {177pub fn clone() callconv(.naked) u64 {
178 // __clone(func, stack, flags, arg, ptid, tls, ctid)178 // __clone(func, stack, flags, arg, ptid, tls, ctid)
179 // 3, 4, 5, 6, 7, 8, 9179 // 3, 4, 5, 6, 7, 8, 9
180 //180 //
lib/std/os/linux/riscv32.zig+22-22
...@@ -13,33 +13,33 @@ const sockaddr = linux.sockaddr;...@@ -13,33 +13,33 @@ const sockaddr = linux.sockaddr;
13const socklen_t = linux.socklen_t;13const socklen_t = linux.socklen_t;
14const timespec = std.os.linux.timespec;14const timespec = std.os.linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {16pub fn syscall0(number: SYS) u32 {
17 return asm volatile ("ecall"17 return asm volatile ("ecall"
18 : [ret] "={x10}" (-> usize),18 : [ret] "={x10}" (-> u32),
19 : [number] "{x17}" (@intFromEnum(number)),19 : [number] "{x17}" (@intFromEnum(number)),
20 : .{ .memory = true });20 : .{ .memory = true });
21}21}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: u32) u32 {
24 return asm volatile ("ecall"24 return asm volatile ("ecall"
25 : [ret] "={x10}" (-> usize),25 : [ret] "={x10}" (-> u32),
26 : [number] "{x17}" (@intFromEnum(number)),26 : [number] "{x17}" (@intFromEnum(number)),
27 [arg1] "{x10}" (arg1),27 [arg1] "{x10}" (arg1),
28 : .{ .memory = true });28 : .{ .memory = true });
29}29}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
32 return asm volatile ("ecall"32 return asm volatile ("ecall"
33 : [ret] "={x10}" (-> usize),33 : [ret] "={x10}" (-> u32),
34 : [number] "{x17}" (@intFromEnum(number)),34 : [number] "{x17}" (@intFromEnum(number)),
35 [arg1] "{x10}" (arg1),35 [arg1] "{x10}" (arg1),
36 [arg2] "{x11}" (arg2),36 [arg2] "{x11}" (arg2),
37 : .{ .memory = true });37 : .{ .memory = true });
38}38}
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 {
41 return asm volatile ("ecall"41 return asm volatile ("ecall"
42 : [ret] "={x10}" (-> usize),42 : [ret] "={x10}" (-> u32),
43 : [number] "{x17}" (@intFromEnum(number)),43 : [number] "{x17}" (@intFromEnum(number)),
44 [arg1] "{x10}" (arg1),44 [arg1] "{x10}" (arg1),
45 [arg2] "{x11}" (arg2),45 [arg2] "{x11}" (arg2),
...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 : .{ .memory = true });47 : .{ .memory = true });
48}48}
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 {
51 return asm volatile ("ecall"51 return asm volatile ("ecall"
52 : [ret] "={x10}" (-> usize),52 : [ret] "={x10}" (-> u32),
53 : [number] "{x17}" (@intFromEnum(number)),53 : [number] "{x17}" (@intFromEnum(number)),
54 [arg1] "{x10}" (arg1),54 [arg1] "{x10}" (arg1),
55 [arg2] "{x11}" (arg2),55 [arg2] "{x11}" (arg2),
...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
58 : .{ .memory = true });58 : .{ .memory = true });
59}59}
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 {
62 return asm volatile ("ecall"62 return asm volatile ("ecall"
63 : [ret] "={x10}" (-> usize),63 : [ret] "={x10}" (-> u32),
64 : [number] "{x17}" (@intFromEnum(number)),64 : [number] "{x17}" (@intFromEnum(number)),
65 [arg1] "{x10}" (arg1),65 [arg1] "{x10}" (arg1),
66 [arg2] "{x11}" (arg2),66 [arg2] "{x11}" (arg2),
...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
73pub fn syscall6(73pub fn syscall6(
74 number: SYS,74 number: SYS,
75 arg1: usize,75 arg1: u32,
76 arg2: usize,76 arg2: u32,
77 arg3: usize,77 arg3: u32,
78 arg4: usize,78 arg4: u32,
79 arg5: usize,79 arg5: u32,
80 arg6: usize,80 arg6: u32,
81) usize {81) u32 {
82 return asm volatile ("ecall"82 return asm volatile ("ecall"
83 : [ret] "={x10}" (-> usize),83 : [ret] "={x10}" (-> u32),
84 : [number] "{x17}" (@intFromEnum(number)),84 : [number] "{x17}" (@intFromEnum(number)),
85 [arg1] "{x10}" (arg1),85 [arg1] "{x10}" (arg1),
86 [arg2] "{x11}" (arg2),86 [arg2] "{x11}" (arg2),
...@@ -91,7 +91,7 @@ pub fn syscall6(...@@ -91,7 +91,7 @@ pub fn syscall6(
91 : .{ .memory = true });91 : .{ .memory = true });
92}92}
9393
94pub fn clone() callconv(.naked) usize {94pub fn clone() callconv(.naked) u32 {
95 // __clone(func, stack, flags, arg, ptid, tls, ctid)95 // __clone(func, stack, flags, arg, ptid, tls, ctid)
96 // a0, a1, a2, a3, a4, a5, a696 // a0, a1, a2, a3, a4, a5, a6
97 //97 //
...@@ -186,7 +186,7 @@ pub const Stat = extern struct {...@@ -186,7 +186,7 @@ pub const Stat = extern struct {
186 uid: uid_t,186 uid: uid_t,
187 gid: gid_t,187 gid: gid_t,
188 rdev: dev_t,188 rdev: dev_t,
189 __pad: usize,189 __pad: u32,
190 size: off_t,190 size: off_t,
191 blksize: blksize_t,191 blksize: blksize_t,
192 __pad2: i32,192 __pad2: i32,
lib/std/os/linux/riscv64.zig+22-22
...@@ -13,33 +13,33 @@ const sockaddr = linux.sockaddr;...@@ -13,33 +13,33 @@ const sockaddr = linux.sockaddr;
13const socklen_t = linux.socklen_t;13const socklen_t = linux.socklen_t;
14const timespec = std.os.linux.timespec;14const timespec = std.os.linux.timespec;
1515
16pub fn syscall0(number: SYS) usize {16pub fn syscall0(number: SYS) u64 {
17 return asm volatile ("ecall"17 return asm volatile ("ecall"
18 : [ret] "={x10}" (-> usize),18 : [ret] "={x10}" (-> u64),
19 : [number] "{x17}" (@intFromEnum(number)),19 : [number] "{x17}" (@intFromEnum(number)),
20 : .{ .memory = true });20 : .{ .memory = true });
21}21}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: u64) u64 {
24 return asm volatile ("ecall"24 return asm volatile ("ecall"
25 : [ret] "={x10}" (-> usize),25 : [ret] "={x10}" (-> u64),
26 : [number] "{x17}" (@intFromEnum(number)),26 : [number] "{x17}" (@intFromEnum(number)),
27 [arg1] "{x10}" (arg1),27 [arg1] "{x10}" (arg1),
28 : .{ .memory = true });28 : .{ .memory = true });
29}29}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
32 return asm volatile ("ecall"32 return asm volatile ("ecall"
33 : [ret] "={x10}" (-> usize),33 : [ret] "={x10}" (-> u64),
34 : [number] "{x17}" (@intFromEnum(number)),34 : [number] "{x17}" (@intFromEnum(number)),
35 [arg1] "{x10}" (arg1),35 [arg1] "{x10}" (arg1),
36 [arg2] "{x11}" (arg2),36 [arg2] "{x11}" (arg2),
37 : .{ .memory = true });37 : .{ .memory = true });
38}38}
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 {
41 return asm volatile ("ecall"41 return asm volatile ("ecall"
42 : [ret] "={x10}" (-> usize),42 : [ret] "={x10}" (-> u64),
43 : [number] "{x17}" (@intFromEnum(number)),43 : [number] "{x17}" (@intFromEnum(number)),
44 [arg1] "{x10}" (arg1),44 [arg1] "{x10}" (arg1),
45 [arg2] "{x11}" (arg2),45 [arg2] "{x11}" (arg2),
...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 : .{ .memory = true });47 : .{ .memory = true });
48}48}
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 {
51 return asm volatile ("ecall"51 return asm volatile ("ecall"
52 : [ret] "={x10}" (-> usize),52 : [ret] "={x10}" (-> u64),
53 : [number] "{x17}" (@intFromEnum(number)),53 : [number] "{x17}" (@intFromEnum(number)),
54 [arg1] "{x10}" (arg1),54 [arg1] "{x10}" (arg1),
55 [arg2] "{x11}" (arg2),55 [arg2] "{x11}" (arg2),
...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
58 : .{ .memory = true });58 : .{ .memory = true });
59}59}
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 {
62 return asm volatile ("ecall"62 return asm volatile ("ecall"
63 : [ret] "={x10}" (-> usize),63 : [ret] "={x10}" (-> u64),
64 : [number] "{x17}" (@intFromEnum(number)),64 : [number] "{x17}" (@intFromEnum(number)),
65 [arg1] "{x10}" (arg1),65 [arg1] "{x10}" (arg1),
66 [arg2] "{x11}" (arg2),66 [arg2] "{x11}" (arg2),
...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,15 +72,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7272
73pub fn syscall6(73pub fn syscall6(
74 number: SYS,74 number: SYS,
75 arg1: usize,75 arg1: u64,
76 arg2: usize,76 arg2: u64,
77 arg3: usize,77 arg3: u64,
78 arg4: usize,78 arg4: u64,
79 arg5: usize,79 arg5: u64,
80 arg6: usize,80 arg6: u64,
81) usize {81) u64 {
82 return asm volatile ("ecall"82 return asm volatile ("ecall"
83 : [ret] "={x10}" (-> usize),83 : [ret] "={x10}" (-> u64),
84 : [number] "{x17}" (@intFromEnum(number)),84 : [number] "{x17}" (@intFromEnum(number)),
85 [arg1] "{x10}" (arg1),85 [arg1] "{x10}" (arg1),
86 [arg2] "{x11}" (arg2),86 [arg2] "{x11}" (arg2),
...@@ -91,7 +91,7 @@ pub fn syscall6(...@@ -91,7 +91,7 @@ pub fn syscall6(
91 : .{ .memory = true });91 : .{ .memory = true });
92}92}
9393
94pub fn clone() callconv(.naked) usize {94pub fn clone() callconv(.naked) u64 {
95 // __clone(func, stack, flags, arg, ptid, tls, ctid)95 // __clone(func, stack, flags, arg, ptid, tls, ctid)
96 // a0, a1, a2, a3, a4, a5, a696 // a0, a1, a2, a3, a4, a5, a6
97 //97 //
...@@ -186,7 +186,7 @@ pub const Stat = extern struct {...@@ -186,7 +186,7 @@ pub const Stat = extern struct {
186 uid: uid_t,186 uid: uid_t,
187 gid: gid_t,187 gid: gid_t,
188 rdev: dev_t,188 rdev: dev_t,
189 __pad: usize,189 __pad: u64,
190 size: off_t,190 size: off_t,
191 blksize: blksize_t,191 blksize: blksize_t,
192 __pad2: i32,192 __pad2: i32,
lib/std/os/linux/s390x.zig+15-15
...@@ -13,33 +13,33 @@ const timespec = std.os.linux.timespec;...@@ -13,33 +13,33 @@ const timespec = std.os.linux.timespec;
13const stack_t = std.os.linux.stack_t;13const stack_t = std.os.linux.stack_t;
14const sigset_t = std.os.linux.sigset_t;14const sigset_t = std.os.linux.sigset_t;
1515
16pub fn syscall0(number: SYS) usize {16pub fn syscall0(number: SYS) u64 {
17 return asm volatile ("svc 0"17 return asm volatile ("svc 0"
18 : [ret] "={r2}" (-> usize),18 : [ret] "={r2}" (-> u64),
19 : [number] "{r1}" (@intFromEnum(number)),19 : [number] "{r1}" (@intFromEnum(number)),
20 : .{ .memory = true });20 : .{ .memory = true });
21}21}
2222
23pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: u64) u64 {
24 return asm volatile ("svc 0"24 return asm volatile ("svc 0"
25 : [ret] "={r2}" (-> usize),25 : [ret] "={r2}" (-> u64),
26 : [number] "{r1}" (@intFromEnum(number)),26 : [number] "{r1}" (@intFromEnum(number)),
27 [arg1] "{r2}" (arg1),27 [arg1] "{r2}" (arg1),
28 : .{ .memory = true });28 : .{ .memory = true });
29}29}
3030
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
32 return asm volatile ("svc 0"32 return asm volatile ("svc 0"
33 : [ret] "={r2}" (-> usize),33 : [ret] "={r2}" (-> u64),
34 : [number] "{r1}" (@intFromEnum(number)),34 : [number] "{r1}" (@intFromEnum(number)),
35 [arg1] "{r2}" (arg1),35 [arg1] "{r2}" (arg1),
36 [arg2] "{r3}" (arg2),36 [arg2] "{r3}" (arg2),
37 : .{ .memory = true });37 : .{ .memory = true });
38}38}
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 {
41 return asm volatile ("svc 0"41 return asm volatile ("svc 0"
42 : [ret] "={r2}" (-> usize),42 : [ret] "={r2}" (-> u64),
43 : [number] "{r1}" (@intFromEnum(number)),43 : [number] "{r1}" (@intFromEnum(number)),
44 [arg1] "{r2}" (arg1),44 [arg1] "{r2}" (arg1),
45 [arg2] "{r3}" (arg2),45 [arg2] "{r3}" (arg2),
...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,9 +47,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 : .{ .memory = true });47 : .{ .memory = true });
48}48}
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 {
51 return asm volatile ("svc 0"51 return asm volatile ("svc 0"
52 : [ret] "={r2}" (-> usize),52 : [ret] "={r2}" (-> u64),
53 : [number] "{r1}" (@intFromEnum(number)),53 : [number] "{r1}" (@intFromEnum(number)),
54 [arg1] "{r2}" (arg1),54 [arg1] "{r2}" (arg1),
55 [arg2] "{r3}" (arg2),55 [arg2] "{r3}" (arg2),
...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -58,9 +58,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
58 : .{ .memory = true });58 : .{ .memory = true });
59}59}
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 {
62 return asm volatile ("svc 0"62 return asm volatile ("svc 0"
63 : [ret] "={r2}" (-> usize),63 : [ret] "={r2}" (-> u64),
64 : [number] "{r1}" (@intFromEnum(number)),64 : [number] "{r1}" (@intFromEnum(number)),
65 [arg1] "{r2}" (arg1),65 [arg1] "{r2}" (arg1),
66 [arg2] "{r3}" (arg2),66 [arg2] "{r3}" (arg2),
...@@ -70,9 +70,9 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -70,9 +70,9 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
70 : .{ .memory = true });70 : .{ .memory = true });
71}71}
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 {
74 return asm volatile ("svc 0"74 return asm volatile ("svc 0"
75 : [ret] "={r2}" (-> usize),75 : [ret] "={r2}" (-> u64),
76 : [number] "{r1}" (@intFromEnum(number)),76 : [number] "{r1}" (@intFromEnum(number)),
77 [arg1] "{r2}" (arg1),77 [arg1] "{r2}" (arg1),
78 [arg2] "{r3}" (arg2),78 [arg2] "{r3}" (arg2),
...@@ -83,7 +83,7 @@ pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -83,7 +83,7 @@ pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
83 : .{ .memory = true });83 : .{ .memory = true });
84}84}
8585
86pub fn clone() callconv(.naked) usize {86pub fn clone() callconv(.naked) u64 {
87 asm volatile (87 asm volatile (
88 \\# int clone(88 \\# int clone(
89 \\# fn, a = r289 \\# fn, a = r2
lib/std/os/linux/sparc64.zig+29-29
...@@ -15,7 +15,7 @@ const iovec = std.posix.iovec;...@@ -15,7 +15,7 @@ const iovec = std.posix.iovec;
15const iovec_const = std.posix.iovec_const;15const iovec_const = std.posix.iovec_const;
16const timespec = linux.timespec;16const timespec = linux.timespec;
1717
18pub fn syscall_pipe(fd: *[2]i32) usize {18pub fn syscall_pipe(fd: *[2]i32) u64 {
19 return asm volatile (19 return asm volatile (
20 \\ mov %[arg], %%g320 \\ mov %[arg], %%g3
21 \\ t 0x6d21 \\ t 0x6d
...@@ -29,13 +29,13 @@ pub fn syscall_pipe(fd: *[2]i32) usize {...@@ -29,13 +29,13 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
29 \\ st %%o1, [%%g3+4]29 \\ st %%o1, [%%g3+4]
30 \\ clr %%o030 \\ clr %%o0
31 \\2:31 \\2:
32 : [ret] "={o0}" (-> usize),32 : [ret] "={o0}" (-> u64),
33 : [number] "{g1}" (@intFromEnum(SYS.pipe)),33 : [number] "{g1}" (@intFromEnum(SYS.pipe)),
34 [arg] "r" (fd),34 [arg] "r" (fd),
35 : .{ .memory = true, .g3 = true });35 : .{ .memory = true, .g3 = true });
36}36}
3737
38pub fn syscall_fork() usize {38pub fn syscall_fork() u64 {
39 // Linux/sparc64 fork() returns two values in %o0 and %o1:39 // Linux/sparc64 fork() returns two values in %o0 and %o1:
40 // - On the parent's side, %o0 is the child's PID and %o1 is 0.40 // - On the parent's side, %o0 is the child's PID and %o1 is 0.
41 // - On the child's side, %o0 is the parent's PID and %o1 is 1.41 // - On the child's side, %o0 is the parent's PID and %o1 is 1.
...@@ -52,58 +52,58 @@ pub fn syscall_fork() usize {...@@ -52,58 +52,58 @@ pub fn syscall_fork() usize {
52 \\ dec %%o152 \\ dec %%o1
53 \\ and %%o1, %%o0, %%o053 \\ and %%o1, %%o0, %%o0
54 \\ 2:54 \\ 2:
55 : [ret] "={o0}" (-> usize),55 : [ret] "={o0}" (-> u64),
56 : [number] "{g1}" (@intFromEnum(SYS.fork)),56 : [number] "{g1}" (@intFromEnum(SYS.fork)),
57 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });57 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
58}58}
5959
60pub fn syscall0(number: SYS) usize {60pub fn syscall0(number: SYS) u64 {
61 return asm volatile (61 return asm volatile (
62 \\ t 0x6d62 \\ t 0x6d
63 \\ bcc,pt %%xcc, 1f63 \\ bcc,pt %%xcc, 1f
64 \\ nop64 \\ nop
65 \\ neg %%o065 \\ neg %%o0
66 \\ 1:66 \\ 1:
67 : [ret] "={o0}" (-> usize),67 : [ret] "={o0}" (-> u64),
68 : [number] "{g1}" (@intFromEnum(number)),68 : [number] "{g1}" (@intFromEnum(number)),
69 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });69 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
70}70}
7171
72pub fn syscall1(number: SYS, arg1: usize) usize {72pub fn syscall1(number: SYS, arg1: u64) u64 {
73 return asm volatile (73 return asm volatile (
74 \\ t 0x6d74 \\ t 0x6d
75 \\ bcc,pt %%xcc, 1f75 \\ bcc,pt %%xcc, 1f
76 \\ nop76 \\ nop
77 \\ neg %%o077 \\ neg %%o0
78 \\ 1:78 \\ 1:
79 : [ret] "={o0}" (-> usize),79 : [ret] "={o0}" (-> u64),
80 : [number] "{g1}" (@intFromEnum(number)),80 : [number] "{g1}" (@intFromEnum(number)),
81 [arg1] "{o0}" (arg1),81 [arg1] "{o0}" (arg1),
82 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });82 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
83}83}
8484
85pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {85pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
86 return asm volatile (86 return asm volatile (
87 \\ t 0x6d87 \\ t 0x6d
88 \\ bcc,pt %%xcc, 1f88 \\ bcc,pt %%xcc, 1f
89 \\ nop89 \\ nop
90 \\ neg %%o090 \\ neg %%o0
91 \\ 1:91 \\ 1:
92 : [ret] "={o0}" (-> usize),92 : [ret] "={o0}" (-> u64),
93 : [number] "{g1}" (@intFromEnum(number)),93 : [number] "{g1}" (@intFromEnum(number)),
94 [arg1] "{o0}" (arg1),94 [arg1] "{o0}" (arg1),
95 [arg2] "{o1}" (arg2),95 [arg2] "{o1}" (arg2),
96 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });96 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
97}97}
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 {
100 return asm volatile (100 return asm volatile (
101 \\ t 0x6d101 \\ t 0x6d
102 \\ bcc,pt %%xcc, 1f102 \\ bcc,pt %%xcc, 1f
103 \\ nop103 \\ nop
104 \\ neg %%o0104 \\ neg %%o0
105 \\ 1:105 \\ 1:
106 : [ret] "={o0}" (-> usize),106 : [ret] "={o0}" (-> u64),
107 : [number] "{g1}" (@intFromEnum(number)),107 : [number] "{g1}" (@intFromEnum(number)),
108 [arg1] "{o0}" (arg1),108 [arg1] "{o0}" (arg1),
109 [arg2] "{o1}" (arg2),109 [arg2] "{o1}" (arg2),
...@@ -111,14 +111,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -111,14 +111,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
111 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });111 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
112}112}
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 {
115 return asm volatile (115 return asm volatile (
116 \\ t 0x6d116 \\ t 0x6d
117 \\ bcc,pt %%xcc, 1f117 \\ bcc,pt %%xcc, 1f
118 \\ nop118 \\ nop
119 \\ neg %%o0119 \\ neg %%o0
120 \\ 1:120 \\ 1:
121 : [ret] "={o0}" (-> usize),121 : [ret] "={o0}" (-> u64),
122 : [number] "{g1}" (@intFromEnum(number)),122 : [number] "{g1}" (@intFromEnum(number)),
123 [arg1] "{o0}" (arg1),123 [arg1] "{o0}" (arg1),
124 [arg2] "{o1}" (arg2),124 [arg2] "{o1}" (arg2),
...@@ -127,14 +127,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -127,14 +127,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
127 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });127 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
128}128}
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 {
131 return asm volatile (131 return asm volatile (
132 \\ t 0x6d132 \\ t 0x6d
133 \\ bcc,pt %%xcc, 1f133 \\ bcc,pt %%xcc, 1f
134 \\ nop134 \\ nop
135 \\ neg %%o0135 \\ neg %%o0
136 \\ 1:136 \\ 1:
137 : [ret] "={o0}" (-> usize),137 : [ret] "={o0}" (-> u64),
138 : [number] "{g1}" (@intFromEnum(number)),138 : [number] "{g1}" (@intFromEnum(number)),
139 [arg1] "{o0}" (arg1),139 [arg1] "{o0}" (arg1),
140 [arg2] "{o1}" (arg2),140 [arg2] "{o1}" (arg2),
...@@ -146,20 +146,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -146,20 +146,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
146146
147pub fn syscall6(147pub fn syscall6(
148 number: SYS,148 number: SYS,
149 arg1: usize,149 arg1: u64,
150 arg2: usize,150 arg2: u64,
151 arg3: usize,151 arg3: u64,
152 arg4: usize,152 arg4: u64,
153 arg5: usize,153 arg5: u64,
154 arg6: usize,154 arg6: u64,
155) usize {155) u64 {
156 return asm volatile (156 return asm volatile (
157 \\ t 0x6d157 \\ t 0x6d
158 \\ bcc,pt %%xcc, 1f158 \\ bcc,pt %%xcc, 1f
159 \\ nop159 \\ nop
160 \\ neg %%o0160 \\ neg %%o0
161 \\ 1:161 \\ 1:
162 : [ret] "={o0}" (-> usize),162 : [ret] "={o0}" (-> u64),
163 : [number] "{g1}" (@intFromEnum(number)),163 : [number] "{g1}" (@intFromEnum(number)),
164 [arg1] "{o0}" (arg1),164 [arg1] "{o0}" (arg1),
165 [arg2] "{o1}" (arg2),165 [arg2] "{o1}" (arg2),
...@@ -170,7 +170,7 @@ pub fn syscall6(...@@ -170,7 +170,7 @@ pub fn syscall6(
170 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });170 : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
171}171}
172172
173pub fn clone() callconv(.naked) usize {173pub fn clone() callconv(.naked) u64 {
174 // __clone(func, stack, flags, arg, ptid, tls, ctid)174 // __clone(func, stack, flags, arg, ptid, tls, ctid)
175 // i0, i1, i2, i3, i4, i5, sp175 // i0, i1, i2, i3, i4, i5, sp
176 //176 //
...@@ -274,12 +274,12 @@ pub const Flock = extern struct {...@@ -274,12 +274,12 @@ pub const Flock = extern struct {
274274
275pub const off_t = i64;275pub const off_t = i64;
276pub const ino_t = u64;276pub const ino_t = u64;
277pub const time_t = isize;277pub const time_t = i64;
278pub const mode_t = u32;278pub const mode_t = u32;
279pub const dev_t = usize;279pub const dev_t = u64;
280pub const nlink_t = u32;280pub const nlink_t = u32;
281pub const blksize_t = isize;281pub const blksize_t = i64;
282pub const blkcnt_t = isize;282pub const blkcnt_t = i64;
283283
284// The `stat64` definition used by the kernel.284// The `stat64` definition used by the kernel.
285pub const Stat = extern struct {285pub const Stat = extern struct {
lib/std/os/linux/thumb.zig+27-27
...@@ -7,53 +7,53 @@ const std = @import("../../std.zig");...@@ -7,53 +7,53 @@ const std = @import("../../std.zig");
7const linux = std.os.linux;7const linux = std.os.linux;
8const SYS = linux.SYS;8const SYS = linux.SYS;
99
10pub fn syscall0(number: SYS) usize {10pub fn syscall0(number: SYS) u32 {
11 var buf: [2]usize = .{ @intFromEnum(number), undefined };11 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
12 return asm volatile (12 return asm volatile (
13 \\ str r7, [%[tmp], #4]13 \\ str r7, [%[tmp], #4]
14 \\ ldr r7, [%[tmp]]14 \\ ldr r7, [%[tmp]]
15 \\ svc #015 \\ svc #0
16 \\ ldr r7, [%[tmp], #4]16 \\ ldr r7, [%[tmp], #4]
17 : [ret] "={r0}" (-> usize),17 : [ret] "={r0}" (-> u32),
18 : [tmp] "{r1}" (&buf),18 : [tmp] "{r1}" (&buf),
19 : .{ .memory = true });19 : .{ .memory = true });
20}20}
2121
22pub fn syscall1(number: SYS, arg1: usize) usize {22pub fn syscall1(number: SYS, arg1: u32) u32 {
23 var buf: [2]usize = .{ @intFromEnum(number), undefined };23 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
24 return asm volatile (24 return asm volatile (
25 \\ str r7, [%[tmp], #4]25 \\ str r7, [%[tmp], #4]
26 \\ ldr r7, [%[tmp]]26 \\ ldr r7, [%[tmp]]
27 \\ svc #027 \\ svc #0
28 \\ ldr r7, [%[tmp], #4]28 \\ ldr r7, [%[tmp], #4]
29 : [ret] "={r0}" (-> usize),29 : [ret] "={r0}" (-> u32),
30 : [tmp] "{r1}" (&buf),30 : [tmp] "{r1}" (&buf),
31 [arg1] "{r0}" (arg1),31 [arg1] "{r0}" (arg1),
32 : .{ .memory = true });32 : .{ .memory = true });
33}33}
3434
35pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {35pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
36 var buf: [2]usize = .{ @intFromEnum(number), undefined };36 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
37 return asm volatile (37 return asm volatile (
38 \\ str r7, [%[tmp], #4]38 \\ str r7, [%[tmp], #4]
39 \\ ldr r7, [%[tmp]]39 \\ ldr r7, [%[tmp]]
40 \\ svc #040 \\ svc #0
41 \\ ldr r7, [%[tmp], #4]41 \\ ldr r7, [%[tmp], #4]
42 : [ret] "={r0}" (-> usize),42 : [ret] "={r0}" (-> u32),
43 : [tmp] "{r2}" (&buf),43 : [tmp] "{r2}" (&buf),
44 [arg1] "{r0}" (arg1),44 [arg1] "{r0}" (arg1),
45 [arg2] "{r1}" (arg2),45 [arg2] "{r1}" (arg2),
46 : .{ .memory = true });46 : .{ .memory = true });
47}47}
4848
49pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {49pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
50 var buf: [2]usize = .{ @intFromEnum(number), undefined };50 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
51 return asm volatile (51 return asm volatile (
52 \\ str r7, [%[tmp], #4]52 \\ str r7, [%[tmp], #4]
53 \\ ldr r7, [%[tmp]]53 \\ ldr r7, [%[tmp]]
54 \\ svc #054 \\ svc #0
55 \\ ldr r7, [%[tmp], #4]55 \\ ldr r7, [%[tmp], #4]
56 : [ret] "={r0}" (-> usize),56 : [ret] "={r0}" (-> u32),
57 : [tmp] "{r3}" (&buf),57 : [tmp] "{r3}" (&buf),
58 [arg1] "{r0}" (arg1),58 [arg1] "{r0}" (arg1),
59 [arg2] "{r1}" (arg2),59 [arg2] "{r1}" (arg2),
...@@ -61,14 +61,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -61,14 +61,14 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
61 : .{ .memory = true });61 : .{ .memory = true });
62}62}
6363
64pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {64pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
65 var buf: [2]usize = .{ @intFromEnum(number), undefined };65 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
66 return asm volatile (66 return asm volatile (
67 \\ str r7, [%[tmp], #4]67 \\ str r7, [%[tmp], #4]
68 \\ ldr r7, [%[tmp]]68 \\ ldr r7, [%[tmp]]
69 \\ svc #069 \\ svc #0
70 \\ ldr r7, [%[tmp], #4]70 \\ ldr r7, [%[tmp], #4]
71 : [ret] "={r0}" (-> usize),71 : [ret] "={r0}" (-> u32),
72 : [tmp] "{r4}" (&buf),72 : [tmp] "{r4}" (&buf),
73 [arg1] "{r0}" (arg1),73 [arg1] "{r0}" (arg1),
74 [arg2] "{r1}" (arg2),74 [arg2] "{r1}" (arg2),
...@@ -77,14 +77,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -77,14 +77,14 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
77 : .{ .memory = true });77 : .{ .memory = true });
78}78}
7979
80pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {80pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
81 var buf: [2]usize = .{ @intFromEnum(number), undefined };81 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
82 return asm volatile (82 return asm volatile (
83 \\ str r7, [%[tmp], #4]83 \\ str r7, [%[tmp], #4]
84 \\ ldr r7, [%[tmp]]84 \\ ldr r7, [%[tmp]]
85 \\ svc #085 \\ svc #0
86 \\ ldr r7, [%[tmp], #4]86 \\ ldr r7, [%[tmp], #4]
87 : [ret] "={r0}" (-> usize),87 : [ret] "={r0}" (-> u32),
88 : [tmp] "{r5}" (&buf),88 : [tmp] "{r5}" (&buf),
89 [arg1] "{r0}" (arg1),89 [arg1] "{r0}" (arg1),
90 [arg2] "{r1}" (arg2),90 [arg2] "{r1}" (arg2),
...@@ -96,20 +96,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -96,20 +96,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
9696
97pub fn syscall6(97pub fn syscall6(
98 number: SYS,98 number: SYS,
99 arg1: usize,99 arg1: u32,
100 arg2: usize,100 arg2: u32,
101 arg3: usize,101 arg3: u32,
102 arg4: usize,102 arg4: u32,
103 arg5: usize,103 arg5: u32,
104 arg6: usize,104 arg6: u32,
105) usize {105) u32 {
106 var buf: [2]usize = .{ @intFromEnum(number), undefined };106 var buf: [2]u32 = .{ @intFromEnum(number), undefined };
107 return asm volatile (107 return asm volatile (
108 \\ str r7, [%[tmp], #4]108 \\ str r7, [%[tmp], #4]
109 \\ ldr r7, [%[tmp]]109 \\ ldr r7, [%[tmp]]
110 \\ svc #0110 \\ svc #0
111 \\ ldr r7, [%[tmp], #4]111 \\ ldr r7, [%[tmp], #4]
112 : [ret] "={r0}" (-> usize),112 : [ret] "={r0}" (-> u32),
113 : [tmp] "{r6}" (&buf),113 : [tmp] "{r6}" (&buf),
114 [arg1] "{r0}" (arg1),114 [arg1] "{r0}" (arg1),
115 [arg2] "{r1}" (arg2),115 [arg2] "{r1}" (arg2),
lib/std/os/linux/x86.zig+25-25
...@@ -14,33 +14,33 @@ const sigset_t = linux.sigset_t;...@@ -14,33 +14,33 @@ const sigset_t = linux.sigset_t;
14const sockaddr = linux.sockaddr;14const sockaddr = linux.sockaddr;
15const timespec = linux.timespec;15const timespec = linux.timespec;
1616
17pub fn syscall0(number: SYS) usize {17pub fn syscall0(number: SYS) u32 {
18 return asm volatile ("int $0x80"18 return asm volatile ("int $0x80"
19 : [ret] "={eax}" (-> usize),19 : [ret] "={eax}" (-> u32),
20 : [number] "{eax}" (@intFromEnum(number)),20 : [number] "{eax}" (@intFromEnum(number)),
21 : .{ .memory = true });21 : .{ .memory = true });
22}22}
2323
24pub fn syscall1(number: SYS, arg1: usize) usize {24pub fn syscall1(number: SYS, arg1: u32) u32 {
25 return asm volatile ("int $0x80"25 return asm volatile ("int $0x80"
26 : [ret] "={eax}" (-> usize),26 : [ret] "={eax}" (-> u32),
27 : [number] "{eax}" (@intFromEnum(number)),27 : [number] "{eax}" (@intFromEnum(number)),
28 [arg1] "{ebx}" (arg1),28 [arg1] "{ebx}" (arg1),
29 : .{ .memory = true });29 : .{ .memory = true });
30}30}
3131
32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {32pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
33 return asm volatile ("int $0x80"33 return asm volatile ("int $0x80"
34 : [ret] "={eax}" (-> usize),34 : [ret] "={eax}" (-> u32),
35 : [number] "{eax}" (@intFromEnum(number)),35 : [number] "{eax}" (@intFromEnum(number)),
36 [arg1] "{ebx}" (arg1),36 [arg1] "{ebx}" (arg1),
37 [arg2] "{ecx}" (arg2),37 [arg2] "{ecx}" (arg2),
38 : .{ .memory = true });38 : .{ .memory = true });
39}39}
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 {
42 return asm volatile ("int $0x80"42 return asm volatile ("int $0x80"
43 : [ret] "={eax}" (-> usize),43 : [ret] "={eax}" (-> u32),
44 : [number] "{eax}" (@intFromEnum(number)),44 : [number] "{eax}" (@intFromEnum(number)),
45 [arg1] "{ebx}" (arg1),45 [arg1] "{ebx}" (arg1),
46 [arg2] "{ecx}" (arg2),46 [arg2] "{ecx}" (arg2),
...@@ -48,9 +48,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -48,9 +48,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
48 : .{ .memory = true });48 : .{ .memory = true });
49}49}
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 {
52 return asm volatile ("int $0x80"52 return asm volatile ("int $0x80"
53 : [ret] "={eax}" (-> usize),53 : [ret] "={eax}" (-> u32),
54 : [number] "{eax}" (@intFromEnum(number)),54 : [number] "{eax}" (@intFromEnum(number)),
55 [arg1] "{ebx}" (arg1),55 [arg1] "{ebx}" (arg1),
56 [arg2] "{ecx}" (arg2),56 [arg2] "{ecx}" (arg2),
...@@ -59,9 +59,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -59,9 +59,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
59 : .{ .memory = true });59 : .{ .memory = true });
60}60}
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 {
63 return asm volatile ("int $0x80"63 return asm volatile ("int $0x80"
64 : [ret] "={eax}" (-> usize),64 : [ret] "={eax}" (-> u32),
65 : [number] "{eax}" (@intFromEnum(number)),65 : [number] "{eax}" (@intFromEnum(number)),
66 [arg1] "{ebx}" (arg1),66 [arg1] "{ebx}" (arg1),
67 [arg2] "{ecx}" (arg2),67 [arg2] "{ecx}" (arg2),
...@@ -73,20 +73,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -73,20 +73,20 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7373
74pub fn syscall6(74pub fn syscall6(
75 number: SYS,75 number: SYS,
76 arg1: usize,76 arg1: u32,
77 arg2: usize,77 arg2: u32,
78 arg3: usize,78 arg3: u32,
79 arg4: usize,79 arg4: u32,
80 arg5: usize,80 arg5: u32,
81 arg6: usize,81 arg6: u32,
82) usize {82) u32 {
83 // arg6 can't be passed to asm in a register because ebp might be reserved as the frame pointer83 // arg6 can't be passed to asm in a register because ebp might be reserved as the frame pointer
84 // and there are no more GPRs available; so we'll need a memory operand for it. Adding that84 // and there are no more GPRs available; so we'll need a memory operand for it. Adding that
85 // memory operand means that on PIC we might need a reference to the GOT, which in turn needs85 // memory operand means that on PIC we might need a reference to the GOT, which in turn needs
86 // *its* own GPR, so we need to pass another arg in memory too! This is surprisingly hard to get86 // *its* own GPR, so we need to pass another arg in memory too! This is surprisingly hard to get
87 // right, because we can't touch esp or ebp until we're done with the memory input (as that87 // right, because we can't touch esp or ebp until we're done with the memory input (as that
88 // input could be relative to esp or ebp).88 // input could be relative to esp or ebp).
89 const args56: [2]usize = .{ arg5, arg6 };89 const args56: [2]u32 = .{ arg5, arg6 };
90 return asm volatile (90 return asm volatile (
91 \\ push %[args56]91 \\ push %[args56]
92 \\ push %%ebp92 \\ push %%ebp
...@@ -99,7 +99,7 @@ pub fn syscall6(...@@ -99,7 +99,7 @@ pub fn syscall6(
99 \\ int $0x8099 \\ int $0x80
100 \\ pop %%ebp100 \\ pop %%ebp
101 \\ pop %%edi101 \\ pop %%edi
102 : [ret] "={eax}" (-> usize),102 : [ret] "={eax}" (-> u32),
103 : [number] "{eax}" (@intFromEnum(number)),103 : [number] "{eax}" (@intFromEnum(number)),
104 [arg1] "{ebx}" (arg1),104 [arg1] "{ebx}" (arg1),
105 [arg2] "{ecx}" (arg2),105 [arg2] "{ecx}" (arg2),
...@@ -109,16 +109,16 @@ pub fn syscall6(...@@ -109,16 +109,16 @@ pub fn syscall6(
109 : .{ .memory = true });109 : .{ .memory = true });
110}110}
111111
112pub fn socketcall(call: usize, args: [*]const usize) usize {112pub fn socketcall(call: u32, args: [*]const u32) u32 {
113 return asm volatile ("int $0x80"113 return asm volatile ("int $0x80"
114 : [ret] "={eax}" (-> usize),114 : [ret] "={eax}" (-> u32),
115 : [number] "{eax}" (@intFromEnum(SYS.socketcall)),115 : [number] "{eax}" (@intFromEnum(SYS.socketcall)),
116 [arg1] "{ebx}" (call),116 [arg1] "{ebx}" (call),
117 [arg2] "{ecx}" (@intFromPtr(args)),117 [arg2] "{ecx}" (@intFromPtr(args)),
118 : .{ .memory = true });118 : .{ .memory = true });
119}119}
120120
121pub fn clone() callconv(.naked) usize {121pub fn clone() callconv(.naked) u32 {
122 // __clone(func, stack, flags, arg, ptid, tls, ctid)122 // __clone(func, stack, flags, arg, ptid, tls, ctid)
123 // +8, +12, +16, +20, +24, +28, +32123 // +8, +12, +16, +20, +24, +28, +32
124 //124 //
...@@ -239,7 +239,7 @@ pub const Flock = extern struct {...@@ -239,7 +239,7 @@ pub const Flock = extern struct {
239239
240pub const blksize_t = i32;240pub const blksize_t = i32;
241pub const nlink_t = u32;241pub const nlink_t = u32;
242pub const time_t = isize;242pub const time_t = i32;
243pub const mode_t = u32;243pub const mode_t = u32;
244pub const off_t = i64;244pub const off_t = i64;
245pub const ino_t = u64;245pub const ino_t = u64;
lib/std/os/linux/x86_64.zig+29-29
...@@ -16,33 +16,33 @@ const sockaddr = linux.sockaddr;...@@ -16,33 +16,33 @@ const sockaddr = linux.sockaddr;
16const socklen_t = linux.socklen_t;16const socklen_t = linux.socklen_t;
17const timespec = linux.timespec;17const timespec = linux.timespec;
1818
19pub fn syscall0(number: SYS) usize {19pub fn syscall0(number: SYS) u64 {
20 return asm volatile ("syscall"20 return asm volatile ("syscall"
21 : [ret] "={rax}" (-> usize),21 : [ret] "={rax}" (-> u64),
22 : [number] "{rax}" (@intFromEnum(number)),22 : [number] "{rax}" (@intFromEnum(number)),
23 : .{ .rcx = true, .r11 = true, .memory = true });23 : .{ .rcx = true, .r11 = true, .memory = true });
24}24}
2525
26pub fn syscall1(number: SYS, arg1: usize) usize {26pub fn syscall1(number: SYS, arg1: u64) u64 {
27 return asm volatile ("syscall"27 return asm volatile ("syscall"
28 : [ret] "={rax}" (-> usize),28 : [ret] "={rax}" (-> u64),
29 : [number] "{rax}" (@intFromEnum(number)),29 : [number] "{rax}" (@intFromEnum(number)),
30 [arg1] "{rdi}" (arg1),30 [arg1] "{rdi}" (arg1),
31 : .{ .rcx = true, .r11 = true, .memory = true });31 : .{ .rcx = true, .r11 = true, .memory = true });
32}32}
3333
34pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {34pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
35 return asm volatile ("syscall"35 return asm volatile ("syscall"
36 : [ret] "={rax}" (-> usize),36 : [ret] "={rax}" (-> u64),
37 : [number] "{rax}" (@intFromEnum(number)),37 : [number] "{rax}" (@intFromEnum(number)),
38 [arg1] "{rdi}" (arg1),38 [arg1] "{rdi}" (arg1),
39 [arg2] "{rsi}" (arg2),39 [arg2] "{rsi}" (arg2),
40 : .{ .rcx = true, .r11 = true, .memory = true });40 : .{ .rcx = true, .r11 = true, .memory = true });
41}41}
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 {
44 return asm volatile ("syscall"44 return asm volatile ("syscall"
45 : [ret] "={rax}" (-> usize),45 : [ret] "={rax}" (-> u64),
46 : [number] "{rax}" (@intFromEnum(number)),46 : [number] "{rax}" (@intFromEnum(number)),
47 [arg1] "{rdi}" (arg1),47 [arg1] "{rdi}" (arg1),
48 [arg2] "{rsi}" (arg2),48 [arg2] "{rsi}" (arg2),
...@@ -50,9 +50,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -50,9 +50,9 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
50 : .{ .rcx = true, .r11 = true, .memory = true });50 : .{ .rcx = true, .r11 = true, .memory = true });
51}51}
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 {
54 return asm volatile ("syscall"54 return asm volatile ("syscall"
55 : [ret] "={rax}" (-> usize),55 : [ret] "={rax}" (-> u64),
56 : [number] "{rax}" (@intFromEnum(number)),56 : [number] "{rax}" (@intFromEnum(number)),
57 [arg1] "{rdi}" (arg1),57 [arg1] "{rdi}" (arg1),
58 [arg2] "{rsi}" (arg2),58 [arg2] "{rsi}" (arg2),
...@@ -61,9 +61,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -61,9 +61,9 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
61 : .{ .rcx = true, .r11 = true, .memory = true });61 : .{ .rcx = true, .r11 = true, .memory = true });
62}62}
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 {
65 return asm volatile ("syscall"65 return asm volatile ("syscall"
66 : [ret] "={rax}" (-> usize),66 : [ret] "={rax}" (-> u64),
67 : [number] "{rax}" (@intFromEnum(number)),67 : [number] "{rax}" (@intFromEnum(number)),
68 [arg1] "{rdi}" (arg1),68 [arg1] "{rdi}" (arg1),
69 [arg2] "{rsi}" (arg2),69 [arg2] "{rsi}" (arg2),
...@@ -75,15 +75,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -75,15 +75,15 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
7575
76pub fn syscall6(76pub fn syscall6(
77 number: SYS,77 number: SYS,
78 arg1: usize,78 arg1: u64,
79 arg2: usize,79 arg2: u64,
80 arg3: usize,80 arg3: u64,
81 arg4: usize,81 arg4: u64,
82 arg5: usize,82 arg5: u64,
83 arg6: usize,83 arg6: u64,
84) usize {84) u64 {
85 return asm volatile ("syscall"85 return asm volatile ("syscall"
86 : [ret] "={rax}" (-> usize),86 : [ret] "={rax}" (-> u64),
87 : [number] "{rax}" (@intFromEnum(number)),87 : [number] "{rax}" (@intFromEnum(number)),
88 [arg1] "{rdi}" (arg1),88 [arg1] "{rdi}" (arg1),
89 [arg2] "{rsi}" (arg2),89 [arg2] "{rsi}" (arg2),
...@@ -94,7 +94,7 @@ pub fn syscall6(...@@ -94,7 +94,7 @@ pub fn syscall6(
94 : .{ .rcx = true, .r11 = true, .memory = true });94 : .{ .rcx = true, .r11 = true, .memory = true });
95}95}
9696
97pub fn clone() callconv(.naked) usize {97pub fn clone() callconv(.naked) u64 {
98 asm volatile (98 asm volatile (
99 \\ movl $56,%%eax // SYS_clone99 \\ movl $56,%%eax // SYS_clone
100 \\ movq %%rdi,%%r11100 \\ movq %%rdi,%%r11
...@@ -146,11 +146,11 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -146,11 +146,11 @@ pub fn restore_rt() callconv(.naked) noreturn {
146 }146 }
147}147}
148148
149pub const mode_t = usize;149pub const mode_t = u64;
150pub const time_t = isize;150pub const time_t = i64;
151pub const nlink_t = usize;151pub const nlink_t = u64;
152pub const blksize_t = isize;152pub const blksize_t = i64;
153pub const blkcnt_t = isize;153pub const blkcnt_t = i64;
154154
155pub const F = struct {155pub const F = struct {
156 pub const DUPFD = 0;156 pub const DUPFD = 0;
...@@ -206,7 +206,7 @@ pub const dev_t = u64;...@@ -206,7 +206,7 @@ pub const dev_t = u64;
206pub const Stat = extern struct {206pub const Stat = extern struct {
207 dev: dev_t,207 dev: dev_t,
208 ino: ino_t,208 ino: ino_t,
209 nlink: usize,209 nlink: u64,
210210
211 mode: u32,211 mode: u32,
212 uid: uid_t,212 uid: uid_t,
...@@ -214,13 +214,13 @@ pub const Stat = extern struct {...@@ -214,13 +214,13 @@ pub const Stat = extern struct {
214 __pad0: u32,214 __pad0: u32,
215 rdev: dev_t,215 rdev: dev_t,
216 size: off_t,216 size: off_t,
217 blksize: isize,217 blksize: i64,
218 blocks: i64,218 blocks: i64,
219219
220 atim: timespec,220 atim: timespec,
221 mtim: timespec,221 mtim: timespec,
222 ctim: timespec,222 ctim: timespec,
223 __unused: [3]isize,223 __unused: [3]i64,
224224
225 pub fn atime(self: @This()) timespec {225 pub fn atime(self: @This()) timespec {
226 return self.atim;226 return self.atim;