summaryrefslogtreecommitdiff
path: root/include/kernel
diff options
context:
space:
mode:
authordevnoname1202018-08-17 00:34:22 +0200
committerGitHub2018-08-17 00:34:22 +0200
commita12fd3dfeb9935ca0e70360a463a64026d6235ee (patch)
tree3727317fd436c912a0168134870bfadd96f26243 /include/kernel
parentfixed forgotten datatype declaration + creation (diff)
parentFix broken headers (diff)
downloadvds-libraries-a12fd3dfeb9935ca0e70360a463a64026d6235ee.tar.gz
Merge pull request #341 from vitasdk/ci-check-headers
ci: Compile headers to check their validity
Diffstat (limited to '')
-rw-r--r--include/kernel/kernel/cpu.h28
-rw-r--r--include/kernel/lowio/pervasive.h2
2 files changed, 17 insertions, 13 deletions
diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h
index a6f46d1..db3a5e9 100644
--- a/include/kernel/kernel/cpu.h
+++ b/include/kernel/kernel/cpu.h
@@ -28,6 +28,18 @@ extern "C" {
asm volatile ("mcr p15, 0, %0, c13, c0, 3" :: "r" (state) : "memory"); \
} while (0)
+
+/**
+ * @brief Writeback a range of L1 dcache (without L2)
+ *
+ * @param ptr The pointer
+ * @param[in] len The length
+ *
+ * @return Zero on success
+ */
+int sceKernelCpuDcacheWritebackRange(const void *ptr, size_t len);
+
+
/**
* @brief Save process context
*
@@ -82,8 +94,10 @@ static inline int sceKernelCpuUnrestrictedMemcpy(void *dst, const void *src, siz
asm ("mrc p15, 0, %0, c3, c0, 0" : "=r" (prev_dacr));
asm ("mcr p15, 0, %0, c3, c0, 0" :: "r" (0xFFFF0000));
- memcpy(dst, src, len);
- sceKernelCpuDcacheWritebackRange((uintptr_t)dst & ~0x1F, (len + 0x1F) & ~0x1F);
+ for (size_t i=0; i < len; i++) {
+ ((char *) dst)[i] = ((char *) src)[i];
+ }
+ sceKernelCpuDcacheWritebackRange((void *)((uintptr_t)dst & ~0x1F), (len + 0x1F) & ~0x1F);
asm ("mcr p15, 0, %0, c3, c0, 0" :: "r" (prev_dacr));
return 0;
@@ -113,16 +127,6 @@ int sceKernelCpuDisableInterrupts(void);
int sceKernelCpuEnableInterrupts(int flags);
/**
- * @brief Writeback a range of L1 dcache (without L2)
- *
- * @param ptr The pointer
- * @param[in] len The length
- *
- * @return Zero on success
- */
-int sceKernelCpuDcacheWritebackRange(const void *ptr, size_t len);
-
-/**
* @brief Invalidate a range of L1 dcache (without L2)
*
* @param ptr The pointer
diff --git a/include/kernel/lowio/pervasive.h b/include/kernel/lowio/pervasive.h
index ef91404..51bb72b 100644
--- a/include/kernel/lowio/pervasive.h
+++ b/include/kernel/lowio/pervasive.h
@@ -4,7 +4,7 @@
#include <psp2kern/types.h>
#ifdef __cplusplus
-"C" {
+extern "C" {
#endif
int scePervasiveUartClockDisable(int port);