Difference between revisions of "SceMsif"
Jump to navigation
Jump to search
(→Types) |
|||
Line 25: | Line 25: | ||
== Types == | == Types == | ||
+ | |||
+ | <source lang="C"> | ||
+ | |||
+ | 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 | ||
+ | |||
+ | 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) | ||
+ | |||
+ | uint8_t unk_80[0x100]; | ||
+ | |||
+ | uint8_t unk_180[0x40]; // probably some buffer for accessing device | ||
+ | |||
+ | uint8_t unk_1C0[0x50]; // probably some buffer for accessing device | ||
+ | |||
+ | 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; | ||
+ | |||
+ | </source> | ||
== Data segment layout == | == Data segment layout == |
Revision as of 18:18, 17 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
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)
uint8_t unk_80[0x100];
uint8_t unk_180[0x40]; // probably some buffer for accessing device
uint8_t unk_1C0[0x50]; // probably some buffer for accessing device
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 | 0x1480 | unknown |
0x1480 | 0x440 | SceMsif_ctx |
0x18C0 | 0x100 | 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 ms_get_state();
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);