Пример #1
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;
}
Пример #2
0
static int myIoIoctl(SceUID fd, unsigned int cmd, void * indata, int inlen, void * outdata, int outlen)
{
	int ret;

	if(cmd == 0x04100001) {
		printk("%s: setting PGD key\n", __func__);
		hexdump(indata, inlen);
	}

	if(cmd == 0x04100002) {
		printk("%s: setting PGD offset: 0x%08X\n", __func__, *(uint*)indata);
	}

	if (g_is_custom_ps1 || (g_plain_doc_fd >= 0 && g_plain_doc_fd == fd)) {
		if (cmd == 0x04100001) {
			ret = 0;
			printk("%s: [FAKE] 0x%08X 0x%08X -> 0x%08X\n", __func__, fd, cmd, ret);
			goto exit;
		}

		if (cmd == 0x04100002) {
			ret = sceIoLseek32(fd, *(u32*)indata, PSP_SEEK_SET);

			if(ret < 0) {
				printk("%s: sceIoLseek32 -> 0x%08X\n", __func__, ret);
			}

			ret = 0;
			printk("%s: [FAKE] 0x%08X 0x%08X -> 0x%08X\n", __func__, fd, cmd, ret);
			goto exit;
		}
	}

	ret = sceIoIoctl(fd, cmd, indata, inlen, outdata, outlen);

exit:
	printk("%s: 0x%08X -> 0x%08X\n", __func__, fd, ret);

	return ret;
}
Пример #3
0
int myIoIoctl(SceUID fd, unsigned int cmd, void * indata, int inlen, void * outdata, int outlen)
{
	int ret;

	if (cmd == 0x04100001 || cmd == 0x04100002) {
		if (is_nodrm_fd(fd)) {
			ret = 0;
			goto exit;
		}
	}

	ret = sceIoIoctl(fd, cmd, indata, inlen, outdata, outlen);

exit:
#ifdef DEBUG
	if (cmd == 0x04100001 || cmd == 0x04100002) {
		printk("%s: 0x%08X -> 0x%08X\n", __func__, fd, ret);
	}
#endif

	return ret;
}