Commit Graph

79 Commits

Author SHA1 Message Date
845f82afc9 smp: Add Condition, separate SleepUntil from LastTick 2021-11-11 01:50:02 +08:00
9eeb9c8632 smp: move thread_Yield to Assembly 2021-11-11 01:49:27 +08:00
a8ed090450 smp: move the ticking from C to Assembly 2021-11-08 12:56:33 +08:00
c4eeb5e481 smp: fixup threading 2021-11-08 01:34:06 +08:00
17ae4cf630 kernel: add a test function for smp thread 2021-11-08 01:33:50 +08:00
9f86e52164 runtime: disable interrupts on Printf
Printf uses vsnprintf and a global buffer prone to race conditions.
2021-11-08 01:33:18 +08:00
ebbe907bb7 util/tree: fix FirstNode 2021-11-08 01:32:30 +08:00
e38a61a61a memory: remove logging in kMalloc/kFree 2021-11-08 00:39:25 +08:00
297c20bbfc smp: multithreading (WIP) 2021-11-08 00:07:58 +08:00
5cf68dca6a util/tree: fix First/LastNode on empty tree 2021-11-07 23:59:06 +08:00
3d43ab3d61 driver/rtc: RTC ticker at 1024Hz 2021-11-07 23:07:47 +08:00
312703104d driver/pic: IRQHandlerRaw jumped handler 2021-11-07 23:05:29 +08:00
193b29400a memory: use 64 GDT entries 2021-11-07 18:45:52 +08:00
9f757efa5e interrupt: move ReloadSegments before enabling interrupt 2021-11-07 17:55:43 +08:00
3b9fc2f4d0 interrupt: remove global IDTR/GDTR
LIDT/LGDT is now called with addresses in stack
2021-11-07 17:48:41 +08:00
7f7a985ed6 makefile: reasonable way of adding compile options 2021-11-07 01:38:41 +08:00
e5ba03599b util: tree-based associative container 2021-11-07 01:33:42 +08:00
6832a76265 util: vector (dynamic array) container 2021-11-07 01:29:42 +08:00
bd347df5d5 driver/random: linear congruential 2021-11-07 01:29:07 +08:00
763c34c8de memory: use libc malloc/free in testing 2021-11-07 01:24:40 +08:00
4460661bfd main: refactor to keep the EFI headers from polluting the main namespace 2021-11-06 23:40:50 +08:00
e2a2679f6d main: remove the keystroke wait on startup 2021-11-05 20:48:09 +08:00
d3c91c0048 driver/serial: disable interrupt when writing to serial 2021-11-05 15:11:58 +08:00
ab6737f904 makefile, runtime: add RUNTIME_QUIET build flag 2021-11-05 14:47:48 +08:00
f1df3846e4 main: invalidate screen on welcome message 2021-11-05 14:46:18 +08:00
518483ecc7 makefile: add a serial port for QEMU 2021-11-05 14:45:49 +08:00
00e6a6bf01 filesystem/fat: stub function definitions for linking 2021-11-05 14:30:30 +08:00
ad0bab89be main, runtime: init serial at EFI boot stage, use serial as output 2021-11-05 14:29:48 +08:00
84a2f11284 driver/serial: Serial write interface 2021-11-05 14:21:04 +08:00
4fd4f46f01 driver/ps2: remove irq_ from names 2021-11-05 14:21:04 +08:00
98f92a9958 makefile: move pdlibc to extlib, add C++ stub standard headers
It now kind of compiles with x86_64-elf gcc (does not link though)
2021-11-04 20:15:58 +08:00
964893b14a filesystem/fat: WIP 2021-11-04 18:05:19 +08:00
7158c3535e driver/filesystem: add Ioctl() 2021-10-28 23:15:40 +08:00
699c1fc8ae driver/filesystem: filesystem interface
mostly from FUSE (https://github.com/libfuse/libfuse/blob/master/include/fuse.h)
2021-10-28 22:36:23 +08:00
3a8b59c39f kernel, driver/ps2: move decoding from kMain to interrupt handler 2021-10-28 20:18:01 +08:00
94ab9ffb41 driver/input: most of the input code 2021-10-28 18:20:02 +08:00
4da91139a7 graphics: optimize Unifont rendering, remove builtin width info 2021-10-28 16:03:17 +08:00
430a3abf7d driver/ps2: move EnableReporting to the end of mouse init sequence 2021-10-28 16:02:39 +08:00
218e5c2c96 graphics: make SetPixel() an inline instead of a function pointer
graphics_Init() happens before relocation, so the function breaks once the identity mapping is removed (or flagged NX)
2021-10-28 16:00:25 +08:00
b361c6830b graphics: fix invalidated screen not restoring flag 2021-10-28 15:54:05 +08:00
876ed1eba8 graphics: optimize rendering with Invalidate() 2021-10-25 04:39:11 +08:00
f14df89469 util: add stack_Clear 2021-10-23 21:10:04 +08:00
5293cd52ff makefile: remove -std=c99 from .clangd 2021-10-23 20:57:46 +08:00
6bd5e2dbab util: add fixed-size stack 2021-10-23 20:57:29 +08:00
55d3da43a2 graphics: remember last mouse cursor size 2021-10-23 20:56:50 +08:00
e611bcc760 util: trivially implement queue_Push/Pop 2021-10-23 20:15:41 +08:00
5a4f1cc745 util: export queue_FrontByte correctly 2021-10-23 20:11:37 +08:00
69f50aa3e8 runtime: add cppruntime/perm 2021-10-23 19:40:11 +08:00
71377dcc47 driver/block: add base class & ramdisk 2021-10-23 19:39:23 +08:00
a3fe5c5902 memory: add AllocateKernelMapping
This is just quick and dirty, with nothing to free it
2021-10-23 19:38:19 +08:00