include/uapi/linux/usb/video.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/usb/video.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/usb/video.h- Extension
.h- Size
- 19116 bytes
- Lines
- 661
- 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/types.h
Detected Declarations
struct uvc_descriptor_headerstruct uvc_header_descriptorstruct uvc_input_terminal_descriptorstruct uvc_output_terminal_descriptorstruct uvc_camera_terminal_descriptorstruct uvc_selector_unit_descriptorstruct uvc_processing_unit_descriptorstruct uvc_extension_unit_descriptorstruct uvc_control_endpoint_descriptorstruct uvc_input_header_descriptorstruct uvc_output_header_descriptorstruct uvc_color_matching_descriptorstruct uvc_streaming_controlstruct uvc_format_uncompressedstruct uvc_frame_uncompressedstruct uvc_format_mjpegstruct uvc_frame_mjpegstruct uvc_format_framebasedstruct uvc_frame_framebasedenum uvc_color_primaries_valuesenum uvc_transfer_characteristics_valuesenum uvc_matrix_coefficientsfunction UVC_HEADER_DESCRIPTORfunction UVC_SELECTOR_UNIT_DESCRIPTORfunction UVC_EXTENSION_UNIT_DESCRIPTORfunction UVC_INPUT_HEADER_DESCRIPTORfunction UVC_OUTPUT_HEADER_DESCRIPTORfunction UVC_FRAME_UNCOMPRESSEDfunction UVC_FRAME_MJPEGfunction UVC_FRAME_FRAMEBASED
Annotated Snippet
struct uvc_descriptor_header {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
} __attribute__((packed));
/* 3.7.2. Video Control Interface Header Descriptor */
struct uvc_header_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdUVC;
__le16 wTotalLength;
__le32 dwClockFrequency;
__u8 bInCollection;
__u8 baInterfaceNr[];
} __attribute__((__packed__));
#define UVC_DT_HEADER_SIZE(n) (12+(n))
#define UVC_HEADER_DESCRIPTOR(n) \
uvc_header_descriptor_##n
#define DECLARE_UVC_HEADER_DESCRIPTOR(n) \
struct UVC_HEADER_DESCRIPTOR(n) { \
__u8 bLength; \
__u8 bDescriptorType; \
__u8 bDescriptorSubType; \
__le16 bcdUVC; \
__le16 wTotalLength; \
__le32 dwClockFrequency; \
__u8 bInCollection; \
__u8 baInterfaceNr[n]; \
} __attribute__ ((packed))
/* 3.7.2.1. Input Terminal Descriptor */
struct uvc_input_terminal_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bTerminalID;
__le16 wTerminalType;
__u8 bAssocTerminal;
__u8 iTerminal;
} __attribute__((__packed__));
#define UVC_DT_INPUT_TERMINAL_SIZE 8
/* 3.7.2.2. Output Terminal Descriptor */
struct uvc_output_terminal_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bTerminalID;
__le16 wTerminalType;
__u8 bAssocTerminal;
__u8 bSourceID;
__u8 iTerminal;
} __attribute__((__packed__));
#define UVC_DT_OUTPUT_TERMINAL_SIZE 9
/* 3.7.2.3. Camera Terminal Descriptor */
struct uvc_camera_terminal_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bTerminalID;
__le16 wTerminalType;
__u8 bAssocTerminal;
__u8 iTerminal;
__le16 wObjectiveFocalLengthMin;
__le16 wObjectiveFocalLengthMax;
__le16 wOcularFocalLength;
__u8 bControlSize;
__u8 bmControls[3];
} __attribute__((__packed__));
#define UVC_DT_CAMERA_TERMINAL_SIZE(n) (15+(n))
/* 3.7.2.4. Selector Unit Descriptor */
struct uvc_selector_unit_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bUnitID;
__u8 bNrInPins;
__u8 baSourceID[0];
__u8 iSelector;
} __attribute__((__packed__));
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct uvc_descriptor_header`, `struct uvc_header_descriptor`, `struct uvc_input_terminal_descriptor`, `struct uvc_output_terminal_descriptor`, `struct uvc_camera_terminal_descriptor`, `struct uvc_selector_unit_descriptor`, `struct uvc_processing_unit_descriptor`, `struct uvc_extension_unit_descriptor`, `struct uvc_control_endpoint_descriptor`, `struct uvc_input_header_descriptor`.
- 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.