diff options
author | dzwdz | 2021-10-04 21:01:31 +0200 |
---|---|---|
committer | dzwdz | 2021-10-04 21:01:31 +0200 |
commit | 1d5e56659af7945daac0f79a06b839bfd59c8f1f (patch) | |
tree | 70e9c94177f5877ca9b850294c1aa43fece9cba1 /src/init/main.c | |
parent | 16a5b4c9ed410daba848a781f8b8978846c6b836 (diff) |
remove support for processes returning strings on exit
This isn't really all that useful, it doesn't enable anything that
wasn't possible before. With it removed I'll be able to implement
process_exit() in a much simpler way.
Diffstat (limited to 'src/init/main.c')
-rw-r--r-- | src/init/main.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/init/main.c b/src/init/main.c index 5c798d2..71a2d4e 100644 --- a/src/init/main.c +++ b/src/init/main.c @@ -23,7 +23,7 @@ int main(void) { tty_fd = _syscall_open("/tty", sizeof("/tty") - 1); if (tty_fd < 0) - _syscall_exit(argify("couldn't open tty")); + _syscall_exit(1); fs_test(); test_await(); @@ -32,7 +32,7 @@ int main(void) { while (_syscall_read(tty_fd, &c, 1, 0)) _syscall_write(tty_fd, &c, 1, 0); - _syscall_exit(argify("my job here is done.")); + _syscall_exit(0); } void read_file(const char *path, size_t len) { @@ -83,19 +83,15 @@ void fs_test(void) { } void test_await(void) { - char buf[16]; - int len; + int ret; - // the child immediately dies - if (!_syscall_fork()) - _syscall_exit(argify("i'm dead")); - if (!_syscall_fork()) - _syscall_exit(argify("i'm also dead")); + if (!_syscall_fork()) _syscall_exit(69); + if (!_syscall_fork()) _syscall_exit(420); - while ((len = _syscall_await(buf, 16)) >= 0) { + while ((ret = _syscall_await()) != ~0) { log("await returned: "); - _syscall_write(tty_fd, buf, len, 0); + //_syscall_write(tty_fd, buf, len, 0); TODO printf log("\n"); } - log("await: negative len\n"); + log("await: no more children\n"); } |