include/drm/display/drm_hdcp.h
Source file repositories/reference/linux-study-clean/include/drm/display/drm_hdcp.h
File Facts
- System
- Linux kernel
- Corpus path
include/drm/display/drm_hdcp.h- Extension
.h- Size
- 8657 bytes
- Lines
- 299
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.h
Detected Declarations
struct hdcp2_cert_rxstruct hdcp2_streamid_typestruct hdcp2_tx_capsstruct hdcp2_ake_initstruct hdcp2_ake_send_certstruct hdcp2_ake_no_stored_kmstruct hdcp2_ake_stored_kmstruct hdcp2_ake_send_hprimestruct hdcp2_ake_send_pairing_infostruct hdcp2_lc_initstruct hdcp2_lc_send_lprimestruct hdcp2_ske_send_eksstruct hdcp2_rep_send_receiverid_liststruct hdcp2_rep_send_ackstruct hdcp2_rep_stream_managestruct hdcp2_rep_stream_readystruct hdcp_srm_headerfunction drm_hdcp_be24_to_cpufunction drm_hdcp_cpu_to_be24
Annotated Snippet
struct hdcp2_cert_rx {
u8 receiver_id[HDCP_2_2_RECEIVER_ID_LEN];
u8 kpub_rx[HDCP_2_2_K_PUB_RX_LEN];
u8 reserved[2];
u8 dcp_signature[HDCP_2_2_DCP_LLC_SIG_LEN];
} __packed;
struct hdcp2_streamid_type {
u8 stream_id;
u8 stream_type;
} __packed;
/*
* The TxCaps field specified in the HDCP HDMI, DP specs
* This field is big endian as specified in the errata.
*/
struct hdcp2_tx_caps {
/* Transmitter must set this to 0x2 */
u8 version;
/* Reserved for HDCP and DP Spec. Read as Zero */
u8 tx_cap_mask[HDCP_2_2_TXCAP_MASK_LEN];
} __packed;
/* Main structures for HDCP2.2 protocol communication */
struct hdcp2_ake_init {
u8 msg_id;
u8 r_tx[HDCP_2_2_RTX_LEN];
struct hdcp2_tx_caps tx_caps;
} __packed;
struct hdcp2_ake_send_cert {
u8 msg_id;
struct hdcp2_cert_rx cert_rx;
u8 r_rx[HDCP_2_2_RRX_LEN];
u8 rx_caps[HDCP_2_2_RXCAPS_LEN];
} __packed;
struct hdcp2_ake_no_stored_km {
u8 msg_id;
u8 e_kpub_km[HDCP_2_2_E_KPUB_KM_LEN];
} __packed;
struct hdcp2_ake_stored_km {
u8 msg_id;
u8 e_kh_km_m[HDCP_2_2_E_KH_KM_M_LEN];
} __packed;
struct hdcp2_ake_send_hprime {
u8 msg_id;
u8 h_prime[HDCP_2_2_H_PRIME_LEN];
} __packed;
struct hdcp2_ake_send_pairing_info {
u8 msg_id;
u8 e_kh_km[HDCP_2_2_E_KH_KM_LEN];
} __packed;
struct hdcp2_lc_init {
u8 msg_id;
u8 r_n[HDCP_2_2_RN_LEN];
} __packed;
struct hdcp2_lc_send_lprime {
u8 msg_id;
u8 l_prime[HDCP_2_2_L_PRIME_LEN];
} __packed;
struct hdcp2_ske_send_eks {
u8 msg_id;
u8 e_dkey_ks[HDCP_2_2_E_DKEY_KS_LEN];
u8 riv[HDCP_2_2_RIV_LEN];
} __packed;
struct hdcp2_rep_send_receiverid_list {
u8 msg_id;
u8 rx_info[HDCP_2_2_RXINFO_LEN];
u8 seq_num_v[HDCP_2_2_SEQ_NUM_LEN];
u8 v_prime[HDCP_2_2_V_PRIME_HALF_LEN];
u8 receiver_ids[HDCP_2_2_RECEIVER_IDS_MAX_LEN];
} __packed;
struct hdcp2_rep_send_ack {
u8 msg_id;
u8 v[HDCP_2_2_V_PRIME_HALF_LEN];
} __packed;
struct hdcp2_rep_stream_manage {
u8 msg_id;
u8 seq_num_m[HDCP_2_2_SEQ_NUM_LEN];
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct hdcp2_cert_rx`, `struct hdcp2_streamid_type`, `struct hdcp2_tx_caps`, `struct hdcp2_ake_init`, `struct hdcp2_ake_send_cert`, `struct hdcp2_ake_no_stored_km`, `struct hdcp2_ake_stored_km`, `struct hdcp2_ake_send_hprime`, `struct hdcp2_ake_send_pairing_info`, `struct hdcp2_lc_init`.
- Atlas domain: Repository Root And Misc / include.
- 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.