aboutsummaryrefslogtreecommitdiff
path: root/examples/create_process/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'examples/create_process/src/main.zig')
-rw-r--r--examples/create_process/src/main.zig30
1 files changed, 30 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"
+ );
+}