aboutsummaryrefslogtreecommitdiff
path: root/examples/create_process/src
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-27 18:29:43 +0200
committerHimbeer <himbeer@disroot.org>2024-07-27 18:29:43 +0200
commit58c2f4df96b2e71c862d12bdeaf85ac58c3b8061 (patch)
treea9f27189a61cf9d0b0472b6f6c02991d2f09327b /examples/create_process/src
parentc790e2a5bebfbd7f005ae60c860c051c46e5c810 (diff)
create_process: Update from VFS to syscalls, including renumbering
Diffstat (limited to 'examples/create_process/src')
-rw-r--r--examples/create_process/src/main.zig23
-rw-r--r--examples/create_process/src/main2.zig10
l---------examples/create_process/src/program21
3 files changed, 15 insertions, 19 deletions
diff --git a/examples/create_process/src/main.zig b/examples/create_process/src/main.zig
index 6b31b4f..404aa77 100644
--- a/examples/create_process/src/main.zig
+++ b/examples/create_process/src/main.zig
@@ -2,6 +2,9 @@
//
// SPDX-License-Identifier: AGPL-3.0-or-later
+const program2 = @embedFile("program2");
+var buf: [program2.len]u8 = undefined;
+
export fn _start() void {
main();
}
@@ -9,7 +12,7 @@ export fn _start() void {
pub fn main() void {
const msg = "Hello from program 1";
asm volatile (
- \\ li a7, 100000
+ \\ li a7, 100001
\\ ecall
:
: [ptr] "{a0}" (msg.ptr),
@@ -17,23 +20,19 @@ pub fn main() void {
: "a7"
);
- const path = "/process/create\x00";
- const program = "/userinit/program2\x00";
+ @memcpy(buf[0..], program2);
+
asm volatile (
- \\ li a7, 100001
+ \\ li a7, 100002
\\ ecall
:
- : [path] "{a0}" (path.ptr),
- [program] "{a1}" (program.ptr),
+ : [bytes] "{a0}" (&buf),
+ [len] "{a1}" (buf.len),
: "a7"
);
- const term_path = "/process/self/terminate\x00";
asm volatile (
- \\ li a7, 100001
+ \\ li a7, 100003
\\ ecall
- :
- : [path] "{a0}" (term_path.ptr),
- : "a7", "a1"
- );
+ ::: "a7", "a1");
}
diff --git a/examples/create_process/src/main2.zig b/examples/create_process/src/main2.zig
index 6813d29..e487df9 100644
--- a/examples/create_process/src/main2.zig
+++ b/examples/create_process/src/main2.zig
@@ -9,7 +9,7 @@ export fn _start() void {
pub fn main() void {
const msg = "Hello from program 2";
asm volatile (
- \\ li a7, 100000
+ \\ li a7, 100001
\\ ecall
:
: [ptr] "{a0}" (msg.ptr),
@@ -17,12 +17,8 @@ pub fn main() void {
: "a7"
);
- const term_path = "/process/self/terminate\x00";
asm volatile (
- \\ li a7, 100001
+ \\ li a7, 100003
\\ ecall
- :
- : [path] "{a0}" (term_path.ptr),
- : "a7", "a1"
- );
+ ::: "a7", "a1");
}
diff --git a/examples/create_process/src/program2 b/examples/create_process/src/program2
new file mode 120000
index 0000000..7c00049
--- /dev/null
+++ b/examples/create_process/src/program2
@@ -0,0 +1 @@
+/home/himbeer/zig/srvre/kernel/examples/create_process/zig-out/bin/program2 \ No newline at end of file