mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2024-12-28 08:16:31 +00:00
5514ca2e8a
No more .Z double searching Removed ASCII 5 cursor from all files
64 lines
1.5 KiB
HolyC
Executable file
64 lines
1.5 KiB
HolyC
Executable file
U0 MemDemo()
|
|
{
|
|
I64 i;
|
|
"$$HL,1$$$$BLACK$$
|
|
#define MEM_PAG_BITS 9
|
|
#define MEM_PAG_SIZE (1<<MEM_PAG_BITS)
|
|
#define MEM_HEAP_HASH_SIZE 1024
|
|
#define MEM_FREE_PAG_HASH_SIZE 0x100
|
|
#define MEM_EXTRA_HASH2_PAGS 2
|
|
|
|
public class CBlkPool
|
|
{
|
|
CMemBlk *free_pag_hash[MEM_FREE_PAG_HASH_SIZE],
|
|
*free_pag_hash2[64-MEM_PAG_BITS];
|
|
};
|
|
|
|
public class CHeapCtrl
|
|
{
|
|
CBlkPool *bp;
|
|
CMemUnused *heap_hash[MEM_HEAP_HASH_SIZE/sizeof(U8 *)];
|
|
};
|
|
|
|
public class CTask //The Fs segment reg points to current CTask.
|
|
{
|
|
CHeapCtrl *code_heap,*data_heap;
|
|
};
|
|
$$HL,0$$$$FG$$
|
|
|
|
";
|
|
|
|
|
|
"$$PURPLE$$Chunks in increments of 8 bytes, owned by the task.$$FG$$\n";
|
|
for (i=sizeof(CMemUnused);i<MEM_HEAP_HASH_SIZE;i+=8)
|
|
if (i==0x48)
|
|
"...\n";
|
|
else if (!(0x48<i<0x3C8))
|
|
"Fs->data_heap->heap_hash[%X/8]"
|
|
"$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$\n",i;
|
|
"\n\n";
|
|
|
|
"$$PURPLE$$Pages of 512 bytes, owned by the system.$$FG$$\n";
|
|
for (i=MEM_HEAP_HASH_SIZE;i<MEM_FREE_PAG_HASH_SIZE*MEM_PAG_SIZE;
|
|
i+=MEM_PAG_SIZE)
|
|
if (i==0x1200)
|
|
"...\n";
|
|
else if (!(0x1200<i<0x1F200))
|
|
"Fs->data_heap->bp->free_pag_hash[%X/512]"
|
|
"$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$\n",i;
|
|
"\n\n";
|
|
|
|
"$$PURPLE$$Powers of two, owned by the system.$$FG$$\n";
|
|
for (i=Bsf(MEM_FREE_PAG_HASH_SIZE*MEM_PAG_SIZE);i<64;i++)
|
|
if (i==0x1A)
|
|
"...\n";
|
|
else if (!(0x1A<=i<=0x36))
|
|
"Fs->data_heap->bp->free_pag_hash2[%X] %016X"
|
|
"$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$[X]$$BLACK$$ -->$$FG$$\n",i,
|
|
1<<i+MEM_EXTRA_HASH2_PAGS*MEM_PAG_SIZE;
|
|
"\n\n";
|
|
}
|
|
|
|
MemDemo;
|
|
|
|
|