drivers/media/test-drivers/vidtv/vidtv_psi.h

Source file repositories/reference/linux-study-clean/drivers/media/test-drivers/vidtv/vidtv_psi.h

File Facts

System
Linux kernel
Corpus path
drivers/media/test-drivers/vidtv/vidtv_psi.h
Extension
.h
Size
25481 bytes
Lines
810
Domain
Driver Families
Bucket
drivers/media
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 vidtv_psi_desc {
	struct vidtv_psi_desc *next;
	u8 type;
	u8 length;
	u8 data[];
} __packed;

/*
 * struct vidtv_psi_desc_service - Service descriptor.
 * See ETSI EN 300 468 section 6.2.33.
 */
struct vidtv_psi_desc_service {
	struct vidtv_psi_desc *next;
	u8 type;
	u8 length;

	u8 service_type;
	u8 provider_name_len;
	char *provider_name;
	u8 service_name_len;
	char *service_name;
} __packed;

/*
 * struct vidtv_psi_desc_registration - A registration descriptor.
 * See ISO/IEC 13818-1 section 2.6.8
 */
struct vidtv_psi_desc_registration {
	struct vidtv_psi_desc *next;
	u8 type;
	u8 length;

	/*
	 * The format_identifier is a 32-bit value obtained from a Registration
	 * Authority as designated by ISO/IEC JTC 1/SC 29.
	 */
	__be32 format_id;
	/*
	 * The meaning of additional_identification_info bytes, if any, are
	 * defined by the assignee of that format_identifier, and once defined
	 * they shall not change.
	 */
	u8 additional_identification_info[];
} __packed;

/*
 * struct vidtv_psi_desc_network_name - A network name descriptor
 * see ETSI EN 300 468 v1.15.1 section 6.2.27
 */
struct vidtv_psi_desc_network_name {
	struct vidtv_psi_desc *next;
	u8 type;
	u8 length;
	char *network_name;
} __packed;

struct vidtv_psi_desc_service_list_entry {
	__be16 service_id;
	u8 service_type;
	struct vidtv_psi_desc_service_list_entry *next;
} __packed;

/*
 * struct vidtv_psi_desc_service_list - A service list descriptor
 * see ETSI EN 300 468 v1.15.1 section 6.2.35
 */
struct vidtv_psi_desc_service_list {
	struct vidtv_psi_desc *next;
	u8 type;
	u8 length;
	struct vidtv_psi_desc_service_list_entry *service_list;
} __packed;

/*
 * struct vidtv_psi_desc_short_event - A short event descriptor
 * see ETSI EN 300 468 v1.15.1 section 6.2.37
 */
struct vidtv_psi_desc_short_event {
	struct vidtv_psi_desc *next;
	u8 type;
	u8 length;
	char *iso_language_code;
	u8 event_name_len;
	char *event_name;
	u8 text_len;
	char *text;
} __packed;

struct vidtv_psi_desc_short_event
*vidtv_psi_short_event_desc_init(struct vidtv_psi_desc *head,

Annotation

Implementation Notes