diff options
Diffstat (limited to 'examples/create_process/src')
-rw-r--r-- | examples/create_process/src/main.zig | 30 | ||||
-rw-r--r-- | examples/create_process/src/main2.zig | 19 |
2 files changed, 49 insertions, 0 deletions
diff --git a/examples/create_process/src/main.zig b/examples/create_process/src/main.zig new file mode 100644 index 0000000..b806ca3 --- /dev/null +++ b/examples/create_process/src/main.zig @@ -0,0 +1,30 @@ +// SPDX-FileCopyrightText: 2024 Himbeer <himbeer@disroot.org> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +export fn _start() void { + main(); +} + +pub fn main() void { + const msg = "Hello from program 1\r\n"; + asm volatile ( + \\ li a7, 100000 + \\ ecall + : + : [ptr] "{a0}" (msg.ptr), + [len] "{a1}" (msg.len), + : "a7" + ); + + const path = "/process/create\x00"; + const program = "/userinit/program2\x00"; + asm volatile ( + \\ li a7, 100001 + \\ ecall + : + : [path] "{a0}" (path.ptr), + [program] "{a1}" (program.ptr), + : "a7" + ); +} diff --git a/examples/create_process/src/main2.zig b/examples/create_process/src/main2.zig new file mode 100644 index 0000000..d8efab7 --- /dev/null +++ b/examples/create_process/src/main2.zig @@ -0,0 +1,19 @@ +// SPDX-FileCopyrightText: 2024 Himbeer <himbeer@disroot.org> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +export fn _start() void { + main(); +} + +pub fn main() void { + const msg = "Hello from program 2\r\n"; + asm volatile ( + \\ li a7, 100000 + \\ ecall + : + : [ptr] "{a0}" (msg.ptr), + [len] "{a1}" (msg.len), + : "a7" + ); +} |