Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-09-17 | kernel/amd64: add HPET support, slightly rework time handling | dzwdz | |
2023-01-25 | style: typedef structs, shorter namespaces | dzwdz | |
I've wanted to do this for a while, and since I've just had a relatively large refactor commit (pcpy), this is as good of a time as any. Typedefing structs was mostly inspired by Plan 9's coding style. It makes some lines of code much shorter at basically no expense. Everything related to userland kept old-style struct definitions, so as not to force that style onto other people. I also considered changing SCREAMING_ENUM_FIELDS to NicerLookingCamelcase, but I didn't, just in case that'd be confusing. | |||
2022-08-19 | kernel: kzalloc | dzwdz | |
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 | |