Introduce assert() macro.
Change-Id: Id087824aaa1ab6203842384f935091b145508c3c
diff --git a/src/abort.c b/src/abort.c
index f16d2f7..8d9d723 100644
--- a/src/abort.c
+++ b/src/abort.c
@@ -16,6 +16,8 @@
#include "hf/abort.h"
+#include "hf/dlog.h"
+
/**
* Causes execution to halt and prevent progress of the current and less
* privileged software components. This should be triggered when a
@@ -28,5 +30,7 @@
{
/* TODO: Block all CPUs. */
for (;;) {
+ /* Prevent loop being optimized away. */
+ __asm__ volatile("nop");
}
}
diff --git a/src/mm.c b/src/mm.c
index 813e1b9..6de6bc6 100644
--- a/src/mm.c
+++ b/src/mm.c
@@ -495,13 +495,10 @@
ptable_addr_t begin = pa_addr(arch_mm_clear_pa(pa_begin));
/*
- * TODO: replace with assertions that the max level will be greater than
- * 0 and less than 255 so wrapping will not be a problem and will not
- * lead to subsequent overflows.
+ * Assert condition to communicate the API constraint of mm_max_level(),
+ * that isn't encoded in the types, to the static analyzer.
*/
- if (root_level == 0 || root_level == 1) {
- return false;
- }
+ assert(root_level >= 2);
/* Cap end to stay within the bounds of the page table. */
if (end > ptable_end) {