77 memStart = (0x101000 / 0x1000);
86 for (i = memStart; i <
numPages; i++) {
96 kprintf(
"Available Memory: %iKB\n", freePages * 4);
113 unsigned long memCount = -1, tempMemory = 0x0;
114 unsigned short memKb = 8;
115 unsigned char irq1State, irq2State;
116 unsigned long cr0 = 0x0;
141 asm volatile (
"wbinvd");
143 load_cr0(cr0 | 0x00000001 | 0x40000000 | 0x20000000);
154 while (memKb < 4096 && memCount != 0) {
160 memCount += 1024 * 1024;
168 asm(
"": : :
"memory");
170 if (*
mem != 0x55AA55AA) {
175 asm(
"": : :
"memory");
176 if (*
mem != 0xAA55AA55) {
180 asm(
"": : :
"memory");
211 return ((memKb * 1024 * 1024) /
PAGE_SIZE);
230 kpanic(
"Error: invalid PID %i\n", pid);
253 kpanic(
"Out Of Memory!!!!");
269 assert((pageAddr & 0xFFF) == 0x0);
272 pageIndex = (pageAddr / 4096);
310 int vmmMemoryMapIndex = (baseAddr /
PAGE_SIZE);
312 assert((baseAddr & 0xFFF) == 0x0);
321 kprintf(
"ERROR: Why is COW less than 0");
360 if (tmpPageDir[i] != 0) {