// Closes all handles and resets defaults. void ioReset(struct s_io_state *iostate) { int i; for(i=0; i<iostate->max; i++) { ioClose(iostate, i); ioResetID(iostate, i); } iostate->timeout = 1; iostate->sockmark = 0; iostate->nat64clat = 0; memcpy(iostate->nat64_prefix, "\x00\x64\xff\x9b\x00\x00\x00\x00\x00\x00\x00\x00", 12); iostate->debug = 0; }
void utilitySavedataLog(char *buffer, const SyscallInfo *syscallInfo, u32 param) { char *s = buffer; int fd; if (syscallInfo->nid != 0x50C4CD57 && syscallInfo->nid != 0x9790B33C) { return; } if (syscallInfo->nid == 0x50C4CD57) { utilitySavedataParams = (void *) param; } if (utilitySavedataParams == NULL) { return; } int mode = _lw((int) utilitySavedataParams + 48); s = append(s, "mode="); s = appendInt(s, mode, 0); s = append(s, ", gameName="); s = append(s, utilitySavedataParams + 60); s = append(s, ", saveName="); s = append(s, utilitySavedataParams + 76); s = append(s, ", fileName="); s = append(s, utilitySavedataParams + 100); if (syscallInfo->nid == 0x9790B33C) { s = append(s, ", result="); s = appendHex(s, _lw((int) utilitySavedataParams + 28), 8); } s = append(s, "\n"); writeLog(buffer, s - buffer); s = buffer; printLogMem("Data ", _lw((int) utilitySavedataParams + 116), 16); int fileListAddr = _lw((int) utilitySavedataParams + 1528); if (fileListAddr != 0 && mode == 12) { // MODE_FILES printLogMem("FileList ", fileListAddr, 36); if (syscallInfo->nid == 0x9790B33C) { // sceUtilitySavedataShutdownStart int saveFileSecureNumEntries = _lw(fileListAddr + 12); int saveFileNumEntries = _lw(fileListAddr + 16); int systemFileNumEntries = _lw(fileListAddr + 20); int saveFileSecureEntriesAddr = _lw(fileListAddr + 24); int saveFileEntriesAddr = _lw(fileListAddr + 28); int systemEntriesAddr = _lw(fileListAddr + 32); printLogMem("SecureEntries ", saveFileSecureEntriesAddr, saveFileSecureNumEntries * 80); printLogMem("NormalEntries ", saveFileEntriesAddr, saveFileNumEntries * 80); printLogMem("SystemEntries ", systemEntriesAddr, systemFileNumEntries * 80); } } printLogMem("Params ", (int) utilitySavedataParams, _lw((int) utilitySavedataParams + 0)); if (syscallInfo->nid == 0x9790B33C) { fd = ioOpen("ms0:/SavedataStruct.bin", PSP_O_WRONLY | PSP_O_CREAT | PSP_O_APPEND, 0777); ioWrite(fd, utilitySavedataParams, _lw((int) utilitySavedataParams + 0)); ioClose(fd); fd = ioOpen("ms0:/SavedataData.bin", PSP_O_WRONLY | PSP_O_CREAT | PSP_O_APPEND, 0777); ioWrite(fd, (void *) _lw((int) utilitySavedataParams + 116), _lw((int) utilitySavedataParams + 124)); ioClose(fd); } }
void closeLogFile() { ioClose(commonInfo->logFd); commonInfo->logFd = -1; }