include/linux/ccp.h
Source file repositories/reference/linux-study-clean/include/linux/ccp.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/ccp.h- Extension
.h- Size
- 18577 bytes
- Lines
- 668
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/scatterlist.hlinux/workqueue.hlinux/list.hcrypto/aes.hcrypto/sha1.hcrypto/sha2.h
Detected Declarations
struct ccp_devicestruct ccp_cmdstruct ccp_aes_enginestruct ccp_xts_aes_enginestruct ccp_sha_enginestruct ccp_des3_enginestruct ccp_rsa_enginestruct ccp_passthru_enginestruct ccp_passthru_nomap_enginestruct ccp_ecc_modular_mathstruct ccp_ecc_pointstruct ccp_ecc_point_mathstruct ccp_ecc_enginestruct ccp_cmdenum ccp_aes_typeenum ccp_aes_modeenum ccp_aes_actionenum ccp_xts_aes_unit_sizeenum ccp_sha_typeenum ccp_des3_modeenum ccp_des3_typeenum ccp_des3_actionenum ccp_passthru_bitwiseenum ccp_passthru_byteswapenum ccp_ecc_functionenum ccp_enginefunction ccp_presentfunction ccp_versionfunction ccp_enqueue_cmd
Annotated Snippet
struct ccp_aes_engine {
enum ccp_aes_type type;
enum ccp_aes_mode mode;
enum ccp_aes_action action;
u32 authsize;
struct scatterlist *key;
u32 key_len; /* In bytes */
struct scatterlist *iv;
u32 iv_len; /* In bytes */
struct scatterlist *src, *dst;
u64 src_len; /* In bytes */
u32 cmac_final; /* Indicates final cmac cmd */
struct scatterlist *cmac_key; /* K1/K2 cmac key required for
* final cmac cmd */
u32 cmac_key_len; /* In bytes */
u32 aad_len; /* In bytes */
};
/***** XTS-AES engine *****/
/**
* ccp_xts_aes_unit_size - XTS unit size
*
* @CCP_XTS_AES_UNIT_SIZE_16: Unit size of 16 bytes
* @CCP_XTS_AES_UNIT_SIZE_512: Unit size of 512 bytes
* @CCP_XTS_AES_UNIT_SIZE_1024: Unit size of 1024 bytes
* @CCP_XTS_AES_UNIT_SIZE_2048: Unit size of 2048 bytes
* @CCP_XTS_AES_UNIT_SIZE_4096: Unit size of 4096 bytes
*/
enum ccp_xts_aes_unit_size {
CCP_XTS_AES_UNIT_SIZE_16 = 0,
CCP_XTS_AES_UNIT_SIZE_512,
CCP_XTS_AES_UNIT_SIZE_1024,
CCP_XTS_AES_UNIT_SIZE_2048,
CCP_XTS_AES_UNIT_SIZE_4096,
CCP_XTS_AES_UNIT_SIZE__LAST,
};
/**
* struct ccp_xts_aes_engine - CCP XTS AES operation
* @action: AES operation (decrypt/encrypt)
* @unit_size: unit size of the XTS operation
* @key: key to be used for this XTS AES operation
* @key_len: length in bytes of key
* @iv: IV to be used for this XTS AES operation
* @iv_len: length in bytes of iv
* @src: data to be used for this operation
* @dst: data produced by this operation
* @src_len: length in bytes of data used for this operation
* @final: indicates final XTS operation
*
* Variables required to be set when calling ccp_enqueue_cmd():
* - action, unit_size, key, key_len, iv, iv_len, src, dst, src_len, final
*
* The iv variable is used as both input and output. On completion of the
* AES operation the new IV overwrites the old IV.
*/
struct ccp_xts_aes_engine {
enum ccp_aes_type type;
enum ccp_aes_action action;
enum ccp_xts_aes_unit_size unit_size;
struct scatterlist *key;
u32 key_len; /* In bytes */
struct scatterlist *iv;
u32 iv_len; /* In bytes */
struct scatterlist *src, *dst;
u64 src_len; /* In bytes */
u32 final;
};
/***** SHA engine *****/
/**
* ccp_sha_type - type of SHA operation
*
* @CCP_SHA_TYPE_1: SHA-1 operation
* @CCP_SHA_TYPE_224: SHA-224 operation
* @CCP_SHA_TYPE_256: SHA-256 operation
*/
enum ccp_sha_type {
CCP_SHA_TYPE_1 = 1,
CCP_SHA_TYPE_224,
Annotation
- Immediate include surface: `linux/scatterlist.h`, `linux/workqueue.h`, `linux/list.h`, `crypto/aes.h`, `crypto/sha1.h`, `crypto/sha2.h`.
- Detected declarations: `struct ccp_device`, `struct ccp_cmd`, `struct ccp_aes_engine`, `struct ccp_xts_aes_engine`, `struct ccp_sha_engine`, `struct ccp_des3_engine`, `struct ccp_rsa_engine`, `struct ccp_passthru_engine`, `struct ccp_passthru_nomap_engine`, `struct ccp_ecc_modular_math`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.