drivers/scsi/esas2r/esas2r.h

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

File Facts

System
Linux kernel
Corpus path
drivers/scsi/esas2r/esas2r.h
Extension
.h
Size
44192 bytes
Lines
1423
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 esas2r_inbound_list_source_entry {
	u64 address;
	u32 length;
	#define HWILSE_INTERFACE_F0  0x00000000
	u32 reserved;
};

/* PCI data structure in expansion ROM images */
struct __packed esas2r_boot_header {
	char signature[4];
	u16 vendor_id;
	u16 device_id;
	u16 VPD;
	u16 struct_length;
	u8 struct_revision;
	u8 class_code[3];
	u16 image_length;
	u16 code_revision;
	u8 code_type;
	#define CODE_TYPE_PC    0
	#define CODE_TYPE_OPEN  1
	#define CODE_TYPE_EFI   3
	u8 indicator;
	#define INDICATOR_LAST  0x80
	u8 reserved[2];
};

struct __packed esas2r_boot_image {
	u16 signature;
	u8 reserved[22];
	u16 header_offset;
	u16 pnp_offset;
};

struct __packed esas2r_pc_image {
	u16 signature;
	u8 length;
	u8 entry_point[3];
	u8 checksum;
	u16 image_end;
	u16 min_size;
	u8 rom_flags;
	u8 reserved[12];
	u16 header_offset;
	u16 pnp_offset;
	struct esas2r_boot_header boot_image;
};

struct __packed esas2r_efi_image {
	u16 signature;
	u16 length;
	u32 efi_signature;
	#define EFI_ROM_SIG     0x00000EF1
	u16 image_type;
	#define EFI_IMAGE_APP   10
	#define EFI_IMAGE_BSD   11
	#define EFI_IMAGE_RTD   12
	u16 machine_type;
	#define EFI_MACHINE_IA32 0x014c
	#define EFI_MACHINE_IA64 0x0200
	#define EFI_MACHINE_X64  0x8664
	#define EFI_MACHINE_EBC  0x0EBC
	u16 compression;
	#define EFI_UNCOMPRESSED 0x0000
	#define EFI_COMPRESSED   0x0001
	u8 reserved[8];
	u16 efi_offset;
	u16 header_offset;
	u16 reserved2;
	struct esas2r_boot_header boot_image;
};

struct esas2r_adapter;
struct esas2r_sg_context;
struct esas2r_request;

typedef void (*RQCALLBK)     (struct esas2r_adapter *a,
			      struct esas2r_request *rq);
typedef bool (*RQBUILDSGL)   (struct esas2r_adapter *a,
			      struct esas2r_sg_context *sgc);

struct esas2r_component_header {
	u8 img_type;
	#define CH_IT_FW    0x00
	#define CH_IT_NVR   0x01
	#define CH_IT_BIOS  0x02
	#define CH_IT_MAC   0x03
	#define CH_IT_CFG   0x04
	#define CH_IT_EFI   0x05
	u8 status;

Annotation

Implementation Notes