10.0.0: Difference between revisions
No edit summary |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 71: | Line 71: | ||
** The initial arguments now store an entrypoint invocation function pointer in addition to the entrypoint. | ** The initial arguments now store an entrypoint invocation function pointer in addition to the entrypoint. | ||
** Core 1/2/3 now panic if cpuactlr/cpuectlr hold a value different than the one in init argument. Previously, they they did if (real value != expected value) { real value = expected value }. | ** Core 1/2/3 now panic if cpuactlr/cpuectlr hold a value different than the one in init argument. Previously, they they did if (real value != expected value) { real value = expected value }. | ||
* The reserved memory size for slab heap aslr gaps was reduced by 64 KB from 2 MB to 0x1F0000. | |||
* Physical ASLR for certain backing regions (Kernel .text/.rodata/.rwdata/.bss + the Slab Heap region) was implemented. | * Physical ASLR for certain backing regions (Kernel .text/.rodata/.rwdata/.bss + the Slab Heap region) was implemented. | ||
** Physical randomization of the kernel image is done by KernelLdr. | ** Physical randomization of the kernel image is done by KernelLdr. | ||
Line 116: | Line 117: | ||
** For special debug regions (mapped using 8.0.0+ memory region descriptor, queried by passing 1/2/3 as phys_addr parameter), out_size is written with the real size of the queried region. | ** For special debug regions (mapped using 8.0.0+ memory region descriptor, queried by passing 1/2/3 as phys_addr parameter), out_size is written with the real size of the queried region. | ||
* SvcQueryPhysicalAddress was stubbed, and now always returns ResultInvalidCurrentMemoryState. | * SvcQueryPhysicalAddress was stubbed, and now always returns ResultInvalidCurrentMemoryState. | ||
* KCurrentContext now stores a dereferencable pointer to the current thread's TLS. | |||
** This is used to check the user disable count (for thread pinning) in the SvcHandler instead of loading tls from tpidrro_el0. | |||
====FIRM Sysmodules==== | ====FIRM Sysmodules==== | ||
Line 137: | Line 140: | ||
* [[Error_Upload_services|eupld]] now has access to srepo:u. | * [[Error_Upload_services|eupld]] now has access to srepo:u. | ||
* [[Glue_services|glue]] no longer has access to bpc, and access to time:al was added. | * [[Glue_services|glue]] no longer has access to bpc, and access to time:al was added. | ||
** Prior to this sysupdate, no retail system-titles used time:al. | |||
* [[GRC_services|grc]] now has access to time:su. | * [[GRC_services|grc]] now has access to time:su. | ||
* [[creport]] no longer has access to ns:dev, and access to pgl was added. | * [[creport]] no longer has access to ns:dev, and access to pgl was added. | ||
* [[Shared_Database_services|sdb]] no longer has access to prepo:s, and access to srepo:u was added. | * [[Shared_Database_services|sdb]] no longer has access to prepo:s, and access to srepo:u was added. | ||
* [[OLSC_services|olsc]] now hosts a new [[Services_API|service]], and access to arp:r was added. [[SVC]]s svcMapTransferMemory and svcUnmapTransferMemory are now accessible. | * [[OLSC_services|olsc]] now hosts a new [[Services_API|service]], and access to arp:r was added. [[SVC]]s svcMapTransferMemory and svcUnmapTransferMemory are now accessible. | ||
* All web-applets now have access to [[SVC]]s svcMapPhysicalMemoryUnsafe/svcUnmapPhysicalMemoryUnsafe. | * All web-applets now have access to [[SVC]]s svcMapPhysicalMemoryUnsafe/svcUnmapPhysicalMemoryUnsafe, but these aren't used in the main-codebin for any of these applets. | ||
* [[MyPage_Applet|LibraryAppletMyPage]] now has access to npns:s. | * [[MyPage_Applet|LibraryAppletMyPage]] now has access to npns:s. | ||