Difference between revisions of "SceSblSsSmComm"
Jump to navigation
Jump to search
Line 121: | Line 121: | ||
<source lang="c"> | <source lang="c"> | ||
− | typedef struct | + | typedef struct SceSblSmCommGcData { |
− | { | + | int unk_0; // 1 |
− | + | int gc_command; | |
− | + | char gc_buffer[0x800]; | |
− | + | int gc_param; | |
− | + | int length; | |
− | + | int unk_810; // 0 | |
− | + | } SceSblSmCommGcData; /* size = 0x814 */ | |
− | } | + | |
− | int sceSblSmCommCallFunc(int id, int command_id, int* f00d_resp, | + | typedef struct SceSblSmCommMsifData { |
+ | unsigned int unk00; | ||
+ | unsigned int unk04; | ||
+ | unsigned int unk08; | ||
+ | unsigned int unk0C; | ||
+ | unsigned int unk10; | ||
+ | unsigned int unk14; | ||
+ | unsigned int unk18; | ||
+ | unsigned int unk1C; | ||
+ | } SceSblSmCommMsifData; /* size = 0x20 */ | ||
+ | |||
+ | int sceSblSmCommCallFunc(int id, int command_id, int *f00d_resp, void *data, int size); | ||
</source> | </source> | ||
Revision as of 13:48, 20 August 2017
SceSblSsSmComm is a kernel module that is primary responsible for sending F00D commands.
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceSblSsSmComm | Non-secure | Kernel | 0xA6A2A041 |
3.60 | SceSblSsSmComm | ? | Kernel | 0xBB4B5D92 |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69 | SceSblSmCommForKernel | Non-secure | Kernel | 0xCD3C89B6 |
3.60 | SceSblSmCommForKernel | ? | Kernel | 0xCD3C89B6 |
1.69 | SceSblSsSmComm | Non-secure | User | 0xD8DC7847 |
SceSblSmCommForKernel
sceSblSmCommStopSm
Version | NID |
---|---|
1.69 | 0x0631F8ED |
3.60 | 0x0631F8ED |
This function calls sceSblSmCommCallFunc with -1
as command_id
and then calls sceSblSmSchedProxyWait.
int sceSblSmCommStopSm(int id, int result[2]);
sceSblSmCommStartSm1
Version | NID |
---|---|
1.69 | 0x992BB9DB |
3.60 | 0x039C73B1 |
char hardcoded_data[0x90] =
{
0x01,0x00,0x00,0x00, 0x00,0x00,0x08,0x28,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x80,0x00,0x00,0x00, 0xC0,0x00,0xF0,0x00,
0x00,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x80,0x09,0x80,0x03, 0x00,0x00,0xC3,0x00,
0x00,0x00,0x80,0x09, 0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
};
typedef SceSblSmCommContext130 {
uint32_t unk_0;
uint32_t unk_4; // 2
char data0[0x90]; //hardcoded data
char data1[0x90];
uint32_t unk_128; // 2
uint32_t unk_12C;
} SceSblSmCommContext130;
int sceSblSmCommStartSm1(int priority, const char *elf_data, int elf_size, int num1, SceSblSmCommContext130 *ctx_130, int* id);
sceSblSmCommStartSm2
Version | NID |
---|---|
3.60 | 0x7863A0CC |
int sceSblSmCommStartSm2(int priority, char* elf_path, int num1, sm_comm_ctx_130* ctx_130, int* id);
Priority is binary: 1 = low, 0 = high. Running a high priority SM module while a low priority one is currently running will suspend it.
sceSblSmCommCallFunc
Version | NID |
---|---|
1.69 | 0xDB9FC204 |
3.60 | 0xDB9FC204 |
sm_comm_context is described more here
f00d_resp comes from Request Buffer from offset 0x08
gc_param is generated by game card and has value 0x01
typedef struct SceSblSmCommGcData {
int unk_0; // 1
int gc_command;
char gc_buffer[0x800];
int gc_param;
int length;
int unk_810; // 0
} SceSblSmCommGcData; /* size = 0x814 */
typedef struct SceSblSmCommMsifData {
unsigned int unk00;
unsigned int unk04;
unsigned int unk08;
unsigned int unk0C;
unsigned int unk10;
unsigned int unk14;
unsigned int unk18;
unsigned int unk1C;
} SceSblSmCommMsifData; /* size = 0x20 */
int sceSblSmCommCallFunc(int id, int command_id, int *f00d_resp, void *data, int size);
SceSblSsSmComm
sceSblSmCommStopSm
Version | NID |
---|---|
1.69 | 0x631F8ED |
sceSblSmCommStartSm_
Version | NID |
---|---|
1.69 | 0x992BB9DB |
sceSblSmCommCallFunc
Version | NID |
---|---|
1.69 | 0xDB9FC204 |