fe0b7e043f
x86_64: move stack pointer to higher-half in start_64
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
a72117abcd
x86_64: move start_64 to .boot.text
2023-02-06 10:41:06 +00:00
b7f872bf3b
build: enable -Os flag
2023-02-05 11:08:22 +00:00
b9b3794aee
x86_64: initialise memblock using e820
2023-02-05 10:50:13 +00:00
21907010bd
memblock: return NULL on virtual alloc failure
2023-02-05 10:49:59 +00:00
58171df912
vm: move arch-specific definitions to arch/
2023-02-05 10:28:07 +00:00
72b2d8d525
x86_64: re-implement ml_halt_cpu() in pure assembly
2023-02-05 10:27:29 +00:00
2b2c5a24da
x86_64: fix broken multiboot pointer boot arg
2023-02-05 10:26:47 +00:00
1abc7a4f6c
x86_64: move non-ML headers to include/arch/
2023-02-05 09:45:17 +00:00
17b90a484a
kernel: print version banner on boot
2023-02-04 19:19:48 +00:00
49d2b0a847
x86_64: make vgacon clear the display on init
2023-02-04 19:19:37 +00:00
dee639968b
x86_64: remove vga functions from start_32 and start_64
2023-02-04 19:18:25 +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
6e290ee18a
x86_64: cleanup
2023-02-04 15:25:39 +00:00
6eb9c5ad6c
sandbox: delete orphaned test files
2023-02-03 20:53:48 +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
c65f034e0e
kernel: x86_64: add machine init function called by kernel_init
2023-02-03 20:24:27 +00:00
dba6269fcb
kernel: remove printf() (but keep other string formatters)
2023-02-03 20:23:36 +00:00
453ccd4596
sandbox: multi-threaded kmalloc() stress-test
2023-02-02 21:16:17 +00:00
d4e8754f21
sandbox: vm: implement vm_cache_free() and kfree()
2023-02-02 21:15:59 +00:00
4237b6ca20
sandbox: vm: add synchronisation using spinlocks
2023-02-02 21:14:02 +00:00
d4449b8d87
sandbox: vm: make kmalloc(size: 0) return NULL
2023-02-02 21:12:14 +00:00
ba415b2942
sandbox: vm: fix double evaluation of queue_pop_front()
2023-02-02 21:11:29 +00:00
4175f67b9b
sandbox: vm: replace calls to queue_length() with queue_empty()
2023-02-02 21:10:37 +00:00
a33c490852
sandbox: vm: vm_page p_slab field is now set for slab pages
2023-02-02 21:07:22 +00:00
c47da5864c
sandbox: vm: add temporary vm_virt_to_phys() implementation
2023-02-02 21:06:04 +00:00
90dd51008f
sandbox: vm: fix vm_cache.c_hdr_size not being calculated
2023-02-02 21:03:27 +00:00
d43347436f
sandbox: memblock: align allocated pointers to 16-byte boundary
2023-02-02 21:01:22 +00:00
799a23014a
sandbox: add locking primitives
2023-02-02 21:00:40 +00:00
7d3000e84d
sandbox: queue: remove q_length field, add queue_empty()
2023-02-02 21:00:23 +00:00
662be5ec1f
sandbox: vm: add cache allocator, generic size-N caches for kmalloc()
2023-02-02 16:58:48 +00:00
3c781a4cb3
sandbox: vm: make vm_page queue entry private, owner-defined usage
2023-02-02 16:58:24 +00:00
e5a7546996
sandbox: vm: temporary implementation of vm_page_get_vaddr()
2023-02-02 16:57:03 +00:00
7331bdefda
sandbox: vm: reduce vm_page order field size to 4 bits
2023-02-02 16:54:48 +00:00
ab46b7cd13
sandbox: vm: fix bad array index in replenish_free_page_list
2023-02-02 16:47:32 +00:00
49e23849a5
sandbox: queue: check list is not empty before popping entries
2023-02-02 16:45:13 +00:00
9409ebbb19
sandbox: vm: implement page freeing; merge/split bugfix
2023-02-01 17:05:14 +00:00
ca92093c10
sandbox: vm: add function to iterate though pages in a hugepage
2023-02-01 17:04:20 +00:00
f82ca449b3
build: ensure "all" is the default build rule
2023-02-01 15:04:10 +00:00
af49d47ba8
sandbox: vm: add page splitting, merging, and allocation
2023-02-01 15:03:42 +00:00
4cb30737fb
sandbox: vm: remove relative include
2023-02-01 14:03:07 +00:00
bfe3c1cc80
build: rebuild objects that depend on modified headers
2023-02-01 14:02:54 +00:00