mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-06 07:38:05 -04:00
initial import
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@2 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
2cadbd5e56
commit
cc68a136aa
341 changed files with 180839 additions and 0 deletions
45
platform/gp2x/squidgehack.c
Normal file
45
platform/gp2x/squidgehack.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern char **g_argv;
|
||||
|
||||
/* Call this MMU Hack kernel module after doing mmap, and before doing memset*/
|
||||
int mmuhack(void)
|
||||
{
|
||||
char kocmd[1024];
|
||||
int i, mmufd = open("/dev/mmuhack", O_RDWR);
|
||||
|
||||
if(mmufd < 0) {
|
||||
strcpy(kocmd, "/sbin/insmod ");
|
||||
strncpy(kocmd+13, g_argv[0], 1023-13);
|
||||
kocmd[1023] = 0;
|
||||
for (i = strlen(kocmd); i > 0; i--)
|
||||
if (kocmd[i] == '/') { kocmd[i] = 0; break; }
|
||||
strcat(kocmd, "/mmuhack.o");
|
||||
|
||||
printf("Installing NK's kernel module for Squidge MMU Hack (%s)...\n", kocmd);
|
||||
system(kocmd);
|
||||
mmufd = open("/dev/mmuhack", O_RDWR);
|
||||
}
|
||||
if(mmufd < 0) return 0;
|
||||
|
||||
close(mmufd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* Unload MMU Hack kernel module after closing all memory devices*/
|
||||
int mmuunhack(void)
|
||||
{
|
||||
int ret;
|
||||
printf("Removing NK's kernel module for Squidge MMU Hack... "); fflush(stdout);
|
||||
ret = system("/sbin/rmmod mmuhack");
|
||||
printf("done (%i)\n", ret);
|
||||
|
||||
return ret;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue