drivers/memstick/core/ms_block.h
Source file repositories/reference/linux-study-clean/drivers/memstick/core/ms_block.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/memstick/core/ms_block.h- Extension
.h- Size
- 7108 bytes
- Lines
- 287
- Domain
- Driver Families
- Bucket
- drivers/memstick
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct ms_boot_headerstruct ms_system_itemstruct ms_system_entrystruct ms_boot_attr_infostruct ms_cis_idistruct ms_boot_pagestruct msb_datastruct chs_entryenum msb_readpage_statesenum msb_write_block_statesenum msb_send_command_statesenum msb_reset_statesenum msb_par_switch_states
Annotated Snippet
struct ms_boot_header {
unsigned short block_id;
unsigned short format_reserved;
unsigned char reserved0[184];
unsigned char data_entry;
unsigned char reserved1[179];
} __packed;
struct ms_system_item {
unsigned int start_addr;
unsigned int data_size;
unsigned char data_type_id;
unsigned char reserved[3];
} __packed;
struct ms_system_entry {
struct ms_system_item disabled_block;
struct ms_system_item cis_idi;
unsigned char reserved[24];
} __packed;
struct ms_boot_attr_info {
unsigned char memorystick_class;
unsigned char format_unique_value1;
unsigned short block_size;
unsigned short number_of_blocks;
unsigned short number_of_effective_blocks;
unsigned short page_size;
unsigned char extra_data_size;
unsigned char format_unique_value2;
unsigned char assembly_time[8];
unsigned char format_unique_value3;
unsigned char serial_number[3];
unsigned char assembly_manufacturer_code;
unsigned char assembly_model_code[3];
unsigned short memory_manufacturer_code;
unsigned short memory_device_code;
unsigned short implemented_capacity;
unsigned char format_unique_value4[2];
unsigned char vcc;
unsigned char vpp;
unsigned short controller_number;
unsigned short controller_function;
unsigned char reserved0[9];
unsigned char transfer_supporting;
unsigned short format_unique_value5;
unsigned char format_type;
unsigned char memorystick_application;
unsigned char device_type;
unsigned char reserved1[22];
unsigned char format_uniqure_value6[2];
unsigned char reserved2[15];
} __packed;
struct ms_cis_idi {
unsigned short general_config;
unsigned short logical_cylinders;
unsigned short reserved0;
unsigned short logical_heads;
unsigned short track_size;
unsigned short page_size;
unsigned short pages_per_track;
unsigned short msw;
unsigned short lsw;
unsigned short reserved1;
unsigned char serial_number[20];
unsigned short buffer_type;
unsigned short buffer_size_increments;
unsigned short long_command_ecc;
unsigned char firmware_version[28];
unsigned char model_name[18];
unsigned short reserved2[5];
unsigned short pio_mode_number;
unsigned short dma_mode_number;
unsigned short field_validity;
unsigned short current_logical_cylinders;
unsigned short current_logical_heads;
unsigned short current_pages_per_track;
unsigned int current_page_capacity;
unsigned short mutiple_page_setting;
unsigned int addressable_pages;
unsigned short single_word_dma;
unsigned short multi_word_dma;
unsigned char reserved3[128];
} __packed;
struct ms_boot_page {
struct ms_boot_header header;
Annotation
- Detected declarations: `struct ms_boot_header`, `struct ms_system_item`, `struct ms_system_entry`, `struct ms_boot_attr_info`, `struct ms_cis_idi`, `struct ms_boot_page`, `struct msb_data`, `struct chs_entry`, `enum msb_readpage_states`, `enum msb_write_block_states`.
- Atlas domain: Driver Families / drivers/memstick.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.