2 #include <lunaix/syslog.h>
3 #include <lunaix/mm/kalloc.h>
4 #include <lunaix/mm/vmm.h>
5 #include <lunaix/spike.h>
6 #include <lunaix/time.h>
7 #include <lunaix/timer.h>
10 extern uint8_t __kernel_start;
15 test_timer(void* payload);
22 kprintf(KINFO "Hello higher half kernel world!\nWe are now running in virtual "
23 "address space!\n\n");
26 kprintf("CPU: %s\n\n", buf);
28 void* k_start = vmm_v2p(&__kernel_start);
29 kprintf(KINFO "The kernel's base address mapping: %p->%p\n", &__kernel_start, k_start);
33 uint8_t** arr = (uint8_t**)lxmalloc(10 * sizeof(uint8_t*));
35 for (size_t i = 0; i < 10; i++) {
36 arr[i] = (uint8_t*)lxmalloc((i + 1) * 2);
39 for (size_t i = 0; i < 10; i++) {
43 uint8_t* big_ = lxmalloc(8192);
48 kprintf(KINFO "%u, %u, %u\n", big_[0], big_[1], big_[2]);
54 timer_run_second(1, test_timer, NULL, TIMER_MODE_PERIODIC);
59 static datetime_t datetime;
61 void test_timer(void* payload) {
62 time_getdatetime(&datetime);
64 kprintf(KWARN "%u/%02u/%02u %02u:%02u:%02u\r",