git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kernel - More work on ARM port
[tpg/acess2.git]
/
Kernel
/
arch
/
x86_64
/
mm_virt.c
diff --git
a/Kernel/arch/x86_64/mm_virt.c
b/Kernel/arch/x86_64/mm_virt.c
index
2605a86
..
90c3721
100644
(file)
--- a/
Kernel/arch/x86_64/mm_virt.c
+++ b/
Kernel/arch/x86_64/mm_virt.c
@@
-38,10
+38,12
@@
// === PROTOTYPES ===
void MM_InitVirt(void);
// === PROTOTYPES ===
void MM_InitVirt(void);
-
void
MM_FinishVirtualInit(void);
+
//void
MM_FinishVirtualInit(void);
void MM_PageFault(tVAddr Addr, Uint ErrorCode, tRegs *Regs);
void MM_DumpTables(tVAddr Start, tVAddr End);
void MM_PageFault(tVAddr Addr, Uint ErrorCode, tRegs *Regs);
void MM_DumpTables(tVAddr Start, tVAddr End);
- int MM_Map(tVAddr VAddr, tPAddr PAddr);
+// int MM_Map(tVAddr VAddr, tPAddr PAddr);
+void MM_Unmap(tVAddr VAddr);
+void MM_ClearUser(void);
int MM_GetPageEntry(tVAddr Addr, tPAddr *Phys, Uint *Flags);
// === GLOBALS ===
int MM_GetPageEntry(tVAddr Addr, tPAddr *Phys, Uint *Flags);
// === GLOBALS ===
@@
-656,7
+658,15
@@
tVAddr MM_NewKStack(void)
//Log("MM_NewKStack: Found one at %p", base + KERNEL_STACK_SIZE);
for( i = 0; i < KERNEL_STACK_SIZE; i += 0x1000)
//Log("MM_NewKStack: Found one at %p", base + KERNEL_STACK_SIZE);
for( i = 0; i < KERNEL_STACK_SIZE; i += 0x1000)
- MM_Allocate(base+i);
+ {
+ if( !MM_Allocate(base+i) )
+ {
+ Log_Warning("MM", "MM_NewKStack - Allocation failed");
+ for( i -= 0x1000; i; i -= 0x1000)
+ MM_Deallocate(base+i);
+ return 0;
+ }
+ }
return base + KERNEL_STACK_SIZE;
}
return base + KERNEL_STACK_SIZE;
}
UCC
git Repository :: git.ucc.asn.au