13.0.0: Difference between revisions

System Titles: system stability intensifies in the kernel
 
(3 intermediate revisions by 2 users not shown)
Line 87: Line 87:
* Compiler upgrade to LLVM 11.1.
* Compiler upgrade to LLVM 11.1.
** Most notably, certain code now emits "ands" rather than "and; and; tst" + "bfxil" patterns are more commonly used.
** Most notably, certain code now emits "ands" rather than "and; and; tst" + "bfxil" patterns are more commonly used.
* C++ language upgrade to C++20 (or C++17, but less likely).
* C++ language upgrade to C++17.
** Slab heaps/object containers are now constinit, no longer constructed during .init_array.
** Slab heaps/object containers are now constant initialized, no longer constructed during .init_array.
* Initialize0 changes:
* Initialize0 changes:
** KernelLdr now sends back the initial process binary address in state.
** KernelLdr now sends back the initial process binary address in state.
Line 112: Line 112:
** These SVCs conceptually allow creating an object for mapping in certain physical address ranges at user-specified virtual addresses, without having to include the ranges in npdm/kip capabilities ahead of time.
** These SVCs conceptually allow creating an object for mapping in certain physical address ranges at user-specified virtual addresses, without having to include the ranges in npdm/kip capabilities ahead of time.
*** The only allowed id right now is 0, which corresponds to PCIE_A2 (physical address range 0x12000000-0x1FFFFFFF).
*** The only allowed id right now is 0, which corresponds to PCIE_A2 (physical address range 0x12000000-0x1FFFFFFF).
* KLightLock::Lock now uses simplified logic; KLightLock::LockSlowPath now returns a bool for whether the lock was acquired.
* KWritableEvent was deleted.
* KWritableEvent was deleted.
** Class tokens for types after KWritableEvent have been adjusted downwards to compensate (see mesosphere for class token generation algorithm).
** Class tokens for types after KWritableEvent have been adjusted downwards to compensate (see mesosphere for class token generation algorithm).
Line 211: Line 212:
** "Break() called. %016lx\n" and "Exception occurred. %016lx\n" are now "Break() called. " and "Exception occurred. ", respectively.
** "Break() called. %016lx\n" and "Exception occurred. %016lx\n" are now "Break() called. " and "Exception occurred. ", respectively.
* StoreDataCacheSharedForInit has slightly different (but equivalent) iteration logic.
* StoreDataCacheSharedForInit has slightly different (but equivalent) iteration logic.


===[[Bluetooth_Driver_services|bluetooth]]===
===[[Bluetooth_Driver_services|bluetooth]]===
* New btdrv commands were added.
* New btdrv commands were added.
* A number of funcs now clear stack buffers before sending it elsewhere.
* A number of funcs now [[Switch_System_Flaws|clear]] stack buffers before sending it elsewhere.
* A new system-setting is now used during [[Bluetooth_Driver_services#EnableBluetooth|audio-enabling]].
* ...
* ...