drivers/crypto/inside-secure/eip93/eip93-main.h

Source file repositories/reference/linux-study-clean/drivers/crypto/inside-secure/eip93/eip93-main.h

File Facts

System
Linux kernel
Corpus path
drivers/crypto/inside-secure/eip93/eip93-main.h
Extension
.h
Size
3960 bytes
Lines
152
Domain
Driver Families
Bucket
drivers/crypto
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 eip93_device {
	void __iomem		*base;
	struct device		*dev;
	struct clk		*clk;
	int			irq;
	struct eip93_ring		*ring;
};

struct eip93_desc_ring {
	void			*base;
	void			*base_end;
	dma_addr_t		base_dma;
	/* write and read pointers */
	void			*read;
	void			*write;
	/* descriptor element offset */
	u32			offset;
};

struct eip93_state_pool {
	void			*base;
	dma_addr_t		base_dma;
};

struct eip93_ring {
	struct tasklet_struct		done_task;
	/* command/result rings */
	struct eip93_desc_ring		cdr;
	struct eip93_desc_ring		rdr;
	spinlock_t			write_lock;
	spinlock_t			read_lock;
	/* aync idr */
	spinlock_t			idr_lock;
	struct idr			crypto_async_idr;
};

enum eip93_alg_type {
	EIP93_ALG_TYPE_AEAD,
	EIP93_ALG_TYPE_SKCIPHER,
	EIP93_ALG_TYPE_HASH,
};

struct eip93_alg_template {
	struct eip93_device	*eip93;
	enum eip93_alg_type	type;
	u32			flags;
	union {
		struct aead_alg		aead;
		struct skcipher_alg	skcipher;
		struct ahash_alg	ahash;
	} alg;
};

#endif /* _EIP93_MAIN_H_ */

Annotation

Implementation Notes