X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/844a2c39e4bb2cc778dba7bd3aea21cb07483fad..b0c2a4be2d1f4f93ab01d0858979a12ef0735ec1:/lunaix-os/kernel/k_main.c diff --git a/lunaix-os/kernel/k_main.c b/lunaix-os/kernel/k_main.c index b1fe488..9468db3 100644 --- a/lunaix-os/kernel/k_main.c +++ b/lunaix-os/kernel/k_main.c @@ -1,7 +1,9 @@ #include #include +#include #include #include +#include extern uint8_t __kernel_start; @@ -19,5 +21,38 @@ _kernel_main() void* k_start = vmm_v2p(&__kernel_start); printf("The kernel's base address mapping: %p->%p\n", &__kernel_start, k_start); - // assert(0); + // test malloc & free + + uint8_t** arr = (uint8_t**) lxmalloc(10 * sizeof(uint8_t*)); + + for (size_t i = 0; i < 10; i++) + { + arr[i] = (uint8_t*) lxmalloc((i + 1) * 2); + } + + + for (size_t i = 0; i < 10; i++) + { + lxfree(arr[i]); + } + + uint8_t* big_ = lxmalloc(8192); + big_[0] = 123; + big_[1] = 23; + big_[2] = 3; + + printf("%u, %u, %u", big_[0], big_[1], big_[2]); + + // good free + lxfree(arr); + lxfree(big_); + + // uint8_t* bad1 = lxmalloc(123); + // void* bad2 = lxmalloc(1); + + // *((uint32_t*)(bad1 - 4)) = 0xc2343312UL; + + // // bad free + // lxfree(bad1); + // lxfree(bad2 - 2); } \ No newline at end of file