SceSdif

From Vita Development Wiki
Jump to navigation Jump to search

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 mode);

sdstor_read_sector

Version NID
3.60 0xb9593652
int sdstor_read_sector(sd_context_part* ctx, int sector, char* buffer, int mode);

sdstor_write_sector_async

Version NID
3.60 0x175543d2
int sdstor_write_sector_async(sd_context_part* ctx, int sector, char* buffer, int mode);

sdstor_write_sector

Version NID
3.60 0xe0781171
int sdstor_write_sector(sd_context_part* ctx, int sector, char* buffer, int mode);

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);