SceSdif: Difference between revisions
Jump to navigation
Jump to search
Line 571: | Line 571: | ||
|} | |} | ||
<source lang="c">int sdstor_write_sector(sd_context_part* ctx, int sector, char* buffer, int | <source lang="c">int sdstor_write_sector(sd_context_part* ctx, int sector, char* buffer, int nSectors);</source> | ||
=== sdstor_copy_ctx === | === sdstor_copy_ctx === |
Revision as of 21:44, 23 January 2017
SceSdif is a kernel module that is primary responsible for communicating with SD devices. This includes onboard eMMC, game card MMC, wi-fi/bluetooth SDIO devices. To communicate with particular device SceSdif module uses device index (sd_ctx_index)
Device Index | Type | Description |
---|---|---|
0 | MMC | onboard eMMC |
1 | MMC | game card |
2 | SDIO | wi-fi/bluetooth |
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceSdif | Non-secure | Kernel | 0xCA882EE3 |
3.60 | SceSdif | ? | Kernel | 0x2E7C52F7 |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69 | SceSdifForDriver | Non-secure | Kernel | 0x96D306FA |
3.60 | SceSdifForDriver | ? | Kernel | 0x96D306FA |
SceSdifForDriver
typedef struct output_23a4ef01 { int unk_0; int unk_4; int unk_8; int unk_C; }; typedef struct output_24 { int unk_0; int unk_4; int unk_8; int unk_C; int unk_10; char unk_14; char unk_15; char unk_16; char unk_17; int unk_18; int unk_1C; int unk_20; int unk_24; }; typedef struct output_76d2b87b { int unk_0; int unk_4; short unk_8; }; typedef struct cmd_input { int size; //0x240 int unk_4; int command; int argument; char data0[0x50]; cmd_input* next_cmd; int unk_64; int unk_68; int unk_6C; int unk_70; int unk_74; sd_context_global* gctx_ptr; int unk_7C; char data1[0x1C0]; }; typedef struct sd_context_data // size is 0xC0 { cmd_input* cmd_ptr; cmd_input* cmd_ptr_next; int unk_8; int unk_C; int sd_index; sd_context_part* ctx; int unk_18; int unk_1C; char data[0xA0]; }; typedef struct sd_context_part // size is currently unknown { sd_context_global* gctx_ptr; ... }; typedef struct sd_context_global // size is 0x24C0 { cmd_input commands[16]; sd_context_data ctx_data; };
module_start
Version | NID |
---|---|
3.60 | 0x935cd196 |
int module_start();
init
Version | NID |
---|---|
3.60 | 0x0eb0ef86 |
int init();
deinit
Version | NID |
---|---|
3.60 | 0xe5e5f42e |
int deinit();
return_error
Version | NID |
---|---|
3.60 | 0x235ad556 |
int return_error();
enable_slow_mode
Version | NID |
---|---|
3.60 | 0xf37cf8e5 |
int enable_slow_mode();
get_card_insert_state1
Version | NID |
---|---|
3.60 | 0x36a2b01b |
int get_card_insert_state1(int sd_ctx_index);
get_card_insert_state2
Version | NID |
---|---|
3.60 | 0xfd9e5cfa |
int get_card_insert_state2(int sd_ctx_index);
gc_cmd56_response
Version | NID |
---|---|
3.60 | 0x134e06c4 |
int gc_cmd56_response(sd_context_part* ctx, char* buffer, int length);
gc_cmd56_request
Version | NID |
---|---|
3.60 | 0xb0996641 |
int gc_cmd56_request(sd_context_part* ctx, char* buffer, int length);
get_sd_context_global
Version | NID |
---|---|
3.60 | 0xdc8f52f8 |
sd_context_global* get_sd_context_global(int sd_ctx_index);
get_sd_context_part_emmc
Version | NID |
---|---|
3.60 | 0x6a71987f |
sd_context_part* get_sd_context_part_emmc(int sd_ctx_index);
get_sd_context_part_game_cart
Version | NID |
---|---|
3.60 | 0xb9ea5b1e |
sd_context_part* get_sd_context_part_game_cart(int sd_ctx_index);
get_sd_context_part_wlan_bt
Version | NID |
---|---|
3.60 | 0x6a8235fc |
sd_context_part* get_sd_context_part_wlan_bt(int sd_ctx_index);
initialize_sd_context_part
Version | NID |
---|---|
3.60 | 0x22c82e79 |
int initialize_sd_context_part(int sd_ctx_index, sd_context_part** result);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x3428884d |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xe80293ef |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xd0f78d9b |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx, int num0, int num1, void* unk2, int num3);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x3c4cdc8b |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx, int num0, int num1, void* unk2, int num3);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x733bc373 |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx, int num);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xdece963b |
int wlan_bt_cmd52_sdio(sd_context_part* ctx, int num0, int num1, void* unk2);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x5d65e66b |
int wlan_bt_cmd52_sdio(sd_context_part* ctx, int num0, int num1, void* unk2);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xbc45c83d |
int wlan_bt_cmd52_sdio(sd_context_part* ctx, int num);
wlan_bt_cmd3_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xaabaa0f0 |
int wlan_bt_cmd3_cmd52_sdio(int sd_ctx_index, sd_context_part** ctx);
wlan_bt
Version | NID |
---|---|
3.60 | 0x855c95e1 |
int wlan_bt(wlan_context* wlan_ctx, void* unk0, void* unk1);
wlan_bt
Version | NID |
---|---|
3.60 | 0x0c66e36f |
int wlan_bt(sd_context_part* ctx, void* unk0);
wlan_bt
Version | NID |
---|---|
3.60 | 0xab0222f2 |
int wlan_bt(sd_context_part* ctx);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x55baeb2d |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xfe6f3e7b |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xf1a24edd |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x1847b18c |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0xd3c1e2b6 |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx, int unk0, int unk1, int unk2);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x5bac6e70 |
int wlan_bt_cmd52_sdio(wlan_context* wlan_ctx, int unk0, int unk1, int unk2);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x01e8eb6c |
int wlan_bt_cmd52_sdio(sd_context_part* ctx, char* output, int destLength_100);
wlan_bt_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x763f1075 |
int wlan_bt_cmd52_sdio(sd_context_part* ctx);
wlan_bt_cmd3_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x53962379 |
int wlan_bt_cmd3_cmd52_sdio(int sd_ctx_index);
wlan_bt_cmd0
Version | NID |
---|---|
3.60 | 0x3b6ab29e |
int wlan_bt_cmd0(wlan_context* wlan_ctx, void* unk0, int* result);
wlan_bt_cmd0_cmd52_sdio
Version | NID |
---|---|
3.60 | 0x180e7395 |
int wlan_bt_cmd0_cmd52_sdio(wlan_context* wlan_ctx, char* output, int destLength_100);
wlan_bt
Version | NID |
---|---|
3.60 | 0x0f157f49 |
int wlan_bt(wlan_context* wlan_ctx);
wlan_bt
Version | NID |
---|---|
3.60 | 0x849e3216 |
int wlan_bt(wlan_context* wlan_ctx);
wlan_bt
Version | NID |
---|---|
3.60 | 0xb05eff68 |
int wlan_bt(wlan_context *wlan_ctx, int unk0);
sdstor_read_sector_async
Version | NID |
---|---|
3.60 | 0x6f8d529b |
int sdstor_read_sector_async(sd_context_part* ctx, int sector, char* buffer, int nSectors);
sdstor_read_sector
Version | NID |
---|---|
3.60 | 0xb9593652 |
int sdstor_read_sector(sd_context_part* ctx, int sector, char* buffer, int nSectors);
sdstor_write_sector_async
Version | NID |
---|---|
3.60 | 0x175543d2 |
int sdstor_write_sector_async(sd_context_part* ctx, int sector, char* buffer, int nSectors);
sdstor_write_sector
Version | NID |
---|---|
3.60 | 0xe0781171 |
int sdstor_write_sector(sd_context_part* ctx, int sector, char* buffer, int nSectors);
sdstor_copy_ctx
Version | NID |
---|---|
3.60 | 0x23a4ef01 |
int sdstor_copy_ctx(sd_context_part* ctx, output_23a4ef01* unk0);
sdstor_cmd0
Version | NID |
---|---|
3.60 | 0x6cc8e28d |
int sdstor_cmd0(int sd_ctx_index);
sdstor_cmd32_cmd33_cmd38_sdio
Version | NID |
---|---|
3.60 | 0x35ba9df8 |
int sdstor_cmd32_cmd33_cmd38_sdio(int sd_ctx_index, int unk0);
sdstor_cmd0_cmd2_cmd3_cmd5_sdio_cmd6
Version | NID |
---|---|
3.60 | 0xc1271539 |
int sdstor_cmd0_cmd2_cmd3_cmd5_sdio_cmd6(int sd_ctx_index, int* result);
sdstor_cmd6_cmd30
Version | NID |
---|---|
3.60 | 0x995748ea |
int sdstor_cmd6_cmd30(sd_context_part *input, int unk0, int unk1, void *unk2);
sdstor
Version | NID |
---|---|
3.60 | 0xe091ba2e |
int sdstor(sd_context_part* unk, int unk0, int unk1, int* unk2);
sdif_write
Version | NID |
---|---|
3.60 | 0x60642f49 |
int sdif_write(sd_context_part *ctx, int unk0, int unk1);
sdif_write
Version | NID |
---|---|
3.60 | 0x0203ecdc |
int sdif_write(sd_context_part *ctx, int unk0, int unk1);
sdif
Version | NID |
---|---|
3.60 | 0x29a71e7f |
int sdif();
sdif_cmd0
Version | NID |
---|---|
3.60 | 0x53518827 |
int sdif_cmd0(sd_context_global *ctx, int *result);
sdif_cmd0
Version | NID |
---|---|
3.60 | 0x475d8e45 |
int sdif_cmd0(int sd_ctx_index);
sdif
Version | NID |
---|---|
3.60 | 0x3df7e207 |
int sdif(int sd_ctx_index, output_24* result);
sdif
Version | NID |
---|---|
3.60 | 0x76d2b87b |
int sdif(int sd_ctx_index, output_76d2b87b* result);
sdif
Version | NID |
---|---|
3.60 | 0xb83f7518 |
int sdif(int sd_ctx_index, output_24* result);
sdif
Version | NID |
---|---|
3.60 | 0xb32776c7 |
int sdif(sd_context_part* ctx, int num_200);
sdif
Version | NID |
---|---|
3.60 | 0xaf702fe7 |
int sdif(sd_context_part* ctx, int num_200);