Difference between revisions of "SceMsif"
Jump to navigation
Jump to search
Line 88: | Line 88: | ||
| 0x0000 || 0x4 || SceMsif_subctx* | | 0x0000 || 0x4 || SceMsif_subctx* | ||
|- | |- | ||
− | | 0x0004 || | + | | 0x0004 || 0x4 || pointer to data at offset 0x18 |
+ | |- | ||
+ | | 0x0008 || 0x4 || unknown | ||
+ | |- | ||
+ | | 0x000C || 0x4 || unknown | ||
|- | |- | ||
| 0x0010 || 0x4 || pointer to table of 11 function pointers | | 0x0010 || 0x4 || pointer to table of 11 function pointers |
Revision as of 13:01, 18 July 2017
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceMsif | Non-secure | Kernel | 0xFA979E8E |
3.60 | SceMsif | ? | Kernel | 0x3305A0FE |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69 | SceMsifForDriver | Non-secure | Kernel | 0xB706084A |
3.60 | SceMsifForDriver | ? | Kernel | 0xB706084A |
Types
typedef struct SceMsif_ctx //size is 0x440
{
void* SceMsif_memblock1_base; // 0x0
SceUID SceMsif_memblock1_id; // 0x4 - size 0x1000 - mapped to 0xE0900000
uint32_t unk_8; // = 0
SceUID SceMsif_evid; // 0xC
fast_mutex SceMsif_fast_mutex; //0x10 - size is 0x40
SceUID SceMsif_memblock2_id; // 0x50
uint32_t unk_54;
uint32_t unk_58; // = 0 - used for suspend resume intr
uint8_t unk_5C;
uint8_t unk_5D;
uint8_t unk_5E; // timewide byte
uint8_t unk_5F; // timewide byte
uint32_t unk_60;
uint32_t unk_64;
uint32_t unk_68;
uint32_t unk_6C;
void* paddr_70; // 0x70 - physical address of unk_180
void* paddr_74; // 0x74 - physical address of unk_1C0
void* SceMsif_memblock2_base; // 0x78 - size 0x18000
void* unk_7C; // = 0xB9E840 (840)
addr_pair paddr_list_80[4];
uint8_t unk_A0[0xE0];
uint8_t unk_180[0x40]; // buffer for accessing device (invalidate range). size confirmed.
uint8_t unk_1C0[0x50]; // buffer for accessing device (invalidate range). size confirmed.
void* paddr_210; // 0x210 - physical address of SceMsif_memblock2_base
uint8_t unk_214[0x214];
SceUID SceMsifSleepCtrl_evid; // 428
SceUID SceMsifSleepCtrl_thid; // 42C - thread id
uint32_t unk_430; // = 0
uint32_t unk_434; // = 0
uint32_t unk_438;
uint32_t unk_43C;
}SceMsif_ctx;
Data segment layout
Address | Size | Description |
---|---|---|
0x0000 | 0x4 | SceMsif_subctx* |
0x0004 | 0x4 | pointer to data at offset 0x18 |
0x0008 | 0x4 | unknown |
0x000C | 0x4 | unknown |
0x0010 | 0x4 | pointer to table of 11 function pointers |
0x0014 | 0x146C | unknown |
0x1480 | 0x440 | SceMsif_ctx |
0x18C0 | 0x4 | SceMsif suspend callback id |
0x18C4 | 0x4 | unknown |
0x18C8 | 0x8 | UInt64 wide time |
0x18D0 | 0x8 | UInt64 probably time in ms |
0x18D8 | 0xE8 | unknown |
SceMsifForDriver
module_start
Version | NID |
---|---|
3.60 | 0x935cd196 |
int module_start();
read_sector
Version | NID |
---|---|
3.60 | 0x58654AA3 |
int ms_read_sector(int sector, char* buffer, int nSectors);
write_sector
Version | NID |
---|---|
3.60 | 0x329035EF |
int ms_write_sector(int sector, char* buffer, int nSectors);
enable_slow_mode
Version | NID |
---|---|
3.60 | 0x4B751CE6 |
int ms_enable_slow_mode();
disable_slow_mode
Version | NID |
---|---|
3.60 | 0x75848756 |
int ms_disable_slow_mode();
get_slow_mode_state
Version | NID |
---|---|
3.60 | 0x491E25B5 |
int ms_get_slow_mode_state();
init1
Version | NID |
---|---|
3.60 | 0x4EA579EF |
int ms_init1();
init2
Version | NID |
---|---|
3.60 | 0xD0307849 |
int ms_init2(void* unk0_40);
ms_get_state
Version | NID |
---|---|
3.60 | 0xF997286B |
int init_mbr();
ms_substract_pair
Version | NID |
---|---|
3.60 | 0x855E1E38 |
typedef struct ms_pair
{
uint32_t unk_0;
uint32_t unk_4;
} ms_pair;
ms_pair ms_substract_pair();
ms_unk
Version | NID |
---|---|
3.60 | 0x0f86BEEA |
int ms_unk(int unk0, int unk1);
ms_unk
Version | NID |
---|---|
3.60 | 0x6EDE7DBA |
int ms_unk(int unk0);
ms_unk
Version | NID |
---|---|
3.60 | 0x718BDFDE |
int ms_unk(int unk0);