summaryrefslogtreecommitdiff
path: root/src/kernel/arch/generic.h
AgeCommit message (Collapse)Author
2022-08-04syscalls: add _syscall_sleep()dzwdz
2022-07-26shared: move some headers from shared/ to camellia/dzwdz
2022-07-20user/elf: free memory not belonging to the elf when jumping to itdzwdz
2022-07-16amd64: barely boot into kernel codedzwdz
2022-05-26syscalls/memflag: FINDFREE flagdzwdz
2022-05-21syscall/memflag: implement freeing memorydzwdz
2022-05-03kernel: stacktraces on panic()dzwdz
2022-04-14kernel: port init's `printf` implementationdzwdz
2022-04-14kernel: basic page allocator, `process_free`dzwdz
2022-04-11kernel: implement `cpu_pause()` in assembly, remove `irq_interrupt_flag()`dzwdz
2021-10-15kernel: quit QEMU once there are no running processes leftdzwdz
2021-10-02rename kernel/arch/log.h to io.hdzwdz
it's not related to logging but to general io, the old name didn't make sense
2021-09-18merge `kernel/types.h` and `init/types.h`dzwdz
2021-09-14merge the `syscall_handler` and `_syscall` declarationsdzwdz
i think that making the call a bit more "transparent" makes the code nicer
2021-09-14add support for 4-parameter syscallsdzwdz
2021-09-11replace `user_ptr` with a linux-style `__user` annotationdzwdz
2021-08-24switch to using user_ptr for pointers coming from userlanddzwdz
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-24replace () with (void) in function definitionsdzwdz
`()` means that any amt of arguments will be accepted, which isn't what i want
2021-07-26fork() pt 1: cloning process memorydzwdz
2021-07-24fix some warningsdzwdz
2021-07-24sysexit() now overrides all registersdzwdz
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-24remove sysenter_setup from arch/generic.h - it's not even useddzwdz
2021-07-24save all registers on syscallsdzwdz
2021-07-23update the process' EIP/ESP when it syscallsdzwdz
2021-07-22implement the debuglog() syscalldzwdz
2021-07-21syscall parameter & return value passingdzwdz
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-21barebones syscalldzwdz
2021-07-20rename pagedir_use() to pagedir_switch()dzwdz
imo "use" was slightly misleading
2021-07-20global PAGE_MASK definedzwdz
it's pretty useful, so it makes sense to define it alongside PAGE_SIZE
2021-07-19very basic pagingdzwdz
2021-07-18clean up the linker script, remove duplicate labelsdzwdz
2021-07-18fix most current compiler warningsdzwdz
stack_top got changed into a char, because `extern void` isn't even valid. others are self-explanatory
2021-07-18move all kernel sources to src/kernel/dzwdz