[????] BUILD 0.1.1.??? DATE 9/0?/2011 AT ?:?? ??
==================================================== Mainly changed: Tasking + Implemented multitasking
This commit is contained in:
@ -33,8 +33,6 @@ enum PageFlags
|
||||
PageFrame = 0xFFFFF000
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
Page Pages[1024];
|
||||
} PageTable;
|
||||
@ -48,25 +46,28 @@ typedef struct {
|
||||
extern PageDirectory* CurrentDirectory;
|
||||
extern PageDirectory* KernelDirectory;
|
||||
|
||||
extern void PagingInitialize(uint32 SystemMemory);
|
||||
extern void PagingSwitchPageDirectory (PageDirectory* dir);
|
||||
extern Page* PagingGetPage(uint32 addr, uint8 make, PageDirectory* dir);
|
||||
|
||||
extern void PagingEnable ();
|
||||
extern void PagingDisable ();
|
||||
extern void PagingSwitchDirectory (PageDirectory* dir);
|
||||
extern void PagingFlushTlb ();
|
||||
extern void PagingInitialize (uint32* kernelEnd);
|
||||
extern void PagingMapPage (uint32 phys, uint32 virt, uint32 flags, PageDirectory* pd);
|
||||
extern void PagingUnmapPage (uint32 virt, PageDirectory* pd);
|
||||
extern uint32 PagingGetPhysical (uint32 virt, PageDirectory* pd);
|
||||
|
||||
/***************************************************
|
||||
* Physical memory manager *
|
||||
***************************************************/
|
||||
extern uint32 TotalFrames;
|
||||
extern uint32 TotalBlocks;
|
||||
extern uint32 TotalMemory;
|
||||
extern uint32 UsedFrames;
|
||||
extern uint32 UsedBlocks;
|
||||
|
||||
void MemPhInitialize(uint32 SystemMemoryKb);
|
||||
extern void MemPhSetFrame (uint32 frame, uint8 value);
|
||||
uint32 MemPhGetFrame (uint32 frame);
|
||||
uint32 MemPhFindFreeFrame();
|
||||
void MemPhAllocFrame(Page* page, uint8 isKernel, uint8 isWriteable);
|
||||
void MemPhFreeFrame(Page* page);
|
||||
void MemPhReserveFrames (uint32 address, uint32 length);
|
||||
extern void MemPhInitialize (uint32 SystemMemoryKb);
|
||||
extern void MemPhSetBlock (uint32 Block, uint8 value);
|
||||
extern uint32 MemPhGetBlock (uint32 Block);
|
||||
extern uint32 MemPhAllocateBlock ();
|
||||
extern void MemPhFreeBlock (uint32 addr);
|
||||
extern void MemPhReserveBlocks (uint32 address, uint32 length);
|
||||
|
||||
|
||||
/***************************************************
|
||||
@ -82,12 +83,12 @@ typedef struct
|
||||
|
||||
extern MemHeap* KernelHeap;
|
||||
|
||||
extern uint32 MemHeapFindSmallestHole (uint32 size, uint8 page_align, MemHeap* heap);
|
||||
extern int32 MemHeapCompare (uint32 a, uint32 b);
|
||||
extern MemHeap* MemHeapCreate(uint32 start, uint32 end, uint32 max, uint8 flags);
|
||||
extern void MemHeapExpand(uint32 newsz, MemHeap* heap, PageDirectory* pd);
|
||||
extern uint32 MemHeapContract(uint32 newsz, MemHeap* heap, PageDirectory* pd);
|
||||
extern uint32 MemHeapAlloc (uint32 size, uint8 isPageAligned, MemHeap* heap, PageDirectory* pd);
|
||||
extern void MemHeapFree (uint32 address, MemHeap* heap, PageDirectory* pd);
|
||||
extern uint32 MemHeapFindSmallestHole (uint32 size, uint8 page_align, MemHeap* heap);
|
||||
extern int32 MemHeapCompare (uint32 a, uint32 b);
|
||||
extern MemHeap* MemHeapCreate (uint32 start, uint32 end, uint32 max, uint8 flags);
|
||||
extern uint32 MemHeapExpand (uint32 newsz, MemHeap* heap, PageDirectory* pd);
|
||||
extern uint32 MemHeapContract (uint32 newsz, MemHeap* heap, PageDirectory* pd);
|
||||
extern uint32 MemHeapAlloc (uint32 size, uint8 isPageAligned, MemHeap* heap, PageDirectory* pd);
|
||||
extern void MemHeapFree (uint32 address, MemHeap* heap, PageDirectory* pd);
|
||||
|
||||
#endif /* MEMORY_ADD_H_ */
|
||||
|
@ -32,7 +32,7 @@
|
||||
// Memory manager
|
||||
#define KERNEL_HEAP_START 0xC0000000
|
||||
#define KERNEL_HEAP_INITIAL_SIZE 0x100000
|
||||
#define KERNEL_HEAP_END (KERNEL_HEAP_START + KERNEL_HEAP_INITIAL_SIZE)
|
||||
#define KERNEL_HEAP_END (KERNEL_HEAP_START + KERNEL_HEAP_INITIAL_SIZE)
|
||||
|
||||
|
||||
#endif /* SETTINGS_H_ */
|
||||
|
@ -1 +1 @@
|
||||
#define OS_BUILD "0.1.0.601"
|
||||
#define OS_BUILD "0.1.0.629"
|
||||
|
Reference in New Issue
Block a user