[Scummvm-cvs-logs] SF.net SVN: scummvm:[52546] scummvm/branches/gsoc2010-plugins/backends/ plugins

dhewg at users.sourceforge.net dhewg at users.sourceforge.net
Sun Sep 5 14:37:07 CEST 2010


Revision: 52546
          http://scummvm.svn.sourceforge.net/scummvm/?rev=52546&view=rev
Author:   dhewg
Date:     2010-09-05 12:37:07 +0000 (Sun, 05 Sep 2010)

Log Message:
-----------
PLUGINS: Flush only memory ranges, not everything

Modified Paths:
--------------
    scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.cpp
    scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h

Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.cpp	2010-09-05 12:36:46 UTC (rev 52545)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.cpp	2010-09-05 12:37:07 UTC (rev 52546)
@@ -39,7 +39,8 @@
 
 #ifdef __PSP__
 #include "backends/platform/psp/powerman.h"
-#include "psputils.h"
+#include <psputils.h>
+#include <psputilsforkernel.h>
 #endif
 
 #ifdef __DS__
@@ -59,16 +60,20 @@
 /**
  * Flushes the data cache (Platform Specific).
  */
-static void flushDataCache() {
+static void flushDataCache(void *ptr, uint32 len) {
 #ifdef __DS__
-  DC_FlushAll();
+	DC_FlushRange(ptr, len);
+	IC_InvalidateRange(ptr, len);
 #endif
 #ifdef __PLAYSTATION2__
-  FlushCache(0);
-  FlushCache(2);
+	(void) ptr;
+	(void) len;
+	FlushCache(0);
+	FlushCache(2);
 #endif
 #ifdef __PSP__
-  sceKernelDcacheWritebackAll();
+	sceKernelDcacheWritebackRange(ptr, len);
+	sceKernelIcacheInvalidateRange(ptr, len);
 #endif
 }
 
@@ -326,7 +331,7 @@
 
 	DBG("loaded!/n");
 
-	flushDataCache();
+	flushDataCache(_segment, _segmentSize);
 
 	ctors_start = symbol("___plugin_ctors");
 	ctors_end = symbol("___plugin_ctors_end");

Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h	2010-09-05 12:36:46 UTC (rev 52545)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h	2010-09-05 12:37:07 UTC (rev 52546)
@@ -47,7 +47,7 @@
     int _symtab_sect;
     void *_dtors_start, *_dtors_end;
 
-    int _segmentSize;
+    uint32 _segmentSize;
 
     //void seterror(const char *fmt, ...);
     virtual void unload();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list