Changes

Jump to navigation Jump to search
245 bytes added ,  Yesterday at 23:51
improve kernel diff
Line 1,112: Line 1,112:  
==== Kernel ====
 
==== Kernel ====
 
* No/minimal compiler update
 
* No/minimal compiler update
 +
* crt0 was restructured, Cache Invalidation/sctlr mmu disable are now different assembly functions.
 
* Inverted boolean(s) in system control/targetsystem logic
 
* Inverted boolean(s) in system control/targetsystem logic
 
** All KTargetSystem fields have inverted meaning
 
** All KTargetSystem fields have inverted meaning
Line 1,120: Line 1,121:  
** All callers on NX are KPageTable::NoteUpdated
 
** All callers on NX are KPageTable::NoteUpdated
 
** This causes TLB entries to be flushed/etc every time an entry is written instead of once at the end.
 
** This causes TLB entries to be flushed/etc every time an entry is written instead of once at the end.
** The callback is passed the disable-merge software-reserved bits from the entry, but this appears unused on NX.
  −
*** This is probably for something in the Switch2 kernel/ifdef'd out.
   
* KAddressSpaceInfo::GetBegin now takes a size as a third argument; this is unused on NX.
 
* KAddressSpaceInfo::GetBegin now takes a size as a third argument; this is unused on NX.
 +
** This is presumably only for debug assertions, probably to assert size <= region size.
 +
** This code seems used incorrectly/bugged; it is passed a number of pages by one caller but a size by others.
 
* KAddressSpaceInfo::GetSize now performs more complicated logic based on the input type.
 
* KAddressSpaceInfo::GetSize now performs more complicated logic based on the input type.
 
** If address space not CreateProcessFlag_AddressSpace32BitWithoutAlias then the size is returned directly.
 
** If address space not CreateProcessFlag_AddressSpace32BitWithoutAlias then the size is returned directly.
Line 1,157: Line 1,158:  
** This is also done in ReturnFromException
 
** This is also done in ReturnFromException
 
* Kernel::InitializeResourceManagers now initializes the managers in a different order.
 
* Kernel::InitializeResourceManagers now initializes the managers in a different order.
* KPageTableBase::FindFreeArea now uses a helper to compute the start and end of the guarded region to generate an address within.
+
* FindFreeArea was refactored in both KMemoryBlockManager and KPageTableBase to use shared common logic to compute the start and end of the guarded region to generate an address within.
** The same logic is used (without helper, possibly inlined) in KMemoryBlockManager::FindFreeArea.
+
** The core helper is a KMemoryBlockManager function.
 +
** KMemoryBlockManager::FindFreeArea calls this helper twice (both inlined); KPageTable::FindFreeArea calls it once.
    
==See Also==
 
==See Also==

Navigation menu