SceSdstor

Module
This module is responsible for initializing all storage devices. This includes:
 * eMMC
 * Game gard
 * Memory card
 * USB Mass Storage

Based on layout of data segment and code of some subroutines (mbr table init, partition entry table init etc) it can be said that there are 5 devices in total. However only first 4 devices are known at the moment.

Libraries
SceSdstor module does not export any function exсept module_start.

Block Device Naming Rules
First level prefix: hardware device

Second level prefix: partition table related?


 * lp - general.
 * pp - no part.

Third level prefix: active/inactive partition selection


 * ina: inactive
 * act: active
 * ign: ignore (for devices, that don't support this. but seems same to ina)

Fourth level prefix: partition


 * unused
 * idstor
 * sloader
 * os
 * vsh
 * vshdata
 * vtrm
 * user
 * userext
 * gamero
 * gamerw
 * updater
 * sysdata
 * mediaid
 * pidata
 * entire - just device entry

Partition Block Devices
Each partition has a numeric alias (string) that seems to be used to reference the partition.

Numeric names most likely follow order of partitions in MBR.

To access device node use  prefix (like  ).

There can be up to 16 aliases from 0 to 15 per physical device (eMMC, Game Card, Memory Card) and alias 16 is hardcoded and called.

Aliases 000-015 correspond to eMMC partitions.

Alias 016 corresponds to entire eMMC.

Aliases 100-115 correspond to Game Card partitions.

Alias 116 corresponds to entire Game Card or SD Card.

Aliases 200-215 correspond to Memory Card partitions.

Alias 216 corresponds to entire Memory Card.

Not all numeric names are fixed except for hardcoded ones.

Types
Looks like SceSdstor driver uses its own device type