u32 sceIoReadAsync(int id, u32 data_addr, int size) { DEBUG_LOG(HLE, "sceIoReadAsync(%d)", id); sceIoRead(id, data_addr, size); __IoCompleteAsyncIO(id); return 0; }
u32 sceIoLseek32Async(int id, int offset, int whence) { DEBUG_LOG(HLE, "sceIoLseek32Async(%d) sorta implemented", id); sceIoLseek32(id, offset, whence); __IoCompleteAsyncIO(id); return 0; }
u32 sceIoWriteAsync(int id, void *data_ptr, int size) { DEBUG_LOG(HLE, "sceIoWriteAsync(%d)", id); sceIoWrite(id, data_ptr, size); __IoCompleteAsyncIO(id); return 0; }
u32 sceIoIoctlAsync(u32 id, u32 cmd, u32 indataPtr, u32 inlen, u32 outdataPtr, u32 outlen) { DEBUG_LOG(HLE, "sceIoIoctlAsync(%08x, %08x, %08x, %08x, %08x, %08x)", id, cmd, indataPtr, inlen, outdataPtr, outlen); sceIoIoctl(id, cmd, indataPtr, inlen, outdataPtr, outlen); __IoCompleteAsyncIO(id); return 0; }
void sceIoReadAsync() { DEBUG_LOG(HLE,"sceIoReadAsync(%d)",PARAM(0)); sceIoRead(); __IoCompleteAsyncIO(PARAM(0)); RETURN(0); }
void sceIoLseek32Async() { DEBUG_LOG(HLE,"sceIoLseek32Async(%d) sorta implemented",PARAM(0)); sceIoLseek32(); __IoCompleteAsyncIO(PARAM(0)); RETURN(0); }
u32 sceIoOpenAsync(const char *filename, int flags, int mode) { DEBUG_LOG(HLE, "sceIoOpenAsync() sorta implemented"); u32 fd = sceIoOpen(filename, flags, mode); // TODO: This can't actually have a callback yet, but if it's set before waiting, it should be called. __IoCompleteAsyncIO(fd); // We have to return an fd here, which may have been destroyed when we reach Wait if it failed. return fd; }
u32 __IoClose(SceUID actedFd, int closedFd) { DEBUG_LOG(HLE, "Deferred IoClose(%d, %d)", actedFd, closedFd); __IoCompleteAsyncIO(closedFd); return kernelObjects.Destroy < FileNode > (closedFd); }
void sceIoLseekAsync() { sceIoLseek(); __IoCompleteAsyncIO(PARAM(0)); RETURN(0); }
u32 __IoClose(SceUID id, int param) { DEBUG_LOG(HLE,"Deferred IoClose(%d)",id); __IoCompleteAsyncIO(id); return kernelObjects.Destroy<FileNode>(id); }