Difference between revisions of "SceMemDisk"
Jump to navigation
Jump to search
(Created page with "= Module = {| class="wikitable" ! Version !! World !! Privilege |- | 0.931-0.996 || Non-secure || Kernel |} Example code <source lang="C"> void md_access_test(void){ int...") |
|||
Line 56: | Line 56: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | [[Category:ARM]] | ||
+ | [[Category:Kernel]] | ||
+ | [[Category:Modules]] |
Latest revision as of 21:19, 1 May 2023
Module
Version | World | Privilege |
---|---|---|
0.931-0.996 | Non-secure | Kernel |
Example code
void md_access_test(void){
int md_res;
SceUID memid, fd;
memid = sceKernelAllocMemBlock("md_buffer", 0x0C20D060, 0x10000, NULL);
md_res = 0xDEADBEEF;
res = sceIoDevctl("md0:", 1, &memid, sizeof(memid), &md_res, sizeof(md_res));
sceClibPrintf("sceIoDevctl: 0x%X md_res: 0x%X\n", res, md_res);
res = sceIoRemove("md0:0");
sceClibPrintf("sceIoRemove: 0x%X\n", res);
fd = sceIoOpen("md0:0", SCE_O_WRONLY, 0);
sceClibPrintf("sceIoOpen: 0x%X\n", fd);
if(fd >= 0){
char buf[0x200];
sceClibStrncpy(buf, "Hello", 0x200);
res = sceIoWrite(fd, buf, sizeof(buf));
sceIoClose(fd);
sceClibPrintf("sceIoWrite: 0x%X\n", res);
}
fd = sceIoOpen("md0:0", SCE_O_RDONLY, 0);
sceClibPrintf("sceIoOpen: 0x%X\n", fd);
if(fd >= 0){
char buf[0x200];
sceClibMemset(buf, 0, sizeof(buf));
res = sceIoRead(fd, buf, 0x200);
sceIoClose(fd);
sceClibPrintf("sceIoRead: 0x%X\n", res);
sceClibPrintf("Msg: %s\n", buf);
}
res = sceIoRemove("md0:0");
sceClibPrintf("sceIoRemove: 0x%X\n", res);
res = sceIoRemove("md0:");
sceClibPrintf("sceIoRemove: 0x%X\n", res);
sceKernelFreeMemBlock(memid);
}