aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-01-08 17:25:51 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-01-08 17:26:43 +0530
commitc755557d0f85bd98200da263d50f9b2f552efe4b (patch)
treeb207ece15da28e987aacf9d066d86793c16a36f3 /kernel
parentb82649c2b156d5351e15fbbde00d09e5a8917b26 (diff)
kernel: Add ASSERT_NOT_REACHED()
Diffstat (limited to 'kernel')
-rw-r--r--kernel/include/common.h4
-rw-r--r--kernel/mm/physical_mm/physical_mm.c11
2 files changed, 12 insertions, 3 deletions
diff --git a/kernel/include/common.h b/kernel/include/common.h
index 52076fa..041d3b1 100644
--- a/kernel/include/common.h
+++ b/kernel/include/common.h
@@ -25,4 +25,8 @@
#define KiB 1024
#define MiB (KiB * KiB)
+#define ASSERT_NOT_REACHED() \
+ printk("ASSERTION FAILED:", "[%s] SHOULD NOT BE REACHED.", __func__); \
+ halt();
+
#endif
diff --git a/kernel/mm/physical_mm/physical_mm.c b/kernel/mm/physical_mm/physical_mm.c
index d57cc83..407aad6 100644
--- a/kernel/mm/physical_mm/physical_mm.c
+++ b/kernel/mm/physical_mm/physical_mm.c
@@ -10,6 +10,8 @@
#include <mm/memory_map.h>
#include <mm/physical_mm.h>
+#include <kernel/halt.h>
+
extern uint32_t kernel_start;
extern uint32_t kernel_end;
@@ -20,14 +22,17 @@ void
physical_mm_init(void)
{
free_memory_regions_t *free_memory_regions = memory_map_get_free_regions();
- printk("physical_mm", "Free Memory Regions:");
+
+ /* TODO: Initialize these free memory regions */
+ printk("\nphysical_mm", "Free Memory Regions:");
for (int i = 0; i < free_memory_regions->n_regions; i++)
printk("physical_mm",
"start: 0x%.08x | length: 0x%.08x",
free_memory_regions->region_list[i]->addr_low,
free_memory_regions->region_list[i]->len_low);
- printk("physical_mm", "Kernel region:");
+ /* TODO: De-initialize region used by the kernel */
+ printk("\nphysical_mm", "Kernel region:");
printk("physical_mm", "Start: 0x%x", &kernel_start);
printk("physical_mm", "End: 0x%x", &kernel_end);
printk("physical_mm",
@@ -74,6 +79,6 @@ physical_mm_find_first_free(void)
if (physical_mm_test_bit(i * BITMAP_ENTRY_SIZE + j))
return i * BITMAP_ENTRY_SIZE + j;
- /* TODO: Assert not reached, or something similar */
+ ASSERT_NOT_REACHED();
return -1;
}