diff options
-rw-r--r-- | include/kernel/kernel/cpu.h | 30 | ||||
-rw-r--r-- | nids/360/SceSysmem.yml | 11 |
2 files changed, 25 insertions, 16 deletions
diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h index 859424d..a4262ef 100644 --- a/include/kernel/kernel/cpu.h +++ b/include/kernel/kernel/cpu.h @@ -80,56 +80,64 @@ int sceKernelCpuDisableInterrupts(void); int sceKernelCpuEnableInterrupts(int flags); /** - * @brief Flush L1 dcache and L2 + * @brief Writeback a range of L1 dcache (without L2) * - * Note: symbols currently does not work on 3.x, need to find new ones. + * @param ptr The pointer + * @param[in] len The length + * + * @return Zero on success + */ +int sceKernelCpuDcacheWritebackRange(void *ptr, size_t len); + +/** + * @brief Writeback and invalidate a range of L1 dcache (without L2) * * @param ptr The pointer * @param[in] len The length * * @return Zero on success */ -int sceKernelCpuDcacheAndL2Flush(void *ptr, size_t len); +int sceKernelCpuDcacheWritebackInvalidateRange(void *ptr, size_t len); /** - * @brief Flush L2 dcache without L2 + * @brief Writeback a range of L1 dcache and L2 * * @param ptr The pointer * @param[in] len The length * * @return Zero on success */ -int sceKernelCpuDcacheFlush(void *ptr, size_t len); +int sceKernelCpuDcacheAndL2WritebackRange(void *ptr, size_t len); /** - * @brief Writeback a range of L1 dcache (not sure if L2 too) + * @brief Writeback and invalidate a range of L1 and L2 dcache * * @param ptr The pointer * @param[in] len The length * * @return Zero on success */ -int sceKernelCpuDcacheWritebackRange(void *ptr, size_t len); +int sceKernelCpuDcacheAndL2InvalidateRange(void *ptr, size_t len); /** - * @brief Flush L1 icache and L2 + * @brief Writeback and invalidate a range of L1 icache and L2 * * @param ptr The pointer * @param[in] len The length * * @return Zero on success */ -int sceKernelCpuIcacheAndL2Flush(void *ptr, size_t len); +int sceKernelCpuIcacheAndL2WritebackInvalidateRange(void *ptr, size_t len); /** - * @brief Flush L1 dcache and L2 for DMA operations + * @brief Writeback and invalidate a range of L1 dcache and L2 * * @param ptr The pointer * @param[in] len The length * * @return Zero on success */ -int sceKernelCpuDcacheAndL2AndDMAFlush(void *ptr, size_t len); +int sceKernelCpuDcacheAndL2WritebackInvalidateRange(void *ptr, size_t len); /** * @brief MMU permission bypassing memcpy diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index 4c1ff49..dae115a 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -5,16 +5,17 @@ modules: SceCpuForDriver: nid: 0x40ECDB0E functions: - sceKernelCpuDcacheAndL2AndDMAFlush: 0x364E68A4 - sceKernelCpuDcacheAndL2Flush: 0x9CB9F0CE - sceKernelCpuDcacheWritebackRange: 0x103872A5 + sceKernelCpuDcacheAndL2InvalidateRange: 0x02796361 + sceKernelCpuDcacheAndL2WritebackInvalidateRange: 0x364E68A4 + sceKernelCpuDcacheAndL2WritebackRange: 0x103872A5 + sceKernelCpuDcacheWritebackRange: 0x9CB9F0CE sceKernelCpuDisableInterrupts: 0x821FC0EE sceKernelCpuEnableInterrupts: 0xF5BAD43B SceCpuForKernel: nid: 0x54BF2BAB functions: - sceKernelCpuDcacheFlush: 0x6BA2E51C - sceKernelCpuIcacheAndL2Flush: 0x19F17BD0 + sceKernelCpuDcacheWritebackInvalidateRange: 0x6BA2E51C + sceKernelCpuIcacheAndL2WritebackInvalidateRange: 0x19F17BD0 sceKernelCpuRestoreContext: 0x0A4F0FB9 sceKernelCpuSaveContext: 0x211B89DA sceKernelCpuUnrestrictedMemcpy: 0x8C683DEC |