int main(int argc, char *argv[]) { PspIoDrvFuncs test_funcs = { test_IoInit, test_IoExit, test_IoOpen, test_IoClose, test_IoRead, test_IoWrite, test_IoLseek, test_IoIoctl, test_IoRemove, test_IoMkdir, test_IoRmdir, test_IoDopen, test_IoDclose, test_IoDread, test_IoGetstat, test_IoChstat, test_IoRename, test_IoChdir, test_IoMount, test_IoUmount, test_IoDevctl, test_IoUnk21, }; PspIoDrv test_driver = { "test", 0x10, 0x800, "TEST", &test_funcs }; //sceIodeldrv("umd"); sceIoAddDrv(&test_driver); sceIoOpen("test:/path/to/file", PSP_O_WRONLY | PSP_O_CREAT, 0777); //printf("%d\n", ); sceIoDelDrv("test"); return 0; }
void initUmdImageDriver() { CfwConfig config; memset( &config, 0, sizeof( CfwConfig ) ); getCfwConfig( &config ); mode = config.umdmode; executable = config.executebootbin; log( "umdmode %d exec %d\n", mode, executable ); switch ( mode ) { case MODE_MARCH33: { sceIoDelDrv( "isofs" ); killModule( "sceIsofs_driver" ); if ( !findProc( "pspMarch33_Driver", NULL, 0xcee8593c ) ) { sceIoDelDrv( "umd" ); } killModule( "pspMarch33_Driver" ); killSema( "Semaphore", "MediaManSema" ); break; } case MODE_NP9660: { sceIoDelDrv( "isofs" ); killModule( "sceIsofs_driver" ); sceIoDelDrv( "umd" ); killThread( "Thread", "SceNpUmdMount" ); killEventHandler( "SceUmdMedia" ); killModule( "sceNp9660_driver" ); killEventFlag( "EventFlag", "SceUmdManState" ); killEventFlag( "EventFlag", "SceMediaManUser" ); break; } } }
static int tty_init(void) { int ret; (void) sceIoDelDrv("tty"); /* Ignore error */ ret = sceIoAddDrv(&tty_driver); if(ret < 0) { return ret; } g_in_sema = sceKernelCreateSema("TtyInMutex", 0, 1, 1, NULL); if(g_in_sema < 0) { return g_in_sema; } g_out_sema = sceKernelCreateSema("TtyOutMutex", 0, 1, 1, NULL); if(g_out_sema < 0) { return g_out_sema; } ret = sceIoReopen("tty0:", PSP_O_RDONLY, 0777, sceKernelStdin()); if(ret < 0) { return ret; } ret = sceKernelStdoutReopen("tty1:", PSP_O_WRONLY, 0777); if(ret < 0) { return ret; } ret = sceKernelStderrReopen("tty2:", PSP_O_WRONLY, 0777); if(ret < 0) { return ret; } g_initialised = 1; return 0; }