aboutsummaryrefslogtreecommitdiff
path: root/examples/create_process/src
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-21 09:23:47 +0200
committerHimbeer <himbeer@disroot.org>2024-07-21 09:23:47 +0200
commit3bad78f835dad1326812d28adb47a11271e5059d (patch)
tree3b7ab148f8aebb0624e4020d4e5ab2d13cf89a6d /examples/create_process/src
parent3084a07851b5c53ab1feded256b16e3a43704485 (diff)
example: Add create_process example program collection
Diffstat (limited to 'examples/create_process/src')
-rw-r--r--examples/create_process/src/main.zig30
-rw-r--r--examples/create_process/src/main2.zig19
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"
+ );
+}