⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arch_vm.c

📁 newos is new operation system
💻 C
字号:
/*** Copyright 2001-2004, Travis Geiselbrecht. All rights reserved.** Distributed under the terms of the NewOS License.*/#include <kernel/kernel.h>#include <kernel/console.h>#include <kernel/vm.h>#include <kernel/vm_page.h>#include <kernel/vm_priv.h>#include <kernel/debug.h>#include <kernel/arch/vm.h>#include <kernel/arch/int.h>#include <kernel/arch/cpu.h>#include <kernel/arch/x86_64/interrupts.h>int arch_vm_init(kernel_args *ka){	dprintf("arch_vm_init: entry\n");	return 0;}int arch_vm_init2(kernel_args *ka){	dprintf("arch_vm_init2: entry\n");	// account for DMA area and mark the pages unusable	vm_mark_page_range_inuse(0x0, 0xa0000 / PAGE_SIZE);	return 0;}int arch_vm_init_existing_maps(kernel_args *ka){	return 0;}int arch_vm_init_endvm(kernel_args *ka){	region_id id;	void *ptr;	dprintf("arch_vm_init_endvm: entry\n");	// map 0 - 0xa0000 directly	id = vm_map_physical_memory(vm_get_kernel_aspace_id(), "dma_region", &ptr,		REGION_ADDR_ANY_ADDRESS, 0xa0000, LOCK_RW|LOCK_KERNEL, 0x0);	if(id < 0) {		panic("arch_vm_init_endvm: unable to map dma region\n");		return ERR_NO_MEMORY;	}	return 0;}void arch_vm_aspace_swap(vm_address_space *aspace){	x86_64_swap_pgdir(vm_translation_map_get_pgdir(&aspace->translation_map));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -