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

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

?? memmgr.h

?? 小型的操作系統開發的原代碼
?? H
字號:
//***********************************************************************/
//    Author                    : Garry
//    Original Date             : Mar,09 2005
//    Module Name               : memmgr.h
//    Module Function           : 
//                                This module countains memory manager pro-type's
//                                definition.
//    Last modified Author      :
//    Last modified Date        :
//    Last modified Content     :
//                                1.
//                                2.
//    Lines number              :
//***********************************************************************/

#ifndef __MEMMGR_H__
#define __MEMMGR_H__
#endif

//------------------------------------------------------------------------
//
//    The definition of Page Frame Manager.
//
//------------------------------------------------------------------------

//
//The definition of __PAGE_FRAME object.
//This object is used to describe a page frame.
//

BEGIN_DEFINE_OBJECT(__PAGE_FRAME)
    __PAGE_FRAME*         lpNextFrame;
    __PAGE_FRAME*         lpPrevFrame;
	DWORD                 dwKernelThreadNum;
	DWORD                 dwFrameFlag;
	LPVOID                lpReserved;
END_DEFINE_OBJECT()

//
//Constant definition.
//

#define PAGE_FRAME_SIZE     4096              //One page frame's size,in current version,
                                              //this value is 4K.

#define PAGE_FRAME_FLAG_READONLY  0x00000001  //Read only page.
#define PAGE_FRAME_FLAG_WRITE     0x00000002  //Write page.
#define PAGE_FRAME_READWRITE      0x00000003
#define PAGE_FRAME_EXECUTABLE     0x00000004


#define PAGE_FRAME_BLOCK_SIZE_4K    1024*4
#define PAGE_FRAME_BLOCK_SIZE_8K    1024*8

#define PAGE_FRAME_BLOCK_SIZE_16K   1024*16
#define PAGE_FRAME_BLOCK_SIZE_32K   1024*32
#define PAGE_FRAME_BLOCK_SIZE_64K   1024*64

#define PAGE_FRAME_BLOCK_SIZE_128K  1024*128
#define PAGE_FRAME_BLOCK_SIZE_256K  1024*256
#define PAGE_FRAME_BLOCK_SIZE_512K  1024*512

#define PAGE_FRAME_BLOCK_SIZE_1024K 1024*1024
#define PAGE_FRAME_BLOCK_SIZE_2048K 1024*2048
#define PAGE_FRAME_BLOCK_SIZE_4096K 1024*4096
#define PAGE_FRAME_BLOCK_SIZE_8192K 1024*8192


#define PAGE_FRAME_BLOCK_NUM  12

#define DEFAULT_PAGE_ALIGMENT 4096    //Aligment at 4k boundary.



//
//The definition of Page Frame Block object.
//This object is used to describe one page frame block.
//

BEGIN_DEFINE_OBJECT(__PAGE_FRAME_BLOCK)
    __PAGE_FRAME*         lpNextBlock;
    __PAGE_FRAME*         lpPrevBlock;
	DWORD*                lpdwBitmap;
END_DEFINE_OBJECT()

//
//The definition of object Page Frame Manager.
//


BEGIN_DEFINE_OBJECT(__PAGE_FRAME_MANAGER)
    __PAGE_FRAME*          lpPageFrameArray;
    __PAGE_FRAME_BLOCK     FrameBlockArray[PAGE_FRAME_BLOCK_NUM];
	DWORD                  dwTotalFrameNum;
	DWORD                  dwFreeFrameNum;
	LPVOID                 lpStartAddress;

	BOOL                   (*Initialize)(__COMMON_OBJECT*    lpThis,
		                                 LPVOID              lpStartAddr,
										 LPVOID              lpEndAddr);

	LPVOID                 (*FrameAlloc)(__COMMON_OBJECT*    lpThis,
		                                 DWORD               dwSize,
										 DWORD               dwFrameFlag);

	VOID                   (*FrameFree)(__COMMON_OBJECT*     lpThis,
		                                LPVOID               lpStartAddr,
										DWORD                dwSize);

END_DEFINE_OBJECT()


//------------------------------------------------------------------------
//
//        The pro-type definition of Chunk Manager.
//
//------------------------------------------------------------------------

//
//Chunk control block.
//This structure is used to trace the chunk,one this structure corresponding one chunk.
//

BEGIN_DEFINE_OBJECT(__CHUNK_CONTROL_BLOCK)
    LPVOID                  lpStartAddr;
    LPVOID                  lpEndAddr;             //The lpEndAddr minis lpStartAddr,then
	                                               //add 1,is the chunk's size.
	                                               //For example,if the lpStartAddr is
	                                               //0x01000000,and the chunk's size is 256K,
	                                               //then the lpEndAddr must be 0x01000000 + 
	                                               //256k - 1 = 0x0103FFFF,not
	                                               //0x01040000.
	__CHUNK_CONTROL_BLOCK*  lpNextChunk;
	__CHUNK_CONTROL_BLOCK*  lpPrevChunk;
	DWORD                   dwChunkFlag;
	WORD                    wReserved;             //Aligment with 4.
	WORD                    wAvlHeight;            //Releated with AVL tree.
	__CHUNK_CONTROL_BLOCK*  lpAvlLeft;             //Point to left tree branch.
	__CHUNK_CONTROL_BLOCK*  lpAvlRight;            //Point to right tree branch.
	__CHUNK_CONTROL_BLOCK*  lpSharedChunk;         //Point to shared chunk.
END_DEFINE_OBJECT()


//
//Chunk flag definition.
//

#define CHUNK_FLAG_CODE         0x00000001    //Code chunk.
#define CHUNK_FLAG_DATA         0x00000002    //Data chunk.
#define CHUNK_FLAG_STACK        0x00000004    //Stack chunk.
#define CHUNK_FLAG_HEAP         0x00000008    //Heap chunk.
#define CHUNK_FLAG_RDATA        0x00000010    //Readonly data.

#define MAX_HEAP_CHUNK_NUM      0x00000008    //Maximal heap chunk number for a kernel
                                              //thread.

#define AVL_SWITCH_CHUNK_NUM    0x00000010    //If one kernel thread creates more chunks
											  //than this number,the chunk by the kernel
											  //thread created will keep in an AVL tree
											  //instead of bidirect link list.

#define MAX_CHUNK_SIZE  PAGE_FRAME_BLOCK_SIZE_8192K //The maximal chunk size.

//------------------------------------------------------------------------
//
//        The pro-type definition for routine MemoryAlloc and MemoryFree.
//
//------------------------------------------------------------------------

/*BEGIN_DEFINE_OBJECT(__FREE_BLOCK_HEADER)    //This structure is used to control a block of
                                            //free memory.
    DWORD                  dwBlockFlag;     //Flag,such as FREE or OCCUPIED.
    DWORD                  dwBlockSize;     //The free memory block's size.
	__FREE_BLOCK_HEADER*   lpNextBlock;     //Pointes to next free block.
	__FREE_BLOCK_HEADER*   lpPrevBlock;     //Pointes to previous block.
END_DEFINE_OBJECT()*/

#define MEMORY_BLOCK_FLAG_FREE      0x00000001
#define MEMORY_BLOCK_FLAG_OCCUPIED  0x00000002
#define MEMORY_BLOCK_FLAG_MODIFIED  0x00000004

//
//The memory block list control block.
//

BEGIN_DEFINE_OBJECT(__FREE_BLOCK_CONTROL_BLOCK)
    DWORD                        dwFlag;
    LPVOID                       lpStartAddr;
	DWORD                        dwTotalSize;
	DWORD                        dwFreeSize;
	//__FREE_BLOCK_HEADER*         lpFreeList;
END_DEFINE_OBJECT()

//
//The definition of Virtual Memory Descriptor.
//One kernel thread has a virtual memory descriptor,the chunk(s) created by the kernel
//thread will keep in the virtual memory descriptor.
//If the chunk(s) owned by a kernel thread exceed AVL_SWITCH_CHUNK_NUM,then the chunk 
//will be maintenanced in an AVL tree,otherwise,the chunk(s) will be keep in a bi-direct
//link list.
//

BEGIN_DEFINE_OBJECT(__VIRTUAL_MEMORY_DESCRIPTOR)
    __CHUNK_CONTROL_BLOCK*          lpChunkListRoot;
    __CHUNK_CONTROL_BLOCK*          lpChunkTreeRoot;
	WORD                            wChunkNum;
	WORD                            wHeapNum;
	DWORD                           dwDescriptorFlag;
	__CHUNK_CONTROL_BLOCK*          HeapChunkArray[MAX_HEAP_CHUNK_NUM];
END_DEFINE_OBJECT()

#define VM_DESCRIPTOR_FLAG_FREE     0x00000001    //The descriptor is free.

//
//The definition of Memory Manager(Chunk Manager).
//

#define MAX_KERNEL_THREAD_NUM  128    //The maximal kernel thread number in current version.
#define INVALID_DESC_INDEX     128

BEGIN_DEFINE_OBJECT(__MEMORY_MANAGER)
    __VIRTUAL_MEMORY_DESCRIPTOR     MemDescArray[MAX_KERNEL_THREAD_NUM];  //One for one kernel thread.
    
    BOOL                            (*Initialize)(__COMMON_OBJECT*     lpThis);
	DWORD                           (*ReserveDescIndex)(__COMMON_OBJECT* lpThis);
	LPVOID                          (*ReserveChunk)(__COMMON_OBJECT*   lpThis,
		                                            DWORD              dwIndex,
													DWORD              dwChunkType,
													DWORD              dwChunkSize);
	VOID                            (*ReleaseChunk)(__COMMON_OBJECT*   lpThis,
		                                            DWORD              dwIndex,
		                                            LPVOID             lpStartAddr);
	VOID                            (*ReleaseDescIndex)(__COMMON_OBJECT* lpThis,
		                                                DWORD            dwIndex);
	LPVOID                          (*MemoryAlloc)(__COMMON_OBJECT*    lpThis,
		                                           DWORD               dwDescIndex,
		                                           DWORD               dwSize);
	VOID                            (*MemoryFree)(__COMMON_OBJECT*     lpThis,
		                                          DWORD                dwDescIndex,
		                                          LPVOID               lpStartAddr,
												  DWORD                dwSize);

END_DEFINE_OBJECT()

/*************************************************************************
**************************************************************************
**************************************************************************
**************************************************************************
*************************************************************************/

//
//Declare the global object MemoryManager.
//

extern __MEMORY_MANAGER MemoryManager;

//
//Declare the global object PageFrameManager.
//

extern __PAGE_FRAME_MANAGER PageFrameManager;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情亚洲综合在线| 国产超碰在线一区| 欧美另类高清zo欧美| 国产一区二区三区香蕉| 亚洲精品久久7777| 久久综合久久综合久久| 麻豆成人综合网| 丝袜美腿亚洲一区二区图片| 中文字幕在线观看一区| 久久久精品蜜桃| 精品国产免费人成在线观看| 在线精品视频免费观看| 日韩丝袜情趣美女图片| 欧美激情一二三区| 国产肉丝袜一区二区| 欧美疯狂做受xxxx富婆| 免费欧美在线视频| 精品精品国产高清a毛片牛牛| 成人动漫一区二区三区| www.色综合.com| 国产91对白在线观看九色| 丝袜亚洲另类丝袜在线| 久久综合综合久久综合| 国产成人av一区二区三区在线观看| 国产一区中文字幕| 91免费视频大全| 欧美日韩国产首页| 欧美精品一区二区蜜臀亚洲| 国产色综合久久| 亚洲精品亚洲人成人网在线播放| 亚洲福利一区二区三区| 久久精品国产色蜜蜜麻豆| 成人av免费在线| 欧美日韩成人一区| 中国色在线观看另类| 亚洲高清在线视频| 国内一区二区在线| 欧美性大战久久久久久久蜜臀 | 国产不卡一区视频| 在线精品视频免费播放| 久久蜜桃一区二区| 亚洲国产乱码最新视频| 国产盗摄一区二区| 91精品国产91综合久久蜜臀| 国产精品免费视频观看| 日本中文字幕一区二区有限公司| 丁香婷婷深情五月亚洲| 欧美一区二区视频在线观看2020 | 成人av网址在线| 欧美一区二区视频在线观看2022 | 国内精品免费**视频| 欧美在线啊v一区| 国产性色一区二区| 日本欧美一区二区| 欧美性受xxxx黑人xyx性爽| 久久久久久免费| 奇米综合一区二区三区精品视频| 色先锋资源久久综合| 久久噜噜亚洲综合| 美脚の诱脚舐め脚责91| 欧美日韩免费一区二区三区| 1024成人网| 99久久免费精品高清特色大片| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲成人免费av| 欧美综合欧美视频| 一区二区三区在线看| 色哟哟亚洲精品| 亚洲日本电影在线| 99久久免费视频.com| 亚洲欧美综合网| 成人免费高清视频| 欧美国产精品一区| 国产成人在线观看免费网站| 久久在线免费观看| 国产乱码精品一品二品| 国产日韩亚洲欧美综合| 国产成人在线电影| 国产精品天美传媒| 色综合网站在线| 亚洲亚洲人成综合网络| 欧美日本一区二区三区| 丝袜a∨在线一区二区三区不卡| 欧美日韩国产高清一区二区三区 | 欧美一二三区在线观看| 丝袜美腿亚洲色图| 日韩欧美国产精品| 国产一区二三区| 国产日产欧美一区| 日本91福利区| 美女网站色91| 99vv1com这只有精品| 国产欧美一区二区三区在线老狼| 亚洲国产精品久久久久婷婷884 | 成人高清伦理免费影院在线观看| 国产亚洲人成网站| eeuss鲁片一区二区三区| 亚洲日本在线视频观看| 欧美日韩国产一级| 捆绑紧缚一区二区三区视频| 国产无人区一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 亚洲伦理在线精品| 欧美一区二区三区在线观看 | 国产无一区二区| 91麻豆蜜桃一区二区三区| 亚洲va欧美va国产va天堂影院| 91精品国产综合久久蜜臀| 国产成人精品影视| 亚洲一区二区三区自拍| 久久久久久久久一| 91蜜桃传媒精品久久久一区二区| 三级影片在线观看欧美日韩一区二区 | 成人黄色软件下载| 日日欢夜夜爽一区| 亚洲欧美一区二区三区久本道91| 91精品国产一区二区三区| 成人自拍视频在线观看| 婷婷夜色潮精品综合在线| 国产人伦精品一区二区| 欧美日韩精品久久久| 风间由美一区二区三区在线观看 | 在线播放欧美女士性生活| 国产风韵犹存在线视精品| 三级欧美韩日大片在线看| 中文字幕在线观看不卡视频| 日韩欧美区一区二| 在线观看日韩电影| 成人蜜臀av电影| 精品一区二区影视| 亚洲mv在线观看| 亚洲人成网站在线| 国产欧美视频一区二区三区| 欧美一区二区三区在线观看视频| 91视频你懂的| 成人午夜激情在线| 久久99精品国产麻豆婷婷洗澡| 亚洲国产视频一区| 亚洲色图第一区| 国产精品狼人久久影院观看方式| 精品捆绑美女sm三区| 欧美肥妇毛茸茸| 欧美日韩亚洲综合在线| 99re热视频这里只精品| 成人一道本在线| 国产综合色视频| 国精产品一区一区三区mba桃花| 亚洲一区二区在线免费观看视频| 国产精品电影院| 亚洲婷婷国产精品电影人久久| 国产欧美一区视频| 久久久久国产精品麻豆ai换脸 | 欧美a一区二区| 视频一区二区不卡| 天天操天天干天天综合网| 亚洲国产综合色| 亚洲第一主播视频| 午夜精品123| 久久精品国产77777蜜臀| 美腿丝袜亚洲一区| 精品一区二区三区在线播放| 奇米一区二区三区| 国产乱子轮精品视频| 国产成人精品综合在线观看 | 一区二区三区在线播放| 亚洲精品ww久久久久久p站| 一区二区三区在线视频免费观看| 亚洲女女做受ⅹxx高潮| 一区二区三区四区高清精品免费观看 | 国产一区二区日韩精品| 国产九色sp调教91| 处破女av一区二区| 91福利国产成人精品照片| 欧美一区二区三区系列电影| 精品少妇一区二区三区免费观看| 欧美电影免费观看高清完整版在线| 亚洲精品一区二区三区香蕉| 国产日韩欧美制服另类| 亚洲精品第一国产综合野| 石原莉奈在线亚洲三区| 国产二区国产一区在线观看| 91首页免费视频| 欧美日韩高清一区二区不卡| 欧美一三区三区四区免费在线看| 久久综合99re88久久爱| 自拍偷自拍亚洲精品播放| 五月婷婷色综合| 国产宾馆实践打屁股91| 在线观看精品一区| 精品国产乱码久久久久久影片| 国产精品久久777777| 日本亚洲视频在线| 成人免费高清在线| 欧美一区三区二区| 亚洲日本青草视频在线怡红院| 蜜臀久久99精品久久久久宅男| 99精品一区二区| 久久久久久麻豆| 欧美a级理论片| 在线观看www91|