Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-08-23 | user/netstack: TCP recv | dzwdz | |
2022-08-23 | shared/ring: rename ring_size to ring_used, add ring_avail | dzwdz | |
2022-08-23 | user/netstack: TCP listen and close | dzwdz | |
2022-08-22 | user/netstack: ARP cache | dzwdz | |
2022-08-22 | syscalls/fs_respond: make the *buf argument const | dzwdz | |
2022-08-19 | include: make camellia/syscalls.h compatible with assembly | dzwdz | |
2022-08-19 | syscall/fs_wait: return a handle for each request | dzwdz | |
2022-08-19 | syscall/fork: allow sharing handles between threads | dzwdz | |
2022-08-19 | kernel/proc: abstract away managing handles | dzwdz | |
2022-08-18 | syscall/fork: FORK_SHAREMEM for primitive "threads" | dzwdz | |
2022-08-12 | vfs: OPEN_RO flag, read-only whitelist entries | dzwdz | |
2022-08-11 | shared/header: don't mix kinds of declarations between headers | dzwdz | |
syscalls.h shouldn't define a random struct etc | |||
2022-08-11 | vfs: support for removing files | dzwdz | |
2022-08-08 | user/libc: cwd | dzwdz | |
2022-08-07 | user/libc: preparation for dlmalloc port | dzwdz | |
2022-08-06 | shared assert.h | dzwdz | |
2022-08-06 | make snprintf shared; dynamic resolution support | dzwdz | |
2022-08-05 | shared/mem: 64bit memcpy/memset | dzwdz | |
/bin/tests with test_sleep disabled now runs almost 2x as fast | |||
2022-08-05 | add _syscall_getsize | dzwdz | |
2022-08-05 | shared/printf: implement %d | dzwdz | |
2022-08-05 | move path_simplify to shared code, move its tests to userland | dzwdz | |
2022-08-04 | move the kernel util tests to userland | dzwdz | |
2022-08-04 | do some simple TODOs, organize the rest; general code maintainance | dzwdz | |
2022-08-04 | user/tests: split the tests by parts of codebase | dzwdz | |
2022-08-04 | syscalls: add _syscall_sleep() | dzwdz | |
2022-08-03 | shared/printf: caching | dzwdz | |
Everything other than %s and %x outputs a single char at once. The speedup is easily visible when e.g. hexdumping. | |||
2022-08-03 | user/libc: isspace, strtol | dzwdz | |
2022-08-03 | shared: clean up printf, %u support (amongst other things) | dzwdz | |
2022-08-01 | fsutil: remove debug `true ||` in if condition | dzwdz | |
2022-07-29 | fsutil/fs_normslice: define *offset == 0 when *length == 0 | dzwdz | |
2022-07-29 | syscall/write: WRITE_TRUNCATE | dzwdz | |
2022-07-29 | syscall: up the max argument count to 5; make write accept flags | dzwdz | |
2022-07-29 | use a shared fs_normslice() function to handle offsets | dzwdz | |
2022-07-27 | user/libc: execve() supports passing argv now | dzwdz | |
2022-07-27 | user/libc: fseek() | dzwdz | |
2022-07-26 | user/libc: execv() | dzwdz | |
2022-07-26 | user/libc: fread, fwrite, fclose | dzwdz | |
2022-07-26 | shared: move some headers from shared/ to camellia/ | dzwdz | |
2022-07-20 | syscall/execbuf: EXECBUF_JMP | dzwdz | |
2022-07-18 | syscalls: implement execbuf | dzwdz | |
i have been planning to implement something like this for a while now. it should be faster when doing consecutive syscalls (to be tested). it will also be helpful in writing the elf loader | |||
2022-07-17 | kernel/virt_cpy: error struct, better error handling | dzwdz | |
2022-07-16 | amd64: back at the shell! | dzwdz | |
2022-07-16 | amd64: barely boot into kernel code | dzwdz | |
2022-07-10 | syscalls: implement dup | dzwdz | |
2022-07-09 | syscalls/pipe: turn into a POSIX-style api with separate rw ends | dzwdz | |
Without separate read/write ends you can't tell when there are no more writers left if you have multiple readers. Consider this piece of code: int fd = pipe(); fork(); // execution continues in 2 processes while (read(fd, &some_buf, sizeof somebuf) >= 0) { ... } Once both processes call `read()`, it's obvious that no writes are possible - all the processes that hold a reference to the pipe are currently stuck on a `read()` call, so the kernel could just make it return an error in both. But, what then? It's still possible to write to the pipe, and you can't know if the other process will do that. Thus, if you don't want to miss any output, you have to keep reading the pipe. Forever. Both processes end up stuck. Having separate read/write ends prevents that. | |||
2022-07-08 | syscall/fs_respond: get the file id from the buf argument | dzwdz | |
Previously, file ids could only be positive integers, so their range was 31 bits - not enough to represent the entire memory. Now, pointers can be safely used as file ids. | |||
2022-07-07 | kernel/vfs: delegate support in _syscall_fs_respond! | dzwdz | |
this is big in terms of speed, it avoids a lot of unnecessary context switches | |||
2022-07-07 | shared: add a flags argument to _syscall_fs_respond | dzwdz | |
2022-07-05 | kernel: initial partial pipe support | dzwdz | |
2022-07-05 | shared: fix memset | dzwdz | |