Commit Graph

  • 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
  • 17b90a484a kernel: print version banner on boot Max Wash 2023-02-04 19:19:48 +00:00
  • 49d2b0a847 x86_64: make vgacon clear the display on init Max Wash 2023-02-04 19:19:37 +00:00
  • dee639968b x86_64: remove vga functions from start_32 and start_64 Max Wash 2023-02-04 19:18:25 +00:00
  • 31cb7aab8b kernel: add basic console registration system and printk() Max Wash 2023-02-04 19:03:45 +00:00
  • d0a431c860 kernel: add basic spinlocks Max Wash 2023-02-04 17:46:05 +00:00
  • 6e290ee18a x86_64: cleanup Max Wash 2023-02-04 15:25:39 +00:00
  • 6eb9c5ad6c sandbox: delete orphaned test files Max Wash 2023-02-03 20:53:48 +00:00
  • 247bb2b530 kernel: port sandbox components Max Wash 2023-02-03 20:51:23 +00:00
  • 40f83922da sandbox: moved all sources to main kernel tree Max Wash 2023-02-03 20:43:38 +00:00
  • e714d619ba kernel: remove placeholder vm subsystem Max Wash 2023-02-03 20:37:45 +00:00
  • bcdf101779 kernel: add stub logging function Max Wash 2023-02-03 20:26:02 +00:00
  • c65f034e0e kernel: x86_64: add machine init function called by kernel_init Max Wash 2023-02-03 20:24:27 +00:00
  • dba6269fcb kernel: remove printf() (but keep other string formatters) Max Wash 2023-02-03 20:23:36 +00:00
  • 453ccd4596 sandbox: multi-threaded kmalloc() stress-test Max Wash 2023-02-02 21:16:17 +00:00
  • d4e8754f21 sandbox: vm: implement vm_cache_free() and kfree() Max Wash 2023-02-02 21:15:59 +00:00
  • 4237b6ca20 sandbox: vm: add synchronisation using spinlocks Max Wash 2023-02-02 21:14:02 +00:00
  • d4449b8d87 sandbox: vm: make kmalloc(size: 0) return NULL Max Wash 2023-02-02 21:12:14 +00:00
  • ba415b2942 sandbox: vm: fix double evaluation of queue_pop_front() Max Wash 2023-02-02 21:11:29 +00:00
  • 4175f67b9b sandbox: vm: replace calls to queue_length() with queue_empty() Max Wash 2023-02-02 21:10:37 +00:00
  • a33c490852 sandbox: vm: vm_page p_slab field is now set for slab pages Max Wash 2023-02-02 21:07:22 +00:00
  • c47da5864c sandbox: vm: add temporary vm_virt_to_phys() implementation Max Wash 2023-02-02 21:06:04 +00:00
  • 90dd51008f sandbox: vm: fix vm_cache.c_hdr_size not being calculated Max Wash 2023-02-02 21:03:27 +00:00
  • d43347436f sandbox: memblock: align allocated pointers to 16-byte boundary Max Wash 2023-02-02 21:01:22 +00:00
  • 799a23014a sandbox: add locking primitives Max Wash 2023-02-02 21:00:40 +00:00
  • 7d3000e84d sandbox: queue: remove q_length field, add queue_empty() Max Wash 2023-02-02 21:00:23 +00:00
  • 662be5ec1f sandbox: vm: add cache allocator, generic size-N caches for kmalloc() Max Wash 2023-02-02 16:58:48 +00:00
  • 3c781a4cb3 sandbox: vm: make vm_page queue entry private, owner-defined usage Max Wash 2023-02-02 16:58:24 +00:00
  • e5a7546996 sandbox: vm: temporary implementation of vm_page_get_vaddr() Max Wash 2023-02-02 16:57:03 +00:00
  • 7331bdefda sandbox: vm: reduce vm_page order field size to 4 bits Max Wash 2023-02-02 16:54:48 +00:00
  • ab46b7cd13 sandbox: vm: fix bad array index in replenish_free_page_list Max Wash 2023-02-02 16:47:32 +00:00
  • 49e23849a5 sandbox: queue: check list is not empty before popping entries Max Wash 2023-02-02 16:45:13 +00:00
  • 9409ebbb19 sandbox: vm: implement page freeing; merge/split bugfix Max Wash 2023-02-01 17:05:14 +00:00
  • ca92093c10 sandbox: vm: add function to iterate though pages in a hugepage Max Wash 2023-02-01 17:04:20 +00:00
  • f82ca449b3 build: ensure "all" is the default build rule Max Wash 2023-02-01 15:04:10 +00:00
  • af49d47ba8 sandbox: vm: add page splitting, merging, and allocation Max Wash 2023-02-01 15:03:42 +00:00
  • 4cb30737fb sandbox: vm: remove relative include Max Wash 2023-02-01 14:03:07 +00:00
  • bfe3c1cc80 build: rebuild objects that depend on modified headers Max Wash 2023-02-01 13:58:15 +00:00
  • 2147837e9e sandbox: vm: encode vm_page zone id within p_flags Max Wash 2023-02-01 12:26:49 +00:00
  • a0d1fee01e sandbox: add util functions Max Wash 2023-02-01 12:26:07 +00:00
  • 01b526660e sandbox: vm: set maximum page size to 8 MiB Max Wash 2023-01-31 18:25:52 +00:00
  • ee08088fcf sandbox: vm: fix convert_region_to_blocks() not creating more than one block of a given size Max Wash 2023-01-31 18:25:32 +00:00
  • 324ed2c9d0 sandbox: vm: remove vm_ prefix from source files Max Wash 2023-01-31 15:28:46 +00:00
  • 2b390ccccb kernel: update license Max Wash 2023-01-31 13:11:53 +00:00
  • 30d9c011f3 sandbox: memblock: add documentation and license Max Wash 2023-01-31 13:11:35 +00:00
  • caf4d2b969 sandbox: btree: add documentation and license Max Wash 2023-01-30 20:57:55 +00:00
  • 07e2e5099d sandbox: queue: add queue_delete_all() and QUEUE_INIT Max Wash 2023-01-29 20:11:02 +00:00
  • 077237c4cf sandbox: extra page stats output Max Wash 2023-01-29 20:10:35 +00:00
  • c0c930e5a9 sandbox: vm: fix incorrect region/zone limit addresses Max Wash 2023-01-29 20:10:15 +00:00
  • 8fb71ccb77 sandbox: vm: add page attribute getters Max Wash 2023-01-29 20:09:15 +00:00
  • 66afb5ca28 sandbox: vm: fix block reservation status for regions with one homogeneous set of pages Max Wash 2023-01-29 11:17:09 +00:00
  • 885ed7d765 sandbox: memblock: abort on unsatisfiable alloc request Max Wash 2023-01-29 11:15:43 +00:00
  • a7ebdeba73 sandbox: increase memblock heap area size Max Wash 2023-01-29 11:14:33 +00:00
  • a3c6018d96 sandbox: vm: enforce alignment requirements for multi-page blocks Max Wash 2023-01-29 11:03:53 +00:00
  • d0341a5e35 sandbox: vm: organise pages into zoned blocks Max Wash 2023-01-28 19:24:28 +00:00
  • 0227cb822b sandbox: add double linked-list data structure Max Wash 2023-01-27 21:04:26 +00:00
  • 350a3da18d sandbox: re-organise test functions Max Wash 2023-01-26 20:36:11 +00:00
  • 44836149cd sandbox: btree: add in-order tree traversal Max Wash 2023-01-26 20:35:56 +00:00