aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/kern/mpu/mpu_manager.h4
-rw-r--r--include/kern/priv.h14
2 files changed, 16 insertions, 2 deletions
diff --git a/include/kern/mpu/mpu_manager.h b/include/kern/mpu/mpu_manager.h
index 5e0bc7b..7c47722 100644
--- a/include/kern/mpu/mpu_manager.h
+++ b/include/kern/mpu/mpu_manager.h
@@ -34,14 +34,14 @@ typedef enum {
REGION_SIZE_4Gb = 31,
} region_size_t;
-#define region_size_mask(region_size) ((1 << (region_size)) - 1)
+#define region_size_mask(region_size) ((1 << (region_size + 1)) - 1)
typedef enum {
/* Neither Privileged nor non-Privileged code cannnot access this region */
ACCESS_PERMS_NO_ACCESS = 0,
/* Only privileged users can access this memory. */
- ACCESS_PERMS_ONLY_PERMS = 1,
+ ACCESS_PERMS_ONLY_PRIV = 1,
/* Privileged code can access fully, but non-privilege only has Read-only
access.*/
diff --git a/include/kern/priv.h b/include/kern/priv.h
new file mode 100644
index 0000000..8940b23
--- /dev/null
+++ b/include/kern/priv.h
@@ -0,0 +1,14 @@
+#ifndef _KERN_PRIV_H_
+#define _KERN_PRIV_H_
+
+#include "kern/common.h"
+
+uint32_t get_control_register();
+
+void set_control_register(uint32_t reg);
+
+/* Enters user mode from privilieged mode. */
+void enter_user_mode();
+
+
+#endif /* _KERN_PRIV_H_ */