summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergi Granell2017-02-16 11:44:08 +0100
committerSergi Granell2017-02-16 11:44:08 +0100
commitce4a149044a9ec57ce477a94520c096a8baab78f (patch)
tree30e1c6dd5ddfb1a5f0c7bee10c260c4e4dbfc21b
parentAdd more SceThreadmgrForDriver NIDs (diff)
downloadvds-libraries-ce4a149044a9ec57ce477a94520c096a8baab78f.tar.gz
Add more cache NIDs
-rw-r--r--include/kernel/kernel/cpu.h37
-rw-r--r--nids/360/ScePower.yml1
-rw-r--r--nids/360/SceSysmem.yml3
3 files changed, 36 insertions, 5 deletions
diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h
index a4262ef..c8c3d5e 100644
--- a/include/kernel/kernel/cpu.h
+++ b/include/kernel/kernel/cpu.h
@@ -90,6 +90,16 @@ int sceKernelCpuEnableInterrupts(int flags);
int sceKernelCpuDcacheWritebackRange(void *ptr, size_t len);
/**
+ * @brief Invalidate a range of L1 dcache (without L2)
+ *
+ * @param ptr The pointer
+ * @param[in] len The length
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheInvalidateRange(void *ptr, size_t len);
+
+/**
* @brief Writeback and invalidate a range of L1 dcache (without L2)
*
* @param ptr The pointer
@@ -110,7 +120,7 @@ int sceKernelCpuDcacheWritebackInvalidateRange(void *ptr, size_t len);
int sceKernelCpuDcacheAndL2WritebackRange(void *ptr, size_t len);
/**
- * @brief Writeback and invalidate a range of L1 and L2 dcache
+ * @brief Writeback and invalidate a range of L1 dcache and L2
*
* @param ptr The pointer
* @param[in] len The length
@@ -120,24 +130,41 @@ int sceKernelCpuDcacheAndL2WritebackRange(void *ptr, size_t len);
int sceKernelCpuDcacheAndL2InvalidateRange(void *ptr, size_t len);
/**
- * @brief Writeback and invalidate a range of L1 icache and L2
+ * @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 sceKernelCpuIcacheAndL2WritebackInvalidateRange(void *ptr, size_t len);
+int sceKernelCpuDcacheAndL2WritebackInvalidateRange(void *ptr, size_t len);
/**
- * @brief Writeback and invalidate a range of L1 dcache and L2
+ * @brief Invalidate a range of L1 icache (without L2)
*
* @param ptr The pointer
* @param[in] len The length
*
* @return Zero on success
*/
-int sceKernelCpuDcacheAndL2WritebackInvalidateRange(void *ptr, size_t len);
+int sceKernelCpuIcacheInvalidateRange(void *ptr, size_t len);
+
+/**
+ * @brief Invalidate all the L1 icache (without L2)
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuIcacheInvalidateAll(void);
+
+/**
+ * @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 sceKernelCpuIcacheAndL2WritebackInvalidateRange(void *ptr, size_t len);
/**
* @brief MMU permission bypassing memcpy
diff --git a/nids/360/ScePower.yml b/nids/360/ScePower.yml
index f71ed87..c503204 100644
--- a/nids/360/ScePower.yml
+++ b/nids/360/ScePower.yml
@@ -50,6 +50,7 @@ modules:
ScePowerForDriver:
nid: 0x1590166F
functions:
+ scePowerGetPowerSwMode: 0x165CE085
scePowerGetWakeupFactor: 0x9F26222A
scePowerRequestColdReset: 0x0442D852
scePowerRequestHibernate: 0x08951418
diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml
index da350db..47013fb 100644
--- a/nids/360/SceSysmem.yml
+++ b/nids/360/SceSysmem.yml
@@ -8,6 +8,7 @@ modules:
sceKernelCpuDcacheAndL2InvalidateRange: 0x02796361
sceKernelCpuDcacheAndL2WritebackInvalidateRange: 0x364E68A4
sceKernelCpuDcacheAndL2WritebackRange: 0x103872A5
+ sceKernelCpuDcacheInvalidateRange: 0x8B4C26DF
sceKernelCpuDcacheWritebackRange: 0x9CB9F0CE
sceKernelCpuDisableInterrupts: 0x821FC0EE
sceKernelCpuEnableInterrupts: 0xF5BAD43B
@@ -16,6 +17,8 @@ modules:
functions:
sceKernelCpuDcacheWritebackInvalidateRange: 0x6BA2E51C
sceKernelCpuIcacheAndL2WritebackInvalidateRange: 0x19F17BD0
+ sceKernelCpuIcacheInvalidateAll: 0x264DA250
+ sceKernelCpuIcacheInvalidateRange: 0xF4C7F578
sceKernelCpuRestoreContext: 0x0A4F0FB9
sceKernelCpuSaveContext: 0x211B89DA
sceKernelCpuUnrestrictedMemcpy: 0x8C683DEC