57eaf4e01c
kernel: implement cpu IDs and per-cpu variables
2023-03-18 19:35:00 +00:00
56bc47f570
misc: add sync config file to gitignore
2023-03-17 20:08:23 +00:00
62eb3b63a7
sched: add per-cpu runqueue
2023-03-17 20:07:49 +00:00
e1e897c953
kernel: add per-cpu data section to kernel image
2023-03-17 20:07:19 +00:00
f816b97cf8
kernel: add bitmap datatype
2023-03-17 20:06:25 +00:00
1266fe5b86
build: link to libgcc
2023-03-17 20:06:02 +00:00
e66c611038
build: store compile_commands.json in source tree .config dir
2023-03-13 21:41:33 +00:00
c8facafb77
build: add script to copy source tree to/from build server
2023-03-13 21:40:53 +00:00
3e954b1e13
sched: add task and thread alloc functions
2023-03-09 19:55:52 +00:00
f2b929e52e
btree: fix bad function name expansion in BTREE_DEFINE_SIMPLE_GET()
2023-03-09 19:55:26 +00:00
079941f3f9
libc: remove sprintf()
2023-03-09 19:54:27 +00:00
22743edeb7
pmap: add get_kernel_pmap()
2023-03-09 19:50:22 +00:00
902df83654
sched: add struct and object types for task and thread objects
2023-03-06 11:08:26 +00:00
1a413189ab
kernel: move object_bootstrap() call to kernel_init()
2023-03-06 11:08:02 +00:00
eecc4c5c1a
user: replace x86_64 definitions with stubs
2023-03-06 11:06:59 +00:00
7fab406b44
test: obj: deref objects obtained from get_at() after use
2023-03-05 18:26:28 +00:00
8285506e58
obj: use ref-counting in set objects
2023-03-05 18:26:05 +00:00
d41ea0cd52
kernel: implement initcalls and a testing system
2023-02-26 10:05:39 +00:00
bc1bc9fec5
obj: add set and namespace object callbacks
2023-02-25 19:12:09 +00:00
eed73e2414
build: add a "user" arch to allow the kernel to run as a program on the host machine
2023-02-25 17:58:23 +00:00
8c87e78797
obj: add more set and namespace functions
2023-02-25 17:57:53 +00:00
ef10ed5cd2
kernel: add initial object manager definitions
2023-02-17 19:36:14 +00:00
ff19915466
vm: mark memory holes as reserved under sparse memory model
2023-02-17 19:34:12 +00:00
81ca98c952
x86_64: acpi: add minimal SMP core startup
2023-02-09 21:39:20 +00:00
d960909d1b
x86_64: pmap: enable NX protection during bootstrap
2023-02-09 21:38:50 +00:00
ddb00acd31
x86_64: add a basic ACPI driver
2023-02-09 19:09:07 +00:00
a206b640e9
build: write VM serial output to log file
2023-02-09 19:08:24 +00:00
5b9bdd4848
kernel: add definitions for a TTY device interface.
2023-02-09 11:35:35 +00:00
943e9dc517
build: make tools makefile quiet
2023-02-09 09:16:48 +00:00
8c4c224435
vm: fix get_or_create_page not allocating enough memory for sparse page map
2023-02-08 21:29:45 +00:00
22eabbedbc
vm: log per-zone free memory during init
2023-02-08 21:29:20 +00:00
9792aa512d
vm: use vm_memory_mode() to determine which model to initialise
2023-02-08 21:28:47 +00:00
b0b557d919
x86_64: add temporary serial driver for printk
2023-02-08 21:28:20 +00:00
56578dda38
build: x86_64: write printk output to file via qemu serial port
2023-02-08 21:27:47 +00:00
6c6ca6920b
vm: handle null vm_pages and empty zones in zone init
2023-02-08 20:26:51 +00:00
b32791ade7
vm: zero sector array; perform overflow checks
2023-02-08 20:26:18 +00:00
a595b3040a
vm: remove debug message from get_or_create_page
2023-02-08 20:25:52 +00:00
a9f8069aab
vm: add sparse mm support to vm_page functions
2023-02-08 20:25:24 +00:00
cb6b400fae
x86_64: build: add rule to debug using ncurses
2023-02-08 20:24:49 +00:00
5e10f566a4
x86_64: add basic interrupt handling
2023-02-08 20:24:40 +00:00
18c5b34923
build: create copy of kernel binary with debug symbols
2023-02-08 20:24:22 +00:00
e96da32cd5
x86_64: check for failure in alloc test
2023-02-08 18:48:01 +00:00
a7d4166c89
vm: implement a sparse memory model
2023-02-08 17:13:01 +00:00
6690572bf3
kernel: add utility math functions
2023-02-08 17:12:34 +00:00
b8eb88627a
vm: add huge page order size definitions
2023-02-08 17:11:08 +00:00
d56fc961fa
kernel: print log messages directly to the console if log_buffer is full
2023-02-08 17:10:13 +00:00
4c4178e170
build: stop make compile-db from having to call make clean
2023-02-08 16:46:59 +00:00
4edc7e308e
vm: refactor page_array and functions into a separate source file
2023-02-07 21:18:08 +00:00
b13907f3bc
x86_64: initialise vm subsystem
2023-02-07 16:00:45 +00:00
9879bbf646
vm: optimise page array size and initialisation.
...
* the page array now only extends up to the last non-reserved memory frame.
* rather than memset'ing the whole array to zero, we only initialise p_flags
for each page in vm_page_array_init, and then leave it to group_pages_into_block
to initialise the other parts of vm_page_t.
2023-02-07 16:00:28 +00:00