void mvc_exit(void) { if (mvc_debug) fprintf(stderr, "#mvc_exit\n"); store_exit(); keyword_exit(); }
int optimus_storage_exit(void) { _disk_intialed_ok = 0; DWN_MSG("store_exit yet!!\n"); return store_exit(); }
int optimus_storage_init(int toErase) { int ret = 0; char* cmd = NULL; if(_disk_intialed_ok){//To assert only actual disk intialed once DWN_MSG("Disk inited again.\n"); return 0; } if(OPTIMUS_WORK_MODE_USB_PRODUCE != optimus_work_mode_get())//Already inited in other work mode { DWN_MSG("Exit before re-init\n"); store_exit(); } switch(toErase) { case 0://NO erase ret = store_init(1); break; case 3://erase all(with key) { cmd = "store disprotect key"; DWN_MSG("run cmd [%s]\n", cmd); ret = run_command(cmd, 0); if(ret){ DWN_ERR("Fail when run cmd[%s], ret %d\n", cmd, ret); break; } } case 1://normal erase, store init 3 ret = store_init(3); break; case 4://force erase all { cmd = "store disprotect key; store disprotect fbbt; store disprotect hynix"; DWN_MSG("run cmd [%s]\n", cmd); ret = run_command(cmd, 0); if(ret){ DWN_ERR("Fail when run cmd[%s], ret %d\n", cmd, ret); break; } } case 2: ret = store_init(4); break; default: DWN_ERR("Unsupported erase flag %d\n", toErase); ret = -__LINE__; break; } if(!ret) { _disk_intialed_ok = 1; if(OPTIMUS_WORK_MODE_USB_PRODUCE == optimus_work_mode_get())//env not relocated in this case { DWN_MSG("usb producing env_relocate\n"); env_relocate(); } } return ret; }