include/uapi/linux/cec-funcs.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/cec-funcs.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/cec-funcs.h- Extension
.h- Size
- 58967 bytes
- Lines
- 2141
- 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/cec.h
Detected Declarations
struct cec_op_arib_datastruct cec_op_atsc_datastruct cec_op_dvb_datastruct cec_op_channel_datastruct cec_op_digital_service_idstruct cec_op_record_srcstruct cec_op_tuner_device_infostruct cec_op_ui_commandfunction cec_msg_active_sourcefunction cec_ops_active_sourcefunction cec_msg_image_view_onfunction cec_msg_text_view_onfunction cec_msg_inactive_sourcefunction cec_ops_inactive_sourcefunction cec_msg_request_active_sourcefunction cec_msg_routing_informationfunction cec_ops_routing_informationfunction cec_msg_routing_changefunction cec_ops_routing_changefunction cec_msg_set_stream_pathfunction cec_ops_set_stream_pathfunction cec_msg_standbyfunction cec_msg_record_offfunction cec_set_digital_service_idfunction cec_get_digital_service_idfunction cec_msg_record_on_ownfunction cec_msg_record_on_digitalfunction cec_msg_record_on_analogfunction cec_msg_record_on_plugfunction cec_msg_record_on_phys_addrfunction cec_msg_record_onfunction cec_ops_record_onfunction cec_msg_record_statusfunction cec_ops_record_statusfunction cec_msg_record_tv_screenfunction cec_msg_timer_statusfunction cec_ops_timer_statusfunction cec_msg_timer_cleared_statusfunction cec_ops_timer_cleared_statusfunction cec_msg_clear_analogue_timerfunction cec_ops_clear_analogue_timerfunction cec_msg_clear_digital_timerfunction cec_ops_clear_digital_timerfunction cec_msg_clear_ext_timerfunction cec_ops_clear_ext_timerfunction cec_msg_set_analogue_timerfunction cec_ops_set_analogue_timerfunction cec_msg_set_digital_timer
Annotated Snippet
struct cec_op_arib_data {
__u16 transport_id;
__u16 service_id;
__u16 orig_network_id;
};
struct cec_op_atsc_data {
__u16 transport_id;
__u16 program_number;
};
struct cec_op_dvb_data {
__u16 transport_id;
__u16 service_id;
__u16 orig_network_id;
};
struct cec_op_channel_data {
__u8 channel_number_fmt;
__u16 major;
__u16 minor;
};
struct cec_op_digital_service_id {
__u8 service_id_method;
__u8 dig_bcast_system;
union {
struct cec_op_arib_data arib;
struct cec_op_atsc_data atsc;
struct cec_op_dvb_data dvb;
struct cec_op_channel_data channel;
};
};
struct cec_op_record_src {
__u8 type;
union {
struct cec_op_digital_service_id digital;
struct {
__u8 ana_bcast_type;
__u16 ana_freq;
__u8 bcast_system;
} analog;
struct {
__u8 plug;
} ext_plug;
struct {
__u16 phys_addr;
} ext_phys_addr;
};
};
static inline void cec_set_digital_service_id(__u8 *msg,
const struct cec_op_digital_service_id *digital)
{
*msg++ = (digital->service_id_method << 7) | digital->dig_bcast_system;
if (digital->service_id_method == CEC_OP_SERVICE_ID_METHOD_BY_CHANNEL) {
*msg++ = (digital->channel.channel_number_fmt << 2) |
(digital->channel.major >> 8);
*msg++ = digital->channel.major & 0xff;
*msg++ = digital->channel.minor >> 8;
*msg++ = digital->channel.minor & 0xff;
*msg++ = 0;
*msg++ = 0;
return;
}
switch (digital->dig_bcast_system) {
case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_GEN:
case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_CABLE:
case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_SAT:
case CEC_OP_DIG_SERVICE_BCAST_SYSTEM_ATSC_T:
*msg++ = digital->atsc.transport_id >> 8;
*msg++ = digital->atsc.transport_id & 0xff;
*msg++ = digital->atsc.program_number >> 8;
*msg++ = digital->atsc.program_number & 0xff;
*msg++ = 0;
*msg++ = 0;
break;
default:
*msg++ = digital->dvb.transport_id >> 8;
*msg++ = digital->dvb.transport_id & 0xff;
*msg++ = digital->dvb.service_id >> 8;
*msg++ = digital->dvb.service_id & 0xff;
*msg++ = digital->dvb.orig_network_id >> 8;
*msg++ = digital->dvb.orig_network_id & 0xff;
break;
}
}
static inline void cec_get_digital_service_id(const __u8 *msg,
Annotation
- Immediate include surface: `linux/cec.h`.
- Detected declarations: `struct cec_op_arib_data`, `struct cec_op_atsc_data`, `struct cec_op_dvb_data`, `struct cec_op_channel_data`, `struct cec_op_digital_service_id`, `struct cec_op_record_src`, `struct cec_op_tuner_device_info`, `struct cec_op_ui_command`, `function cec_msg_active_source`, `function cec_ops_active_source`.
- 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.