notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libretro: satisfy vita's dynarec needs in a cleaner way
[picodrive.git]
/
platform
/
libretro
/
libretro.c
diff --git
a/platform/libretro/libretro.c
b/platform/libretro/libretro.c
index
b683374
..
e7f588a
100644
(file)
--- a/
platform/libretro/libretro.c
+++ b/
platform/libretro/libretro.c
@@
-98,6
+98,7
@@
void cache_flush_d_inval_i(void *start, void *end)
{
#ifdef __arm__
size_t len = (char *)end - (char *)start;
{
#ifdef __arm__
size_t len = (char *)end - (char *)start;
+ (void)len;
#if defined(__BLACKBERRY_QNX__)
msync(start, end - start, MS_SYNC | MS_CACHE_ONLY | MS_INVALIDATE_ICACHE);
#elif defined(__MACH__)
#if defined(__BLACKBERRY_QNX__)
msync(start, end - start, MS_SYNC | MS_CACHE_ONLY | MS_INVALIDATE_ICACHE);
#elif defined(__MACH__)
@@
-435,14
+436,25
@@
void plat_munmap(void *ptr, size_t size)
}
#endif
}
#endif
+// if NULL is returned, static buffer is used
+void *plat_mem_get_for_drc(size_t size)
+{
+ void *mem = NULL;
+#ifdef VITA
+ sceKernelGetMemBlockBase(sceBlock, &mem);
+#endif
+ return mem;
+}
+
int plat_mem_set_exec(void *ptr, size_t size)
{
int plat_mem_set_exec(void *ptr, size_t size)
{
+ int ret = -1;
#ifdef _WIN32
#ifdef _WIN32
-
int ret = VirtualProtect(ptr,size,PAGE_EXECUTE_READWRITE,
0);
+
ret = VirtualProtect(ptr, size, PAGE_EXECUTE_READWRITE,
0);
if (ret == 0 && log_cb)
if (ret == 0 && log_cb)
- log_cb(RETRO_LOG_ERROR, "mprotect(%p, %zd) failed: %d\n", ptr, size, 0);
+ log_cb(RETRO_LOG_ERROR, "VirtualProtect(%p, %d) failed: %d\n", ptr, (int)size,
+ GetLastError());
#elif defined(_3DS)
#elif defined(_3DS)
- int ret = -1;
if (ctr_svchack_successful)
{
unsigned int currentHandle;
if (ctr_svchack_successful)
{
unsigned int currentHandle;
@@
-461,9
+473,9
@@
int plat_mem_set_exec(void *ptr, size_t size)
}
#elif defined(VITA)
}
#elif defined(VITA)
-
int
ret = sceKernelOpenVMDomain();
+ ret = sceKernelOpenVMDomain();
#else
#else
-
int
ret = mprotect(ptr, size, PROT_READ | PROT_WRITE | PROT_EXEC);
+ ret = mprotect(ptr, size, PROT_READ | PROT_WRITE | PROT_EXEC);
if (ret != 0 && log_cb)
log_cb(RETRO_LOG_ERROR, "mprotect(%p, %zd) failed: %d\n", ptr, size, errno);
#endif
if (ret != 0 && log_cb)
log_cb(RETRO_LOG_ERROR, "mprotect(%p, %zd) failed: %d\n", ptr, size, errno);
#endif
@@
-1380,3
+1392,5
@@
void retro_deinit(void)
vout_buf = NULL;
PicoExit();
}
vout_buf = NULL;
PicoExit();
}
+
+// vim:shiftwidth=3:ts=3:expandtab