Commit Graph

  • 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
  • 22eabbedbc vm: log per-zone free memory during init Max Wash 2023-02-08 21:29:20 +00:00
  • 9792aa512d vm: use vm_memory_mode() to determine which model to initialise Max Wash 2023-02-08 21:28:47 +00:00
  • b0b557d919 x86_64: add temporary serial driver for printk Max Wash 2023-02-08 21:28:14 +00:00
  • 56578dda38 build: x86_64: write printk output to file via qemu serial port Max Wash 2023-02-08 21:27:47 +00:00
  • 6c6ca6920b vm: handle null vm_pages and empty zones in zone init Max Wash 2023-02-08 20:26:51 +00:00
  • b32791ade7 vm: zero sector array; perform overflow checks Max Wash 2023-02-08 20:26:18 +00:00
  • a595b3040a vm: remove debug message from get_or_create_page Max Wash 2023-02-08 20:25:52 +00:00
  • a9f8069aab vm: add sparse mm support to vm_page functions Max Wash 2023-02-08 20:25:24 +00:00
  • cb6b400fae x86_64: build: add rule to debug using ncurses Max Wash 2023-02-08 20:24:49 +00:00
  • 5e10f566a4 x86_64: add basic interrupt handling Max Wash 2023-02-08 20:24:40 +00:00
  • 18c5b34923 build: create copy of kernel binary with debug symbols Max Wash 2023-02-08 20:22:54 +00:00
  • e96da32cd5 x86_64: check for failure in alloc test Max Wash 2023-02-08 18:48:01 +00:00
  • a7d4166c89 vm: implement a sparse memory model Max Wash 2023-02-08 17:13:01 +00:00
  • 6690572bf3 kernel: add utility math functions Max Wash 2023-02-08 17:12:34 +00:00
  • b8eb88627a vm: add huge page order size definitions Max Wash 2023-02-08 17:11:08 +00:00
  • d56fc961fa kernel: print log messages directly to the console if log_buffer is full Max Wash 2023-02-08 17:10:13 +00:00
  • 4c4178e170 build: stop make compile-db from having to call make clean Max Wash 2023-02-08 16:46:59 +00:00
  • 4edc7e308e vm: refactor page_array and functions into a separate source file Max Wash 2023-02-07 21:18:08 +00:00
  • b13907f3bc x86_64: initialise vm subsystem Max Wash 2023-02-07 16:00:45 +00:00
  • 9879bbf646 vm: optimise page array size and initialisation. Max Wash 2023-02-07 15:58:37 +00:00
  • 51ad3d48fd memblock: mark bytes preceding an aligned allocation as reserved. Max Wash 2023-02-07 15:57:18 +00:00
  • e9d4b60181 vm: print log messages during initialisation Max Wash 2023-02-07 15:43:14 +00:00
  • bf0b4d412c vm: use direct page mapping to convert virt/phys addresses Max Wash 2023-02-07 15:40:06 +00:00
  • ad63f0b251 x86_64: pmap: map all of physical memory starting at VM_PAGEMAP_BASE Max Wash 2023-02-07 15:38:18 +00:00
  • e939aae775 x86_64: pmap: fix typos Max Wash 2023-02-07 12:10:12 +00:00
  • 52c1ba89c4 x86_64: pmap: add null-pointer to check to delete_pdir Max Wash 2023-02-07 12:10:05 +00:00
  • 3ea1a28e5a x86_64: pmap: fix make_pte not using PTE_NX for non-exec pages Max Wash 2023-02-07 12:09:36 +00:00
  • 15ddd2fe0b x86_64: use e64patch to generate kernel binary for QEMU Max Wash 2023-02-07 11:25:58 +00:00
  • 2f69bfd4f0 build: add support for building tools targeting host machine Max Wash 2023-02-07 11:25:33 +00:00
  • 625eac9ca7 x86_64: implement bootstrap function for pmap interface Max Wash 2023-02-06 20:50:28 +00:00
  • 52b3a5d6a5 x86_64: enable hugepage support in QEMU Max Wash 2023-02-06 20:49:56 +00:00
  • 5e20bbe223 x86_64: use higher-half pointer for VGA framebuffer Max Wash 2023-02-06 20:49:11 +00:00
  • 0516ef06a3 vm: explicitly initialise kmalloc in vm_bootstrap Max Wash 2023-02-06 20:46:38 +00:00
  • fe0b7e043f x86_64: move stack pointer to higher-half in start_64 Max Wash 2023-02-06 20:45:31 +00:00
  • 5c7bde4fdf vm: add alignment parameter to cache allocator Max Wash 2023-02-06 20:41:40 +00:00
  • 109616ec30 vm: add memblock support to vm_virt_to_phys, add vm_phys_to_virt Max Wash 2023-02-06 20:40:27 +00:00
  • 998f05d337 memblock: add functions to convert allocated pointers between virt/phys Max Wash 2023-02-06 20:39:33 +00:00
  • 6afb3bd10d memblock: add alignment parameter to alloc functions Max Wash 2023-02-06 20:38:32 +00:00
  • a72117abcd x86_64: move start_64 to .boot.text Max Wash 2023-02-06 10:39:36 +00:00
  • b7f872bf3b build: enable -Os flag Max Wash 2023-02-05 11:08:22 +00:00
  • b9b3794aee x86_64: initialise memblock using e820 Max Wash 2023-02-05 10:50:13 +00:00
  • 21907010bd memblock: return NULL on virtual alloc failure Max Wash 2023-02-05 10:49:59 +00:00
  • 58171df912 vm: move arch-specific definitions to arch/ Max Wash 2023-02-05 10:28:07 +00:00
  • 72b2d8d525 x86_64: re-implement ml_halt_cpu() in pure assembly Max Wash 2023-02-05 10:27:29 +00:00
  • 2b2c5a24da x86_64: fix broken multiboot pointer boot arg Max Wash 2023-02-05 10:26:47 +00:00
  • 1abc7a4f6c x86_64: move non-ML headers to include/arch/ Max Wash 2023-02-05 09:45:17 +00:00