drivers/scsi/aic94xx/aic94xx_sds.h

Source file repositories/reference/linux-study-clean/drivers/scsi/aic94xx/aic94xx_sds.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/aic94xx/aic94xx_sds.h
Extension
.h
Size
3908 bytes
Lines
104
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct controller_id {
	u32 vendor;     /* PCI Vendor ID */
	u32 device;     /* PCI Device ID */
	u32 sub_vendor; /* PCI Subvendor ID */
	u32 sub_device; /* PCI Subdevice ID */
};

struct image_info {
	u32 ImageId;       /* Identifies the image */
	u32 ImageOffset;   /* Offset the beginning of the file */
	u32 ImageLength;   /* length of the image */
	u32 ImageChecksum; /* Image checksum */
	u32 ImageVersion;  /* Version of the image, could be build number */
};

struct bios_file_header {
	u8 signature[32]; /* Signature/Cookie to identify the file */
	u32 checksum;	  /*Entire file checksum with this field zero */
	u32 antidote;	  /* Entire file checksum with this field 0xFFFFFFFF */
	struct controller_id contrl_id; /*PCI id to identify the controller */
	u32 filelen;      /*Length of the entire file*/
	u32 chunk_num;	  /*The chunk/part number for multiple Image files */
	u32 total_chunks; /*Total number of chunks/parts in the image file */
	u32 num_images;   /* Number of images in the file */
	u32 build_num;    /* Build number of this image */
	struct image_info image_header;
};

int asd_verify_flash_seg(struct asd_ha_struct *asd_ha,
		const void *src, u32 dest_offset, u32 bytes_to_verify);
int asd_write_flash_seg(struct asd_ha_struct *asd_ha,
		const void *src, u32 dest_offset, u32 bytes_to_write);
int asd_chk_write_status(struct asd_ha_struct *asd_ha,
		u32 sector_addr, u8 erase_flag);
int asd_check_flash_type(struct asd_ha_struct *asd_ha);
int asd_erase_nv_sector(struct asd_ha_struct *asd_ha,
		u32 flash_addr, u32 size);
#endif

Annotation

Implementation Notes