drivers/platform/x86/dell/dcdbas.h

Source file repositories/reference/linux-study-clean/drivers/platform/x86/dell/dcdbas.h

File Facts

System
Linux kernel
Corpus path
drivers/platform/x86/dell/dcdbas.h
Extension
.h
Size
2606 bytes
Lines
111
Domain
Driver Families
Bucket
drivers/platform
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 smi_cmd {
	__u32 magic;
	__u32 ebx;
	__u32 ecx;
	__u16 command_address;
	__u8 command_code;
	__u8 reserved;
	__u8 command_buffer[1];
} __attribute__ ((packed));

struct apm_cmd {
	__u8 command;
	__s8 status;
	__u16 reserved;
	union {
		struct {
			__u8 parm[MAX_SYSMGMT_SHORTCMD_PARMBUF_LEN];
		} __attribute__ ((packed)) shortreq;

		struct {
			__u16 num_sg_entries;
			struct {
				__u32 size;
				__u64 addr;
			} __attribute__ ((packed))
			    sglist[MAX_SYSMGMT_LONGCMD_SGENTRY_NUM];
		} __attribute__ ((packed)) longreq;
	} __attribute__ ((packed)) parameters;
} __attribute__ ((packed));

int dcdbas_smi_request(struct smi_cmd *smi_cmd);

struct smm_eps_table {
	char smm_comm_buff_anchor[4];
	u8 length;
	u8 checksum;
	u8 version;
	u64 smm_comm_buff_addr;
	u64 num_of_4k_pages;
} __packed;

struct smi_buffer {
	u8 *virt;
	unsigned long size;
	dma_addr_t dma;
};

int dcdbas_smi_alloc(struct smi_buffer *smi_buffer, unsigned long size);
void dcdbas_smi_free(struct smi_buffer *smi_buffer);

#endif /* _DCDBAS_H_ */

Annotation

Implementation Notes