@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/c/fcntl.zig +1 -1
- package/compiler/build_runner.zig +0 -2
- package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
- package/package.json +1 -1
- package/std/Build/Step/Compile.zig +0 -1
- package/std/Build.zig +0 -3
- package/std/Io/Threaded.zig +8 -8
- package/std/Io/Writer.zig +7 -3
- package/std/os/linux/aarch64.zig +41 -12
- package/std/os/linux/arc.zig +41 -12
- package/std/os/linux/arm.zig +41 -12
- package/std/os/linux/hexagon.zig +33 -11
- package/std/os/linux/loongarch32.zig +41 -13
- package/std/os/linux/loongarch64.zig +41 -12
- package/std/os/linux/m68k.zig +41 -13
- package/std/os/linux/mips.zig +67 -36
- package/std/os/linux/mips64.zig +60 -29
- package/std/os/linux/mipsn32.zig +60 -29
- package/std/os/linux/or1k.zig +41 -12
- package/std/os/linux/powerpc.zig +41 -12
- package/std/os/linux/powerpc64.zig +41 -12
- package/std/os/linux/riscv32.zig +41 -12
- package/std/os/linux/riscv64.zig +41 -12
- package/std/os/linux/s390x.zig +44 -7
- package/std/os/linux/sparc64.zig +83 -52
- package/std/os/linux/thumb.zig +52 -36
- package/std/os/linux/x32.zig +41 -12
- package/std/os/linux/x86.zig +42 -13
- package/std/os/linux/x86_64.zig +41 -12
- package/std/os/linux.zig +386 -432
- package/std/zig/AstGen.zig +1 -74
- package/std/zig/AstRlAnnotate.zig +0 -11
- package/std/zig/BuiltinFn.zig +0 -32
- package/std/zig/Zir.zig +50 -63
- package/std/zig.zig +0 -10
package/c/fcntl.zig
CHANGED
|
@@ -16,7 +16,7 @@ comptime {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
fn fallocateLinux(fd: c_int, mode: c_int, offset: off_t, len: off_t) callconv(.c) c_int {
|
|
19
|
-
return errno(linux.fallocate(fd, mode, offset, len));
|
|
19
|
+
return errno(linux.fallocate(fd, @bitCast(mode), offset, len));
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
fn posix_fadviseLinux(fd: c_int, offset: off_t, len: off_t, advice: c_int) callconv(.c) c_int {
|
|
@@ -333,8 +333,6 @@ pub fn main(init: process.Init.Minimal) !void {
|
|
|
333
333
|
builder.verbose_llvm_ir = arg["--verbose-llvm-ir=".len..];
|
|
334
334
|
} else if (mem.startsWith(u8, arg, "--verbose-llvm-bc=")) {
|
|
335
335
|
builder.verbose_llvm_bc = arg["--verbose-llvm-bc=".len..];
|
|
336
|
-
} else if (mem.eql(u8, arg, "--verbose-cimport")) {
|
|
337
|
-
builder.verbose_cimport = true;
|
|
338
336
|
} else if (mem.eql(u8, arg, "--verbose-cc")) {
|
|
339
337
|
builder.verbose_cc = true;
|
|
340
338
|
} else if (mem.eql(u8, arg, "--verbose-llvm-cpu-features")) {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
#define __SYSCALL_LL_E(x) (x)
|
|
2
2
|
#define __SYSCALL_LL_O(x) (x)
|
|
3
3
|
|
|
4
|
+
#define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X)
|
|
5
|
+
typedef long long syscall_arg_t;
|
|
6
|
+
|
|
4
7
|
#define SYSCALL_RLIM_INFINITY (-1UL/2)
|
|
5
8
|
|
|
6
9
|
#if __mips_isa_rev >= 6
|
|
@@ -13,9 +16,9 @@
|
|
|
13
16
|
"$14", "$15", "$24", "$25", "hi", "lo", "memory"
|
|
14
17
|
#endif
|
|
15
18
|
|
|
16
|
-
static inline long __syscall0(long n)
|
|
19
|
+
static inline long __syscall0(long long n)
|
|
17
20
|
{
|
|
18
|
-
register long r7 __asm__("$7");
|
|
21
|
+
register long long r7 __asm__("$7");
|
|
19
22
|
register long r2 __asm__("$2");
|
|
20
23
|
__asm__ __volatile__ (
|
|
21
24
|
"daddu $2,$0,%2 ; syscall"
|
|
@@ -25,10 +28,10 @@ static inline long __syscall0(long n)
|
|
|
25
28
|
return r7 && r2>0 ? -r2 : r2;
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
static inline long __syscall1(long n, long a)
|
|
31
|
+
static inline long __syscall1(long long n, long long a)
|
|
29
32
|
{
|
|
30
|
-
register long r4 __asm__("$4") = a;
|
|
31
|
-
register long r7 __asm__("$7");
|
|
33
|
+
register long long r4 __asm__("$4") = a;
|
|
34
|
+
register long long r7 __asm__("$7");
|
|
32
35
|
register long r2 __asm__("$2");
|
|
33
36
|
__asm__ __volatile__ (
|
|
34
37
|
"daddu $2,$0,%2 ; syscall"
|
|
@@ -38,11 +41,11 @@ static inline long __syscall1(long n, long a)
|
|
|
38
41
|
return r7 && r2>0 ? -r2 : r2;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
|
-
static inline long __syscall2(long n, long a, long b)
|
|
44
|
+
static inline long __syscall2(long long n, long long a, long long b)
|
|
42
45
|
{
|
|
43
|
-
register long r4 __asm__("$4") = a;
|
|
44
|
-
register long r5 __asm__("$5") = b;
|
|
45
|
-
register long r7 __asm__("$7");
|
|
46
|
+
register long long r4 __asm__("$4") = a;
|
|
47
|
+
register long long r5 __asm__("$5") = b;
|
|
48
|
+
register long long r7 __asm__("$7");
|
|
46
49
|
register long r2 __asm__("$2");
|
|
47
50
|
|
|
48
51
|
__asm__ __volatile__ (
|
|
@@ -53,12 +56,12 @@ static inline long __syscall2(long n, long a, long b)
|
|
|
53
56
|
return r7 && r2>0 ? -r2 : r2;
|
|
54
57
|
}
|
|
55
58
|
|
|
56
|
-
static inline long __syscall3(long n, long a, long b, long c)
|
|
59
|
+
static inline long __syscall3(long long n, long long a, long long b, long long c)
|
|
57
60
|
{
|
|
58
|
-
register long r4 __asm__("$4") = a;
|
|
59
|
-
register long r5 __asm__("$5") = b;
|
|
60
|
-
register long r6 __asm__("$6") = c;
|
|
61
|
-
register long r7 __asm__("$7");
|
|
61
|
+
register long long r4 __asm__("$4") = a;
|
|
62
|
+
register long long r5 __asm__("$5") = b;
|
|
63
|
+
register long long r6 __asm__("$6") = c;
|
|
64
|
+
register long long r7 __asm__("$7");
|
|
62
65
|
register long r2 __asm__("$2");
|
|
63
66
|
|
|
64
67
|
__asm__ __volatile__ (
|
|
@@ -69,12 +72,12 @@ static inline long __syscall3(long n, long a, long b, long c)
|
|
|
69
72
|
return r7 && r2>0 ? -r2 : r2;
|
|
70
73
|
}
|
|
71
74
|
|
|
72
|
-
static inline long __syscall4(long n, long a, long b, long c, long d)
|
|
75
|
+
static inline long __syscall4(long long n, long long a, long long b, long long c, long long d)
|
|
73
76
|
{
|
|
74
|
-
register long r4 __asm__("$4") = a;
|
|
75
|
-
register long r5 __asm__("$5") = b;
|
|
76
|
-
register long r6 __asm__("$6") = c;
|
|
77
|
-
register long r7 __asm__("$7") = d;
|
|
77
|
+
register long long r4 __asm__("$4") = a;
|
|
78
|
+
register long long r5 __asm__("$5") = b;
|
|
79
|
+
register long long r6 __asm__("$6") = c;
|
|
80
|
+
register long long r7 __asm__("$7") = d;
|
|
78
81
|
register long r2 __asm__("$2");
|
|
79
82
|
|
|
80
83
|
__asm__ __volatile__ (
|
|
@@ -85,13 +88,13 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
|
|
|
85
88
|
return r7 && r2>0 ? -r2 : r2;
|
|
86
89
|
}
|
|
87
90
|
|
|
88
|
-
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
|
91
|
+
static inline long __syscall5(long long n, long long a, long long b, long long c, long long d, long long e)
|
|
89
92
|
{
|
|
90
|
-
register long r4 __asm__("$4") = a;
|
|
91
|
-
register long r5 __asm__("$5") = b;
|
|
92
|
-
register long r6 __asm__("$6") = c;
|
|
93
|
-
register long r7 __asm__("$7") = d;
|
|
94
|
-
register long r8 __asm__("$8") = e;
|
|
93
|
+
register long long r4 __asm__("$4") = a;
|
|
94
|
+
register long long r5 __asm__("$5") = b;
|
|
95
|
+
register long long r6 __asm__("$6") = c;
|
|
96
|
+
register long long r7 __asm__("$7") = d;
|
|
97
|
+
register long long r8 __asm__("$8") = e;
|
|
95
98
|
register long r2 __asm__("$2");
|
|
96
99
|
|
|
97
100
|
__asm__ __volatile__ (
|
|
@@ -102,14 +105,14 @@ static inline long __syscall5(long n, long a, long b, long c, long d, long e)
|
|
|
102
105
|
return r7 && r2>0 ? -r2 : r2;
|
|
103
106
|
}
|
|
104
107
|
|
|
105
|
-
static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
|
|
108
|
+
static inline long __syscall6(long long n, long long a, long long b, long long c, long long d, long long e, long long f)
|
|
106
109
|
{
|
|
107
|
-
register long r4 __asm__("$4") = a;
|
|
108
|
-
register long r5 __asm__("$5") = b;
|
|
109
|
-
register long r6 __asm__("$6") = c;
|
|
110
|
-
register long r7 __asm__("$7") = d;
|
|
111
|
-
register long r8 __asm__("$8") = e;
|
|
112
|
-
register long r9 __asm__("$9") = f;
|
|
110
|
+
register long long r4 __asm__("$4") = a;
|
|
111
|
+
register long long r5 __asm__("$5") = b;
|
|
112
|
+
register long long r6 __asm__("$6") = c;
|
|
113
|
+
register long long r7 __asm__("$7") = d;
|
|
114
|
+
register long long r8 __asm__("$8") = e;
|
|
115
|
+
register long long r9 __asm__("$9") = f;
|
|
113
116
|
register long r2 __asm__("$2");
|
|
114
117
|
|
|
115
118
|
__asm__ __volatile__ (
|
package/package.json
CHANGED
|
@@ -1393,7 +1393,6 @@ fn getZigArgs(compile: *Compile, fuzz: bool) ![][]const u8 {
|
|
|
1393
1393
|
try zig_args.append("--debug-incremental");
|
|
1394
1394
|
}
|
|
1395
1395
|
|
|
1396
|
-
if (b.verbose_cimport) try zig_args.append("--verbose-cimport");
|
|
1397
1396
|
if (b.verbose_air) try zig_args.append("--verbose-air");
|
|
1398
1397
|
if (b.verbose_llvm_ir) |path| try zig_args.append(b.fmt("--verbose-llvm-ir={s}", .{path}));
|
|
1399
1398
|
if (b.verbose_llvm_bc) |path| try zig_args.append(b.fmt("--verbose-llvm-bc={s}", .{path}));
|
package/std/Build.zig
CHANGED
|
@@ -38,7 +38,6 @@ verbose_cc: bool,
|
|
|
38
38
|
verbose_air: bool,
|
|
39
39
|
verbose_llvm_ir: ?[]const u8,
|
|
40
40
|
verbose_llvm_bc: ?[]const u8,
|
|
41
|
-
verbose_cimport: bool,
|
|
42
41
|
verbose_llvm_cpu_features: bool,
|
|
43
42
|
reference_trace: ?u32 = null,
|
|
44
43
|
invalid_user_input: bool,
|
|
@@ -278,7 +277,6 @@ pub fn create(
|
|
|
278
277
|
.verbose_air = false,
|
|
279
278
|
.verbose_llvm_ir = null,
|
|
280
279
|
.verbose_llvm_bc = null,
|
|
281
|
-
.verbose_cimport = false,
|
|
282
280
|
.verbose_llvm_cpu_features = false,
|
|
283
281
|
.invalid_user_input = false,
|
|
284
282
|
.allocator = arena,
|
|
@@ -377,7 +375,6 @@ fn createChildOnly(
|
|
|
377
375
|
.verbose_air = parent.verbose_air,
|
|
378
376
|
.verbose_llvm_ir = parent.verbose_llvm_ir,
|
|
379
377
|
.verbose_llvm_bc = parent.verbose_llvm_bc,
|
|
380
|
-
.verbose_cimport = parent.verbose_cimport,
|
|
381
378
|
.verbose_llvm_cpu_features = parent.verbose_llvm_cpu_features,
|
|
382
379
|
.reference_trace = parent.reference_trace,
|
|
383
380
|
.invalid_user_input = false,
|
package/std/Io/Threaded.zig
CHANGED
|
@@ -10035,10 +10035,10 @@ fn fileSeekBy(userdata: ?*anyopaque, file: File, offset: i64) File.SeekError!voi
|
|
|
10035
10035
|
if (posix.SEEK == void) return error.Unseekable;
|
|
10036
10036
|
|
|
10037
10037
|
if (native_os == .linux and !builtin.link_libc and @sizeOf(usize) == 4) {
|
|
10038
|
-
var result:
|
|
10038
|
+
var result: i64 = undefined;
|
|
10039
10039
|
const syscall: Syscall = try .start();
|
|
10040
10040
|
while (true) {
|
|
10041
|
-
switch (posix.errno(posix.system.llseek(file.handle,
|
|
10041
|
+
switch (posix.errno(posix.system.llseek(file.handle, offset, &result, posix.SEEK.CUR))) {
|
|
10042
10042
|
.SUCCESS => {
|
|
10043
10043
|
syscall.finish();
|
|
10044
10044
|
return;
|
|
@@ -10149,8 +10149,8 @@ fn posixSeekTo(fd: posix.fd_t, offset: u64) File.SeekError!void {
|
|
|
10149
10149
|
if (native_os == .linux and !builtin.link_libc and @sizeOf(usize) == 4) {
|
|
10150
10150
|
const syscall: Syscall = try .start();
|
|
10151
10151
|
while (true) {
|
|
10152
|
-
var result:
|
|
10153
|
-
switch (posix.errno(posix.system.llseek(fd, offset, &result, posix.SEEK.SET))) {
|
|
10152
|
+
var result: i64 = undefined;
|
|
10153
|
+
switch (posix.errno(posix.system.llseek(fd, @bitCast(offset), &result, posix.SEEK.SET))) {
|
|
10154
10154
|
.SUCCESS => {
|
|
10155
10155
|
syscall.finish();
|
|
10156
10156
|
return;
|
|
@@ -15247,7 +15247,7 @@ fn childWaitPosix(child: *process.Child) process.Child.WaitError!process.Child.T
|
|
|
15247
15247
|
const ru_ptr = if (child.request_resource_usage_statistics) &ru else null;
|
|
15248
15248
|
|
|
15249
15249
|
if (have_wait4) {
|
|
15250
|
-
var status: if (builtin.link_libc) c_int else
|
|
15250
|
+
var status: if (builtin.link_libc) c_int else i32 = undefined;
|
|
15251
15251
|
const syscall: Syscall = try .start();
|
|
15252
15252
|
while (true) switch (posix.errno(posix.system.wait4(pid, &status, 0, ru_ptr))) {
|
|
15253
15253
|
.SUCCESS => {
|
|
@@ -15290,7 +15290,7 @@ fn childWaitPosix(child: *process.Child) process.Child.WaitError!process.Child.T
|
|
|
15290
15290
|
};
|
|
15291
15291
|
}
|
|
15292
15292
|
|
|
15293
|
-
var status: if (builtin.link_libc) c_int else
|
|
15293
|
+
var status: if (builtin.link_libc) c_int else i32 = undefined;
|
|
15294
15294
|
const syscall: Syscall = try .start();
|
|
15295
15295
|
while (true) switch (posix.errno(posix.system.waitpid(pid, &status, 0))) {
|
|
15296
15296
|
.SUCCESS => {
|
|
@@ -15332,7 +15332,7 @@ fn childKillPosix(child: *process.Child) !void {
|
|
|
15332
15332
|
};
|
|
15333
15333
|
|
|
15334
15334
|
if (have_wait4) {
|
|
15335
|
-
var status: if (builtin.link_libc) c_int else
|
|
15335
|
+
var status: if (builtin.link_libc) c_int else i32 = undefined;
|
|
15336
15336
|
while (true) switch (posix.errno(posix.system.wait4(pid, &status, 0, null))) {
|
|
15337
15337
|
.SUCCESS => return,
|
|
15338
15338
|
.INTR => continue,
|
|
@@ -15352,7 +15352,7 @@ fn childKillPosix(child: *process.Child) !void {
|
|
|
15352
15352
|
};
|
|
15353
15353
|
}
|
|
15354
15354
|
|
|
15355
|
-
var status: if (builtin.link_libc) c_int else
|
|
15355
|
+
var status: if (builtin.link_libc) c_int else i32 = undefined;
|
|
15356
15356
|
while (true) switch (posix.errno(posix.system.waitpid(pid, &status, 0))) {
|
|
15357
15357
|
.SUCCESS => return,
|
|
15358
15358
|
.INTR => continue,
|
package/std/Io/Writer.zig
CHANGED
|
@@ -599,11 +599,15 @@ pub fn writeAll(w: *Writer, bytes: []const u8) Error!void {
|
|
|
599
599
|
/// - `u`: integer as an UTF-8 sequence. Integer type must have 21 bits at max.
|
|
600
600
|
/// - `B`: bytes in SI units (decimal)
|
|
601
601
|
/// - `Bi`: bytes in IEC units (binary)
|
|
602
|
-
/// - `?`: optional value as either the unwrapped value, or `null`; may be
|
|
603
|
-
///
|
|
602
|
+
/// - `?`: optional value as either the unwrapped value, or `null`; may be
|
|
603
|
+
/// followed by a format specifier for the underlying value.
|
|
604
|
+
/// - `!`: error union value as either the unwrapped value, or the formatted
|
|
605
|
+
/// error value; may be followed by a format specifier for the underlying
|
|
606
|
+
/// value.
|
|
604
607
|
/// - `*`: the address of the value instead of the value itself.
|
|
605
608
|
/// - `any`: a value of any type using its default format.
|
|
606
|
-
/// - `f`: delegates to
|
|
609
|
+
/// - `f`: delegates to the `format` method of the type, passing `*Writer` and
|
|
610
|
+
/// expecting `Error!void` returned.
|
|
607
611
|
///
|
|
608
612
|
/// A user type may be a struct, vector, union or enum type.
|
|
609
613
|
///
|
package/std/os/linux/aarch64.zig
CHANGED
|
@@ -2,14 +2,21 @@ const builtin = @import("builtin");
|
|
|
2
2
|
const std = @import("../../std.zig");
|
|
3
3
|
const SYS = std.os.linux.SYS;
|
|
4
4
|
|
|
5
|
-
pub
|
|
5
|
+
pub const syscall_arg_t = u64;
|
|
6
|
+
|
|
7
|
+
pub fn syscall0(
|
|
8
|
+
number: SYS,
|
|
9
|
+
) u64 {
|
|
6
10
|
return asm volatile ("svc #0"
|
|
7
11
|
: [ret] "={x0}" (-> u64),
|
|
8
12
|
: [number] "{x8}" (@intFromEnum(number)),
|
|
9
13
|
: .{ .memory = true });
|
|
10
14
|
}
|
|
11
15
|
|
|
12
|
-
pub fn syscall1(
|
|
16
|
+
pub fn syscall1(
|
|
17
|
+
number: SYS,
|
|
18
|
+
arg1: syscall_arg_t,
|
|
19
|
+
) u64 {
|
|
13
20
|
return asm volatile ("svc #0"
|
|
14
21
|
: [ret] "={x0}" (-> u64),
|
|
15
22
|
: [number] "{x8}" (@intFromEnum(number)),
|
|
@@ -17,7 +24,11 @@ pub fn syscall1(number: SYS, arg1: u64) u64 {
|
|
|
17
24
|
: .{ .memory = true });
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
pub fn syscall2(
|
|
27
|
+
pub fn syscall2(
|
|
28
|
+
number: SYS,
|
|
29
|
+
arg1: syscall_arg_t,
|
|
30
|
+
arg2: syscall_arg_t,
|
|
31
|
+
) u64 {
|
|
21
32
|
return asm volatile ("svc #0"
|
|
22
33
|
: [ret] "={x0}" (-> u64),
|
|
23
34
|
: [number] "{x8}" (@intFromEnum(number)),
|
|
@@ -26,7 +37,12 @@ pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
|
|
|
26
37
|
: .{ .memory = true });
|
|
27
38
|
}
|
|
28
39
|
|
|
29
|
-
pub fn syscall3(
|
|
40
|
+
pub fn syscall3(
|
|
41
|
+
number: SYS,
|
|
42
|
+
arg1: syscall_arg_t,
|
|
43
|
+
arg2: syscall_arg_t,
|
|
44
|
+
arg3: syscall_arg_t,
|
|
45
|
+
) u64 {
|
|
30
46
|
return asm volatile ("svc #0"
|
|
31
47
|
: [ret] "={x0}" (-> u64),
|
|
32
48
|
: [number] "{x8}" (@intFromEnum(number)),
|
|
@@ -36,7 +52,13 @@ pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
|
|
|
36
52
|
: .{ .memory = true });
|
|
37
53
|
}
|
|
38
54
|
|
|
39
|
-
pub fn syscall4(
|
|
55
|
+
pub fn syscall4(
|
|
56
|
+
number: SYS,
|
|
57
|
+
arg1: syscall_arg_t,
|
|
58
|
+
arg2: syscall_arg_t,
|
|
59
|
+
arg3: syscall_arg_t,
|
|
60
|
+
arg4: syscall_arg_t,
|
|
61
|
+
) u64 {
|
|
40
62
|
return asm volatile ("svc #0"
|
|
41
63
|
: [ret] "={x0}" (-> u64),
|
|
42
64
|
: [number] "{x8}" (@intFromEnum(number)),
|
|
@@ -47,7 +69,14 @@ pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
|
|
|
47
69
|
: .{ .memory = true });
|
|
48
70
|
}
|
|
49
71
|
|
|
50
|
-
pub fn syscall5(
|
|
72
|
+
pub fn syscall5(
|
|
73
|
+
number: SYS,
|
|
74
|
+
arg1: syscall_arg_t,
|
|
75
|
+
arg2: syscall_arg_t,
|
|
76
|
+
arg3: syscall_arg_t,
|
|
77
|
+
arg4: syscall_arg_t,
|
|
78
|
+
arg5: syscall_arg_t,
|
|
79
|
+
) u64 {
|
|
51
80
|
return asm volatile ("svc #0"
|
|
52
81
|
: [ret] "={x0}" (-> u64),
|
|
53
82
|
: [number] "{x8}" (@intFromEnum(number)),
|
|
@@ -61,12 +90,12 @@ pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u
|
|
|
61
90
|
|
|
62
91
|
pub fn syscall6(
|
|
63
92
|
number: SYS,
|
|
64
|
-
arg1:
|
|
65
|
-
arg2:
|
|
66
|
-
arg3:
|
|
67
|
-
arg4:
|
|
68
|
-
arg5:
|
|
69
|
-
arg6:
|
|
93
|
+
arg1: syscall_arg_t,
|
|
94
|
+
arg2: syscall_arg_t,
|
|
95
|
+
arg3: syscall_arg_t,
|
|
96
|
+
arg4: syscall_arg_t,
|
|
97
|
+
arg5: syscall_arg_t,
|
|
98
|
+
arg6: syscall_arg_t,
|
|
70
99
|
) u64 {
|
|
71
100
|
return asm volatile ("svc #0"
|
|
72
101
|
: [ret] "={x0}" (-> u64),
|
package/std/os/linux/arc.zig
CHANGED
|
@@ -2,14 +2,21 @@ const builtin = @import("builtin");
|
|
|
2
2
|
const std = @import("../../std.zig");
|
|
3
3
|
const SYS = std.os.linux.SYS;
|
|
4
4
|
|
|
5
|
-
pub
|
|
5
|
+
pub const syscall_arg_t = u32;
|
|
6
|
+
|
|
7
|
+
pub fn syscall0(
|
|
8
|
+
number: SYS,
|
|
9
|
+
) u32 {
|
|
6
10
|
return asm volatile ("trap_s 0"
|
|
7
11
|
: [ret] "={r0}" (-> u32),
|
|
8
12
|
: [number] "{r8}" (@intFromEnum(number)),
|
|
9
13
|
: .{ .memory = true });
|
|
10
14
|
}
|
|
11
15
|
|
|
12
|
-
pub fn syscall1(
|
|
16
|
+
pub fn syscall1(
|
|
17
|
+
number: SYS,
|
|
18
|
+
arg1: syscall_arg_t,
|
|
19
|
+
) u32 {
|
|
13
20
|
return asm volatile ("trap_s 0"
|
|
14
21
|
: [ret] "={r0}" (-> u32),
|
|
15
22
|
: [number] "{r8}" (@intFromEnum(number)),
|
|
@@ -17,7 +24,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
|
|
|
17
24
|
: .{ .memory = true });
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
pub fn syscall2(
|
|
27
|
+
pub fn syscall2(
|
|
28
|
+
number: SYS,
|
|
29
|
+
arg1: syscall_arg_t,
|
|
30
|
+
arg2: syscall_arg_t,
|
|
31
|
+
) u32 {
|
|
21
32
|
return asm volatile ("trap_s 0"
|
|
22
33
|
: [ret] "={r0}" (-> u32),
|
|
23
34
|
: [number] "{r8}" (@intFromEnum(number)),
|
|
@@ -26,7 +37,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
|
|
|
26
37
|
: .{ .memory = true });
|
|
27
38
|
}
|
|
28
39
|
|
|
29
|
-
pub fn syscall3(
|
|
40
|
+
pub fn syscall3(
|
|
41
|
+
number: SYS,
|
|
42
|
+
arg1: syscall_arg_t,
|
|
43
|
+
arg2: syscall_arg_t,
|
|
44
|
+
arg3: syscall_arg_t,
|
|
45
|
+
) u32 {
|
|
30
46
|
return asm volatile ("trap_s 0"
|
|
31
47
|
: [ret] "={r0}" (-> u32),
|
|
32
48
|
: [number] "{r8}" (@intFromEnum(number)),
|
|
@@ -36,7 +52,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
|
|
|
36
52
|
: .{ .memory = true });
|
|
37
53
|
}
|
|
38
54
|
|
|
39
|
-
pub fn syscall4(
|
|
55
|
+
pub fn syscall4(
|
|
56
|
+
number: SYS,
|
|
57
|
+
arg1: syscall_arg_t,
|
|
58
|
+
arg2: syscall_arg_t,
|
|
59
|
+
arg3: syscall_arg_t,
|
|
60
|
+
arg4: syscall_arg_t,
|
|
61
|
+
) u32 {
|
|
40
62
|
return asm volatile ("trap_s 0"
|
|
41
63
|
: [ret] "={r0}" (-> u32),
|
|
42
64
|
: [number] "{r8}" (@intFromEnum(number)),
|
|
@@ -47,7 +69,14 @@ pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
|
|
|
47
69
|
: .{ .memory = true });
|
|
48
70
|
}
|
|
49
71
|
|
|
50
|
-
pub fn syscall5(
|
|
72
|
+
pub fn syscall5(
|
|
73
|
+
number: SYS,
|
|
74
|
+
arg1: syscall_arg_t,
|
|
75
|
+
arg2: syscall_arg_t,
|
|
76
|
+
arg3: syscall_arg_t,
|
|
77
|
+
arg4: syscall_arg_t,
|
|
78
|
+
arg5: syscall_arg_t,
|
|
79
|
+
) u32 {
|
|
51
80
|
return asm volatile ("trap_s 0"
|
|
52
81
|
: [ret] "={r0}" (-> u32),
|
|
53
82
|
: [number] "{r8}" (@intFromEnum(number)),
|
|
@@ -61,12 +90,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
|
|
|
61
90
|
|
|
62
91
|
pub fn syscall6(
|
|
63
92
|
number: SYS,
|
|
64
|
-
arg1:
|
|
65
|
-
arg2:
|
|
66
|
-
arg3:
|
|
67
|
-
arg4:
|
|
68
|
-
arg5:
|
|
69
|
-
arg6:
|
|
93
|
+
arg1: syscall_arg_t,
|
|
94
|
+
arg2: syscall_arg_t,
|
|
95
|
+
arg3: syscall_arg_t,
|
|
96
|
+
arg4: syscall_arg_t,
|
|
97
|
+
arg5: syscall_arg_t,
|
|
98
|
+
arg6: syscall_arg_t,
|
|
70
99
|
) u32 {
|
|
71
100
|
return asm volatile ("trap_s 0"
|
|
72
101
|
: [ret] "={r0}" (-> u32),
|
package/std/os/linux/arm.zig
CHANGED
|
@@ -2,14 +2,21 @@ const builtin = @import("builtin");
|
|
|
2
2
|
const std = @import("../../std.zig");
|
|
3
3
|
const SYS = std.os.linux.SYS;
|
|
4
4
|
|
|
5
|
-
pub
|
|
5
|
+
pub const syscall_arg_t = u32;
|
|
6
|
+
|
|
7
|
+
pub fn syscall0(
|
|
8
|
+
number: SYS,
|
|
9
|
+
) u32 {
|
|
6
10
|
return asm volatile ("svc #0"
|
|
7
11
|
: [ret] "={r0}" (-> u32),
|
|
8
12
|
: [number] "{r7}" (@intFromEnum(number)),
|
|
9
13
|
: .{ .memory = true });
|
|
10
14
|
}
|
|
11
15
|
|
|
12
|
-
pub fn syscall1(
|
|
16
|
+
pub fn syscall1(
|
|
17
|
+
number: SYS,
|
|
18
|
+
arg1: syscall_arg_t,
|
|
19
|
+
) u32 {
|
|
13
20
|
return asm volatile ("svc #0"
|
|
14
21
|
: [ret] "={r0}" (-> u32),
|
|
15
22
|
: [number] "{r7}" (@intFromEnum(number)),
|
|
@@ -17,7 +24,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
|
|
|
17
24
|
: .{ .memory = true });
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
pub fn syscall2(
|
|
27
|
+
pub fn syscall2(
|
|
28
|
+
number: SYS,
|
|
29
|
+
arg1: syscall_arg_t,
|
|
30
|
+
arg2: syscall_arg_t,
|
|
31
|
+
) u32 {
|
|
21
32
|
return asm volatile ("svc #0"
|
|
22
33
|
: [ret] "={r0}" (-> u32),
|
|
23
34
|
: [number] "{r7}" (@intFromEnum(number)),
|
|
@@ -26,7 +37,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
|
|
|
26
37
|
: .{ .memory = true });
|
|
27
38
|
}
|
|
28
39
|
|
|
29
|
-
pub fn syscall3(
|
|
40
|
+
pub fn syscall3(
|
|
41
|
+
number: SYS,
|
|
42
|
+
arg1: syscall_arg_t,
|
|
43
|
+
arg2: syscall_arg_t,
|
|
44
|
+
arg3: syscall_arg_t,
|
|
45
|
+
) u32 {
|
|
30
46
|
return asm volatile ("svc #0"
|
|
31
47
|
: [ret] "={r0}" (-> u32),
|
|
32
48
|
: [number] "{r7}" (@intFromEnum(number)),
|
|
@@ -36,7 +52,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
|
|
|
36
52
|
: .{ .memory = true });
|
|
37
53
|
}
|
|
38
54
|
|
|
39
|
-
pub fn syscall4(
|
|
55
|
+
pub fn syscall4(
|
|
56
|
+
number: SYS,
|
|
57
|
+
arg1: syscall_arg_t,
|
|
58
|
+
arg2: syscall_arg_t,
|
|
59
|
+
arg3: syscall_arg_t,
|
|
60
|
+
arg4: syscall_arg_t,
|
|
61
|
+
) u32 {
|
|
40
62
|
return asm volatile ("svc #0"
|
|
41
63
|
: [ret] "={r0}" (-> u32),
|
|
42
64
|
: [number] "{r7}" (@intFromEnum(number)),
|
|
@@ -47,7 +69,14 @@ pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
|
|
|
47
69
|
: .{ .memory = true });
|
|
48
70
|
}
|
|
49
71
|
|
|
50
|
-
pub fn syscall5(
|
|
72
|
+
pub fn syscall5(
|
|
73
|
+
number: SYS,
|
|
74
|
+
arg1: syscall_arg_t,
|
|
75
|
+
arg2: syscall_arg_t,
|
|
76
|
+
arg3: syscall_arg_t,
|
|
77
|
+
arg4: syscall_arg_t,
|
|
78
|
+
arg5: syscall_arg_t,
|
|
79
|
+
) u32 {
|
|
51
80
|
return asm volatile ("svc #0"
|
|
52
81
|
: [ret] "={r0}" (-> u32),
|
|
53
82
|
: [number] "{r7}" (@intFromEnum(number)),
|
|
@@ -61,12 +90,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
|
|
|
61
90
|
|
|
62
91
|
pub fn syscall6(
|
|
63
92
|
number: SYS,
|
|
64
|
-
arg1:
|
|
65
|
-
arg2:
|
|
66
|
-
arg3:
|
|
67
|
-
arg4:
|
|
68
|
-
arg5:
|
|
69
|
-
arg6:
|
|
93
|
+
arg1: syscall_arg_t,
|
|
94
|
+
arg2: syscall_arg_t,
|
|
95
|
+
arg3: syscall_arg_t,
|
|
96
|
+
arg4: syscall_arg_t,
|
|
97
|
+
arg5: syscall_arg_t,
|
|
98
|
+
arg6: syscall_arg_t,
|
|
70
99
|
) u32 {
|
|
71
100
|
return asm volatile ("svc #0"
|
|
72
101
|
: [ret] "={r0}" (-> u32),
|
package/std/os/linux/hexagon.zig
CHANGED
|
@@ -2,14 +2,21 @@ const builtin = @import("builtin");
|
|
|
2
2
|
const std = @import("../../std.zig");
|
|
3
3
|
const SYS = std.os.linux.SYS;
|
|
4
4
|
|
|
5
|
-
pub
|
|
5
|
+
pub const syscall_arg_t = u32;
|
|
6
|
+
|
|
7
|
+
pub fn syscall0(
|
|
8
|
+
number: SYS,
|
|
9
|
+
) u32 {
|
|
6
10
|
return asm volatile ("trap0(#1)"
|
|
7
11
|
: [ret] "={r0}" (-> u32),
|
|
8
12
|
: [number] "{r6}" (@intFromEnum(number)),
|
|
9
13
|
: .{ .memory = true });
|
|
10
14
|
}
|
|
11
15
|
|
|
12
|
-
pub fn syscall1(
|
|
16
|
+
pub fn syscall1(
|
|
17
|
+
number: SYS,
|
|
18
|
+
arg1: syscall_arg_t,
|
|
19
|
+
) u32 {
|
|
13
20
|
return asm volatile ("trap0(#1)"
|
|
14
21
|
: [ret] "={r0}" (-> u32),
|
|
15
22
|
: [number] "{r6}" (@intFromEnum(number)),
|
|
@@ -17,7 +24,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
|
|
|
17
24
|
: .{ .memory = true });
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
pub fn syscall2(
|
|
27
|
+
pub fn syscall2(
|
|
28
|
+
number: SYS,
|
|
29
|
+
arg1: syscall_arg_t,
|
|
30
|
+
arg2: syscall_arg_t,
|
|
31
|
+
) u32 {
|
|
21
32
|
return asm volatile ("trap0(#1)"
|
|
22
33
|
: [ret] "={r0}" (-> u32),
|
|
23
34
|
: [number] "{r6}" (@intFromEnum(number)),
|
|
@@ -26,7 +37,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
|
|
|
26
37
|
: .{ .memory = true });
|
|
27
38
|
}
|
|
28
39
|
|
|
29
|
-
pub fn syscall3(
|
|
40
|
+
pub fn syscall3(
|
|
41
|
+
number: SYS,
|
|
42
|
+
arg1: syscall_arg_t,
|
|
43
|
+
arg2: syscall_arg_t,
|
|
44
|
+
arg3: syscall_arg_t,
|
|
45
|
+
) u32 {
|
|
30
46
|
return asm volatile ("trap0(#1)"
|
|
31
47
|
: [ret] "={r0}" (-> u32),
|
|
32
48
|
: [number] "{r6}" (@intFromEnum(number)),
|
|
@@ -36,7 +52,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
|
|
|
36
52
|
: .{ .memory = true });
|
|
37
53
|
}
|
|
38
54
|
|
|
39
|
-
pub fn syscall4(
|
|
55
|
+
pub fn syscall4(
|
|
56
|
+
number: SYS,
|
|
57
|
+
arg1: syscall_arg_t,
|
|
58
|
+
arg2: syscall_arg_t,
|
|
59
|
+
arg3: syscall_arg_t,
|
|
60
|
+
arg4: syscall_arg_t,
|
|
61
|
+
) u32 {
|
|
40
62
|
return asm volatile ("trap0(#1)"
|
|
41
63
|
: [ret] "={r0}" (-> u32),
|
|
42
64
|
: [number] "{r6}" (@intFromEnum(number)),
|
|
@@ -61,12 +83,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
|
|
|
61
83
|
|
|
62
84
|
pub fn syscall6(
|
|
63
85
|
number: SYS,
|
|
64
|
-
arg1:
|
|
65
|
-
arg2:
|
|
66
|
-
arg3:
|
|
67
|
-
arg4:
|
|
68
|
-
arg5:
|
|
69
|
-
arg6:
|
|
86
|
+
arg1: syscall_arg_t,
|
|
87
|
+
arg2: syscall_arg_t,
|
|
88
|
+
arg3: syscall_arg_t,
|
|
89
|
+
arg4: syscall_arg_t,
|
|
90
|
+
arg5: syscall_arg_t,
|
|
91
|
+
arg6: syscall_arg_t,
|
|
70
92
|
) u32 {
|
|
71
93
|
return asm volatile ("trap0(#1)"
|
|
72
94
|
: [ret] "={r0}" (-> u32),
|