Commit Graph

  • d0371d9204 x86_64: create idle thread and initialise runqueue during AP bootstrap Max Wash 2023-05-03 19:27:39 +01:00
  • c64577e24e sched: add function to create per-cpu idle threads Max Wash 2023-05-03 19:27:18 +01:00
  • ad58693dfb x86_64: panic: fix printk formatting specifiers for cpu registers Max Wash 2023-05-03 19:26:19 +01:00
  • a52571eb19 kernel: add panic() function that accepts a cpu_context Max Wash 2023-05-03 19:22:12 +01:00
  • 390fe86657 x86_64: enable NX protection during AP bootstrap Max Wash 2023-05-03 19:20:07 +01:00
  • 2a96aa7be9 build: fix arch cflags not being used when compiling C++ files Max Wash 2023-05-03 19:19:21 +01:00
  • 4677c881e1 x86_64: acpi: bring up other APs in long mode Max Wash 2023-05-01 18:13:44 +01:00
  • 223b37a113 vm: only align slab headers when offslab is being used Max Wash 2023-05-01 18:12:46 +01:00
  • 654e54653c x86_64: pmap: implement pmap_add() Max Wash 2023-05-01 18:12:07 +01:00
  • fbbe339f72 sched: schedule() no longer switches threads when preempt_count > 0 Max Wash 2023-05-01 08:27:18 +01:00
  • 40762ffb95 kernel: add function to query the current preempt count Max Wash 2023-05-01 08:26:41 +01:00
  • 194efd4b6b sched: fix timeout_expiry() not releasing its reference to this_cpu Max Wash 2023-05-01 08:26:13 +01:00
  • 8a0291c9b3 sched: add timer tasks and schedule_timeout() Max Wash 2023-04-30 21:09:36 +01:00
  • 085c3d2a89 sched: add kernel-mode context switching Max Wash 2023-04-30 14:27:57 +01:00
  • 2cb2d9100a x86_64: define struct offsets for access from assembly Max Wash 2023-04-30 14:26:37 +01:00
  • c945ee059a build: define source root directory and kernel arch for tool makefiles Max Wash 2023-04-30 14:25:41 +01:00
  • f349e4963c x86_64: charge clock cycles to threads when handling IRQs Max Wash 2023-04-28 21:06:57 +01:00
  • e2131b08ac sched: track CPU clock cycles used by threads Max Wash 2023-04-28 21:05:48 +01:00
  • 6b1b4a2416 kernel: add function to calculate delta between two cycle timestamps Max Wash 2023-04-28 21:04:50 +01:00
  • 72d8facd47 kernel: add standard clock system Max Wash 2023-04-28 20:51:51 +01:00
  • 995e364b21 x86_64: acpi: fix bad local APIC register offset Max Wash 2023-04-28 20:49:46 +01:00
  • e7fe5a8f8e kernel: add function to query CPU clock cycle count Max Wash 2023-04-22 21:07:34 +01:00
  • a8a6ff123e kxld: register kernel self pseudo-kext Max Wash 2023-04-15 09:12:47 +01:00
  • b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs Max Wash 2023-04-12 20:17:11 +01:00
  • 0d75e347e9 doc: document object layout and definitions Max Wash 2023-04-09 21:26:56 +01:00
  • f7d581d352 obj: remove unused ob_parent pointer from object_t Max Wash 2023-04-09 21:26:33 +01:00
  • e38ca58f18 kxld: publish kext objects in //kexts Max Wash 2023-04-09 20:40:06 +01:00
  • 5d9f193aa2 obj: objects can now be published in the namespace root Max Wash 2023-04-09 20:35:17 +01:00
  • b1b16ba19c kernel: reduce log message spam during boot Max Wash 2023-04-09 17:14:19 +01:00
  • eb998860a5 kxld: implement internal kext dependency resolution and initialisation Max Wash 2023-04-09 16:43:03 +01:00
  • 076a15e47b kernel: add second example kext for dependency test Max Wash 2023-04-09 16:42:16 +01:00
  • c7fdb81ef9 kernel: implement string hashing with FNV Max Wash 2023-04-09 16:39:08 +01:00
  • 981a5f2a0d kernel: add kern_status_string() Max Wash 2023-04-09 16:38:31 +01:00
  • 80f5e0483c sched: initialise kernel_thread parent ptr Max Wash 2023-04-09 16:38:08 +01:00
  • da415c7f6d kernel: implement panic() Max Wash 2023-04-09 16:35:15 +01:00
  • 9b75ca8b8c kernel: enumerate internal kexts during boot Max Wash 2023-04-08 09:27:21 +01:00
  • a1f54fd156 kexttool: store extensions.yaml in .config instead of build Max Wash 2023-04-08 09:26:06 +01:00
  • e472c83d28 tools: kexttool: implement Makefile generation for internal kexts Max Wash 2023-04-06 21:20:20 +01:00
  • 3e2164c7c2 kernel: rename extensions/ to kexts/ Max Wash 2023-04-06 21:18:56 +01:00
  • 84e5b848c7 tools: sync: update script filename in in_source_tree() Max Wash 2023-04-05 18:55:24 +01:00
  • eb22e72568 build: add subcommands to kexttool Max Wash 2023-04-05 18:53:10 +01:00
  • 3ec25da693 kext: rename extension.info to extension.yaml Max Wash 2023-04-04 11:01:04 +01:00
  • 7128bbf72a kernel: add sample kernel extension Max Wash 2023-04-04 10:59:52 +01:00
  • fadab38da7 build: add a tool to scan extensions/ for kernel extensions Max Wash 2023-04-04 10:59:42 +01:00
  • 06ba21bd9d build: standardise script filenames Max Wash 2023-04-04 09:59:25 +01:00
  • 5b53168c5f dev: add functions to create device objects Max Wash 2023-04-03 16:59:14 +01:00
  • 7c6f619b96 kernel: add device manager definitions Max Wash 2023-04-02 21:03:23 +01:00
  • 13c06a827e kernel: disable pre-emption when accessing per-cpu variables Max Wash 2023-03-28 21:41:07 +01:00
  • 7d003da960 sched: add current_task(), current_thread(), and preempt_disable/enable() Max Wash 2023-03-28 21:39:59 +01:00
  • e0e6f4a9ae acpi: calibrate local APIC timer on BSP Max Wash 2023-03-28 21:38:47 +01:00
  • 9828f35d36 x86_64: fix optimised var read in pit_wait() Max Wash 2023-03-28 21:37:24 +01:00
  • 474878911b kernel: add enable_irq() and disable_irq() Max Wash 2023-03-28 19:44:51 +01:00
  • 8de86c210f kernel: define READ/WRITE_ONCE using typeof() for C sources Max Wash 2023-03-27 22:00:30 +01:00
  • e1634de1b4 kernel: C++ read_once() and write_once() functions Max Wash 2023-03-25 20:37:37 +00:00
  • e615b7dec1 build: enable -O2 optimisation level Max Wash 2023-03-24 14:39:09 +00:00
  • 864362ba82 acpi: add APIC irq ack and legacy vector remapping Max Wash 2023-03-24 14:21:02 +00:00
  • cb622f5ad4 vm: add macro for allocating and initialising C++ objects Max Wash 2023-03-24 14:20:26 +00:00
  • db6b2ca4c9 queue: add explicit casts to queue_foreach() Max Wash 2023-03-24 14:19:06 +00:00
  • 3be6c2a99f kernel: remove typename() from READ_ONCE() and WRITE_ONCE() Max Wash 2023-03-24 14:18:45 +00:00
  • b34e60bb25 build: switch to C17 / C++17 Max Wash 2023-03-24 14:17:56 +00:00
  • dd6c190720 memblock: fix returned memory region overrunning reserved memory region Max Wash 2023-03-24 14:17:28 +00:00
  • 2bfb6bcd78 kernel: add c++ support Max Wash 2023-03-20 20:41:39 +00:00
  • a4d850cc03 x86_64: more local and i/o apic configuration Max Wash 2023-03-20 20:21:44 +00:00
  • 8e9127cd6a x86_64: init local apic on boot, or legacy pic/pit as fallback Max Wash 2023-03-19 20:36:36 +00:00
  • 7e26050bde kernel: add volatile var read/write macros Max Wash 2023-03-19 20:36:13 +00:00
  • ae848e9776 sched: add thread status flags Max Wash 2023-03-19 20:35:48 +00:00
  • 768e6c4ff6 kernel: fix off-by-one in per-cpu area allocation size Max Wash 2023-03-19 20:35:25 +00:00
  • 6ab0e653d5 build: allow language extensions Max Wash 2023-03-19 20:33:36 +00:00
  • 44702bec5f build: move compile_commands.json to build directory Max Wash 2023-03-19 20:33:27 +00:00
  • 4785c767e4 sched: set kernel_task as current task of bootstrap cpu Max Wash 2023-03-18 19:35:23 +00:00
  • 57eaf4e01c kernel: implement cpu IDs and per-cpu variables Max Wash 2023-03-18 19:35:00 +00:00
  • 56bc47f570 misc: add sync config file to gitignore Max Wash 2023-03-17 20:08:23 +00:00
  • 62eb3b63a7 sched: add per-cpu runqueue Max Wash 2023-03-17 20:07:49 +00:00
  • e1e897c953 kernel: add per-cpu data section to kernel image Max Wash 2023-03-17 20:07:19 +00:00
  • f816b97cf8 kernel: add bitmap datatype Max Wash 2023-03-17 20:06:25 +00:00
  • 1266fe5b86 build: link to libgcc Max Wash 2023-03-17 20:06:02 +00:00
  • e66c611038 build: store compile_commands.json in source tree .config dir Max Wash 2023-03-13 21:41:33 +00:00
  • c8facafb77 build: add script to copy source tree to/from build server Max Wash 2023-03-13 21:40:45 +00:00
  • 3e954b1e13 sched: add task and thread alloc functions Max Wash 2023-03-09 19:55:52 +00:00
  • f2b929e52e btree: fix bad function name expansion in BTREE_DEFINE_SIMPLE_GET() Max Wash 2023-03-09 19:55:26 +00:00
  • 079941f3f9 libc: remove sprintf() Max Wash 2023-03-09 19:54:27 +00:00
  • 22743edeb7 pmap: add get_kernel_pmap() Max Wash 2023-03-09 19:50:22 +00:00
  • 902df83654 sched: add struct and object types for task and thread objects Max Wash 2023-03-06 11:08:26 +00:00
  • 1a413189ab kernel: move object_bootstrap() call to kernel_init() Max Wash 2023-03-06 11:08:02 +00:00
  • eecc4c5c1a user: replace x86_64 definitions with stubs Max Wash 2023-03-06 11:06:59 +00:00
  • 7fab406b44 test: obj: deref objects obtained from get_at() after use Max Wash 2023-03-05 18:26:28 +00:00
  • 8285506e58 obj: use ref-counting in set objects Max Wash 2023-03-05 18:26:05 +00:00
  • d41ea0cd52 kernel: implement initcalls and a testing system Max Wash 2023-02-26 10:05:39 +00:00
  • bc1bc9fec5 obj: add set and namespace object callbacks Max Wash 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 Max Wash 2023-02-25 17:58:23 +00:00
  • 8c87e78797 obj: add more set and namespace functions Max Wash 2023-02-25 17:57:53 +00:00
  • ef10ed5cd2 kernel: add initial object manager definitions Max Wash 2023-02-17 19:36:14 +00:00
  • ff19915466 vm: mark memory holes as reserved under sparse memory model Max Wash 2023-02-17 19:34:12 +00:00
  • 81ca98c952 x86_64: acpi: add minimal SMP core startup Max Wash 2023-02-09 21:39:20 +00:00
  • d960909d1b x86_64: pmap: enable NX protection during bootstrap Max Wash 2023-02-09 21:38:06 +00:00
  • ddb00acd31 x86_64: add a basic ACPI driver Max Wash 2023-02-09 19:09:07 +00:00
  • a206b640e9 build: write VM serial output to log file Max Wash 2023-02-09 19:08:24 +00:00
  • 5b9bdd4848 kernel: add definitions for a TTY device interface. Max Wash 2023-02-09 09:17:04 +00:00
  • 943e9dc517 build: make tools makefile quiet Max Wash 2023-02-09 09:16:44 +00:00
  • 8c4c224435 vm: fix get_or_create_page not allocating enough memory for sparse page map Max Wash 2023-02-08 21:29:45 +00:00