Commit Graph

47 Commits

Author SHA1 Message Date
5b53168c5f dev: add functions to create device objects 2023-04-03 16:59:14 +01:00
7c6f619b96 kernel: add device manager definitions 2023-04-02 21:03:23 +01:00
13c06a827e kernel: disable pre-emption when accessing per-cpu variables 2023-03-28 21:41:07 +01:00
7d003da960 sched: add current_task(), current_thread(), and preempt_disable/enable() 2023-03-28 21:40:56 +01:00
474878911b kernel: add enable_irq() and disable_irq() 2023-03-28 19:44:51 +01:00
8de86c210f kernel: define READ/WRITE_ONCE using typeof() for C sources 2023-03-27 22:00:30 +01:00
e1634de1b4 kernel: C++ read_once() and write_once() functions 2023-03-25 20:37:37 +00:00
cb622f5ad4 vm: add macro for allocating and initialising C++ objects 2023-03-24 14:20:26 +00:00
db6b2ca4c9 queue: add explicit casts to queue_foreach() 2023-03-24 14:19:06 +00:00
3be6c2a99f kernel: remove typename() from READ_ONCE() and WRITE_ONCE() 2023-03-24 14:18:45 +00:00
2bfb6bcd78 kernel: add c++ support 2023-03-20 20:41:39 +00:00
7e26050bde kernel: add volatile var read/write macros 2023-03-19 20:36:13 +00:00
ae848e9776 sched: add thread status flags 2023-03-19 20:35:48 +00:00
57eaf4e01c kernel: implement cpu IDs and per-cpu variables 2023-03-18 19:35:00 +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
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
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
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
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
5b9bdd4848 kernel: add definitions for a TTY device interface. 2023-02-09 11:35:35 +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
4edc7e308e vm: refactor page_array and functions into a separate source file 2023-02-07 21:18:08 +00:00
625eac9ca7 x86_64: implement bootstrap function for pmap interface 2023-02-06 20:50:38 +00:00
0516ef06a3 vm: explicitly initialise kmalloc in vm_bootstrap
if kmalloc is called with count=N before vm_bootstrap is finished,
the request will be fulfilled using memblock_alloc.

if N is a power of 2, the returned pointer will be aligned to
an N-byte boundary.
2023-02-06 20:50:38 +00:00
5c7bde4fdf vm: add alignment parameter to cache allocator
caches with object size N, where N is a power of two, will naturally
align their objects on N-byte boundaries.

all other caches will align to an 8-byte boundary by default.
2023-02-06 20:50:38 +00:00
109616ec30 vm: add memblock support to vm_virt_to_phys, add vm_phys_to_virt 2023-02-06 20:50:38 +00:00
998f05d337 memblock: add functions to convert allocated pointers between virt/phys 2023-02-06 20:50:38 +00:00
6afb3bd10d memblock: add alignment parameter to alloc functions 2023-02-06 20:50:38 +00:00
58171df912 vm: move arch-specific definitions to arch/ 2023-02-05 10:28:07 +00:00
17b90a484a kernel: print version banner on boot 2023-02-04 19:19:48 +00:00
31cb7aab8b kernel: add basic console registration system and printk() 2023-02-04 19:03:45 +00:00
d0a431c860 kernel: add basic spinlocks 2023-02-04 19:03:30 +00:00
247bb2b530 kernel: port sandbox components 2023-02-03 20:51:23 +00:00
40f83922da sandbox: moved all sources to main kernel tree 2023-02-03 20:43:38 +00:00
e714d619ba kernel: remove placeholder vm subsystem 2023-02-03 20:37:45 +00:00
bcdf101779 kernel: add stub logging function 2023-02-03 20:26:02 +00:00
e922a776c3 Added stubs for the kernel memory manager 2022-12-28 23:04:09 +00:00
fac31086f5 Implemented a status return type 2022-12-28 23:03:49 +00:00
26853c32c8 Implemented GDT initialisation 2022-12-24 10:28:41 +00:00
8475a6139e Implemented some basic libc functions and a text console 2022-12-21 08:29:33 +00:00