drivers/scsi/myrs.h
Source file repositories/reference/linux-study-clean/drivers/scsi/myrs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/myrs.h- Extension
.h- Size
- 37757 bytes
- Lines
- 1134
- Domain
- Driver Families
- Bucket
- drivers/scsi
- 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 myrs_mem_typestruct myrs_ctlr_infostruct myrs_ldev_infostruct myrs_pdev_infostruct myrs_fwstatstruct myrs_eventstruct myrs_cmd_ctrlstruct myrs_cmd_tmostruct myrs_pdevstruct myrs_ldevstruct myrs_devmapstruct myrs_sgestruct myrs_stat_mboxstruct myrs_cmdblkstruct myrs_hbastruct myrs_privdataenum myrs_cmd_opcodeenum myrs_ioctl_opcodeenum myrs_cpu_typeenum myrs_devstateenum myrs_raid_levelenum myrs_stripe_sizeenum myrs_cacheline_sizeenum myrs_opdevenum DAC960_GEM_reg_offsetenum DAC960_BA_reg_offsetenum DAC960_LP_reg_offsetfunction dma_addr_writeql
Annotated Snippet
struct myrs_mem_type {
enum {
MYRS_MEMTYPE_RESERVED = 0x00,
MYRS_MEMTYPE_DRAM = 0x01,
MYRS_MEMTYPE_EDRAM = 0x02,
MYRS_MEMTYPE_EDO = 0x03,
MYRS_MEMTYPE_SDRAM = 0x04,
MYRS_MEMTYPE_LAST = 0x1F,
} __packed mem_type:5; /* Byte 0 Bits 0-4 */
unsigned rsvd:1; /* Byte 0 Bit 5 */
unsigned mem_parity:1; /* Byte 0 Bit 6 */
unsigned mem_ecc:1; /* Byte 0 Bit 7 */
};
/*
* DAC960 V2 Firmware Processor Type structure.
*/
enum myrs_cpu_type {
MYRS_CPUTYPE_i960CA = 0x01,
MYRS_CPUTYPE_i960RD = 0x02,
MYRS_CPUTYPE_i960RN = 0x03,
MYRS_CPUTYPE_i960RP = 0x04,
MYRS_CPUTYPE_NorthBay = 0x05,
MYRS_CPUTYPE_StrongArm = 0x06,
MYRS_CPUTYPE_i960RM = 0x07,
} __packed;
/*
* DAC960 V2 Firmware Get Controller Info reply structure.
*/
struct myrs_ctlr_info {
unsigned char rsvd1; /* Byte 0 */
enum {
MYRS_SCSI_BUS = 0x00,
MYRS_Fibre_BUS = 0x01,
MYRS_PCI_BUS = 0x03
} __packed bus; /* Byte 1 */
enum {
MYRS_CTLR_DAC960E = 0x01,
MYRS_CTLR_DAC960M = 0x08,
MYRS_CTLR_DAC960PD = 0x10,
MYRS_CTLR_DAC960PL = 0x11,
MYRS_CTLR_DAC960PU = 0x12,
MYRS_CTLR_DAC960PE = 0x13,
MYRS_CTLR_DAC960PG = 0x14,
MYRS_CTLR_DAC960PJ = 0x15,
MYRS_CTLR_DAC960PTL0 = 0x16,
MYRS_CTLR_DAC960PR = 0x17,
MYRS_CTLR_DAC960PRL = 0x18,
MYRS_CTLR_DAC960PT = 0x19,
MYRS_CTLR_DAC1164P = 0x1A,
MYRS_CTLR_DAC960PTL1 = 0x1B,
MYRS_CTLR_EXR2000P = 0x1C,
MYRS_CTLR_EXR3000P = 0x1D,
MYRS_CTLR_ACCELERAID352 = 0x1E,
MYRS_CTLR_ACCELERAID170 = 0x1F,
MYRS_CTLR_ACCELERAID160 = 0x20,
MYRS_CTLR_DAC960S = 0x60,
MYRS_CTLR_DAC960SU = 0x61,
MYRS_CTLR_DAC960SX = 0x62,
MYRS_CTLR_DAC960SF = 0x63,
MYRS_CTLR_DAC960SS = 0x64,
MYRS_CTLR_DAC960FL = 0x65,
MYRS_CTLR_DAC960LL = 0x66,
MYRS_CTLR_DAC960FF = 0x67,
MYRS_CTLR_DAC960HP = 0x68,
MYRS_CTLR_RAIDBRICK = 0x69,
MYRS_CTLR_METEOR_FL = 0x6A,
MYRS_CTLR_METEOR_FF = 0x6B
} __packed ctlr_type; /* Byte 2 */
unsigned char rsvd2; /* Byte 3 */
unsigned short bus_speed_mhz; /* Bytes 4-5 */
unsigned char bus_width; /* Byte 6 */
unsigned char flash_code; /* Byte 7 */
unsigned char ports_present; /* Byte 8 */
unsigned char rsvd3[7]; /* Bytes 9-15 */
unsigned char bus_name[16]; /* Bytes 16-31 */
unsigned char ctlr_name[16]; /* Bytes 32-47 */
unsigned char rsvd4[16]; /* Bytes 48-63 */
/* Firmware Release Information */
unsigned char fw_major_version; /* Byte 64 */
unsigned char fw_minor_version; /* Byte 65 */
unsigned char fw_turn_number; /* Byte 66 */
unsigned char fw_build_number; /* Byte 67 */
unsigned char fw_release_day; /* Byte 68 */
unsigned char fw_release_month; /* Byte 69 */
unsigned char fw_release_year_hi; /* Byte 70 */
unsigned char fw_release_year_lo; /* Byte 71 */
/* Hardware Release Information */
unsigned char hw_rev; /* Byte 72 */
Annotation
- Detected declarations: `struct myrs_mem_type`, `struct myrs_ctlr_info`, `struct myrs_ldev_info`, `struct myrs_pdev_info`, `struct myrs_fwstat`, `struct myrs_event`, `struct myrs_cmd_ctrl`, `struct myrs_cmd_tmo`, `struct myrs_pdev`, `struct myrs_ldev`.
- Atlas domain: Driver Families / drivers/scsi.
- 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.