The PSP IO Drivers

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

The PSP IO Drivers

Post by moonlight »

The psp IO drivers and their locations in firmware 1.50 (in the order they are created).

driver lflash (sceLFatFs_Driver+0xE46C):

Code: Select all

name = "lflash";
dev_type = 0x04;  (block device?)
unk2 = 0x0200; // 512 block size?
name2 = NULL;
funcs = sceLFatFs_Driver+0xE480

IoInit = sceLFatFs_Driver+0x0000A434;
IoExit = sceLFatFs_Driver+0x0000B0B4;
IoOpen = sceLFatFs_Driver+0x00008ED0;
IoClose = sceLFatFs_Driver+0x00009238;
IoRead = sceLFatFs_Driver+0x0000B164;
IoWrite = sceLFatFs_Driver+0x0000B2DC;
IoLseek = sceLFatFs_Driver+0x0000B410;
IoIoctl = sceLFatFs_Driver+0x0000B564;
IoRemove = sceLFatFs_Driver+0x0000B608
IoMkdir = sceLFatFs_Driver+0x0000B63c;
IoRmdir = sceLFatFs_Driver+0x0000B670;
IoDopen = sceLFatFs_Driver+0x0000B6A4;
IoDclose = sceLFatFs_Driver+0x0000B6D8;
IoDread = sceLFatFs_Driver+0x0000B714;
IoGetstat = sceLFatFs_Driver+0x0000B750;
IoChstat = sceLFatFs_Driver+0x0000B7A0;
IoRename = sceLFatFs_Driver+0x0000B7D4;
IoChdir = sceLFatFs_Driver+0x0000B808;
IoMount = sceLFatFs_Driver+0x0000B83c;
IoUmount = sceLFatFs_Driver+0x0000B848;
IoDevctl = sceLFatFs_Driver+0x0000B854;
IoUnk21 = sceLFatFs_Driver+0x0000B8B0;
driver flashfat sceLFatFs_Driver+0xE2FC

Code: Select all

name= "flashfat";
dev_type = 0x10; // FileSystem
unk2 = 1; // size of unit? (byte)
name2 = "FAT over USB Mass"; // !?
funcs = sceLFatFs_Driver+0xE2A4;

IoInit = sceLFatFs_Driver+0x00001C24
IoExit = sceLFatFs_Driver+0x00001C48
IoOpen = sceLFatFs_Driver+0x00001C6C
IoClose = sceLFatFs_Driver+0x00001D80
IoRead = sceLFatFs_Driver+0x00001E68
IoWrite = sceLFatFs_Driver+0x00001F6C
IoLseek = sceLFatFs_Driver+0x00002074
IoIoctl = sceLFatFs_Driver+0x000021B0
IoRemove = sceLFatFs_Driver+0x000022E8
IoMkdir = sceLFatFs_Driver+0x000023E0
IoRmdir = sceLFatFs_Driver+0x000024E8
IoDopen = sceLFatFs_Driver+0x000025E0
IoDclose = sceLFatFs_Driver+0x000026D8
IoDread = sceLFatFs_Driver+0x000027FC
IoGetstat = sceLFatFs_Driver+0x000028F0
IoChstat = sceLFatFs_Driver+0x000029F4
IoRename = sceLFatFs_Driver+0x00002B0C
IoChdir = sceLFatFs_Driver+0x00002B4C
IoMount = sceLFatFs_Driver+0x00002B84
IoUmount = sceLFatFs_Driver+0x00002CB8
IoDevctl = sceLFatFs_Driver+0x00002DAC
IoUnk21 = sceLFatFs_Driver+0x00002EE8
driver irda sceSIRCS_IrDA_Driver+0x2070 (only for game mode):

Code: Select all

name = "irda";
dev_type = 0x01; // ?
unk2 = 0; // ?
funcs = sceSIRCS_IrDA_Driver+0x20;

IoInit = sceSIRCS_IrDA_Driver+0x00001488
IoExit = sceSIRCS_IrDA_Driver+0x000014D4
IoOpen = sceSIRCS_IrDA_Driver+0x00001500
IoClose = sceSIRCS_IrDA_Driver+0x0000151C
IoRead = sceSIRCS_IrDA_Driver+0x00001538
IoWrite = sceSIRCS_IrDA_Driver+0x00001558
IoLseek = NULL;
IoIoctl = sceSIRCS_IrDA_Driver+0x000007C0
IoRemove = NULL;
IoMkdir = NULL;
IoRmdir = NULL;
IoDopen = NULL;
IoDclose = NULL;
IoDread = NULL;
IoGetstat = NULL;
IoChstat = NULL;
IoRename = NULL;
IoChdir = NULL;
IoMount = NULL;
IoUmount = NULL;
IoDevctl = sceSIRCS_IrDA_Driver+0x00000948
IoUnk21 = NULL;
driver umd sceUmd9660_driver+0x6318:

Code: Select all

name = "umd";
dev_type = 0x04; // block device?
unk2 = 0x0800; // 2048 block size?
name2 = "UMD9660";
funcs = sceUmd9660_driver+0x62c0

IoInit = sceUmd9660_driver+0x00000A44
IoExit = sceUmd9660_driver+0x00000434
IoOpen = sceUmd9660_driver+0x000004E8
IoClose = sceUmd9660_driver+0x00000134
IoRead = sceUmd9660_driver+0x000001BC
IoWrite = NULL;
IoLseek = sceUmd9660_driver+0x00000000
IoIoctl = sceUmd9660_driver+0x000007C4
IoRemove = NULL;
IoMkdir = NULL;
IoRmdir = NULL;
IoDopen = NULL;
IoDclose = NULL;
IoDread = NULL;
IoGetstat = NULL;
IoChstat = NULL;
IoRename = NULL;
IoChdir = NULL;
IoMount = sceUmd9660_driver+0x00001DD4
IoUmount = sceUmd9660_driver+0x00001DE0
IoDevctl = sceUmd9660_driver+0x00000860
IoUnk21 = NULL;
driver isofs sceIsofs_driver+0x8E78:

Code: Select all

name = "isofs";
dev_type = 0x10; // FileSystem
unk2 = 0x0800; // 2048 block size?
name2 = "ISOFS";
funcs = sceIsofs_driver+0x8E20;

IoInit = sceIsofs_driver+0x000052B4
IoExit = sceIsofs_driver+0x00006390
IoOpen = sceIsofs_driver+0x000067B0
IoClose = sceIsofs_driver+0x00006088
IoRead = sceIsofs_driver+0x00006A84
IoWrite = NULL;
IoLseek = sceIsofs_driver+0x00006CA4
IoIoctl = sceIsofs_driver+0x00006E00
IoRemove = NULL;
IoMkdir = NULL;
IoRmdir = NULL;
IoDopen = sceIsofs_driver+0x0000598C
IoDclose = sceIsofs_driver+0x00006160
IoDread = sceIsofs_driver+0x00005CD4
IoGetstat = sceIsofs_driver+0x0000646C
IoChstat = NULL;
IoRename = NULL;
IoChdir = sceIsofs_driver+0x00005154
IoMount = sceIsofs_driver+0x00005440
IoUmount = sceIsofs_driver+0x0000624C
IoDevctl = sceIsofs_driver+0x00006F88
IoUnk21 = NULL;
driver mscmhc sceMScm_Driver+0x6F60:

Code: Select all

name = "mscmhc";
dev_type = 0x01; // ?
unk2 = 0; // ?
name2 = "MS host controller";
funcs = sceMScm_Driver+0x6EB0;

IoInit = sceMScm_Driver+0x000055EC
IoExit = sceMScm_Driver+0x000055F4
IoOpen = sceMScm_Driver+0x00005650
IoClose = sceMScm_Driver+0x000056E4
IoRead = NULL;
IoWrite = NULL;
IoLseek = NULL;
IoIoctl = NULL;
IoRemove = NULL;
IoMkdir = NULL;
IoRmdir = NULL;
IoDopen = NULL;
IoDclose = NULL;
IoDread = NULL;
IoGetstat = NULL;
IoChstat = NULL;
IoRename = NULL;
IoChdir = NULL;
IoMount = NULL;
IoUmount = NULL;
IoDevctl = sceMScm_Driver+0x000056EC
IoUnk21 = NULL;
driver mscm sceMScm_Driver+0x6F74:

Code: Select all

name = "mscm";
dev_type = 0x01; // ?
unk2 = 0; // ?
name2 = "MS class manager";
funcs = sceMScm_Driver+0x6F08;

IoInit = sceMScm_Driver+0x000055EC
IoExit = sceMScm_Driver+0x000055F4
IoOpen = sceMScm_Driver+0x00005650
IoClose = sceMScm_Driver+0x000056E4
IoRead = NULL;
IoWrite = NULL;
IoLseek = NULL;
IoIoctl = NULL;
IoRemove = NULL;
IoMkdir = NULL;
IoRmdir = NULL;
IoDopen = NULL;
IoDclose = NULL;
IoDread = NULL;
IoGetstat = NULL;
IoChstat = NULL;
IoRename = NULL;
IoChdir = NULL;
IoMount = NULL;
IoUmount = NULL;
IoDevctl = sceMScm_Driver+0x00005E6C
IoUnk21 = NULL;
driver fatms sceMSFAT_Driver+0x01B6A4:

Code: Select all

name = "fatms";
dev_type = 0x10; // File System
unk2 = 0x0800; // 2048 block size?
name2 = "FATMS";
funcs = sceMSFAT_Driver+0x01B738;

IoInit = sceMSFAT_Driver+0x0000322C
IoExit = sceMSFAT_Driver+0x00003248
IoOpen = sceMSFAT_Driver+0x00003264
IoClose = sceMSFAT_Driver+0x00003298
IoRead = sceMSFAT_Driver+0x000032B4
IoWrite = sceMSFAT_Driver+0x000032D0
IoLseek = sceMSFAT_Driver+0x000032EC
IoIoctl = sceMSFAT_Driver+0x00003308
IoRemove = sceMSFAT_Driver+0x0000333C
IoMkdir = sceMSFAT_Driver+0x00003370
IoRmdir = sceMSFAT_Driver+0x000033A4
IoDopen = sceMSFAT_Driver+0x000033D8
IoDclose = sceMSFAT_Driver+0x0000340C
IoDread = sceMSFAT_Driver+0x00003428
IoGetstat = sceMSFAT_Driver+0x0000345C
IoChstat = sceMSFAT_Driver+0x00003490
IoRename = sceMSFAT_Driver+0x000034C4
IoChdir = sceMSFAT_Driver+0x000034F8
IoMount = sceMSFAT_Driver+0x00003514
IoUmount = sceMSFAT_Driver+0x00003530
IoDevctl = sceMSFAT_Driver+0x0000354C
IoUnk21 = sceMSFAT_Driver+0x000035B8
driver fatmsOem sceMSFAT_Driver+0x01B790:

Code: Select all

name = "fatmsOem";
dev_type = 0x10; // FileSystem
unk2 = 0x0800; // 2048 block size?
name2 = "FATMSOEM";
funcs = sceMSFAT_Driver+0x01B824;

IoInit = sceMSFAT_Driver+0x000035D4
IoExit = sceMSFAT_Driver+0x00003624
IoOpen = sceMSFAT_Driver+0x00003674
IoClose = sceMSFAT_Driver+0x000036A8
IoRead = sceMSFAT_Driver+0x000036C4
IoWrite = sceMSFAT_Driver+0x000036E0
IoLseek = sceMSFAT_Driver+0x000036FC
IoIoctl = sceMSFAT_Driver+0x00003718
IoRemove = sceMSFAT_Driver+0x0000374C
IoMkdir = sceMSFAT_Driver+0x00003780
IoRmdir = sceMSFAT_Driver+0x000037B4
IoDopen = sceMSFAT_Driver+0x000037E8
IoDclose = sceMSFAT_Driver+0x0000381C
IoDread = sceMSFAT_Driver+0x00003838
IoGetstat = sceMSFAT_Driver+0x0000386C
IoChstat = sceMSFAT_Driver+0x000038A0
IoRename = sceMSFAT_Driver+0x000038D4
IoChdir = sceMSFAT_Driver+0x00003908
IoMount = sceMSFAT_Driver+0x00003924
IoUmount = sceMSFAT_Driver+0x00003940
IoDevctl = sceMSFAT_Driver+0x0000395C
IoUnk21 = sceMSFAT_Driver+0x000039D0
driver msstor sceMSstor_Driver+0x8BCC:

Code: Select all

name = "msstor";
dev_type = 0x04; // block device?
unk2 = 0; // ?
name2 = "MSstor whole dev";
funcs = sceMSstor_Driver+0x8B1C;

IoInit = sceMSstor_Driver+0x0000492C
IoExit = sceMSstor_Driver+0x00004A14
IoOpen = sceMSstor_Driver+0x00004A90
IoClose = sceMSstor_Driver+0x00004C88
IoRead = sceMSstor_Driver+0x00004ED8
IoWrite = sceMSstor_Driver+0x00005008
IoLseek = sceMSstor_Driver+0x00005258
IoIoctl = sceMSstor_Driver+0x000055D0
IoRemove = NULL;
IoMkdir = NULL;
IoRmdir = NULL;
IoDopen = NULL;
IoDclose = NULL;
IoDread = NULL;
IoGetstat = NULL;
IoChstat = NULL;
IoRename = NULL;
IoChdir = NULL;
IoMount = NULL;
IoUmount = NULL;
IoDevctl = sceMSstor_Driver+0x00005F20
IoUnk21 = NULL;
driver msstor0p sceMSstor_Driver+0x8BE0:

Code: Select all

name = "msstor0p";
dev_type = 0x04 // block device?
unk2 = 0; // ?
name2 = "MSstor partition #1";
funcs = sceMSstor_Driver+0x8B74

IoInit = sceMSstor_Driver+0x00004A00
IoExit = sceMSstor_Driver+0x00004A88
IoOpen = sceMSstor_Driver+0x00004B30
IoClose = sceMSstor_Driver+0x00004C88
IoRead = sceMSstor_Driver+0x00004F70
IoWrite = sceMSstor_Driver+0x000050A0
IoLseek = sceMSstor_Driver+0x00005410
IoIoctl = sceMSstor_Driver+0x00005794
IoRemove = NULL;
IoMkdir = NULL;
IoRmdir = NULL;
IoDopen = NULL;
IoDclose = NULL;
IoDread = NULL;
IoGetstat = NULL;
IoChstat = NULL;
IoRename = NULL;
IoChdir = NULL;
IoMount = NULL;
IoUmount = NULL;
IoDevctl = sceMSstor_Driver+0x00005F20
IoUnk21 = NULL;
User avatar
dot_blank
Posts: 498
Joined: Wed Sep 28, 2005 8:47 am
Location: Brasil

Post by dot_blank »

wonderful bro thank you :)
10011011 00101010 11010111 10001001 10111010
HaQue
Posts: 91
Joined: Fri Nov 25, 2005 8:52 am
Location: Adelaide, Australia
Contact:

Post by HaQue »

Thats great!

Do you have any info about the wlan driver?
User avatar
0okm0000
Posts: 116
Joined: Fri Jan 13, 2006 9:51 am
Contact:

Post by 0okm0000 »

driver flashfat sceLFatFs_Driver+0xE2FC
...
name2 = "FAT over USB Mass"; // !?
...
access flash fat over USB ?
PSP hardware hack
http://0okm.blogspot.com/
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

0okm0000 wrote:
driver flashfat sceLFatFs_Driver+0xE2FC
...
name2 = "FAT over USB Mass"; // !?
...
access flash fat over USB ?
The flashfat driver is the one responsable of the file system for flash0 and flash1. I don't know why it has that rare name with the USB word... :O
dark_zarkon
Posts: 26
Joined: Wed Jan 11, 2006 9:35 pm

Post by dark_zarkon »

moonlight wrote:
0okm0000 wrote:
driver flashfat sceLFatFs_Driver+0xE2FC
...
name2 = "FAT over USB Mass"; // !?
...
access flash fat over USB ?
The flashfat driver is the one responsable of the file system for flash0 and flash1. I don't know why it has that rare name with the USB word... :O
this doesn't mean that flash0 is accessible with a usb cable?
i'm italian...
forgive me for my english! :)
User avatar
groepaz
Posts: 305
Joined: Thu Sep 01, 2005 7:44 am
Contact:

Post by groepaz »

interistingly. that "fat over usb mass" can be found in the IPL aswell... *shrug*
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

HaQue wrote:Thats great!

Do you have any info about the wlan driver?
aargh. i forgot wlan and usb. I don't actually know if they create IoFileMgr drivers, but i will find out it.
Post Reply