| author | |
| committer | |
| log | cfdc0f0e34b00a7e1a4dc23f1d6672f213bbf9ca |
| tree | ce0d1478c80373c0167bf8708cc82ac8c546d2f2 |
| parent | fc7a5f2ae49aa0a0c5e1f1dd1c5678ee3e49b1b6 |
| signature |
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; |
| 14 | const sigset_t = linux.sigset_t; | 14 | const sigset_t = linux.sigset_t; |
| 15 | const timespec = std.os.linux.timespec; | 15 | const timespec = std.os.linux.timespec; |
| 16 | 16 | ||
| 17 | pub fn syscall0(number: SYS) usize { | 17 | pub 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 | } |
| 23 | 23 | ||
| 24 | pub fn syscall1(number: SYS, arg1: usize) usize { | 24 | pub 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 | } |
| 31 | 31 | ||
| 32 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 32 | pub 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 | } |
| 40 | 40 | ||
| 41 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 41 | pub 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 | } |
| 50 | 50 | ||
| 51 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 51 | pub 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 | } |
| 61 | 61 | ||
| 62 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 62 | pub 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, |
| 73 | 73 | ||
| 74 | pub fn syscall6( | 74 | pub 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 | } |
| 94 | 94 | ||
| 95 | pub fn clone() callconv(.naked) usize { | 95 | pub 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, x6 | 97 | // 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 { |
| 192 | 192 | ||
| 193 | pub const blksize_t = i32; | 193 | pub const blksize_t = i32; |
| 194 | pub const nlink_t = u32; | 194 | pub const nlink_t = u32; |
| 195 | pub const time_t = isize; | 195 | pub const time_t = i64; |
| 196 | pub const mode_t = u32; | 196 | pub const mode_t = u32; |
| 197 | pub const off_t = isize; | 197 | pub const off_t = i64; |
| 198 | pub const ino_t = usize; | 198 | pub const ino_t = u64; |
| 199 | pub const dev_t = usize; | 199 | pub const dev_t = u64; |
| 200 | pub const blkcnt_t = isize; | 200 | pub const blkcnt_t = i64; |
| 201 | 201 | ||
| 202 | // The `stat` definition used by the Linux kernel. | 202 | // The `stat` definition used by the Linux kernel. |
| 203 | pub const Stat = extern struct { | 203 | pub 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; |
| 13 | const sockaddr = linux.sockaddr; | 13 | const sockaddr = linux.sockaddr; |
| 14 | const timespec = linux.timespec; | 14 | const timespec = linux.timespec; |
| 15 | 15 | ||
| 16 | pub fn syscall0(number: SYS) usize { | 16 | pub 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 | } |
| 22 | 22 | ||
| 23 | pub fn syscall1(number: SYS, arg1: usize) usize { | 23 | pub 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 | } |
| 30 | 30 | ||
| 31 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 31 | pub 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 | } |
| 39 | 39 | ||
| 40 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 40 | pub 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 | } |
| 49 | 49 | ||
| 50 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 50 | pub 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 | } |
| 60 | 60 | ||
| 61 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 61 | pub 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, |
| 72 | 72 | ||
| 73 | pub fn syscall6( | 73 | pub 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 | } |
| 93 | 93 | ||
| 94 | pub fn clone() callconv(.naked) usize { | 94 | pub 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, +8 | 96 | // 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 { |
| 228 | 228 | ||
| 229 | pub const blksize_t = i32; | 229 | pub const blksize_t = i32; |
| 230 | pub const nlink_t = u32; | 230 | pub const nlink_t = u32; |
| 231 | pub const time_t = isize; | 231 | pub const time_t = i32; |
| 232 | pub const mode_t = u32; | 232 | pub const mode_t = u32; |
| 233 | pub const off_t = i64; | 233 | pub const off_t = i64; |
| 234 | pub const ino_t = u64; | 234 | pub 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; |
| 13 | const sigset_t = linux.sigset_t; | 13 | const sigset_t = linux.sigset_t; |
| 14 | const timespec = std.os.linux.timespec; | 14 | const timespec = std.os.linux.timespec; |
| 15 | 15 | ||
| 16 | pub fn syscall0(number: SYS) usize { | 16 | pub 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 | } |
| 22 | 22 | ||
| 23 | pub fn syscall1(number: SYS, arg1: usize) usize { | 23 | pub 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 | } |
| 30 | 30 | ||
| 31 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 31 | pub 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 | } |
| 39 | 39 | ||
| 40 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 40 | pub 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 | } |
| 49 | 49 | ||
| 50 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 50 | pub 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 | } |
| 60 | 60 | ||
| 61 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 61 | pub 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, |
| 72 | 72 | ||
| 73 | pub fn syscall6( | 73 | pub 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 | } |
| 93 | 93 | ||
| 94 | pub fn clone() callconv(.naked) usize { | 94 | pub 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, +0 | 96 | // 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; |
| 12 | const socklen_t = linux.socklen_t; | 12 | const socklen_t = linux.socklen_t; |
| 13 | const timespec = linux.timespec; | 13 | const timespec = linux.timespec; |
| 14 | 14 | ||
| 15 | pub fn syscall0(number: SYS) usize { | 15 | pub fn syscall0(number: SYS) u64 { |
| 16 | return asm volatile ( | 16 | return asm volatile ( |
| 17 | \\ syscall 0 | 17 | \\ 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 | } |
| 22 | 22 | ||
| 23 | pub fn syscall1(number: SYS, arg1: usize) usize { | 23 | pub fn syscall1(number: SYS, arg1: u64) u64 { |
| 24 | return asm volatile ( | 24 | return asm volatile ( |
| 25 | \\ syscall 0 | 25 | \\ 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 | } |
| 31 | 31 | ||
| 32 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 32 | pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 { |
| 33 | return asm volatile ( | 33 | return asm volatile ( |
| 34 | \\ syscall 0 | 34 | \\ 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 | } |
| 41 | 41 | ||
| 42 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 42 | pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 { |
| 43 | return asm volatile ( | 43 | return asm volatile ( |
| 44 | \\ syscall 0 | 44 | \\ 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 | } |
| 52 | 52 | ||
| 53 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 53 | pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 { |
| 54 | return asm volatile ( | 54 | return asm volatile ( |
| 55 | \\ syscall 0 | 55 | \\ 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 | } |
| 64 | 64 | ||
| 65 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 65 | pub 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 0 | 67 | \\ 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, |
| 77 | 77 | ||
| 78 | pub fn syscall6( | 78 | pub 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 0 | 88 | \\ 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 | } |
| 99 | 99 | ||
| 100 | pub fn clone() callconv(.naked) usize { | 100 | pub 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, a6 | 102 | // 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; |
| 11 | const socklen_t = linux.socklen_t; | 11 | const socklen_t = linux.socklen_t; |
| 12 | const timespec = std.os.linux.timespec; | 12 | const timespec = std.os.linux.timespec; |
| 13 | 13 | ||
| 14 | pub fn syscall0(number: SYS) usize { | 14 | pub 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 | } |
| 20 | 20 | ||
| 21 | pub fn syscall1(number: SYS, arg1: usize) usize { | 21 | pub 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 | } |
| 28 | 28 | ||
| 29 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 29 | pub 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 | } |
| 37 | 37 | ||
| 38 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 38 | pub 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 | } |
| 47 | 47 | ||
| 48 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 48 | pub 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 | } |
| 58 | 58 | ||
| 59 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 59 | pub 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, |
| 70 | 70 | ||
| 71 | pub fn syscall6( | 71 | pub 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 | } |
| 91 | 91 | ||
| 92 | pub fn clone() callconv(.naked) usize { | 92 | pub 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, +28 | 94 | // +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; |
| 14 | const sockaddr = linux.sockaddr; | 14 | const sockaddr = linux.sockaddr; |
| 15 | const timespec = linux.timespec; | 15 | const timespec = linux.timespec; |
| 16 | 16 | ||
| 17 | pub fn syscall0(number: SYS) usize { | 17 | pub fn syscall0(number: SYS) u32 { |
| 18 | return asm volatile ( | 18 | return asm volatile ( |
| 19 | \\ syscall | 19 | \\ syscall |
| 20 | \\ beq $7, $zero, 1f | 20 | \\ beq $7, $zero, 1f |
| 21 | \\ blez $2, 1f | 21 | \\ blez $2, 1f |
| 22 | \\ subu $2, $0, $2 | 22 | \\ 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 | } |
| 28 | 28 | ||
| 29 | pub fn syscall_pipe(fd: *[2]i32) usize { | 29 | pub fn syscall_pipe(fd: *[2]i32) u32 { |
| 30 | return asm volatile ( | 30 | return asm volatile ( |
| 31 | \\ .set noat | 31 | \\ .set noat |
| 32 | \\ .set noreorder | 32 | \\ .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 | } |
| 47 | 47 | ||
| 48 | pub fn syscall1(number: SYS, arg1: usize) usize { | 48 | pub fn syscall1(number: SYS, arg1: u32) u32 { |
| 49 | return asm volatile ( | 49 | return asm volatile ( |
| 50 | \\ syscall | 50 | \\ syscall |
| 51 | \\ beq $7, $zero, 1f | 51 | \\ beq $7, $zero, 1f |
| 52 | \\ blez $2, 1f | 52 | \\ blez $2, 1f |
| 53 | \\ subu $2, $0, $2 | 53 | \\ 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 | } |
| 60 | 60 | ||
| 61 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 61 | pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 { |
| 62 | return asm volatile ( | 62 | return asm volatile ( |
| 63 | \\ syscall | 63 | \\ syscall |
| 64 | \\ beq $7, $zero, 1f | 64 | \\ beq $7, $zero, 1f |
| 65 | \\ blez $2, 1f | 65 | \\ blez $2, 1f |
| 66 | \\ subu $2, $0, $2 | 66 | \\ 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 | } |
| 74 | 74 | ||
| 75 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 75 | pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 { |
| 76 | return asm volatile ( | 76 | return asm volatile ( |
| 77 | \\ syscall | 77 | \\ syscall |
| 78 | \\ beq $7, $zero, 1f | 78 | \\ beq $7, $zero, 1f |
| 79 | \\ blez $2, 1f | 79 | \\ blez $2, 1f |
| 80 | \\ subu $2, $0, $2 | 80 | \\ 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 | } |
| 89 | 89 | ||
| 90 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 90 | pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 { |
| 91 | return asm volatile ( | 91 | return asm volatile ( |
| 92 | \\ syscall | 92 | \\ syscall |
| 93 | \\ beq $7, $zero, 1f | 93 | \\ beq $7, $zero, 1f |
| 94 | \\ blez $2, 1f | 94 | \\ blez $2, 1f |
| 95 | \\ subu $2, $0, $2 | 95 | \\ 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 | } |
| 105 | 105 | ||
| 106 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 106 | pub 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 noat | 108 | \\ .set noat |
| 109 | \\ subu $sp, $sp, 24 | 109 | \\ 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, 1f | 114 | \\ blez $2, 1f |
| 115 | \\ subu $2, $0, $2 | 115 | \\ 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, |
| 129 | 129 | ||
| 130 | pub fn syscall6( | 130 | pub 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 noat | 140 | \\ .set noat |
| 141 | \\ subu $sp, $sp, 24 | 141 | \\ subu $sp, $sp, 24 |
| ... | @@ -147,7 +147,7 @@ pub fn syscall6( | ... | @@ -147,7 +147,7 @@ pub fn syscall6( |
| 147 | \\ blez $2, 1f | 147 | \\ blez $2, 1f |
| 148 | \\ subu $2, $0, $2 | 148 | \\ 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( |
| 160 | 160 | ||
| 161 | pub fn syscall7( | 161 | pub 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 noat | 172 | \\ .set noat |
| 173 | \\ subu $sp, $sp, 32 | 173 | \\ subu $sp, $sp, 32 |
| ... | @@ -180,7 +180,7 @@ pub fn syscall7( | ... | @@ -180,7 +180,7 @@ pub fn syscall7( |
| 180 | \\ blez $2, 1f | 180 | \\ blez $2, 1f |
| 181 | \\ subu $2, $0, $2 | 181 | \\ 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 | } |
| 194 | 194 | ||
| 195 | pub fn clone() callconv(.naked) usize { | 195 | pub 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, 9 | 197 | // 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; |
| 14 | const sockaddr = linux.sockaddr; | 14 | const sockaddr = linux.sockaddr; |
| 15 | const timespec = linux.timespec; | 15 | const timespec = linux.timespec; |
| 16 | 16 | ||
| 17 | pub fn syscall0(number: SYS) usize { | 17 | pub fn syscall0(number: SYS) u64 { |
| 18 | return asm volatile ( | 18 | return asm volatile ( |
| 19 | \\ syscall | 19 | \\ syscall |
| 20 | \\ beq $7, $zero, 1f | 20 | \\ beq $7, $zero, 1f |
| 21 | \\ blez $2, 1f | 21 | \\ blez $2, 1f |
| 22 | \\ dsubu $2, $0, $2 | 22 | \\ 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 | } |
| 28 | 28 | ||
| 29 | pub fn syscall_pipe(fd: *[2]i32) usize { | 29 | pub fn syscall_pipe(fd: *[2]i32) u64 { |
| 30 | return asm volatile ( | 30 | return asm volatile ( |
| 31 | \\ .set noat | 31 | \\ .set noat |
| 32 | \\ .set noreorder | 32 | \\ .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 | } |
| 47 | 47 | ||
| 48 | pub fn syscall1(number: SYS, arg1: usize) usize { | 48 | pub fn syscall1(number: SYS, arg1: u64) u64 { |
| 49 | return asm volatile ( | 49 | return asm volatile ( |
| 50 | \\ syscall | 50 | \\ syscall |
| 51 | \\ beq $7, $zero, 1f | 51 | \\ 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 | \\ nop | 53 | \\ nop |
| 54 | \\ dsubu $2, $0, $2 | 54 | \\ 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 | } |
| 61 | 61 | ||
| 62 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 62 | pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 { |
| 63 | return asm volatile ( | 63 | return asm volatile ( |
| 64 | \\ syscall | 64 | \\ syscall |
| 65 | \\ beq $7, $zero, 1f | 65 | \\ beq $7, $zero, 1f |
| 66 | \\ blez $2, 1f | 66 | \\ blez $2, 1f |
| 67 | \\ dsubu $2, $0, $2 | 67 | \\ 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 | } |
| 75 | 75 | ||
| 76 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 76 | pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 { |
| 77 | return asm volatile ( | 77 | return asm volatile ( |
| 78 | \\ syscall | 78 | \\ syscall |
| 79 | \\ beq $7, $zero, 1f | 79 | \\ beq $7, $zero, 1f |
| 80 | \\ blez $2, 1f | 80 | \\ blez $2, 1f |
| 81 | \\ dsubu $2, $0, $2 | 81 | \\ 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 | } |
| 90 | 90 | ||
| 91 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 91 | pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 { |
| 92 | return asm volatile ( | 92 | return asm volatile ( |
| 93 | \\ syscall | 93 | \\ syscall |
| 94 | \\ beq $7, $zero, 1f | 94 | \\ beq $7, $zero, 1f |
| 95 | \\ blez $2, 1f | 95 | \\ blez $2, 1f |
| 96 | \\ dsubu $2, $0, $2 | 96 | \\ 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 | } |
| 106 | 106 | ||
| 107 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 107 | pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 { |
| 108 | return asm volatile ( | 108 | return asm volatile ( |
| 109 | \\ syscall | 109 | \\ syscall |
| 110 | \\ beq $7, $zero, 1f | 110 | \\ beq $7, $zero, 1f |
| 111 | \\ blez $2, 1f | 111 | \\ blez $2, 1f |
| 112 | \\ dsubu $2, $0, $2 | 112 | \\ 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, |
| 123 | 123 | ||
| 124 | pub fn syscall6( | 124 | pub 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 | \\ syscall | 134 | \\ syscall |
| 135 | \\ beq $7, $zero, 1f | 135 | \\ beq $7, $zero, 1f |
| 136 | \\ blez $2, 1f | 136 | \\ blez $2, 1f |
| 137 | \\ dsubu $2, $0, $2 | 137 | \\ 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( |
| 149 | 149 | ||
| 150 | pub fn syscall7( | 150 | pub 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 | \\ syscall | 161 | \\ syscall |
| 162 | \\ beq $7, $zero, 1f | 162 | \\ beq $7, $zero, 1f |
| 163 | \\ blez $2, 1f | 163 | \\ blez $2, 1f |
| 164 | \\ dsubu $2, $0, $2 | 164 | \\ 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 | } |
| 177 | 177 | ||
| 178 | pub fn clone() callconv(.naked) usize { | 178 | pub 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, 9 | 180 | // 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; |
| 14 | const sockaddr = linux.sockaddr; | 14 | const sockaddr = linux.sockaddr; |
| 15 | const timespec = linux.timespec; | 15 | const timespec = linux.timespec; |
| 16 | 16 | ||
| 17 | pub fn syscall0(number: SYS) usize { | 17 | pub fn syscall0(number: SYS) u32 { |
| 18 | // r0 is both an input register and a clobber. musl and glibc achieve this with | 18 | // 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 list | 19 | // 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 would | 20 | // 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 | \\ sc | 24 | \\ sc |
| 25 | \\ bns+ 1f | 25 | \\ bns+ 1f |
| 26 | \\ neg 3, 3 | 26 | \\ 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 | } |
| 33 | 33 | ||
| 34 | pub fn syscall1(number: SYS, arg1: usize) usize { | 34 | pub 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 | \\ sc | 38 | \\ sc |
| 39 | \\ bns+ 1f | 39 | \\ bns+ 1f |
| 40 | \\ neg 3, 3 | 40 | \\ 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 | } |
| 48 | 48 | ||
| 49 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 49 | pub 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 | \\ sc | 54 | \\ sc |
| 55 | \\ bns+ 1f | 55 | \\ bns+ 1f |
| 56 | \\ neg 3, 3 | 56 | \\ 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 | } |
| 66 | 66 | ||
| 67 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 67 | pub 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 | \\ sc | 73 | \\ sc |
| 74 | \\ bns+ 1f | 74 | \\ bns+ 1f |
| 75 | \\ neg 3, 3 | 75 | \\ 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 | } |
| 87 | 87 | ||
| 88 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 88 | pub 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 | \\ sc | 95 | \\ sc |
| 96 | \\ bns+ 1f | 96 | \\ bns+ 1f |
| 97 | \\ neg 3, 3 | 97 | \\ 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 | } |
| 111 | 111 | ||
| 112 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 112 | pub 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 | \\ sc | 120 | \\ sc |
| 121 | \\ bns+ 1f | 121 | \\ bns+ 1f |
| 122 | \\ neg 3, 3 | 122 | \\ 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, |
| 138 | 138 | ||
| 139 | pub fn syscall6( | 139 | pub 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 | \\ sc | 156 | \\ sc |
| 157 | \\ bns+ 1f | 157 | \\ bns+ 1f |
| 158 | \\ neg 3, 3 | 158 | \\ 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 | } |
| 176 | 176 | ||
| 177 | pub fn clone() callconv(.naked) usize { | 177 | pub 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, 9 | 179 | // 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 { |
| 303 | 303 | ||
| 304 | pub const blksize_t = i32; | 304 | pub const blksize_t = i32; |
| 305 | pub const nlink_t = u32; | 305 | pub const nlink_t = u32; |
| 306 | pub const time_t = isize; | 306 | pub const time_t = i32; |
| 307 | pub const mode_t = u32; | 307 | pub const mode_t = u32; |
| 308 | pub const off_t = i64; | 308 | pub const off_t = i64; |
| 309 | pub const ino_t = u64; | 309 | pub 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; |
| 14 | const sockaddr = linux.sockaddr; | 14 | const sockaddr = linux.sockaddr; |
| 15 | const timespec = linux.timespec; | 15 | const timespec = linux.timespec; |
| 16 | 16 | ||
| 17 | pub fn syscall0(number: SYS) usize { | 17 | pub fn syscall0(number: SYS) u64 { |
| 18 | // r0 is both an input register and a clobber. musl and glibc achieve this with | 18 | // 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 list | 19 | // 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 would | 20 | // 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 | \\ sc | 24 | \\ sc |
| 25 | \\ bns+ 1f | 25 | \\ bns+ 1f |
| 26 | \\ neg 3, 3 | 26 | \\ 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 | } |
| 33 | 33 | ||
| 34 | pub fn syscall1(number: SYS, arg1: usize) usize { | 34 | pub 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 | \\ sc | 38 | \\ sc |
| 39 | \\ bns+ 1f | 39 | \\ bns+ 1f |
| 40 | \\ neg 3, 3 | 40 | \\ 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 | } |
| 48 | 48 | ||
| 49 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 49 | pub 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 | \\ sc | 54 | \\ sc |
| 55 | \\ bns+ 1f | 55 | \\ bns+ 1f |
| 56 | \\ neg 3, 3 | 56 | \\ 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 | } |
| 66 | 66 | ||
| 67 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 67 | pub 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 | \\ sc | 73 | \\ sc |
| 74 | \\ bns+ 1f | 74 | \\ bns+ 1f |
| 75 | \\ neg 3, 3 | 75 | \\ 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 | } |
| 87 | 87 | ||
| 88 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 88 | pub 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 | \\ sc | 95 | \\ sc |
| 96 | \\ bns+ 1f | 96 | \\ bns+ 1f |
| 97 | \\ neg 3, 3 | 97 | \\ 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 | } |
| 111 | 111 | ||
| 112 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 112 | pub 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 | \\ sc | 120 | \\ sc |
| 121 | \\ bns+ 1f | 121 | \\ bns+ 1f |
| 122 | \\ neg 3, 3 | 122 | \\ 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, |
| 138 | 138 | ||
| 139 | pub fn syscall6( | 139 | pub 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 | \\ sc | 156 | \\ sc |
| 157 | \\ bns+ 1f | 157 | \\ bns+ 1f |
| 158 | \\ neg 3, 3 | 158 | \\ 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 | } |
| 176 | 176 | ||
| 177 | pub fn clone() callconv(.naked) usize { | 177 | pub 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, 9 | 179 | // 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; |
| 13 | const socklen_t = linux.socklen_t; | 13 | const socklen_t = linux.socklen_t; |
| 14 | const timespec = std.os.linux.timespec; | 14 | const timespec = std.os.linux.timespec; |
| 15 | 15 | ||
| 16 | pub fn syscall0(number: SYS) usize { | 16 | pub 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 | } |
| 22 | 22 | ||
| 23 | pub fn syscall1(number: SYS, arg1: usize) usize { | 23 | pub 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 | } |
| 30 | 30 | ||
| 31 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 31 | pub 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 | } |
| 39 | 39 | ||
| 40 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 40 | pub 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 | } |
| 49 | 49 | ||
| 50 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 50 | pub 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 | } |
| 60 | 60 | ||
| 61 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 61 | pub 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, |
| 72 | 72 | ||
| 73 | pub fn syscall6( | 73 | pub 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 | } |
| 93 | 93 | ||
| 94 | pub fn clone() callconv(.naked) usize { | 94 | pub 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, a6 | 96 | // 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; |
| 13 | const socklen_t = linux.socklen_t; | 13 | const socklen_t = linux.socklen_t; |
| 14 | const timespec = std.os.linux.timespec; | 14 | const timespec = std.os.linux.timespec; |
| 15 | 15 | ||
| 16 | pub fn syscall0(number: SYS) usize { | 16 | pub 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 | } |
| 22 | 22 | ||
| 23 | pub fn syscall1(number: SYS, arg1: usize) usize { | 23 | pub 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 | } |
| 30 | 30 | ||
| 31 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 31 | pub 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 | } |
| 39 | 39 | ||
| 40 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 40 | pub 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 | } |
| 49 | 49 | ||
| 50 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 50 | pub 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 | } |
| 60 | 60 | ||
| 61 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 61 | pub 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, |
| 72 | 72 | ||
| 73 | pub fn syscall6( | 73 | pub 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 | } |
| 93 | 93 | ||
| 94 | pub fn clone() callconv(.naked) usize { | 94 | pub 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, a6 | 96 | // 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; |
| 13 | const stack_t = std.os.linux.stack_t; | 13 | const stack_t = std.os.linux.stack_t; |
| 14 | const sigset_t = std.os.linux.sigset_t; | 14 | const sigset_t = std.os.linux.sigset_t; |
| 15 | 15 | ||
| 16 | pub fn syscall0(number: SYS) usize { | 16 | pub 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 | } |
| 22 | 22 | ||
| 23 | pub fn syscall1(number: SYS, arg1: usize) usize { | 23 | pub 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 | } |
| 30 | 30 | ||
| 31 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 31 | pub 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 | } |
| 39 | 39 | ||
| 40 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 40 | pub 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 | } |
| 49 | 49 | ||
| 50 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 50 | pub 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 | } |
| 60 | 60 | ||
| 61 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 61 | pub 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 | } |
| 72 | 72 | ||
| 73 | pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize, arg6: usize) usize { | 73 | pub 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 | } |
| 85 | 85 | ||
| 86 | pub fn clone() callconv(.naked) usize { | 86 | pub fn clone() callconv(.naked) u64 { |
| 87 | asm volatile ( | 87 | asm volatile ( |
| 88 | \\# int clone( | 88 | \\# int clone( |
| 89 | \\# fn, a = r2 | 89 | \\# 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; |
| 15 | const iovec_const = std.posix.iovec_const; | 15 | const iovec_const = std.posix.iovec_const; |
| 16 | const timespec = linux.timespec; | 16 | const timespec = linux.timespec; |
| 17 | 17 | ||
| 18 | pub fn syscall_pipe(fd: *[2]i32) usize { | 18 | pub fn syscall_pipe(fd: *[2]i32) u64 { |
| 19 | return asm volatile ( | 19 | return asm volatile ( |
| 20 | \\ mov %[arg], %%g3 | 20 | \\ mov %[arg], %%g3 |
| 21 | \\ t 0x6d | 21 | \\ 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 %%o0 | 30 | \\ 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 | } |
| 37 | 37 | ||
| 38 | pub fn syscall_fork() usize { | 38 | pub 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 %%o1 | 52 | \\ dec %%o1 |
| 53 | \\ and %%o1, %%o0, %%o0 | 53 | \\ 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 | } |
| 59 | 59 | ||
| 60 | pub fn syscall0(number: SYS) usize { | 60 | pub fn syscall0(number: SYS) u64 { |
| 61 | return asm volatile ( | 61 | return asm volatile ( |
| 62 | \\ t 0x6d | 62 | \\ t 0x6d |
| 63 | \\ bcc,pt %%xcc, 1f | 63 | \\ bcc,pt %%xcc, 1f |
| 64 | \\ nop | 64 | \\ nop |
| 65 | \\ neg %%o0 | 65 | \\ 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 | } |
| 71 | 71 | ||
| 72 | pub fn syscall1(number: SYS, arg1: usize) usize { | 72 | pub fn syscall1(number: SYS, arg1: u64) u64 { |
| 73 | return asm volatile ( | 73 | return asm volatile ( |
| 74 | \\ t 0x6d | 74 | \\ t 0x6d |
| 75 | \\ bcc,pt %%xcc, 1f | 75 | \\ bcc,pt %%xcc, 1f |
| 76 | \\ nop | 76 | \\ nop |
| 77 | \\ neg %%o0 | 77 | \\ 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 | } |
| 84 | 84 | ||
| 85 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 85 | pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 { |
| 86 | return asm volatile ( | 86 | return asm volatile ( |
| 87 | \\ t 0x6d | 87 | \\ t 0x6d |
| 88 | \\ bcc,pt %%xcc, 1f | 88 | \\ bcc,pt %%xcc, 1f |
| 89 | \\ nop | 89 | \\ nop |
| 90 | \\ neg %%o0 | 90 | \\ 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 | } |
| 98 | 98 | ||
| 99 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 99 | pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 { |
| 100 | return asm volatile ( | 100 | return asm volatile ( |
| 101 | \\ t 0x6d | 101 | \\ t 0x6d |
| 102 | \\ bcc,pt %%xcc, 1f | 102 | \\ bcc,pt %%xcc, 1f |
| 103 | \\ nop | 103 | \\ nop |
| 104 | \\ neg %%o0 | 104 | \\ 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 | } |
| 113 | 113 | ||
| 114 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 114 | pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 { |
| 115 | return asm volatile ( | 115 | return asm volatile ( |
| 116 | \\ t 0x6d | 116 | \\ t 0x6d |
| 117 | \\ bcc,pt %%xcc, 1f | 117 | \\ bcc,pt %%xcc, 1f |
| 118 | \\ nop | 118 | \\ nop |
| 119 | \\ neg %%o0 | 119 | \\ 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 | } |
| 129 | 129 | ||
| 130 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 130 | pub 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 0x6d | 132 | \\ t 0x6d |
| 133 | \\ bcc,pt %%xcc, 1f | 133 | \\ bcc,pt %%xcc, 1f |
| 134 | \\ nop | 134 | \\ nop |
| 135 | \\ neg %%o0 | 135 | \\ 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, |
| 146 | 146 | ||
| 147 | pub fn syscall6( | 147 | pub 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 0x6d | 157 | \\ t 0x6d |
| 158 | \\ bcc,pt %%xcc, 1f | 158 | \\ bcc,pt %%xcc, 1f |
| 159 | \\ nop | 159 | \\ nop |
| 160 | \\ neg %%o0 | 160 | \\ 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 | } |
| 172 | 172 | ||
| 173 | pub fn clone() callconv(.naked) usize { | 173 | pub 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, sp | 175 | // 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 { |
| 274 | 274 | ||
| 275 | pub const off_t = i64; | 275 | pub const off_t = i64; |
| 276 | pub const ino_t = u64; | 276 | pub const ino_t = u64; |
| 277 | pub const time_t = isize; | 277 | pub const time_t = i64; |
| 278 | pub const mode_t = u32; | 278 | pub const mode_t = u32; |
| 279 | pub const dev_t = usize; | 279 | pub const dev_t = u64; |
| 280 | pub const nlink_t = u32; | 280 | pub const nlink_t = u32; |
| 281 | pub const blksize_t = isize; | 281 | pub const blksize_t = i64; |
| 282 | pub const blkcnt_t = isize; | 282 | pub const blkcnt_t = i64; |
| 283 | 283 | ||
| 284 | // The `stat64` definition used by the kernel. | 284 | // The `stat64` definition used by the kernel. |
| 285 | pub const Stat = extern struct { | 285 | pub 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"); |
| 7 | const linux = std.os.linux; | 7 | const linux = std.os.linux; |
| 8 | const SYS = linux.SYS; | 8 | const SYS = linux.SYS; |
| 9 | 9 | ||
| 10 | pub fn syscall0(number: SYS) usize { | 10 | pub 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 #0 | 15 | \\ 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 | } |
| 21 | 21 | ||
| 22 | pub fn syscall1(number: SYS, arg1: usize) usize { | 22 | pub 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 #0 | 27 | \\ 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 | } |
| 34 | 34 | ||
| 35 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 35 | pub 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 #0 | 40 | \\ 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 | } |
| 48 | 48 | ||
| 49 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 49 | pub 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 #0 | 54 | \\ 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 | } |
| 63 | 63 | ||
| 64 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 64 | pub 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 #0 | 69 | \\ 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 | } |
| 79 | 79 | ||
| 80 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 80 | pub 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 #0 | 85 | \\ 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, |
| 96 | 96 | ||
| 97 | pub fn syscall6( | 97 | pub 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 #0 | 110 | \\ 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; |
| 14 | const sockaddr = linux.sockaddr; | 14 | const sockaddr = linux.sockaddr; |
| 15 | const timespec = linux.timespec; | 15 | const timespec = linux.timespec; |
| 16 | 16 | ||
| 17 | pub fn syscall0(number: SYS) usize { | 17 | pub 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 | } |
| 23 | 23 | ||
| 24 | pub fn syscall1(number: SYS, arg1: usize) usize { | 24 | pub 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 | } |
| 31 | 31 | ||
| 32 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 32 | pub 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 | } |
| 40 | 40 | ||
| 41 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 41 | pub 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 | } |
| 50 | 50 | ||
| 51 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 51 | pub 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 | } |
| 61 | 61 | ||
| 62 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 62 | pub 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, |
| 73 | 73 | ||
| 74 | pub fn syscall6( | 74 | pub 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 pointer | 83 | // 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 that | 84 | // 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 needs | 85 | // 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 get | 86 | // *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 that | 87 | // 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 %%ebp | 92 | \\ push %%ebp |
| ... | @@ -99,7 +99,7 @@ pub fn syscall6( | ... | @@ -99,7 +99,7 @@ pub fn syscall6( |
| 99 | \\ int $0x80 | 99 | \\ int $0x80 |
| 100 | \\ pop %%ebp | 100 | \\ pop %%ebp |
| 101 | \\ pop %%edi | 101 | \\ 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 | } |
| 111 | 111 | ||
| 112 | pub fn socketcall(call: usize, args: [*]const usize) usize { | 112 | pub 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 | } |
| 120 | 120 | ||
| 121 | pub fn clone() callconv(.naked) usize { | 121 | pub 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, +32 | 123 | // +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 { |
| 239 | 239 | ||
| 240 | pub const blksize_t = i32; | 240 | pub const blksize_t = i32; |
| 241 | pub const nlink_t = u32; | 241 | pub const nlink_t = u32; |
| 242 | pub const time_t = isize; | 242 | pub const time_t = i32; |
| 243 | pub const mode_t = u32; | 243 | pub const mode_t = u32; |
| 244 | pub const off_t = i64; | 244 | pub const off_t = i64; |
| 245 | pub const ino_t = u64; | 245 | pub 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; |
| 16 | const socklen_t = linux.socklen_t; | 16 | const socklen_t = linux.socklen_t; |
| 17 | const timespec = linux.timespec; | 17 | const timespec = linux.timespec; |
| 18 | 18 | ||
| 19 | pub fn syscall0(number: SYS) usize { | 19 | pub 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 | } |
| 25 | 25 | ||
| 26 | pub fn syscall1(number: SYS, arg1: usize) usize { | 26 | pub 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 | } |
| 33 | 33 | ||
| 34 | pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize { | 34 | pub 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 | } |
| 42 | 42 | ||
| 43 | pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize { | 43 | pub 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 | } |
| 52 | 52 | ||
| 53 | pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 53 | pub 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 | } |
| 63 | 63 | ||
| 64 | pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { | 64 | pub 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, |
| 75 | 75 | ||
| 76 | pub fn syscall6( | 76 | pub 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 | } |
| 96 | 96 | ||
| 97 | pub fn clone() callconv(.naked) usize { | 97 | pub fn clone() callconv(.naked) u64 { |
| 98 | asm volatile ( | 98 | asm volatile ( |
| 99 | \\ movl $56,%%eax // SYS_clone | 99 | \\ movl $56,%%eax // SYS_clone |
| 100 | \\ movq %%rdi,%%r11 | 100 | \\ 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 | } |
| 148 | 148 | ||
| 149 | pub const mode_t = usize; | 149 | pub const mode_t = u64; |
| 150 | pub const time_t = isize; | 150 | pub const time_t = i64; |
| 151 | pub const nlink_t = usize; | 151 | pub const nlink_t = u64; |
| 152 | pub const blksize_t = isize; | 152 | pub const blksize_t = i64; |
| 153 | pub const blkcnt_t = isize; | 153 | pub const blkcnt_t = i64; |
| 154 | 154 | ||
| 155 | pub const F = struct { | 155 | pub 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; |
| 206 | pub const Stat = extern struct { | 206 | pub 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, |
| 210 | 210 | ||
| 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, |
| 219 | 219 | ||
| 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, |
| 224 | 224 | ||
| 225 | pub fn atime(self: @This()) timespec { | 225 | pub fn atime(self: @This()) timespec { |
| 226 | return self.atim; | 226 | return self.atim; |