summaryrefslogtreecommitdiff
path: root/src/shared
AgeCommit message (Collapse)Author
2022-08-23user/netstack: TCP recvdzwdz
2022-08-23shared/ring: rename ring_size to ring_used, add ring_availdzwdz
2022-08-23user/netstack: TCP listen and closedzwdz
2022-08-22user/netstack: ARP cachedzwdz
2022-08-22syscalls/fs_respond: make the *buf argument constdzwdz
2022-08-19include: make camellia/syscalls.h compatible with assemblydzwdz
2022-08-19syscall/fs_wait: return a handle for each requestdzwdz
2022-08-19syscall/fork: allow sharing handles between threadsdzwdz
2022-08-19kernel/proc: abstract away managing handlesdzwdz
2022-08-18syscall/fork: FORK_SHAREMEM for primitive "threads"dzwdz
2022-08-12vfs: OPEN_RO flag, read-only whitelist entriesdzwdz
2022-08-11shared/header: don't mix kinds of declarations between headersdzwdz
syscalls.h shouldn't define a random struct etc
2022-08-11vfs: support for removing filesdzwdz
2022-08-08user/libc: cwddzwdz
2022-08-07user/libc: preparation for dlmalloc portdzwdz
2022-08-06shared assert.hdzwdz
2022-08-06make snprintf shared; dynamic resolution supportdzwdz
2022-08-05shared/mem: 64bit memcpy/memsetdzwdz
/bin/tests with test_sleep disabled now runs almost 2x as fast
2022-08-05add _syscall_getsizedzwdz
2022-08-05shared/printf: implement %ddzwdz
2022-08-05move path_simplify to shared code, move its tests to userlanddzwdz
2022-08-04move the kernel util tests to userlanddzwdz
2022-08-04do some simple TODOs, organize the rest; general code maintainancedzwdz
2022-08-04user/tests: split the tests by parts of codebasedzwdz
2022-08-04syscalls: add _syscall_sleep()dzwdz
2022-08-03shared/printf: cachingdzwdz
Everything other than %s and %x outputs a single char at once. The speedup is easily visible when e.g. hexdumping.
2022-08-03user/libc: isspace, strtoldzwdz
2022-08-03shared: clean up printf, %u support (amongst other things)dzwdz
2022-08-01fsutil: remove debug `true ||` in if conditiondzwdz
2022-07-29fsutil/fs_normslice: define *offset == 0 when *length == 0dzwdz
2022-07-29syscall/write: WRITE_TRUNCATEdzwdz
2022-07-29syscall: up the max argument count to 5; make write accept flagsdzwdz
2022-07-29use a shared fs_normslice() function to handle offsetsdzwdz
2022-07-27user/libc: execve() supports passing argv nowdzwdz
2022-07-27user/libc: fseek()dzwdz
2022-07-26user/libc: execv()dzwdz
2022-07-26user/libc: fread, fwrite, fclosedzwdz
2022-07-26shared: move some headers from shared/ to camellia/dzwdz
2022-07-20syscall/execbuf: EXECBUF_JMPdzwdz
2022-07-18syscalls: implement execbufdzwdz
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-17kernel/virt_cpy: error struct, better error handlingdzwdz
2022-07-16amd64: back at the shell!dzwdz
2022-07-16amd64: barely boot into kernel codedzwdz
2022-07-10syscalls: implement dupdzwdz
2022-07-09syscalls/pipe: turn into a POSIX-style api with separate rw endsdzwdz
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-08syscall/fs_respond: get the file id from the buf argumentdzwdz
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-07kernel/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-07shared: add a flags argument to _syscall_fs_responddzwdz
2022-07-05kernel: initial partial pipe supportdzwdz
2022-07-05shared: fix memsetdzwdz