drivers/crypto/ccree/cc_hw_queue_defs.h
Source file repositories/reference/linux-study-clean/drivers/crypto/ccree/cc_hw_queue_defs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/crypto/ccree/cc_hw_queue_defs.h- Extension
.h- Size
- 17795 bytes
- Lines
- 634
- 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.
- 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
linux/types.hcc_kernel_regs.hlinux/bitfield.h
Detected Declarations
struct cc_hw_descenum cc_axi_secenum cc_desc_directionenum cc_dma_modeenum cc_flow_modeenum cc_setup_openum cc_hash_conf_padenum cc_aes_mac_selectorenum cc_hw_crypto_keyenum cc_hw_aes_key_sizeenum cc_hash_cipher_padfunction hw_desc_initfunction set_queue_last_ind_bitfunction set_din_typefunction set_din_no_dmafunction set_cpp_crypto_keyfunction set_din_sramfunction set_din_constfunction set_din_not_last_indicationfunction set_dout_typefunction set_dout_dllifunction set_dout_mllifunction set_dout_no_dmafunction set_xor_valfunction set_xor_activefunction set_aes_not_hash_modefunction set_aes_xor_crypto_keyfunction set_dout_sramfunction set_xex_data_unit_sizefunction set_multi2_num_roundsfunction set_flow_modefunction set_cipher_modefunction set_hash_cipher_modefunction set_cipher_config0function set_cipher_config1function set_hw_crypto_keyfunction set_bytes_swapfunction set_cmac_size0_modefunction set_key_sizefunction set_key_size_aesfunction set_key_size_desfunction set_setup_modefunction set_cipher_do
Annotated Snippet
struct cc_hw_desc {
union {
u32 word[HW_DESC_SIZE_WORDS];
u16 hword[HW_DESC_SIZE_WORDS * 2];
};
};
enum cc_axi_sec {
AXI_SECURE = 0,
AXI_NOT_SECURE = 1
};
enum cc_desc_direction {
DESC_DIRECTION_ILLEGAL = -1,
DESC_DIRECTION_ENCRYPT_ENCRYPT = 0,
DESC_DIRECTION_DECRYPT_DECRYPT = 1,
DESC_DIRECTION_DECRYPT_ENCRYPT = 3,
DESC_DIRECTION_END = S32_MAX,
};
enum cc_dma_mode {
DMA_MODE_NULL = -1,
NO_DMA = 0,
DMA_SRAM = 1,
DMA_DLLI = 2,
DMA_MLLI = 3,
DMA_MODE_END = S32_MAX,
};
enum cc_flow_mode {
FLOW_MODE_NULL = -1,
/* data flows */
BYPASS = 0,
DIN_AES_DOUT = 1,
AES_to_HASH = 2,
AES_and_HASH = 3,
DIN_DES_DOUT = 4,
DES_to_HASH = 5,
DES_and_HASH = 6,
DIN_HASH = 7,
DIN_HASH_and_BYPASS = 8,
AESMAC_and_BYPASS = 9,
AES_to_HASH_and_DOUT = 10,
DIN_RC4_DOUT = 11,
DES_to_HASH_and_DOUT = 12,
AES_to_AES_to_HASH_and_DOUT = 13,
AES_to_AES_to_HASH = 14,
AES_to_HASH_and_AES = 15,
DIN_SM4_DOUT = 16,
DIN_AES_AESMAC = 17,
HASH_to_DOUT = 18,
/* setup flows */
S_DIN_to_AES = 32,
S_DIN_to_AES2 = 33,
S_DIN_to_DES = 34,
S_DIN_to_RC4 = 35,
S_DIN_to_SM4 = 36,
S_DIN_to_HASH = 37,
S_AES_to_DOUT = 38,
S_AES2_to_DOUT = 39,
S_SM4_to_DOUT = 40,
S_RC4_to_DOUT = 41,
S_DES_to_DOUT = 42,
S_HASH_to_DOUT = 43,
SET_FLOW_ID = 44,
FLOW_MODE_END = S32_MAX,
};
enum cc_setup_op {
SETUP_LOAD_NOP = 0,
SETUP_LOAD_STATE0 = 1,
SETUP_LOAD_STATE1 = 2,
SETUP_LOAD_STATE2 = 3,
SETUP_LOAD_KEY0 = 4,
SETUP_LOAD_XEX_KEY = 5,
SETUP_WRITE_STATE0 = 8,
SETUP_WRITE_STATE1 = 9,
SETUP_WRITE_STATE2 = 10,
SETUP_WRITE_STATE3 = 11,
SETUP_OP_END = S32_MAX,
};
enum cc_hash_conf_pad {
HASH_PADDING_DISABLED = 0,
HASH_PADDING_ENABLED = 1,
HASH_DIGEST_RESULT_LITTLE_ENDIAN = 2,
HASH_CONFIG1_PADDING_RESERVE32 = S32_MAX,
};
enum cc_aes_mac_selector {
Annotation
- Immediate include surface: `linux/types.h`, `cc_kernel_regs.h`, `linux/bitfield.h`.
- Detected declarations: `struct cc_hw_desc`, `enum cc_axi_sec`, `enum cc_desc_direction`, `enum cc_dma_mode`, `enum cc_flow_mode`, `enum cc_setup_op`, `enum cc_hash_conf_pad`, `enum cc_aes_mac_selector`, `enum cc_hw_crypto_key`, `enum cc_hw_aes_key_size`.
- Atlas domain: Driver Families / drivers/crypto.
- 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.