drivers/scsi/FlashPoint.c
Source file repositories/reference/linux-study-clean/drivers/scsi/FlashPoint.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/FlashPoint.c- Extension
.c- Size
- 196597 bytes
- Lines
- 7560
- 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 sccbstruct sccb_mgr_infostruct sccbstruct sccb_mgr_tar_infostruct nvram_infostruct sccb_cardenum scam_id_stfunction WRW_HARPOONfunction FlashPoint_ProbeHostAdapterfunction FlashPoint_ReleaseHostAdapterfunction FPT_RNVRamDatafunction FPT_RdStackfunction FPT_WrStackfunction FPT_ChkIfChipInitializedfunction FlashPoint_StartCCBfunction FlashPoint_AbortCCBfunction FlashPoint_InterruptPendingfunction FlashPoint_HandleInterruptfunction FPT_SccbMgr_bad_isrfunction FPT_SccbMgrTableInitAllfunction FPT_SccbMgrTableInitCardfunction FPT_SccbMgrTableInitTargetfunction FPT_sfmfunction FPT_sselfunction FPT_sresfunction FPT_SendMsgfunction FPT_sdecmfunction FPT_shandemfunction FPT_sisyncnfunction FPT_stsyncnfunction FPT_sisyncrfunction FPT_stwidnfunction FPT_siwidrfunction FPT_sresbfunction FPT_ssenssfunction FPT_sxfrpfunction FPT_schkddfunction FPT_sinitsfunction FPT_phaseDecodefunction FPT_phaseDataOutfunction FPT_phaseDataInfunction FPT_phaseCommandfunction FPT_phaseStatusfunction FPT_phaseMsgOutfunction FPT_phaseMsgInfunction hostfunction FPT_phaseChkFifofunction FPT_phaseBusFree
Annotated Snippet
struct sccb_mgr_info {
u32 si_baseaddr;
unsigned char si_present;
unsigned char si_intvect;
unsigned char si_id;
unsigned char si_lun;
u16 si_fw_revision;
u16 si_per_targ_init_sync;
u16 si_per_targ_fast_nego;
u16 si_per_targ_ultra_nego;
u16 si_per_targ_no_disc;
u16 si_per_targ_wide_nego;
u16 si_mflags;
unsigned char si_card_family;
unsigned char si_bustype;
unsigned char si_card_model[3];
unsigned char si_relative_cardnum;
unsigned char si_reserved[4];
u32 si_OS_reserved;
unsigned char si_XlatInfo[4];
u32 si_reserved2[5];
u32 si_secondary_range;
};
#define SCSI_PARITY_ENA 0x0001
#define LOW_BYTE_TERM 0x0010
#define HIGH_BYTE_TERM 0x0020
#define BUSTYPE_PCI 0x3
#define SUPPORT_16TAR_32LUN 0x0002
#define SOFT_RESET 0x0004
#define EXTENDED_TRANSLATION 0x0008
#define POST_ALL_UNDERRRUNS 0x0040
#define FLAG_SCAM_ENABLED 0x0080
#define FLAG_SCAM_LEVEL2 0x0100
#define HARPOON_FAMILY 0x02
/* SCCB struct used for both SCCB and UCB manager compiles!
* The UCB Manager treats the SCCB as it's 'native hardware structure'
*/
/*#pragma pack(1)*/
struct sccb {
unsigned char OperationCode;
unsigned char ControlByte;
unsigned char CdbLength;
unsigned char RequestSenseLength;
u32 DataLength;
void *DataPointer;
unsigned char CcbRes[2];
unsigned char HostStatus;
unsigned char TargetStatus;
unsigned char TargID;
unsigned char Lun;
unsigned char Cdb[12];
unsigned char CcbRes1;
unsigned char Reserved1;
u32 Reserved2;
u32 SensePointer;
CALL_BK_FN SccbCallback; /* VOID (*SccbCallback)(); */
u32 SccbIOPort; /* Identifies board base port */
unsigned char SccbStatus;
unsigned char SCCBRes2;
u16 SccbOSFlags;
u32 Sccb_XferCnt; /* actual transfer count */
u32 Sccb_ATC;
u32 SccbVirtDataPtr; /* virtual addr for OS/2 */
u32 Sccb_res1;
u16 Sccb_MGRFlags;
u16 Sccb_sgseg;
unsigned char Sccb_scsimsg; /* identify msg for selection */
unsigned char Sccb_tag;
unsigned char Sccb_scsistat;
unsigned char Sccb_idmsg; /* image of last msg in */
struct sccb *Sccb_forwardlink;
struct sccb *Sccb_backlink;
u32 Sccb_savedATC;
unsigned char Save_Cdb[6];
unsigned char Save_CdbLen;
unsigned char Sccb_XferState;
u32 Sccb_SGoffset;
};
#pragma pack()
#define SCATTER_GATHER_COMMAND 0x02
#define RESIDUAL_COMMAND 0x03
Annotation
- Detected declarations: `struct sccb`, `struct sccb_mgr_info`, `struct sccb`, `struct sccb_mgr_tar_info`, `struct nvram_info`, `struct sccb_card`, `enum scam_id_st`, `function WRW_HARPOON`, `function FlashPoint_ProbeHostAdapter`, `function FlashPoint_ReleaseHostAdapter`.
- 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.