X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/9406e904ddad5db2ba2dd550e21bbb224899fd79..4c6d990440cdba6c7dd294adb7e435770ffcbcc4:/lunaix-os/kernel/k_main.c?ds=inline diff --git a/lunaix-os/kernel/k_main.c b/lunaix-os/kernel/k_main.c index 3899336..565e5bc 100644 --- a/lunaix-os/kernel/k_main.c +++ b/lunaix-os/kernel/k_main.c @@ -1,8 +1,9 @@ #include #include -#include +#include #include #include +#include extern uint8_t __kernel_start; @@ -20,22 +21,33 @@ _kernel_main() void* k_start = vmm_v2p(&__kernel_start); printf("The kernel's base address mapping: %p->%p\n", &__kernel_start, k_start); - dmm_init(); - // test malloc & free - uint32_t** arr = (uint32_t**) lx_malloc(10 * sizeof(uint32_t*)); + uint32_t** arr = (uint32_t**) kmalloc(10 * sizeof(uint32_t*)); for (size_t i = 0; i < 10; i++) { - arr[i] = (uint32_t*) lx_malloc((i + 1) * 2); + arr[i] = (uint32_t*) kmalloc((i + 1) * 2); } + for (size_t i = 0; i < 10; i++) { - lx_free(arr[i]); + kfree(arr[i]); } + + void* big_ = kmalloc(8192); - lx_free(arr); - // assert(0); + // good free + kfree(arr); + kfree(big_); + + uint8_t* bad1 = kmalloc(123); + void* bad2 = kmalloc(1); + + *((uint32_t*)(bad1 - 4)) = 0xc2343312UL; + + // bad free + kfree(bad1); + kfree(bad2 - 2); } \ No newline at end of file