drivers/scsi/BusLogic.h
Source file repositories/reference/linux-study-clean/drivers/scsi/BusLogic.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/BusLogic.h- Extension
.h- Size
- 34306 bytes
- Lines
- 1287
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- 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 blogic_byte_countstruct blogic_probeinfostruct blogic_probe_optionsstruct blogic_global_optionsstruct blogic_board_idstruct blogic_configstruct blogic_syncvalstruct blogic_setup_infostruct blogic_extmbox_reqstruct blogic_adapter_infostruct blogic_ext_setupstruct blogic_fetch_localramstruct blogic_autoscsistruct blogic_autoscsi_byte45struct blogic_bios_drvmapstruct blogic_sg_segstruct blogic_ccbstruct blogic_outboxstruct blogic_inboxstruct blogic_drvr_optionsstruct blogic_tgt_flagsstruct blogic_tgt_statsstruct fpoint_infostruct blogic_adapterstruct bios_diskparamstruct scsi_inquiryenum blogic_msglevelenum blogic_adapter_typeenum blogic_adapter_bus_typeenum blogic_bios_diskgeometryenum blogic_opcodeenum blogic_isa_ioportenum blogic_rr_reqenum blogic_setccb_fmtenum blogic_actionenum blogic_cmplt_codeenum blogic_ccb_opcodeenum blogic_datadirenum blogic_adapter_statusenum blogic_tgt_statusenum blogic_queuetagenum blogic_ccb_statusfunction blogic_busresetfunction blogic_intresetfunction blogic_softresetfunction blogic_hardresetfunction blogic_rdstatusfunction blogic_setcmdparam
Annotated Snippet
struct blogic_byte_count {
unsigned int units;
unsigned int billions;
};
/*
Define the structure for I/O Address and Bus Probing Information.
*/
struct blogic_probeinfo {
enum blogic_adapter_type adapter_type;
enum blogic_adapter_bus_type adapter_bus_type;
unsigned long io_addr;
unsigned long pci_addr;
struct pci_dev *pci_device;
unsigned char bus;
unsigned char dev;
unsigned char irq_ch;
};
/*
Define the Probe Options.
*/
struct blogic_probe_options {
bool noprobe:1; /* Bit 0 */
bool noprobe_pci:1; /* Bit 2 */
bool nosort_pci:1; /* Bit 3 */
bool multimaster_first:1; /* Bit 4 */
bool flashpoint_first:1; /* Bit 5 */
};
/*
Define the Global Options.
*/
struct blogic_global_options {
bool trace_probe:1; /* Bit 0 */
bool trace_hw_reset:1; /* Bit 1 */
bool trace_config:1; /* Bit 2 */
bool trace_err:1; /* Bit 3 */
};
/*
Define the BusLogic SCSI Host Adapter I/O Register Offsets.
*/
#define BLOGIC_CNTRL_REG 0 /* WO register */
#define BLOGIC_STATUS_REG 0 /* RO register */
#define BLOGIC_CMD_PARM_REG 1 /* WO register */
#define BLOGIC_DATAIN_REG 1 /* RO register */
#define BLOGIC_INT_REG 2 /* RO register */
#define BLOGIC_GEOMETRY_REG 3 /* RO register */
/*
Define the structure of the write-only Control Register.
*/
union blogic_cntrl_reg {
unsigned char all;
struct {
unsigned char:4; /* Bits 0-3 */
bool bus_reset:1; /* Bit 4 */
bool int_reset:1; /* Bit 5 */
bool soft_reset:1; /* Bit 6 */
bool hard_reset:1; /* Bit 7 */
} cr;
};
/*
Define the structure of the read-only Status Register.
*/
union blogic_stat_reg {
unsigned char all;
struct {
bool cmd_invalid:1; /* Bit 0 */
bool rsvd:1; /* Bit 1 */
bool datain_ready:1; /* Bit 2 */
bool cmd_param_busy:1; /* Bit 3 */
bool adapter_ready:1; /* Bit 4 */
bool init_reqd:1; /* Bit 5 */
bool diag_failed:1; /* Bit 6 */
bool diag_active:1; /* Bit 7 */
} sr;
};
/*
Define the structure of the read-only Interrupt Register.
Annotation
- Detected declarations: `struct blogic_byte_count`, `struct blogic_probeinfo`, `struct blogic_probe_options`, `struct blogic_global_options`, `struct blogic_board_id`, `struct blogic_config`, `struct blogic_syncval`, `struct blogic_setup_info`, `struct blogic_extmbox_req`, `struct blogic_adapter_info`.
- Atlas domain: Driver Families / drivers/scsi.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.