int Sys_IosReload(int IOS) { s32 ret = -1; //shutdown SD and USB before IOS Reload in DiscWait SDCard_deInit(); USBDevice_deInit(); WPAD_Flush(0); WPAD_Disconnect(0); WPAD_Shutdown(); WDVD_Close(); USBStorage_Deinit(); if (IOS == 249 || IOS == 222 || IOS == 223) { int i; for (i = 0; i < 10; i++) { ret = IOS_ReloadIOS(IOS); if (ret < 0) return ret; if (IOS == 222 || IOS == 223) load_ehc_module(); ret = WBFS_Init(WBFS_DEVICE_USB); if (!(ret < 0)) break; sleep(1); USBStorage_Deinit(); } if (ret>=0) { ret = Disc_Init(); if (ret>=0) { ret = WBFS_Open(); } } else Sys_BackToLoader(); } PAD_Init(); Wpad_Init(); WPAD_SetDataFormat(WPAD_CHAN_ALL,WPAD_FMT_BTNS_ACC_IR); // WPAD_SetVRes(WPAD_CHAN_ALL, screenwidth, screenheight); //reinitialize SD and USB SDCard_Init(); USBDevice_Init(); return ret; }
void Sys_Shutdown(void) { SDHC_Close(); USBStorage_Deinit(); Wpad_Disconnect(); /* Poweroff console */ if(CONF_GetShutdownMode() == CONF_SHUTDOWN_IDLE) { s32 ret; /* Set LED mode */ ret = CONF_GetIdleLedMode(); if(ret >= 0 && ret <= 2) STM_SetLedMode(ret); /* Shutdown to idle */ STM_ShutdownToIdle(); } else { /* Shutdown to standby */ STM_ShutdownToStandby(); } }