diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/kern/mpu/mpu_manager.h | 4 | ||||
-rw-r--r-- | include/kern/priv.h | 14 |
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_ */ |