7 #ifndef _PSP2KERN_KERNEL_CPU_H_
8 #define _PSP2KERN_KERNEL_CPU_H_
29 #define ENTER_SYSCALL(state) \
31 asm volatile ("mrc p15, 0, %0, c13, c0, 3" : "=r" (state)); \
32 asm volatile ("mcr p15, 0, %0, c13, c0, 3" :: "r" (state << 16) : "memory"); \
40 #define EXIT_SYSCALL(state) \
42 asm volatile ("mcr p15, 0, %0, c13, c0, 3" :: "r" (state) : "memory"); \
71 #if PSP2_SDK_VERSION >= 0x3630000 && defined(__USE_SCE_KERNEL_DOMAIN_TEXT_MEMCPY_IMPORT)
72 #undef __USE_SCE_KERNEL_DOMAIN_TEXT_MEMCPY_IMPORT
84 #if defined(__USE_SCE_KERNEL_DOMAIN_TEXT_MEMCPY_IMPORT)
85 int ksceKernelDomainTextMemcpy(
void *dst,
const void *src,
SceSize len);
87 static inline int ksceKernelDomainTextMemcpy(
void *dst,
const void *src,
SceSize len)
91 asm volatile(
"mrc p15, 0, %0, c3, c0, 0" :
"=r" (prev_dacr));
92 asm volatile(
"mcr p15, 0, %0, c3, c0, 0" ::
"r" (0xFFFF0000));
98 asm volatile(
"mcr p15, 0, %0, c3, c0, 0" ::
"r" (prev_dacr));
void ksceKernelDcacheCleanRangeForL1WBWA(void *start, unsigned int size)
The clean a range the L1 dcache.
int ksceKernelCpuId(void)
Returns the CPU ID of the calling processor.
SceKernelIntrStatus ksceKernelCpuSuspendIntr(void)
Suspend intr of calling processor.
void ksceKernelCpuUpdateSCTLR(void)
void ksceKernelCpuBranchPredictorInvalidateAllIS(void)
SceUInt8 ksceKernelCpuGetCONTEXTIDR(void)
void ksceKernelGetVmaccessRange(SceUIntPtr *pRangeStart, SceUIntPtr *pRangeEnd)
void ksceKernelCpuBranchPredictorInvalidateAll(void)
SceKernelIntrStatus ksceKernelCpuResumeIntr(SceKernelIntrStatus prev_state)
Suspend intr of calling processor.
SceBool ksceKernelIsUncacheAddressInTmpFsGame(void *address)
void * memcpy(void *dst, const void *src, unsigned int len)
Copy memory1 to memory2.
int SceBool
Definition: types.h:59
unsigned int SceUIntPtr
Definition: types.h:84
unsigned int SceSize
Definition: types.h:56
int SceKernelIntrStatus
Interrupt status.
Definition: types.h:235
uint32_t SceUInt32
Definition: types.h:45
uint8_t SceUInt8
Definition: types.h:36
#define SCE_OK
Definition: types.h:225