return(NULL);
}
+#if FEATURE(DEBUG)
+static void _pg_dir_debug_regions(pg_dir_t *pd)
+{
+ struct region *reg;
+
+ for(reg = pd->pd_regions; reg; reg = reg->reg_next) {
+ dbg_printf("Region type %02x at 0x%08x:%08x\n",
+ reg->reg_type, reg->reg_base, reg->reg_size);
+ }
+
+ return;
+}
+#endif /* FEATURE(DEBUG) */
+
void* pg_init(struct multiboot_info *info)
{
extern struct cpu _cpu[CONFIG_SMP_CPUS];
_frame_set(i);
}
+#if FEATURE(DEBUG)
+ _pg_dir_debug_regions(&_kernel_pgdir);
+#endif /* FEATURE(DEBUG) */
+
_kernel_cr3 = cr3;
dbg_printf("Enabling %s paging\n", _str_pg_mode[_pg_flags & PG_MODE_MASK]);
* with speculative execution behavior of certain processors
*/
for(reg = _kernel_pgdir.pd_regions; reg; reg = reg->reg_next) {
- switch(reg->reg_flags) {
+ switch(reg->reg_type) {
case REGION_TEXT:
ret_val = pg_dir_map(dir, reg->reg_base, reg->reg_base, reg->reg_size, reg->reg_attrs);
break;
return(ret_val);
}
-static int _pg_dir_add_region(pg_dir_t *pd, void *base, u32_t size, u32_t flags, u32_t attrs)
+static int _pg_dir_add_region(pg_dir_t *pd, void *base, u32_t size, u32_t type, u32_t attrs)
{
struct region *reg;
int ret_val;
reg = kmalloc(sizeof(*reg));
if(reg) {
- dbg_printf("Region type %02x at 0x%08x:%08x\n", flags, base, size);
reg->reg_base = base;
reg->reg_size = size;
reg->reg_pgsize = PAGE_SIZE;
- reg->reg_flags = flags;
+ reg->reg_type = type;
reg->reg_attrs = attrs;
reg->reg_next = pd->pd_regions;