Changes

Jump to navigation Jump to search

SceSysmem

150 bytes added, 8 November
int unk_0x37C; // 0
void *unk_func_0x380; // SceSblPostSsMgr + 0x9001, ksceSblLicMgrGetLicenseStatussceSblLicMgrGetLicenseStatusForDriver
int (* unk_func_0x384)(void); // SceSblPostSsMgr + 0xB005, SceSblPostSsMgrForDriver_22599675, get flag
int (* unk_func_0x388)(void); // SceSblPostSsMgr + 0xB011, SceSblPostSsMgrForDriver_9B49C249, get flag
void *unk_func_0x38C; // SceSblPostSsMgr + 0xB4ED, SceSblPostSsMgrForDriver_D8A2D465
void *unk_func_0x390; // SceSblPostSsMgr + 0xB111, ksceSblUtMgrGetTrilithiumBuffersceSblUtMgrGetTrilithiumBufferForDriver
int (* sceKernelSysrootHasNpTestFlag)(void); // SceSblPostSsMgr + 0xB01D
void *unk_func_0x398; // SceSblUpdateMgr + 0x8B01
|-
! Version !! NID
|-
| 0.990 || not present
|-
| 1.69 || 0xCA99929B
|-
! Version !! NID
|-
| 0.990 || not present
|-
| 0.996-3.60 || 0x006F3DB4
|}
also called ksceKernelCpuDcacheWritebackRangesceKernelCpuDcacheWritebackRangeForDriver, flush_dcache.
0x20
<source lang="C">
res uint32_t vaddr_memory_type = SceCpuForKernel_9B8173F4(vaddr); if ( res vaddr_memory_type != 8 ) { if ( res vaddr_memory_type <= 8 ) { if ( res vaddr_memory_type != 2 )
return 0;
} else if ( res vaddr_memory_type != 0x40 && res vaddr_memory_type != 0x80 ) {
return 0;
}
}
return 1;
<hr>
These functions implement a simple mutual exclusive access on a resource addr address using LDREX/STREX.
=== sceKernelCpuLockStoreLRForDriver ===
Write value at sysroot_ctx + 0x380.
Normally, ksceSblLicMgrGetLicenseStatus sceSblLicMgrGetLicenseStatusForDriver of SceSblPostSsMgr is registered.
<source lang="c">int sceSysrootRegisterLicMgrGetLicenseStatusForKernel(int (__cdecl *sceSblLicMgrGetLicenseStatusForDriver)());</source>
3,214

edits

Navigation menu