summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSunguk Lee2020-08-12 02:12:45 +0900
committerSunguk Lee2020-08-12 02:12:45 +0900
commit4c4816fb6914797f36321d3b731b303e4a4f1afd (patch)
treeb0e967bc27fb68e24b792000b710454b21864eac /include
parentProperly populated ScePowerCallbackType enum. (diff)
parentRefactor ksceKernelCpuUnrestrictedMemcpy (diff)
downloadvds-libraries-4c4816fb6914797f36321d3b731b303e4a4f1afd.tar.gz
Merge branch 'pr/465' into master
Diffstat (limited to 'include')
-rw-r--r--include/kernel/kernel/cpu.h53
1 files changed, 16 insertions, 37 deletions
diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h
index d0b5d5f..b3ad11e 100644
--- a/include/kernel/kernel/cpu.h
+++ b/include/kernel/kernel/cpu.h
@@ -2,6 +2,7 @@
#define _PSP2_KERNEL_CPU_H_
#include <psp2kern/types.h>
+#include <string.h>
#ifdef __cplusplus
extern "C" {
@@ -34,10 +35,8 @@ extern "C" {
*
* @param ptr The pointer
* @param[in] len The length
- *
- * @return Zero on success
*/
-int sceKernelCpuDcacheWritebackRange(const void *ptr, SceSize len);
+void sceKernelCpuDcacheWritebackRange(const void *ptr, SceSize len);
/**
@@ -91,15 +90,13 @@ static inline int sceKernelCpuUnrestrictedMemcpy(void *dst, const void *src, Sce
{
int prev_dacr;
- asm ("mrc p15, 0, %0, c3, c0, 0" : "=r" (prev_dacr));
- asm ("mcr p15, 0, %0, c3, c0, 0" :: "r" (0xFFFF0000));
+ asm volatile("mrc p15, 0, %0, c3, c0, 0" : "=r" (prev_dacr));
+ asm volatile("mcr p15, 0, %0, c3, c0, 0" :: "r" (0xFFFF0000));
- for (size_t i=0; i < len; i++) {
- ((char *) dst)[i] = ((char *) src)[i];
- }
+ memcpy(dst, src, len);
sceKernelCpuDcacheWritebackRange((void *)((uintptr_t)dst & ~0x1F), (len + 0x1F) & ~0x1F);
- asm ("mcr p15, 0, %0, c3, c0, 0" :: "r" (prev_dacr));
+ asm volatile("mcr p15, 0, %0, c3, c0, 0" :: "r" (prev_dacr));
return 0;
}
@@ -131,61 +128,47 @@ int sceKernelCpuEnableInterrupts(int flags);
*
* @param ptr The pointer
* @param[in] len The length
- *
- * @return Zero on success
*/
-int sceKernelCpuDcacheInvalidateRange(const void *ptr, SceSize len);
+void sceKernelCpuDcacheInvalidateRange(const void *ptr, SceSize 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 sceKernelCpuDcacheWritebackInvalidateRange(const void *ptr, SceSize len);
+void sceKernelCpuDcacheWritebackInvalidateRange(const void *ptr, SceSize len);
/**
* @brief Invalidate all the L1 dcache (without L2)
- *
- * @return Zero on success
*/
-int sceKernelCpuDcacheInvalidateAll(void);
+void sceKernelCpuDcacheInvalidateAll(void);
/**
* @brief Writeback all the L1 dcache (without L2)
- *
- * @return Zero on success
*/
-int sceKernelCpuDcacheWritebackAll(void);
+void sceKernelCpuDcacheWritebackAll(void);
/**
* @brief Writeback and invalidate all the L1 dcache (without L2)
- *
- * @return Zero on success
*/
-int sceKernelCpuDcacheWritebackInvalidateAll(void);
+void sceKernelCpuDcacheWritebackInvalidateAll(void);
/**
* @brief Writeback a range of L1 dcache and L2
*
* @param ptr The pointer
* @param[in] len The length
- *
- * @return Zero on success
*/
-int sceKernelCpuDcacheAndL2WritebackRange(const void *ptr, SceSize len);
+void sceKernelCpuDcacheAndL2WritebackRange(const void *ptr, SceSize len);
/**
* @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 sceKernelCpuDcacheAndL2InvalidateRange(const void *ptr, SceSize len);
+void sceKernelCpuDcacheAndL2InvalidateRange(const void *ptr, SceSize len);
/**
* @brief Writeback and invalidate a range of L1 dcache and L2
@@ -195,17 +178,15 @@ int sceKernelCpuDcacheAndL2InvalidateRange(const void *ptr, SceSize len);
*
* @return Zero on success
*/
-int sceKernelCpuDcacheAndL2WritebackInvalidateRange(const void *ptr, SceSize len);
+void sceKernelCpuDcacheAndL2WritebackInvalidateRange(const void *ptr, SceSize len);
/**
* @brief Invalidate a range of L1 icache (without L2)
*
* @param ptr The pointer
* @param[in] len The length
- *
- * @return Zero on success
*/
-int sceKernelCpuIcacheInvalidateRange(const void *ptr, SceSize len);
+void sceKernelCpuIcacheInvalidateRange(const void *ptr, SceSize len);
/**
* @brief Invalidate all the L1 icache (without L2)
@@ -219,10 +200,8 @@ int sceKernelCpuIcacheInvalidateAll(void);
*
* @param ptr The pointer
* @param[in] len The length
- *
- * @return Zero on success
*/
-int sceKernelCpuIcacheAndL2WritebackInvalidateRange(const void *ptr, SceSize len);
+void sceKernelCpuIcacheAndL2WritebackInvalidateRange(const void *ptr, SceSize len);
/**
* @brief Suspend all interrupts (disables IRQs)