b7b0691b8f
dev: implement driver objects to organise and identify devices
2023-06-02 19:35:07 +01:00
577abf3bba
obj: implement link objects
2023-06-02 19:34:33 +01:00
fcf5dc32b9
kernel: add BITMAP_NPOS definition
2023-06-02 19:31:09 +01:00
d02d05d922
obj: add read() and write() object callbacks
2023-05-14 21:11:32 +01:00
0238008986
dev: auto-generate device name in device_register if name is unspecified
2023-05-11 21:19:00 +01:00
05395542a8
dev: implement writing/reading input events to/from input devices
2023-05-10 20:33:40 +01:00
422d4fb375
kernel: implement ring-buffer data structure
2023-05-10 20:32:29 +01:00
63f27adb1b
sched: implement waitqueues
2023-05-10 20:29:57 +01:00
1a633eee6b
dev: implement object callbacks for devices. add misc device
2023-05-08 18:18:34 +01:00
9f3c080e41
vm: minimum and maximum zone IDs are now defined in arch/../vm.h
2023-05-07 21:39:31 +01:00
a79d109fcc
obj: add header-offset field to object_type
...
this allows the object header to be placed anywhere within the larger
object structure.
the object system now also ensures that the object is zero-initialised
during allocation.
2023-05-06 22:22:05 +01:00
94ea756b31
kernel: write to all registered consoles with printk()
2023-05-06 21:32:19 +01:00
f52ca2f1e2
obj: object header is no longer allocated automatically
2023-05-06 19:48:14 +01:00
cec6b644ac
kernel: add functions to query the number of available/online CPUs
2023-05-05 15:25:44 +01:00
7d321fb7f0
sched: add kernel thread creation and SMP-aware thread scheduling
2023-05-04 21:43:18 +01:00
bb524c1576
kernel: add support for getting percpu variables that belong to other CPUs
2023-05-04 21:42:51 +01:00
c64577e24e
sched: add function to create per-cpu idle threads
2023-05-03 19:27:18 +01:00
a52571eb19
kernel: add panic() function that accepts a cpu_context
2023-05-03 19:26:09 +01:00
654e54653c
x86_64: pmap: implement pmap_add()
2023-05-01 18:12:07 +01:00
40762ffb95
kernel: add function to query the current preempt count
2023-05-01 08:26:41 +01:00
8a0291c9b3
sched: add timer tasks and schedule_timeout()
2023-04-30 21:09:36 +01:00
085c3d2a89
sched: add kernel-mode context switching
2023-04-30 14:27:57 +01:00
e2131b08ac
sched: track CPU clock cycles used by threads
2023-04-28 21:05:48 +01:00
6b1b4a2416
kernel: add function to calculate delta between two cycle timestamps
2023-04-28 21:05:13 +01:00
72d8facd47
kernel: add standard clock system
2023-04-28 20:51:51 +01:00
e7fe5a8f8e
kernel: add function to query CPU clock cycle count
2023-04-22 21:07:34 +01:00
b6f8c1ccaa
kernel: don't use typedef for enums or non-opaque structs
2023-04-13 11:40:52 +01:00
f7d581d352
obj: remove unused ob_parent pointer from object_t
2023-04-09 21:26:33 +01:00
eb998860a5
kxld: implement internal kext dependency resolution and initialisation
2023-04-09 16:43:03 +01:00
c7fdb81ef9
kernel: implement string hashing with FNV
2023-04-09 16:39:08 +01:00
981a5f2a0d
kernel: add kern_status_string()
2023-04-09 16:38:31 +01:00
da415c7f6d
kernel: implement panic()
2023-04-09 16:35:15 +01:00
9b75ca8b8c
kernel: enumerate internal kexts during boot
2023-04-08 09:27:21 +01:00
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