亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pgtable.h

?? linux 內核源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* pgtable.h: FR-V page table mangling * * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. * Written by David Howells (dhowells@redhat.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * * Derived from: *	include/asm-m68knommu/pgtable.h *	include/asm-i386/pgtable.h */#ifndef _ASM_PGTABLE_H#define _ASM_PGTABLE_H#include <asm/mem-layout.h>#include <asm/setup.h>#include <asm/processor.h>#ifndef __ASSEMBLY__#include <linux/threads.h>#include <linux/slab.h>#include <linux/list.h>#include <linux/spinlock.h>#include <linux/sched.h>struct vm_area_struct;#endif#ifndef __ASSEMBLY__#if defined(CONFIG_HIGHPTE)typedef unsigned long pte_addr_t;#elsetypedef pte_t *pte_addr_t;#endif#endif/*****************************************************************************//* * MMU-less operation case first */#ifndef CONFIG_MMU#define pgd_present(pgd)	(1)		/* pages are always present on NO_MM */#define pgd_none(pgd)		(0)#define pgd_bad(pgd)		(0)#define pgd_clear(pgdp)#define kern_addr_valid(addr)	(1)#define	pmd_offset(a, b)	((void *) 0)#define PAGE_NONE		__pgprot(0)	/* these mean nothing to NO_MM */#define PAGE_SHARED		__pgprot(0)	/* these mean nothing to NO_MM */#define PAGE_COPY		__pgprot(0)	/* these mean nothing to NO_MM */#define PAGE_READONLY		__pgprot(0)	/* these mean nothing to NO_MM */#define PAGE_KERNEL		__pgprot(0)	/* these mean nothing to NO_MM */#define __swp_type(x)		(0)#define __swp_offset(x)		(0)#define __swp_entry(typ,off)	((swp_entry_t) { ((typ) | ((off) << 7)) })#define __pte_to_swp_entry(pte)	((swp_entry_t) { pte_val(pte) })#define __swp_entry_to_pte(x)	((pte_t) { (x).val })#ifndef __ASSEMBLY__static inline int pte_file(pte_t pte) { return 0; }#endif#define ZERO_PAGE(vaddr)	({ BUG(); NULL; })#define swapper_pg_dir		((pgd_t *) NULL)#define pgtable_cache_init()		do {} while (0)#define arch_enter_lazy_mmu_mode()	do {} while (0)#define arch_leave_lazy_mmu_mode()	do {} while (0)#define arch_enter_lazy_cpu_mode()	do {} while (0)#define arch_leave_lazy_cpu_mode()	do {} while (0)#else /* !CONFIG_MMU *//*****************************************************************************//* * then MMU operation *//* * ZERO_PAGE is a global shared page that is always zero: used * for zero-mapped memory areas etc.. */#ifndef __ASSEMBLY__extern unsigned long empty_zero_page;#define ZERO_PAGE(vaddr)	virt_to_page(empty_zero_page)#endif/* * we use 2-level page tables, folding the PMD (mid-level table) into the PGE (top-level entry) * [see Documentation/fujitsu/frv/mmu-layout.txt] * * Page Directory: *  - Size: 16KB *  - 64 PGEs per PGD *  - Each PGE holds 1 PUD and covers 64MB * * Page Upper Directory: *  - Size: 256B *  - 1 PUE per PUD *  - Each PUE holds 1 PMD and covers 64MB * * Page Mid-Level Directory *  - Size: 256B *  - 1 PME per PMD *  - Each PME holds 64 STEs, all of which point to separate chunks of the same Page Table *  - All STEs are instantiated at the same time * * Page Table *  - Size: 16KB *  - 4096 PTEs per PT *  - Each Linux PT is subdivided into 64 FR451 PT's, each of which holds 64 entries * * Pages *  - Size: 4KB * * total PTEs *	= 1 PML4E * 64 PGEs * 1 PUEs * 1 PMEs * 4096 PTEs *	= 1 PML4E * 64 PGEs * 64 STEs * 64 PTEs/FR451-PT *	= 262144 (or 256 * 1024) */#define PGDIR_SHIFT		26#define PGDIR_SIZE		(1UL << PGDIR_SHIFT)#define PGDIR_MASK		(~(PGDIR_SIZE - 1))#define PTRS_PER_PGD		64#define PUD_SHIFT		26#define PTRS_PER_PUD		1#define PUD_SIZE		(1UL << PUD_SHIFT)#define PUD_MASK		(~(PUD_SIZE - 1))#define PUE_SIZE		256#define PMD_SHIFT		26#define PMD_SIZE		(1UL << PMD_SHIFT)#define PMD_MASK		(~(PMD_SIZE - 1))#define PTRS_PER_PMD		1#define PME_SIZE		256#define __frv_PT_SIZE		256#define PTRS_PER_PTE		4096#define USER_PGDS_IN_LAST_PML4	(TASK_SIZE / PGDIR_SIZE)#define FIRST_USER_ADDRESS	0#define USER_PGD_PTRS		(PAGE_OFFSET >> PGDIR_SHIFT)#define KERNEL_PGD_PTRS		(PTRS_PER_PGD - USER_PGD_PTRS)#define TWOLEVEL_PGDIR_SHIFT	26#define BOOT_USER_PGD_PTRS	(__PAGE_OFFSET >> TWOLEVEL_PGDIR_SHIFT)#define BOOT_KERNEL_PGD_PTRS	(PTRS_PER_PGD - BOOT_USER_PGD_PTRS)#ifndef __ASSEMBLY__extern pgd_t swapper_pg_dir[PTRS_PER_PGD];#define pte_ERROR(e) \	printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, (e).pte)#define pmd_ERROR(e) \	printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e))#define pud_ERROR(e) \	printk("%s:%d: bad pud %08lx.\n", __FILE__, __LINE__, pmd_val(pud_val(e)))#define pgd_ERROR(e) \	printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pmd_val(pud_val(pgd_val(e))))/* * Certain architectures need to do special things when PTEs * within a page table are directly modified.  Thus, the following * hook is made available. */#define set_pte(pteptr, pteval)				\do {							\	*(pteptr) = (pteval);				\	asm volatile("dcf %M0" :: "U"(*pteptr));	\} while(0)#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)/* * pgd_offset() returns a (pgd_t *) * pgd_index() is used get the offset into the pgd page's array of pgd_t's; */#define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address))/* * a shortcut which implies the use of the kernel's pgd, instead * of a process's */#define pgd_offset_k(address) pgd_offset(&init_mm, address)/* * The "pgd_xxx()" functions here are trivial for a folded two-level * setup: the pud is never bad, and a pud always exists (as it's folded * into the pgd entry) */static inline int pgd_none(pgd_t pgd)		{ return 0; }static inline int pgd_bad(pgd_t pgd)		{ return 0; }static inline int pgd_present(pgd_t pgd)	{ return 1; }static inline void pgd_clear(pgd_t *pgd)	{ }#define pgd_populate(mm, pgd, pud)		do { } while (0)/* * (puds are folded into pgds so this doesn't get actually called, * but the define is needed for a generic inline function.) */#define set_pgd(pgdptr, pgdval)				\do {							\	memcpy((pgdptr), &(pgdval), sizeof(pgd_t));	\	asm volatile("dcf %M0" :: "U"(*(pgdptr)));	\} while(0)static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address){	return (pud_t *) pgd;}#define pgd_page(pgd)				(pud_page((pud_t){ pgd }))#define pgd_page_vaddr(pgd)			(pud_page_vaddr((pud_t){ pgd }))/* * allocating and freeing a pud is trivial: the 1-entry pud is * inside the pgd, so has no extra memory associated with it. */#define pud_alloc_one(mm, address)		NULL#define pud_free(x)				do { } while (0)#define __pud_free_tlb(tlb, x)			do { } while (0)/* * The "pud_xxx()" functions here are trivial for a folded two-level * setup: the pmd is never bad, and a pmd always exists (as it's folded * into the pud entry) */static inline int pud_none(pud_t pud)		{ return 0; }static inline int pud_bad(pud_t pud)		{ return 0; }static inline int pud_present(pud_t pud)	{ return 1; }static inline void pud_clear(pud_t *pud)	{ }#define pud_populate(mm, pmd, pte)		do { } while (0)/* * (pmds are folded into puds so this doesn't get actually called, * but the define is needed for a generic inline function.) */#define set_pud(pudptr, pudval)			set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })#define pud_page(pud)				(pmd_page((pmd_t){ pud }))#define pud_page_vaddr(pud)			(pmd_page_vaddr((pmd_t){ pud }))/* * (pmds are folded into pgds so this doesn't get actually called, * but the define is needed for a generic inline function.) */extern void __set_pmd(pmd_t *pmdptr, unsigned long __pmd);#define set_pmd(pmdptr, pmdval)			\do {						\	__set_pmd((pmdptr), (pmdval).ste[0]);	\} while(0)#define __pmd_index(address)			0static inline pmd_t *pmd_offset(pud_t *dir, unsigned long address){	return (pmd_t *) dir + __pmd_index(address);}#define pte_same(a, b)		((a).pte == (b).pte)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产精华| 777奇米四色成人影色区| 麻豆一区二区三| 一区二区三区四区不卡在线| 国产精品女主播av| 久久久久久久久一| 国产婷婷色一区二区三区 | 日本不卡1234视频| 亚洲大片在线观看| 亚洲成a人v欧美综合天堂下载 | 精品久久一区二区| 久久综合中文字幕| 中文字幕不卡的av| 亚洲免费在线观看| 香蕉乱码成人久久天堂爱免费| 亚洲自拍另类综合| 丝袜美腿一区二区三区| 蜜臀av一级做a爰片久久| 理论电影国产精品| av亚洲精华国产精华精| 色中色一区二区| 欧美日韩国产一区| 2021中文字幕一区亚洲| 中文字幕在线观看不卡视频| 亚洲美女淫视频| 日本欧美在线观看| 国产精品资源站在线| 一道本成人在线| 91精品国产乱码| 国产精品传媒视频| 日韩在线一区二区| 国产精品99久久久久久久女警| 91免费视频大全| 欧美tickling网站挠脚心| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲国产另类av| 久久精品国产秦先生| 成人午夜私人影院| 欧美一区二区三区在| 国产精品毛片a∨一区二区三区| 亚洲主播在线播放| 国产成人高清在线| 日韩一区二区不卡| 亚洲精品视频在线观看网站| 麻豆精品精品国产自在97香蕉| 菠萝蜜视频在线观看一区| 欧美日本韩国一区| 综合久久综合久久| 久久99精品网久久| 欧美三级电影网站| 亚洲欧美激情小说另类| 国产老妇另类xxxxx| 欧美一区二区视频免费观看| 一区二区在线观看免费视频播放| 黄色资源网久久资源365| 欧美天堂亚洲电影院在线播放| 国产女人aaa级久久久级| 日韩成人av影视| 欧美亚洲高清一区二区三区不卡| 国产精品无码永久免费888| 蜜臀av亚洲一区中文字幕| 欧美日韩在线播放三区| 综合久久综合久久| 成人免费观看av| 久久一区二区视频| 蓝色福利精品导航| 91精品婷婷国产综合久久性色| 有码一区二区三区| 色乱码一区二区三区88| 亚洲视频网在线直播| 国产91丝袜在线观看| 久久久久久夜精品精品免费| 精品伊人久久久久7777人| 欧美大片顶级少妇| 极品瑜伽女神91| 精品国产91乱码一区二区三区| 久久草av在线| 精品国产a毛片| 国产老肥熟一区二区三区| 欧美精品一区二区蜜臀亚洲| 国内久久婷婷综合| 久久久国产精品麻豆| 懂色av一区二区夜夜嗨| 中文天堂在线一区| www.欧美日韩| 日韩一区欧美一区| 91精品办公室少妇高潮对白| 亚洲午夜av在线| 日韩女优av电影在线观看| 国产精品一区二区男女羞羞无遮挡| 久久精品综合网| 成人午夜激情在线| 亚洲综合另类小说| 日韩免费高清av| 国产精品一二三区在线| 亚洲免费大片在线观看| 欧美日韩高清影院| 久久99久久99小草精品免视看| 久久久久国产精品麻豆| 91在线观看成人| 天堂影院一区二区| 久久影院午夜论| 日本韩国一区二区三区| 蜜臀va亚洲va欧美va天堂| 国产亚洲短视频| 91在线观看免费视频| 亚洲无线码一区二区三区| 日韩精品资源二区在线| 不卡的av网站| 免费观看30秒视频久久| 国产精品嫩草久久久久| 欧美三级韩国三级日本一级| 国产精品一区专区| 亚洲一区av在线| 久久综合久久综合久久综合| 欧洲色大大久久| 国产在线国偷精品免费看| 亚洲一区欧美一区| 久久久久久久久久久久电影| 色婷婷综合久久| 国产一区二区久久| 亚洲国产日韩a在线播放性色| 久久精品人人做人人综合| 日本精品免费观看高清观看| 国产精品 日产精品 欧美精品| 偷窥少妇高潮呻吟av久久免费| 国产精品三级电影| 欧美刺激脚交jootjob| 欧美在线视频日韩| 国产一区二区久久| 蜜臀av性久久久久蜜臀av麻豆| 一区二区三区四区蜜桃| 国产精品久久久久天堂| 久久日一线二线三线suv| 欧美性videosxxxxx| 高清日韩电视剧大全免费| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲国产美国国产综合一区二区| 1000精品久久久久久久久| 久久精品视频一区二区| 久久噜噜亚洲综合| 欧美成人伊人久久综合网| 91精品国产一区二区三区| 精品视频1区2区| 日本精品一区二区三区四区的功能| 国产99久久久精品| 国产酒店精品激情| 国产成人免费视| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲成在人线在线播放| 一区二区三区 在线观看视频| 亚洲人成网站色在线观看| 国产色一区二区| 国产午夜三级一区二区三| 久久久久97国产精华液好用吗| 日韩欧美激情在线| 2021国产精品久久精品 | 国产真实精品久久二三区| 久久精品国产999大香线蕉| 日韩精品一区第一页| 视频在线观看国产精品| 日韩国产一二三区| 美女免费视频一区二区| 国产一区二区三区四| 国产米奇在线777精品观看| 国产成人精品亚洲午夜麻豆| www..com久久爱| 色婷婷综合久久久中文一区二区 | 亚洲成精国产精品女| 日韩福利视频导航| 狠狠色狠狠色综合系列| 国产69精品久久久久777| www.视频一区| 欧美欧美欧美欧美首页| 精品不卡在线视频| 国产精品美女久久久久av爽李琼| 亚洲欧美日韩人成在线播放| 成人黄色软件下载| 99久久免费视频.com| 欧美性猛交xxxx黑人交| 久久综合色天天久久综合图片| 欧美激情艳妇裸体舞| 亚洲一区在线电影| 国产综合色产在线精品| 99久久久国产精品| 日韩一区二区三区电影在线观看| 欧美激情在线一区二区| 亚洲国产综合色| 国内外精品视频| 91福利小视频| 久久蜜桃av一区精品变态类天堂| 日韩伦理av电影| 蜜桃视频一区二区三区| 99免费精品在线| 欧美成人女星排名| 亚洲午夜av在线| a美女胸又www黄视频久久| 日韩欧美在线影院| 一区二区三区在线不卡| 精品亚洲porn|