Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-08-15 | kernel: combine kmain_early and kmain | dzwdz | |
2022-08-04 | syscalls: add _syscall_sleep() | dzwdz | |
2022-07-26 | shared: move some headers from shared/ to camellia/ | dzwdz | |
2022-07-20 | user/elf: free memory not belonging to the elf when jumping to it | dzwdz | |
2022-07-16 | amd64: barely boot into kernel code | dzwdz | |
2022-05-26 | syscalls/memflag: FINDFREE flag | dzwdz | |
2022-05-21 | syscall/memflag: implement freeing memory | dzwdz | |
2022-05-03 | kernel: stacktraces on panic() | dzwdz | |
2022-04-14 | kernel: port init's `printf` implementation | dzwdz | |
2022-04-14 | kernel: basic page allocator, `process_free` | dzwdz | |
2022-04-11 | kernel: implement `cpu_pause()` in assembly, remove `irq_interrupt_flag()` | dzwdz | |
2021-10-15 | kernel: quit QEMU once there are no running processes left | dzwdz | |
2021-10-02 | rename kernel/arch/log.h to io.h | dzwdz | |
it's not related to logging but to general io, the old name didn't make sense | |||
2021-09-18 | merge `kernel/types.h` and `init/types.h` | dzwdz | |
2021-09-14 | merge the `syscall_handler` and `_syscall` declarations | dzwdz | |
i think that making the call a bit more "transparent" makes the code nicer | |||
2021-09-14 | add support for 4-parameter syscalls | dzwdz | |
2021-09-11 | replace `user_ptr` with a linux-style `__user` annotation | dzwdz | |
2021-08-24 | switch to using user_ptr for pointers coming from userland | dzwdz | |
this avoid accidental dereferences, and now it's easy to tell apart which pointers are safe to directly read and which aren't. cons: - const is completely discarded | |||
2021-08-24 | replace () with (void) in function definitions | dzwdz | |
`()` means that any amt of arguments will be accepted, which isn't what i want | |||
2021-07-26 | fork() pt 1: cloning process memory | dzwdz | |
2021-07-24 | fix some warnings | dzwdz | |
2021-07-24 | sysexit() now overrides all registers | dzwdz | |
when doing anything more complex than starting a new program, you pretty much need to pass a full register dump. otherwise stuff will break | |||
2021-07-24 | remove sysenter_setup from arch/generic.h - it's not even used | dzwdz | |
2021-07-24 | save all registers on syscalls | dzwdz | |
2021-07-23 | update the process' EIP/ESP when it syscalls | dzwdz | |
2021-07-22 | implement the debuglog() syscall | dzwdz | |
2021-07-21 | syscall parameter & return value passing | dzwdz | |
Sadly, sysenter on i386 limits me to only 4 arguments (so, 1 for the syscall id + 3 real args). If that turns out to be an issue I'll either just switch to interrupts, or switch to x64. | |||
2021-07-21 | barebones syscall | dzwdz | |
2021-07-20 | rename pagedir_use() to pagedir_switch() | dzwdz | |
imo "use" was slightly misleading | |||
2021-07-20 | global PAGE_MASK define | dzwdz | |
it's pretty useful, so it makes sense to define it alongside PAGE_SIZE | |||
2021-07-19 | very basic paging | dzwdz | |
2021-07-18 | clean up the linker script, remove duplicate labels | dzwdz | |
2021-07-18 | fix most current compiler warnings | dzwdz | |
stack_top got changed into a char, because `extern void` isn't even valid. others are self-explanatory | |||
2021-07-18 | move all kernel sources to src/kernel/ | dzwdz | |