mm-init.h

来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 56 行

H
56
字号
/* * linux/include/asm-arm/proc-armo/mm-init.h * * Copyright (C) 1996 Russell King * * This contains the code to setup the memory map on an ARM2/ARM250/ARM3 * machine. This is both processor & architecture specific, and requires * some more work to get it to fit into our separate processor and * architecture structure. */#include <asm/arch/memory.h>int page_nr;#define setup_processor_functions()#define PTE_SIZE	(PTRS_PER_PTE * BYTES_PER_PTR)static inline void setup_swapper_dir (int index, pte_t *ptep){	set_pmd (pmd_offset (swapper_pg_dir + index, 0), mk_pmd (ptep));}static inline unsigned longsetup_pagetables(unsigned long start_mem, unsigned long end_mem){	unsigned int i;	union { unsigned long l; pte_t *pte; } u;	page_nr = MAP_NR(end_mem);	/* map in pages for (0x0000 - 0x8000) */	u.l = ((start_mem + (PTE_SIZE-1)) & ~(PTE_SIZE-1));	start_mem = u.l + PTE_SIZE;	memzero (u.pte, PTE_SIZE);	u.pte[0] = mk_pte(PAGE_OFFSET + 491520, PAGE_READONLY);	setup_swapper_dir (0, u.pte);	for (i = 1; i < PTRS_PER_PGD; i++)		pgd_val(swapper_pg_dir[i]) = 0;	return start_mem;}static inline voidmark_usable_memory_areas(unsigned long *start_mem, unsigned long end_mem){	unsigned long smem;	*start_mem = smem = PAGE_ALIGN(*start_mem);	while (smem < end_mem) {		clear_bit(PG_reserved, &mem_map[MAP_NR(smem)].flags);		smem += PAGE_SIZE;	}}

⌨️ 快捷键说明

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