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

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

?? pageidx.h

?? 自己動手寫操作系統源代碼,不可多得的代碼
?? H
字號:
//***********************************************************************/
//    Author                    : Garry
//    Original Date             : Aug,16 2005
//    Module Name               : PAGEIDX.H
//    Module Funciton           : 
//                                This module countains page index object
//                                definition and page index manager's definition.
//    Last modified Author      :
//    Last modified Date        :
//    Last modified Content     :
//                                1.
//                                2.
//    Lines number              :
//***********************************************************************/

#ifndef __PAGEIDX_H__
#define __PAGEIDX_H__


//
//Page control flags for Intel IA32 CPU.
//
#define PTE_FLAG_PRESENT    0x001
#define PTE_FLAG_RW         0x002
#define PTE_FLAG_USER       0x004
#define PTE_FLAG_PWT        0x008
#define PTE_FLAG_PCD        0x010
#define PTE_FLAG_ACCESSED   0x020
#define PTE_FLAG_DIRTY      0x040
#define PTE_FLAG_PAT        0x080
#define PTE_FLAG_GLOBAL     0x100
#define PTE_FLAG_USER1      0x200
#define PTE_FLAG_USER2      0x400
#define PTE_FLAG_USER3      0x800

//
//Page directory entry's flags for Intel's CPU.
//
#define PDE_FLAG_PRESENT    0x001
#define PDE_FLAG_RW         0x002
#define PDE_FLAG_USER       0x004
#define PDE_FLAG_PWT        0x008
#define PDE_FLAG_PCD        0x010
#define PDE_FLAG_ACCESSED   0x020
#define PDE_FLAG_RESERVED   0x040
#define PDE_FLAG_PAGESIZE   0x080
#define PDE_FLAG_GLOBAL     0x100
#define PDE_FLAG_USER1      0x200
#define PDE_FLAG_USER2      0x400
#define PDE_FLAG_USER3      0x800

#define U32                 unsigned long
#define __PTE               U32                      //Page table entry for Intel's IA32.
#define __GPDE              U32
#define __MPDE              U32
#define __PDE               U32                      //Page directory entry for Intel's IA32.

#define NULL_PDE            0L
#define NULL_PTE            0L

#define EMPTY_PDE_ENTRY(pde)    (pde == NULL_PDE)    //To check if the page directory entry
                                                     //is NULL.
#define EMPTY_PTE_ENTRY(pte)    (pte == NULL_PTE)    //To check if the page table entry
                                                     //is NULL.

#define SET_PTE_FLAGS(pte,flags)     (pte)  |= flags
#define CLEAR_PTE_FLAGS(pte,flags)   (pte)  &= ~flags
#define SET_GPDE_FLAGS(gpde,flags)   (gpde) |= flags
#define CLEAR_GPDE_FLAGS(gpde,flags) (gpde) &= ~flags
#define SET_MPDE_FLAGS(mpde,flags)   (mpde) |= flags
#define CLEAR_MPDE_FLAGS(mpde,flags) (mpde) &= ~flags

#define DEFAULT_PTE_FLAGS        (PTE_FLAG_PRESENT | PTE_FLAG_RW)
#define DEFAULT_PDE_FLAGS        (PDE_FLAG_PRESENT | PDE_FLAG_RW)
#define PTE_FLAGS_FOR_NORMAL     DEFAULT_PTE_FLAGS
#define PTE_FLAGS_FOR_IOMAP      (DEFAULT_PTE_FLAGS | PTE_FLAG_PCD)

#define INIT_PTE(pte)            (pte  = NULL_PTE)   //Initialize a page table entry to NULL.
#define INIT_PTE_TO_DEFAULT(pte) (pte  = DEFAULT_PTE_FLAGS)
#define INIT_PTE_TO_NULL(pte)    (pte  = NULL_PTE)
#define INIT_PDE(pde)            (pde  = NULL_PDE)   //Initialize a page directory entry to NULL.
#define INIT_PDE_TO_DEFAULT(pde) (pde  = DEFAULT_PDE_FLAGS)
#define INIT_PDE_TO_NULL(pde)    (pde  = NULL_PDE)

#define PDE_ADDRESS_MASK     0xFFFFF000
#define PTE_ADDRESS_MASK     0xFFFFF000
#define PDE_FLAGS_MASK       0x00000FFF
#define PTE_FLAGS_MASK       0x00000FFF

#define PDE_INDEX_MASK      0xFFC00000  //Used to get the page directory index from a virtual
                                        //32 bits address.
#define PTE_INDEX_MASK      0x003FF000  //Used to get the page table index.

#define FORM_PDE_ENTRY(pde,pteaddr)    ((pde) = (pde) + ((pteaddr) & PDE_ADDRESS_MASK))
#define FORM_PTE_ENTRY(pte,pgaddr)     ((pte) = (pte) + ((pgaddr) & PTE_ADDRESS_MASK))
#define SET_PDE(addr,pde)              (*(__PDE*)addr = pde)
#define SET_PTE(addr,pte)              (*(__PTE*)addr = pte)

//
//The page directory start address of the current version.
//
#define PD_START                (0x00200000 - 0x00010000)

//
//First several page tables of os kernel.
//
#define PT_START                (0x00200000 - 0x00010000 + 1024*4)

#define PD_OFFSET_SHIFT    22    //To locate the page directory index,should shift these
                                 //bits to right.
#define PT_OFFSET_SHIFT    12    //To locate the page table index,should shift virtual address
                                 //12 bits to right.

#define PD_SIZE            1024  //How many page directory entries in one page directory,
                                 //for Intel CPU.
#define PT_SIZE            1024  //How many page table entries in one page table,for IA32.
#define PAGE_SIZE          4096  //One page memory's size,4K.

//
//The definition of page index object manager.
//This object is used to manage page index objects.Generally,different hardware platform
//implements different page mechanism,this object also be used to islote this difference.
//

BEGIN_DEFINE_OBJECT(__PAGE_INDEX_MANAGER)
    INHERIT_FROM_COMMON_OBJECT
	__PDE*                         lpPdAddress;    //Physical address of page directory.
	LPVOID                         (*GetPhysicalAddress)(__COMMON_OBJECT*,LPVOID);
	BOOL                           (*ReservePage)(__COMMON_OBJECT*,LPVOID,LPVOID,DWORD);
	BOOL                           (*SetPageFlags)(__COMMON_OBJECT*,LPVOID,LPVOID,DWORD);
	VOID                           (*ReleasePage)(__COMMON_OBJECT*,LPVOID);
END_DEFINE_OBJECT()

//
//Declare initialize routine for page index manager object.
//

BOOL PageInitialize(__COMMON_OBJECT*);

//
//Declare uninitialize routine for page index manager object.
//

VOID PageUninitialize(__COMMON_OBJECT*);

#endif  //PAGEIDX.H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新不卡av在线| 亚洲欧美区自拍先锋| 在线看一区二区| 色偷偷久久一区二区三区| 暴力调教一区二区三区| 成人自拍视频在线| 91在线视频观看| 一本久久综合亚洲鲁鲁五月天 | 91精品国产综合久久久久| 在线精品视频一区二区| 色婷婷综合久久| 欧美人妇做爰xxxⅹ性高电影| 欧美亚洲国产一区二区三区va| 欧亚一区二区三区| 91精品国产色综合久久久蜜香臀| 欧美一区二区三区四区高清| 精品日韩成人av| 欧美国产精品一区二区三区| 亚洲欧美在线观看| 日精品一区二区| 九九精品视频在线看| 高清国产一区二区| 在线免费观看日韩欧美| 91精品国产色综合久久不卡电影| 欧美精品三级在线观看| 久久久久久久久蜜桃| 自拍偷拍国产精品| 视频一区在线播放| 粉嫩一区二区三区性色av| 色一情一伦一子一伦一区| 日韩免费电影网站| 亚洲欧美激情视频在线观看一区二区三区| 亚洲免费观看视频| 极品尤物av久久免费看| 91色综合久久久久婷婷| 欧美二区乱c少妇| 国产精品美女一区二区在线观看| 亚洲综合精品久久| 国产高清无密码一区二区三区| 972aa.com艺术欧美| 精品国产伦一区二区三区观看方式| 国产精品视频一二三| 日本91福利区| 色系网站成人免费| 国产欧美一区二区在线观看| 男男视频亚洲欧美| 99精品热视频| 欧美精品一区二区精品网| 亚洲一区二区三区四区的| 国产精品一区二区在线播放| 欧美日韩高清影院| 成人欧美一区二区三区视频网页| 美女网站色91| 欧美另类一区二区三区| 一区二区在线观看视频在线观看| 国产酒店精品激情| 在线综合+亚洲+欧美中文字幕| 一区在线观看免费| 国产麻豆9l精品三级站| 欧美一区二区在线不卡| 一个色综合网站| 成人av在线影院| 国产欧美日韩不卡免费| 国产又黄又大久久| 日韩免费在线观看| 青青草国产成人av片免费| 欧美日韩国产精品成人| 亚洲精品国产品国语在线app| 国产东北露脸精品视频| 久久精品人人做| 麻豆国产欧美日韩综合精品二区 | 亚洲欧美另类在线| 99视频一区二区| 亚洲免费在线观看| 在线观看视频一区二区欧美日韩| 自拍偷拍亚洲激情| 91久久精品一区二区二区| 亚洲欧美日韩国产成人精品影院 | 日产精品久久久久久久性色| 日本电影欧美片| 亚洲一区二区在线观看视频| 色婷婷久久久综合中文字幕| 亚洲自拍欧美精品| 欧美精品aⅴ在线视频| 日韩精品久久理论片| 日韩欧美一级在线播放| 精品综合久久久久久8888| 久久精品人人做人人综合| www..com久久爱| 亚洲福利视频导航| 日韩一二三四区| 成人网页在线观看| 一区二区视频在线| 欧美一区二区三区免费在线看 | 91精品在线一区二区| 免费一区二区视频| 中文在线免费一区三区高中清不卡| 国产精品91一区二区| 中文字幕一区二区三区色视频| 色乱码一区二区三区88| 日本中文字幕一区| 欧美高清一级片在线观看| 色综合久久久久久久久| 日本欧美一区二区三区乱码| 国产丝袜欧美中文另类| 色狠狠色噜噜噜综合网| 韩国精品免费视频| 亚洲日本在线看| 欧美大胆一级视频| 色综合久久久久网| 国产一区二区三区| 亚洲二区视频在线| 国产精品毛片无遮挡高清| 欧美日韩久久一区二区| 福利电影一区二区| 免费成人你懂的| 一区二区三区精品久久久| 国产午夜亚洲精品羞羞网站| 欧美色倩网站大全免费| 国产成人综合在线观看| 日本成人在线一区| 亚洲另类在线制服丝袜| 国产女主播一区| 日韩视频一区在线观看| 色久综合一二码| 丁香激情综合五月| 国模娜娜一区二区三区| 午夜视频在线观看一区| 国产精品电影一区二区三区| 精品国产伦一区二区三区免费 | 成人永久aaa| 另类人妖一区二区av| 一区二区视频在线| 国产精品的网站| 国产精品福利一区| 国产精品色呦呦| 久久久久久久久久久99999| 欧美一区二区美女| 宅男噜噜噜66一区二区66| 欧美视频一区在线观看| 在线影视一区二区三区| 99re热视频精品| 91免费视频观看| 91伊人久久大香线蕉| 99久久婷婷国产精品综合| 国产精品一区在线观看你懂的| 免费欧美日韩国产三级电影| 天堂在线一区二区| 午夜精品福利一区二区蜜股av | 日韩黄色一级片| 亚洲一区二区三区四区在线免费观看| 亚洲视频小说图片| 亚洲欧洲日韩在线| 亚洲精品水蜜桃| 亚洲一区二区中文在线| 亚洲福利电影网| 免费观看成人av| 精一区二区三区| 国产91精品精华液一区二区三区| 国产精品自拍av| 成人精品国产一区二区4080| 成人午夜视频在线观看| caoporm超碰国产精品| 成人看片黄a免费看在线| 97久久精品人人爽人人爽蜜臀 | 午夜视频在线观看一区二区三区| 亚洲无人区一区| 美国av一区二区| 国产91在线|亚洲| 91麻豆成人久久精品二区三区| 色嗨嗨av一区二区三区| 777色狠狠一区二区三区| 日韩欧美一级片| 中文字幕免费不卡在线| 亚洲国产成人av网| 国产一区欧美日韩| 日本韩国欧美一区| 精品欧美一区二区在线观看| 国产精品天美传媒| 亚洲成av人在线观看| 国产精品一区二区三区乱码| 成人精品国产一区二区4080| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91精品国产一区二区三区香蕉| 久久只精品国产| 亚洲国产成人av网| 成人av网址在线| 4438x成人网最大色成网站| 国产免费观看久久| 亚洲国产综合在线| 国产精品中文字幕日韩精品 | 亚洲一区二区三区激情| 国产一区二区伦理| 欧美日韩中文字幕精品| 久久先锋影音av| 亚洲午夜影视影院在线观看| 国产一区二区三区黄视频 | 国产精品狼人久久影院观看方式| 亚洲二区视频在线| 99国产一区二区三精品乱码|