From 59bf18d4ad777171b6a9f9733d3eff6f97c71c94 Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Sat, 28 Aug 2021 14:23:52 -0400 Subject: Update names in SceSysmemForDriver Names are from 0.990 prototype sysmem.elf. --- include/kernel/kernel/sysmem.h | 16 +++++------ include/kernel/kernel/sysmem/memblock.h | 14 +++++----- nids/360/SceSysmem.yml | 48 ++++++++++++++++----------------- 3 files changed, 39 insertions(+), 39 deletions(-) diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index 026ee01..267fe4b 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -81,22 +81,22 @@ void *sceKernelAllocHeapMemory(SceUID uid, SceSize size); void sceKernelFreeHeapMemory(SceUID uid, void *ptr); int sceKernelMemcpyUserToKernelForPid(SceUID pid, void *dst, uintptr_t src, SceSize len); -int sceKernelMemcpyUserToKernel(void *dst, uintptr_t src, SceSize len); -int sceKernelMemcpyKernelToUser(uintptr_t dst, const void *src, SceSize len); +int sceKernelCopyFromUser(void *dst, uintptr_t src, SceSize len); +int sceKernelCopyToUser(uintptr_t dst, const void *src, SceSize len); int sceKernelRxMemcpyKernelToUserForPid(SceUID pid, uintptr_t dst, const void *src, SceSize len); int sceKernelStrncpyUserToKernel(void *dst, uintptr_t src, SceSize len); int sceKernelStrncpyKernelToUser(uintptr_t dst, const void *src, SceSize len); int sceKernelStrncpyUserForPid(SceUID pid, void *dst, uintptr_t src, SceSize len); -SceUID sceKernelKernelUidForUserUid(SceUID pid, SceUID user_uid); -SceUID sceKernelCreateUserUid(SceUID pid, SceUID kern_uid); +SceUID scePUIDtoGUID(SceUID pid, SceUID user_uid); +SceUID scePUIDOpenByGUID(SceUID pid, SceUID kern_uid); SceUID sceKernelCreateUidObj(SceClass *cls, const char *name, SceCreateUidObjOpt *opt, SceObjectBase **obj); /** * Gets an object from a UID. * - * This retains the object internally! You must call `sceKernelUidRelease` + * This retains the object internally! You must call `sceGUIDReleaseObject` * after you are done using it. * * @param[in] uid The uid @@ -105,7 +105,7 @@ SceUID sceKernelCreateUidObj(SceClass *cls, const char *name, SceCreateUidObjOpt * * @return 0 on success, < 0 on error. */ -int sceKernelGetObjForUid(SceUID uid, SceClass *cls, SceObjectBase **obj); +int sceGUIDReferObjectWithClass(SceUID uid, SceClass *cls, SceObjectBase **obj); /** * Retains an object referenced by the UID. @@ -127,7 +127,7 @@ int sceKernelUidRetain(SceUID uid); * * @return 0 on success, < 0 on error. */ -int sceKernelUidRelease(SceUID uid); +int sceGUIDReleaseObject(SceUID uid); SceClass *sceKernelGetUidClass(void); SceClass *sceKernelGetUidDLinkClass(void); @@ -136,7 +136,7 @@ SceClass *sceKernelGetUidMemBlockClass(void); int sceKernelCreateClass(SceClass *cls, const char *name, void *uidclass, SceSize itemsize, SceClassCallback create, SceClassCallback destroy); int sceKernelDeleteUserUid(SceUID pid, SceUID user_uid); -int sceKernelDeleteUid(SceUID uid); +int sceGUIDClose(SceUID uid); int sceKernelFindClassByName(const char *name, SceClass **cls); int sceKernelGetPidContext(SceUID pid, SceKernelProcessContext **ctx); diff --git a/include/kernel/kernel/sysmem/memblock.h b/include/kernel/kernel/sysmem/memblock.h index d12e19d..eb9fa5b 100644 --- a/include/kernel/kernel/sysmem/memblock.h +++ b/include/kernel/kernel/sysmem/memblock.h @@ -41,7 +41,7 @@ typedef struct SceKernelPaddrList { uint32_t size; //!< sizeof(SceKernelPaddrList) uint32_t list_size; //!< Size in elements of the list array uint32_t ret_length; //!< Total physical size of the memory pairs - uint32_t ret_count; //!< Number of elements of list filled by sceKernelGetPaddrList + uint32_t ret_count; //!< Number of elements of list filled by sceKernelVARangeToPAVector SceKernelAddrPair *list; //!< Array of physical addresses and their lengths pairs } SceKernelPaddrList; @@ -90,7 +90,7 @@ int sceKernelGetMemBlockType(SceUID uid, unsigned int *type); * * @return SceUID of the memory block on success, < 0 on error. */ -SceUID sceKernelFindMemBlockByAddrForPid(SceUID pid, const void *addr, SceSize size); +SceUID sceKernelFindProcMemBlockByAddr(SceUID pid, const void *addr, SceSize size); /** * Changes the block type @@ -102,13 +102,13 @@ SceUID sceKernelFindMemBlockByAddrForPid(SceUID pid, const void *addr, SceSize s */ int sceKernelRemapBlock(SceUID uid, SceKernelMemBlockType type); -int sceKernelMapBlockUserVisible(SceUID uid); +int sceKernelMapMemBlock(SceUID uid); int sceKernelMapUserBlock(const char *name, int permission, int type, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, unsigned int *kernel_offset); -int sceKernelMapUserBlockDefaultType(const char *name, int permission, const void *user_buf, +int sceKernelUserMap(const char *name, int permission, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, unsigned int *kernel_offset); @@ -124,7 +124,7 @@ int sceKernelMapUserBlockDefaultTypeForPid(int pid, const char *name, int permis * * @return 0 on success, < 0 on error. */ -int sceKernelGetPaddr(const void *addr, uintptr_t *paddr); +int sceKernelVAtoPA(const void *addr, uintptr_t *paddr); /** * Get the physical address list of a given virtual address range @@ -134,7 +134,7 @@ int sceKernelGetPaddr(const void *addr, uintptr_t *paddr); * * @return 0 on success, < 0 on error. */ -int sceKernelGetPaddrList(const SceKernelAddrPair *input, SceKernelPaddrList *list); +int sceKernelVARangeToPAVector(const SceKernelAddrPair *input, SceKernelPaddrList *list); /** * Releases a memblock referenced by the UID. @@ -145,7 +145,7 @@ int sceKernelGetPaddrList(const SceKernelAddrPair *input, SceKernelPaddrList *li * * @return 0 on success, < 0 on error. */ -int sceKernelMemBlockRelease(SceUID uid); +int sceKernelUserUnmap(SceUID uid); /** * Retains a memory range diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index 86ae8ac..e05f54f 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -360,8 +360,12 @@ modules: SceSysmemForDriver: nid: 0x6F25E18A functions: + sceGUIDClose: 0x047D32F2 + sceGUIDGetClass: 0xC74B0152 + sceGUIDGetObject: 0x0FC24464 + sceGUIDReferObjectWithClass: 0x00ED6C14 sceGUIDReferObjectWithClassLevel: 0x77066FD1 - sceKernelAddressSpaceVAtoPABySW: 0x65419BD3 + sceGUIDReleaseObject: 0x149885C4 sceKernelAllocHeapMemory: 0x7B4CB60A sceKernelAllocHeapMemoryFromGlobalHeap: 0x7750CEA7 sceKernelAllocHeapMemoryFromGlobalHeapWithOpt: 0x0B4ED16A @@ -369,21 +373,20 @@ modules: sceKernelAllocHeapMemoryWithOption: 0x49D4DD9B sceKernelAllocMemBlock: 0xC94850C9 sceKernelAllocMemBlockWithInfo: 0xD44F464D + sceKernelCopyFromUser: 0xBC996A7A + sceKernelCopyToUser: 0x6D88EF8A sceKernelCreateClass: 0x61317102 sceKernelCreateHeap: 0x9328E0E8 sceKernelCreateUidObj2: 0x56A13E90 sceKernelCreateUidObjForUid: 0x89A44858 - sceKernelCreateUserUid: 0xBF209859 - sceKernelCreateUserUidForClass: 0xCED1547B sceKernelCreateUserUidForName: 0x513B9DDD sceKernelCreateUserUidForNameWithClass: 0x8DA0BCA5 + sceKernelDecRefCountMemBlock: 0xF50BDC0C sceKernelDeleteHeap: 0xD6437637 - sceKernelDeleteUid: 0x047D32F2 sceKernelDeleteUserUid: 0x84A4AF5E sceKernelFindMemBlock: 0x9C78064C sceKernelFindMemBlockByAddr: 0x8A1742F6 - sceKernelFindMemBlockByAddrForDefaultSize: 0xF3BBE2E1 - sceKernelFindMemBlockByAddrForPid: 0x857F1D5A + sceKernelFindProcMemBlockByAddr: 0x857F1D5A sceKernelFirstDifferentBlock32User: 0xBDA6E42B sceKernelFirstDifferentBlock64User: 0xBB3B02C2 sceKernelFirstDifferentBlock64UserForPid: 0xE83855FD @@ -391,46 +394,36 @@ modules: sceKernelFreeHeapMemory: 0x3EBCE343 sceKernelFreeHeapMemoryFromGlobalHeap: 0xFB817A59 sceKernelFreeMemBlock: 0x009E1C61 - sceKernelGUIDGetObject: 0x0FC24464 - sceKernelGetClassForPidForUid: 0xE9728A12 - sceKernelGetClassForUid: 0xC74B0152 sceKernelGetMemBlockBase: 0xA841EDDA sceKernelGetMemBlockMappedBase: 0x0B1FD5C3 + sceKernelGetMemBlockMemtypeByAddr: 0xF3BBE2E1 sceKernelGetMemBlockPARange: 0x98C15666 - sceKernelGetMemBlockPaddrListForUid: 0x19A51AC7 + sceKernelGetMemBlockPAVector: 0x19A51AC7 sceKernelGetMemBlockVBase: 0xB81CF0A3 sceKernelGetNameForPidByUid: 0x09896EB7 sceKernelGetNameForUid: 0xA78755EB sceKernelGetNameForUid2: 0xE655852F - sceKernelGetObjForUid: 0x00ED6C14 sceKernelGetObjectForPidForUid: 0xFE6D7FAE sceKernelGetObjectForUidForAttr: 0xF6DB54BA sceKernelGetObjectForUidForClassTree: 0x72A98D17 - sceKernelGetPaddr: 0x8D160E65 - sceKernelGetPaddrList: 0xE68BEEBD sceKernelGetPaddrListForLargePage: 0x08A8A7E8 sceKernelGetPaddrListForSmallPage: 0x16844CE6 - sceKernelGetPaddrPair: 0xAE36C775 sceKernelGetPaddrPairForLargePage: 0x32257A24 sceKernelGetPaddrPairForSmallPage: 0xB3575090 sceKernelGetPhysicalMemoryType: 0x0AAA4FDD sceKernelGetPidContext: 0x2ECF7944 sceKernelGetUidClass: 0x85336A1C + sceKernelIncRefCountMemBlock: 0xEAF3849B sceKernelIsAccessibleRangeProc: 0x9F6E45E3 sceKernelIsPaddrWithinSameSectionForUid: 0xF4AD89D8 - sceKernelKernelUidForUserUid: 0x45D22597 sceKernelKernelUidForUserUidForClass: 0x184172B1 - sceKernelMapBlockUserVisible: 0x58D21746 sceKernelMapBlockUserVisibleWithFlag: 0x04059C4B + sceKernelMapMemBlock: 0x58D21746 sceKernelMapUserBlock: 0x7D4F8B5F - sceKernelMapUserBlockDefaultType: 0x278BC201 sceKernelMapUserBlockDefaultTypeForPid: 0x0091D74D - sceKernelMemBlockDecRefCounterAndReleaseUid: 0xF50BDC0C sceKernelMemBlockGetInfoEx: 0x24A99FFF sceKernelMemBlockGetInfoExForVisibilityLevel: 0xA73CFFEF sceKernelMemBlockGetSomeSize: 0x78337B62 - sceKernelMemBlockIncRefCounterAndReleaseUid: 0xEAF3849B - sceKernelMemBlockRelease: 0x00575B00 sceKernelMemBlockType2Memtype: 0x20C811FA sceKernelMemBlockTypeGetPrivileges: 0x6A0792A3 sceKernelMemRangeRelease: 0x75C70DE0 @@ -439,17 +432,14 @@ modules: sceKernelMemRangeRetain: 0x59A4402F sceKernelMemRangeRetainForPid: 0x659586BF sceKernelMemRangeRetainWithPerm: 0xBC0A1D60 - sceKernelMemcpyKernelToUser: 0x6D88EF8A sceKernelMemcpyKernelToUserForPid: 0x6B825479 sceKernelMemcpyKernelToUserForPidUnchecked: 0xFED82F2D - sceKernelMemcpyUserToKernel: 0xBC996A7A sceKernelMemcpyUserToKernelForPid: 0x605275F8 sceKernelMemcpyUserToUser: 0x1BD44DD5 sceKernelMemcpyUserToUserForPid: 0x8E086C33 sceKernelOpenUidForName: 0xD76E7452 sceKernelProcModeVAtoPA: 0x61A67D32 sceKernelRemapBlock: 0xDFE2C8CB - sceKernelSetNameForPidForUid: 0x12624884 sceKernelSetObjectForUid: 0x4CFA4100 sceKernelStrncpyKernelToUser: 0x80BD6FEB sceKernelStrncpyUserForPid: 0x75AAF178 @@ -457,9 +447,19 @@ modules: sceKernelStrnlenUser: 0xB429D419 sceKernelStrnlenUserForPid: 0x9929EB07 sceKernelSwitchPidContext: 0x2D711589 - sceKernelUidRelease: 0x149885C4 sceKernelUidRetain: 0x0F5C84B7 sceKernelUnmapMemBlock: 0xFFCD9B60 + sceKernelUserMap: 0x278BC201 + sceKernelUserUnmap: 0x00575B00 + sceKernelVARangeToPARange: 0xAE36C775 + sceKernelVARangeToPAVector: 0xE68BEEBD + sceKernelVAtoPA: 0x8D160E65 + sceKernelVAtoPABySW: 0x65419BD3 + scePUIDGetClass: 0xE9728A12 + scePUIDOpenByGUID: 0xBF209859 + scePUIDOpenByGUIDWithFlags: 0xCED1547B + scePUIDSetName: 0x12624884 + scePUIDtoGUID: 0x45D22597 SceSysmemForKernel: nid: 0x63A519E5 functions: -- cgit v1.2.3 From dc24d731211e3a658547b4a1e926d490b90bbca3 Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Sat, 28 Aug 2021 15:11:22 -0400 Subject: Update names in SceSysmemForDriver/Kernel From 0.990 prototype deci4p_dbgp.elf. --- include/kernel/kernel/sysmem.h | 4 ++-- nids/360/SceSysmem.yml | 4 ++-- nids/365/SceSysmem.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index 267fe4b..5c30c2e 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -80,10 +80,10 @@ int sceKernelDeleteHeap(SceUID uid); void *sceKernelAllocHeapMemory(SceUID uid, SceSize size); void sceKernelFreeHeapMemory(SceUID uid, void *ptr); -int sceKernelMemcpyUserToKernelForPid(SceUID pid, void *dst, uintptr_t src, SceSize len); +int sceKernelCopyFromUserProc(SceUID pid, void *dst, uintptr_t src, SceSize len); int sceKernelCopyFromUser(void *dst, uintptr_t src, SceSize len); int sceKernelCopyToUser(uintptr_t dst, const void *src, SceSize len); -int sceKernelRxMemcpyKernelToUserForPid(SceUID pid, uintptr_t dst, const void *src, SceSize len); +int sceKernelCopyToUserProcTextDomain(SceUID pid, uintptr_t dst, const void *src, SceSize len); int sceKernelStrncpyUserToKernel(void *dst, uintptr_t src, SceSize len); int sceKernelStrncpyKernelToUser(uintptr_t dst, const void *src, SceSize len); diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index e05f54f..8b6ee6d 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -374,6 +374,7 @@ modules: sceKernelAllocMemBlock: 0xC94850C9 sceKernelAllocMemBlockWithInfo: 0xD44F464D sceKernelCopyFromUser: 0xBC996A7A + sceKernelCopyFromUserProc: 0x605275F8 sceKernelCopyToUser: 0x6D88EF8A sceKernelCreateClass: 0x61317102 sceKernelCreateHeap: 0x9328E0E8 @@ -434,7 +435,6 @@ modules: sceKernelMemRangeRetainWithPerm: 0xBC0A1D60 sceKernelMemcpyKernelToUserForPid: 0x6B825479 sceKernelMemcpyKernelToUserForPidUnchecked: 0xFED82F2D - sceKernelMemcpyUserToKernelForPid: 0x605275F8 sceKernelMemcpyUserToUser: 0x1BD44DD5 sceKernelMemcpyUserToUserForPid: 0x8E086C33 sceKernelOpenUidForName: 0xD76E7452 @@ -472,6 +472,7 @@ modules: sceKernelAddressSpaceUnmap: 0xCE72839E sceKernelAddressSpaceVAtoPA: 0xF2179820 sceKernelAllocSystemCallTable: 0x5FFE4B79 + sceKernelCopyToUserProcTextDomain: 0x30931572 sceKernelCreateAddressSpace: 0x4A3737F0 sceKernelCreateUidObj: 0xDF0288D7 sceKernelDeleteAddressSpace: 0xF2D7FE3A @@ -485,7 +486,6 @@ modules: sceKernelGetUidHeapClass: 0x4CCA935D sceKernelGetUidMemBlockClass: 0xAF729575 sceKernelNameHeapGetInfo: 0xE443253B - sceKernelRxMemcpyKernelToUserForPid: 0x30931572 sceKernelSysrootAlloc: 0xC0A4D2F3 sceKernelUIDEntryHeapGetInfo: 0x686AA15C SceSysrootForDriver: diff --git a/nids/365/SceSysmem.yml b/nids/365/SceSysmem.yml index 0fa3b00..9248249 100644 --- a/nids/365/SceSysmem.yml +++ b/nids/365/SceSysmem.yml @@ -23,10 +23,10 @@ modules: SceSysmemForKernel: nid: 0x02451F0F functions: + sceKernelCopyToUserProcTextDomain: 0x2995558D sceKernelCreateUidObj: 0xFB6390CE sceKernelFindClassByName: 0x7D87F706 sceKernelGetMemBlockType: 0xD44FE44B - sceKernelRxMemcpyKernelToUserForPid: 0x2995558D SceUartForKernel: nid: 0x1CCD9BA3 functions: -- cgit v1.2.3 From 3060c5527207b2795744fb5d1d49804c154e38df Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Sat, 28 Aug 2021 15:34:49 -0400 Subject: Update names in SceSysmemForDriver Names from 0.990 prototype threadmgr.elf. --- include/kernel/kernel/sysmem.h | 2 +- nids/360/SceSysmem.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index 5c30c2e..6563ca8 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -135,7 +135,7 @@ SceClass *sceKernelGetUidHeapClass(void); SceClass *sceKernelGetUidMemBlockClass(void); int sceKernelCreateClass(SceClass *cls, const char *name, void *uidclass, SceSize itemsize, SceClassCallback create, SceClassCallback destroy); -int sceKernelDeleteUserUid(SceUID pid, SceUID user_uid); +int scePUIDClose(SceUID pid, SceUID user_uid); int sceGUIDClose(SceUID uid); int sceKernelFindClassByName(const char *name, SceClass **cls); diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index 8b6ee6d..4e7726c 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -376,6 +376,7 @@ modules: sceKernelCopyFromUser: 0xBC996A7A sceKernelCopyFromUserProc: 0x605275F8 sceKernelCopyToUser: 0x6D88EF8A + sceKernelCopyToUserProc: 0x6B825479 sceKernelCreateClass: 0x61317102 sceKernelCreateHeap: 0x9328E0E8 sceKernelCreateUidObj2: 0x56A13E90 @@ -384,7 +385,6 @@ modules: sceKernelCreateUserUidForNameWithClass: 0x8DA0BCA5 sceKernelDecRefCountMemBlock: 0xF50BDC0C sceKernelDeleteHeap: 0xD6437637 - sceKernelDeleteUserUid: 0x84A4AF5E sceKernelFindMemBlock: 0x9C78064C sceKernelFindMemBlockByAddr: 0x8A1742F6 sceKernelFindProcMemBlockByAddr: 0x857F1D5A @@ -433,7 +433,6 @@ modules: sceKernelMemRangeRetain: 0x59A4402F sceKernelMemRangeRetainForPid: 0x659586BF sceKernelMemRangeRetainWithPerm: 0xBC0A1D60 - sceKernelMemcpyKernelToUserForPid: 0x6B825479 sceKernelMemcpyKernelToUserForPidUnchecked: 0xFED82F2D sceKernelMemcpyUserToUser: 0x1BD44DD5 sceKernelMemcpyUserToUserForPid: 0x8E086C33 @@ -455,6 +454,7 @@ modules: sceKernelVARangeToPAVector: 0xE68BEEBD sceKernelVAtoPA: 0x8D160E65 sceKernelVAtoPABySW: 0x65419BD3 + scePUIDClose: 0x84A4AF5E scePUIDGetClass: 0xE9728A12 scePUIDOpenByGUID: 0xBF209859 scePUIDOpenByGUIDWithFlags: 0xCED1547B -- cgit v1.2.3 From f438e0ddcc6cd469cfec29a18f2c590b7b627ba0 Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Sat, 28 Aug 2021 17:38:35 -0400 Subject: Update names in SceSysmemForDriver Names from 3.60 devkit sysmem.elf. --- nids/360/SceSysmem.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index 4e7726c..05927de 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -363,6 +363,7 @@ modules: sceGUIDClose: 0x047D32F2 sceGUIDGetClass: 0xC74B0152 sceGUIDGetObject: 0x0FC24464 + sceGUIDOpenByName: 0xD76E7452 sceGUIDReferObjectWithClass: 0x00ED6C14 sceGUIDReferObjectWithClassLevel: 0x77066FD1 sceGUIDReleaseObject: 0x149885C4 @@ -381,7 +382,6 @@ modules: sceKernelCreateHeap: 0x9328E0E8 sceKernelCreateUidObj2: 0x56A13E90 sceKernelCreateUidObjForUid: 0x89A44858 - sceKernelCreateUserUidForName: 0x513B9DDD sceKernelCreateUserUidForNameWithClass: 0x8DA0BCA5 sceKernelDecRefCountMemBlock: 0xF50BDC0C sceKernelDeleteHeap: 0xD6437637 @@ -401,10 +401,8 @@ modules: sceKernelGetMemBlockPARange: 0x98C15666 sceKernelGetMemBlockPAVector: 0x19A51AC7 sceKernelGetMemBlockVBase: 0xB81CF0A3 - sceKernelGetNameForPidByUid: 0x09896EB7 sceKernelGetNameForUid: 0xA78755EB sceKernelGetNameForUid2: 0xE655852F - sceKernelGetObjectForPidForUid: 0xFE6D7FAE sceKernelGetObjectForUidForAttr: 0xF6DB54BA sceKernelGetObjectForUidForClassTree: 0x72A98D17 sceKernelGetPaddrListForLargePage: 0x08A8A7E8 @@ -436,7 +434,6 @@ modules: sceKernelMemcpyKernelToUserForPidUnchecked: 0xFED82F2D sceKernelMemcpyUserToUser: 0x1BD44DD5 sceKernelMemcpyUserToUserForPid: 0x8E086C33 - sceKernelOpenUidForName: 0xD76E7452 sceKernelProcModeVAtoPA: 0x61A67D32 sceKernelRemapBlock: 0xDFE2C8CB sceKernelSetObjectForUid: 0x4CFA4100 @@ -456,8 +453,11 @@ modules: sceKernelVAtoPABySW: 0x65419BD3 scePUIDClose: 0x84A4AF5E scePUIDGetClass: 0xE9728A12 + scePUIDGetName: 0x09896EB7 + scePUIDGetObject: 0xFE6D7FAE scePUIDOpenByGUID: 0xBF209859 scePUIDOpenByGUIDWithFlags: 0xCED1547B + scePUIDOpenByName: 0x513B9DDD scePUIDSetName: 0x12624884 scePUIDtoGUID: 0x45D22597 SceSysmemForKernel: -- cgit v1.2.3 From ba654ea54ba8ae4cc5aca3e195eeb1e12fe7b440 Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Sat, 28 Aug 2021 19:32:45 -0400 Subject: Update names in SceSysmemForDriver These names are inferred from canon names found in debug strings. --- include/kernel/kernel/sysmem.h | 10 +++---- include/kernel/kernel/sysmem/memblock.h | 4 +-- nids/360/SceSysmem.yml | 50 ++++++++++++++++----------------- nids/365/SceSysmem.yml | 2 +- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index 6563ca8..bfd68c7 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -85,13 +85,13 @@ int sceKernelCopyFromUser(void *dst, uintptr_t src, SceSize len); int sceKernelCopyToUser(uintptr_t dst, const void *src, SceSize len); int sceKernelCopyToUserProcTextDomain(SceUID pid, uintptr_t dst, const void *src, SceSize len); -int sceKernelStrncpyUserToKernel(void *dst, uintptr_t src, SceSize len); -int sceKernelStrncpyKernelToUser(uintptr_t dst, const void *src, SceSize len); -int sceKernelStrncpyUserForPid(SceUID pid, void *dst, uintptr_t src, SceSize len); +int sceKernelStrncpyFromUser(void *dst, uintptr_t src, SceSize len); +int sceKernelStrncpyToUser(uintptr_t dst, const void *src, SceSize len); +int sceKernelStrncpyFromUserProc(SceUID pid, void *dst, uintptr_t src, SceSize len); SceUID scePUIDtoGUID(SceUID pid, SceUID user_uid); SceUID scePUIDOpenByGUID(SceUID pid, SceUID kern_uid); -SceUID sceKernelCreateUidObj(SceClass *cls, const char *name, SceCreateUidObjOpt *opt, SceObjectBase **obj); +SceUID sceGUIDKernelCreateWithOpt(SceClass *cls, const char *name, SceCreateUidObjOpt *opt, SceObjectBase **obj); /** * Gets an object from a UID. @@ -116,7 +116,7 @@ int sceGUIDReferObjectWithClass(SceUID uid, SceClass *cls, SceObjectBase **obj); * * @return 0 on success, < 0 on error. */ -int sceKernelUidRetain(SceUID uid); +int sceGUIDReferObject(SceUID uid); /** * Releases an object referenced by the UID. diff --git a/include/kernel/kernel/sysmem/memblock.h b/include/kernel/kernel/sysmem/memblock.h index eb9fa5b..0050e5b 100644 --- a/include/kernel/kernel/sysmem/memblock.h +++ b/include/kernel/kernel/sysmem/memblock.h @@ -104,7 +104,7 @@ int sceKernelRemapBlock(SceUID uid, SceKernelMemBlockType type); int sceKernelMapMemBlock(SceUID uid); -int sceKernelMapUserBlock(const char *name, int permission, int type, +int sceKernelUserMapWithFlags(const char *name, int permission, int type, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, unsigned int *kernel_offset); @@ -112,7 +112,7 @@ int sceKernelUserMap(const char *name, int permission, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, unsigned int *kernel_offset); -int sceKernelMapUserBlockDefaultTypeForPid(int pid, const char *name, int permission, +int sceKernelUserMapProc(int pid, const char *name, int permission, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, unsigned int *kernel_offset); diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index 05927de..af88436 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -361,11 +361,18 @@ modules: nid: 0x6F25E18A functions: sceGUIDClose: 0x047D32F2 + sceGUIDCreate: 0x89A44858 sceGUIDGetClass: 0xC74B0152 + sceGUIDGetName: 0xA78755EB + sceGUIDGetName2: 0xE655852F sceGUIDGetObject: 0x0FC24464 + sceGUIDKernelCreate: 0x56A13E90 sceGUIDOpenByName: 0xD76E7452 + sceGUIDReferObject: 0x0F5C84B7 sceGUIDReferObjectWithClass: 0x00ED6C14 sceGUIDReferObjectWithClassLevel: 0x77066FD1 + sceGUIDReferObjectWithLevel: 0xF6DB54BA + sceGUIDReferObjectWithSubclass: 0x72A98D17 sceGUIDReleaseObject: 0x149885C4 sceKernelAllocHeapMemory: 0x7B4CB60A sceKernelAllocHeapMemoryFromGlobalHeap: 0x7750CEA7 @@ -378,11 +385,10 @@ modules: sceKernelCopyFromUserProc: 0x605275F8 sceKernelCopyToUser: 0x6D88EF8A sceKernelCopyToUserProc: 0x6B825479 + sceKernelCopyUser: 0x1BD44DD5 + sceKernelCopyUserProc: 0x8E086C33 sceKernelCreateClass: 0x61317102 sceKernelCreateHeap: 0x9328E0E8 - sceKernelCreateUidObj2: 0x56A13E90 - sceKernelCreateUidObjForUid: 0x89A44858 - sceKernelCreateUserUidForNameWithClass: 0x8DA0BCA5 sceKernelDecRefCountMemBlock: 0xF50BDC0C sceKernelDeleteHeap: 0xD6437637 sceKernelFindMemBlock: 0x9C78064C @@ -401,25 +407,14 @@ modules: sceKernelGetMemBlockPARange: 0x98C15666 sceKernelGetMemBlockPAVector: 0x19A51AC7 sceKernelGetMemBlockVBase: 0xB81CF0A3 - sceKernelGetNameForUid: 0xA78755EB - sceKernelGetNameForUid2: 0xE655852F - sceKernelGetObjectForUidForAttr: 0xF6DB54BA - sceKernelGetObjectForUidForClassTree: 0x72A98D17 - sceKernelGetPaddrListForLargePage: 0x08A8A7E8 - sceKernelGetPaddrListForSmallPage: 0x16844CE6 - sceKernelGetPaddrPairForLargePage: 0x32257A24 - sceKernelGetPaddrPairForSmallPage: 0xB3575090 sceKernelGetPhysicalMemoryType: 0x0AAA4FDD sceKernelGetPidContext: 0x2ECF7944 sceKernelGetUidClass: 0x85336A1C sceKernelIncRefCountMemBlock: 0xEAF3849B sceKernelIsAccessibleRangeProc: 0x9F6E45E3 sceKernelIsPaddrWithinSameSectionForUid: 0xF4AD89D8 - sceKernelKernelUidForUserUidForClass: 0x184172B1 - sceKernelMapBlockUserVisibleWithFlag: 0x04059C4B sceKernelMapMemBlock: 0x58D21746 - sceKernelMapUserBlock: 0x7D4F8B5F - sceKernelMapUserBlockDefaultTypeForPid: 0x0091D74D + sceKernelMapMemBlockWithFlags: 0x04059C4B sceKernelMemBlockGetInfoEx: 0x24A99FFF sceKernelMemBlockGetInfoExForVisibilityLevel: 0xA73CFFEF sceKernelMemBlockGetSomeSize: 0x78337B62 @@ -431,24 +426,27 @@ modules: sceKernelMemRangeRetain: 0x59A4402F sceKernelMemRangeRetainForPid: 0x659586BF sceKernelMemRangeRetainWithPerm: 0xBC0A1D60 - sceKernelMemcpyKernelToUserForPidUnchecked: 0xFED82F2D - sceKernelMemcpyUserToUser: 0x1BD44DD5 - sceKernelMemcpyUserToUserForPid: 0x8E086C33 sceKernelProcModeVAtoPA: 0x61A67D32 sceKernelRemapBlock: 0xDFE2C8CB sceKernelSetObjectForUid: 0x4CFA4100 - sceKernelStrncpyKernelToUser: 0x80BD6FEB - sceKernelStrncpyUserForPid: 0x75AAF178 - sceKernelStrncpyUserToKernel: 0xDB3EC244 - sceKernelStrnlenUser: 0xB429D419 - sceKernelStrnlenUserForPid: 0x9929EB07 + sceKernelStrncpyFromUser: 0xDB3EC244 + sceKernelStrncpyFromUserProc: 0x75AAF178 + sceKernelStrncpyToUser: 0x80BD6FEB + sceKernelStrncpyToUserProc: 0xFED82F2D + sceKernelStrnlenFromUser: 0xB429D419 + sceKernelStrnlenFromUserProc: 0x9929EB07 sceKernelSwitchPidContext: 0x2D711589 - sceKernelUidRetain: 0x0F5C84B7 sceKernelUnmapMemBlock: 0xFFCD9B60 sceKernelUserMap: 0x278BC201 + sceKernelUserMapProc: 0x0091D74D + sceKernelUserMapWithFlags: 0x7D4F8B5F sceKernelUserUnmap: 0x00575B00 sceKernelVARangeToPARange: 0xAE36C775 + sceKernelVARangeToPARangeForLargePage: 0x32257A24 + sceKernelVARangeToPARangeForSmallPage: 0xB3575090 sceKernelVARangeToPAVector: 0xE68BEEBD + sceKernelVARangeToPAVectorForLargePage: 0x08A8A7E8 + sceKernelVARangeToPAVectorForSmallPage: 0x16844CE6 sceKernelVAtoPA: 0x8D160E65 sceKernelVAtoPABySW: 0x65419BD3 scePUIDClose: 0x84A4AF5E @@ -458,14 +456,17 @@ modules: scePUIDOpenByGUID: 0xBF209859 scePUIDOpenByGUIDWithFlags: 0xCED1547B scePUIDOpenByName: 0x513B9DDD + scePUIDOpenByNameWithClass: 0x8DA0BCA5 scePUIDSetName: 0x12624884 scePUIDtoGUID: 0x45D22597 + scePUIDtoGUIDWithClass: 0x184172B1 SceSysmemForKernel: nid: 0x63A519E5 functions: sceGUIDGetObjectWithClass: 0x7ABFA9A7 sceGUIDGetUIDVectorByClass: 0xEC7D36EF sceGUIDKernelCreateWithAttr: 0x53E1FFDE + sceGUIDKernelCreateWithOpt: 0xDF0288D7 sceGUIDOpenByGUID: 0xCF53EEE4 sceKernelAddressSpaceFreeAllMemBlock: 0x89CE1F31 sceKernelAddressSpaceSetPhyMemPart: 0x67955EE9 @@ -474,7 +475,6 @@ modules: sceKernelAllocSystemCallTable: 0x5FFE4B79 sceKernelCopyToUserProcTextDomain: 0x30931572 sceKernelCreateAddressSpace: 0x4A3737F0 - sceKernelCreateUidObj: 0xDF0288D7 sceKernelDeleteAddressSpace: 0xF2D7FE3A sceKernelFindClassByName: 0x62989905 sceKernelFreeSimpleMemBlock: 0xA1FFA2C9 diff --git a/nids/365/SceSysmem.yml b/nids/365/SceSysmem.yml index 9248249..1315532 100644 --- a/nids/365/SceSysmem.yml +++ b/nids/365/SceSysmem.yml @@ -23,8 +23,8 @@ modules: SceSysmemForKernel: nid: 0x02451F0F functions: + sceGUIDKernelCreateWithOpt: 0xFB6390CE sceKernelCopyToUserProcTextDomain: 0x2995558D - sceKernelCreateUidObj: 0xFB6390CE sceKernelFindClassByName: 0x7D87F706 sceKernelGetMemBlockType: 0xD44FE44B SceUartForKernel: -- cgit v1.2.3 From 1f226b5384b69b64e90a7c103b8840d5918a103f Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Sat, 28 Aug 2021 21:01:15 -0400 Subject: Add sceGUIDSet{,Name} Names from 0.990 prototype sysmem.elf. --- include/kernel/kernel/sysmem.h | 4 ++++ nids/360/SceSysmem.yml | 3 ++- nids/365/SceSysmem.yml | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index bfd68c7..3d5b5e4 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -129,6 +129,10 @@ int sceGUIDReferObject(SceUID uid); */ int sceGUIDReleaseObject(SceUID uid); +int sceGUIDSet(SceUID guid, SceClass *pClass, const char *name, SceObjectBase *pObject); + +int sceGUIDSetName(SceUID guid, const char *name); + SceClass *sceKernelGetUidClass(void); SceClass *sceKernelGetUidDLinkClass(void); SceClass *sceKernelGetUidHeapClass(void); diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index af88436..2d11b96 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -374,6 +374,7 @@ modules: sceGUIDReferObjectWithLevel: 0xF6DB54BA sceGUIDReferObjectWithSubclass: 0x72A98D17 sceGUIDReleaseObject: 0x149885C4 + sceGUIDSetName: 0x4CFA4100 sceKernelAllocHeapMemory: 0x7B4CB60A sceKernelAllocHeapMemoryFromGlobalHeap: 0x7750CEA7 sceKernelAllocHeapMemoryFromGlobalHeapWithOpt: 0x0B4ED16A @@ -428,7 +429,6 @@ modules: sceKernelMemRangeRetainWithPerm: 0xBC0A1D60 sceKernelProcModeVAtoPA: 0x61A67D32 sceKernelRemapBlock: 0xDFE2C8CB - sceKernelSetObjectForUid: 0x4CFA4100 sceKernelStrncpyFromUser: 0xDB3EC244 sceKernelStrncpyFromUserProc: 0x75AAF178 sceKernelStrncpyToUser: 0x80BD6FEB @@ -468,6 +468,7 @@ modules: sceGUIDKernelCreateWithAttr: 0x53E1FFDE sceGUIDKernelCreateWithOpt: 0xDF0288D7 sceGUIDOpenByGUID: 0xCF53EEE4 + sceGUIDSet: 0xD7B323EB sceKernelAddressSpaceFreeAllMemBlock: 0x89CE1F31 sceKernelAddressSpaceSetPhyMemPart: 0x67955EE9 sceKernelAddressSpaceUnmap: 0xCE72839E diff --git a/nids/365/SceSysmem.yml b/nids/365/SceSysmem.yml index 1315532..e2be720 100644 --- a/nids/365/SceSysmem.yml +++ b/nids/365/SceSysmem.yml @@ -24,6 +24,7 @@ modules: nid: 0x02451F0F functions: sceGUIDKernelCreateWithOpt: 0xFB6390CE + sceGUIDSet: 0xBF275C5A sceKernelCopyToUserProcTextDomain: 0x2995558D sceKernelFindClassByName: 0x7D87F706 sceKernelGetMemBlockType: 0xD44FE44B -- cgit v1.2.3 From 5b9c5009887713bdb011f3da77577e86179341bd Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Sun, 29 Aug 2021 11:05:00 -0400 Subject: Update structs and prototypes in sysmem SceKernelPAVector field names comes from 0.990 prototype update_mgr.elf and update_service_sm.elf. --- include/kernel/kernel/sysmem.h | 15 +++++++------ include/kernel/kernel/sysmem/memblock.h | 40 ++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index 3d5b5e4..c0f28dd 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -32,7 +32,7 @@ typedef struct SceKernelHeapCreateOpt { SceUInt32 field_18; } SceKernelHeapCreateOpt; -typedef struct SceCreateUidObjOpt { +typedef struct SceGUIDKernelCreateOpt { SceUInt32 flags; SceUInt32 field_4; SceUInt32 field_8; @@ -40,7 +40,8 @@ typedef struct SceCreateUidObjOpt { SceUInt32 field_10; SceUInt32 field_14; SceUInt32 field_18; -} SceCreateUidObjOpt; + SceUInt32 field_1C; +} SceGUIDKernelCreateOpt; typedef enum SceKernelModel { SCE_KERNEL_MODEL_VITA = 0x10000, @@ -89,9 +90,9 @@ int sceKernelStrncpyFromUser(void *dst, uintptr_t src, SceSize len); int sceKernelStrncpyToUser(uintptr_t dst, const void *src, SceSize len); int sceKernelStrncpyFromUserProc(SceUID pid, void *dst, uintptr_t src, SceSize len); -SceUID scePUIDtoGUID(SceUID pid, SceUID user_uid); -SceUID scePUIDOpenByGUID(SceUID pid, SceUID kern_uid); -SceUID sceGUIDKernelCreateWithOpt(SceClass *cls, const char *name, SceCreateUidObjOpt *opt, SceObjectBase **obj); +SceUID scePUIDtoGUID(SceUID pid, SceUID puid); +SceUID scePUIDOpenByGUID(SceUID pid, SceUID guid); +SceUID sceGUIDKernelCreateWithOpt(SceClass *cls, const char *name, SceGUIDKernelCreateOpt *opt, SceObjectBase **obj); /** * Gets an object from a UID. @@ -139,8 +140,8 @@ SceClass *sceKernelGetUidHeapClass(void); SceClass *sceKernelGetUidMemBlockClass(void); int sceKernelCreateClass(SceClass *cls, const char *name, void *uidclass, SceSize itemsize, SceClassCallback create, SceClassCallback destroy); -int scePUIDClose(SceUID pid, SceUID user_uid); -int sceGUIDClose(SceUID uid); +int scePUIDClose(SceUID pid, SceUID puid); +int sceGUIDClose(SceUID guid); int sceKernelFindClassByName(const char *name, SceClass **cls); int sceKernelGetPidContext(SceUID pid, SceKernelProcessContext **ctx); diff --git a/include/kernel/kernel/sysmem/memblock.h b/include/kernel/kernel/sysmem/memblock.h index 0050e5b..1e62493 100644 --- a/include/kernel/kernel/sysmem/memblock.h +++ b/include/kernel/kernel/sysmem/memblock.h @@ -32,18 +32,22 @@ typedef enum SceKernelMemoryRefPerm { SCE_KERNEL_MEMORY_REF_PERM_KERN_X = 0x40, } SceKernelMemoryRefPerm; -typedef struct SceKernelAddrPair { - uint32_t addr; //!< Address - uint32_t length; //!< Length -} SceKernelAddrPair; - -typedef struct SceKernelPaddrList { - uint32_t size; //!< sizeof(SceKernelPaddrList) - uint32_t list_size; //!< Size in elements of the list array - uint32_t ret_length; //!< Total physical size of the memory pairs - uint32_t ret_count; //!< Number of elements of list filled by sceKernelVARangeToPAVector - SceKernelAddrPair *list; //!< Array of physical addresses and their lengths pairs -} SceKernelPaddrList; +typedef struct SceKernelAddressRange { + uint32_t addr; //!< Address + uint32_t length; //!< Length +} SceKernelAddressRange; + +typedef SceKernelAddressRange SceKernelPARange; + +typedef SceKernelAddressRange SceKernelVARange; + +typedef struct SceKernelPAVector { + SceSize size; //!< sizeof(SceKernelPAVector) + uint32_t nRanges; //!< Size in elements of the vector + uint32_t nDataInVector; //!< Total physical size of the address ranges + uint32_t nTotalSize; //!< Number of elements of list filled by sceKernelVARangeToPAVector + SceKernelPARange *pVector; //!< Vector of address ranges +} SceKernelPAVector; // specific to 3.60 typedef struct SceKernelAllocMemBlockKernelOpt { @@ -57,7 +61,7 @@ typedef struct SceKernelAllocMemBlockKernelOpt { SceUInt32 extraHigh; SceUInt32 mirror_blockid; SceUID pid; - SceKernelPaddrList *pVector; + SceKernelPAVector *pVector; SceUInt32 field_2C; SceUInt32 field_30; SceUInt32 field_34; @@ -79,7 +83,7 @@ typedef struct SceKernelAllocMemBlockKernelOpt { * * @return 0 on success, < 0 on error. */ -int sceKernelGetMemBlockType(SceUID uid, unsigned int *type); +int sceKernelGetMemBlockType(SceUID uid, SceKernelMemBlockType *type); /** * Find the SceUID of a memory block for a PID @@ -104,7 +108,7 @@ int sceKernelRemapBlock(SceUID uid, SceKernelMemBlockType type); int sceKernelMapMemBlock(SceUID uid); -int sceKernelUserMapWithFlags(const char *name, int permission, int type, +int sceKernelUserMapWithFlags(const char *name, int permission, int flags, const void *user_buf, SceSize size, void **kernel_page, SceSize *kernel_size, unsigned int *kernel_offset); @@ -129,12 +133,12 @@ int sceKernelVAtoPA(const void *addr, uintptr_t *paddr); /** * Get the physical address list of a given virtual address range * - * @param[in] input - The virtual address range - * @param[out] list - The list of physical addresses + * @param[in] pRange - The virtual address range + * @param[out] pVector - The list of physical addresses * * @return 0 on success, < 0 on error. */ -int sceKernelVARangeToPAVector(const SceKernelAddrPair *input, SceKernelPaddrList *list); +int sceKernelVARangeToPAVector(const SceKernelVARange *pRange, SceKernelPAVector *pVector); /** * Releases a memblock referenced by the UID. -- cgit v1.2.3