include/uapi/linux/v4l2-subdev.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/v4l2-subdev.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/v4l2-subdev.h- Extension
.h- Size
- 10345 bytes
- Lines
- 305
- 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/const.hlinux/ioctl.hlinux/types.hlinux/v4l2-common.hlinux/v4l2-mediabus.h
Detected Declarations
struct v4l2_subdev_formatstruct v4l2_subdev_cropstruct v4l2_subdev_mbus_code_enumstruct v4l2_subdev_frame_size_enumstruct v4l2_subdev_frame_intervalstruct v4l2_subdev_frame_interval_enumstruct v4l2_subdev_selectionstruct v4l2_subdev_capabilitystruct v4l2_subdev_routestruct v4l2_subdev_routingstruct v4l2_subdev_client_capabilityenum v4l2_subdev_format_whence
Annotated Snippet
struct v4l2_subdev_format {
__u32 which;
__u32 pad;
struct v4l2_mbus_framefmt format;
__u32 stream;
__u32 reserved[7];
};
/**
* struct v4l2_subdev_crop - Pad-level crop settings
* @which: format type (from enum v4l2_subdev_format_whence)
* @pad: pad number, as reported by the media API
* @rect: pad crop rectangle boundaries
* @stream: stream number, defined in subdev routing
* @reserved: drivers and applications must zero this array
*
* The subdev crop API is an obsolete interface and may be removed in the
* future. It is superseded by the selection API. No new extensions to this
* structure will be accepted.
*/
struct v4l2_subdev_crop {
__u32 which;
__u32 pad;
struct v4l2_rect rect;
__u32 stream;
__u32 reserved[7];
};
#define V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE 0x00000001
#define V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC 0x00000002
#define V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC 0x00000004
#define V4L2_SUBDEV_MBUS_CODE_CSC_HSV_ENC V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC
#define V4L2_SUBDEV_MBUS_CODE_CSC_QUANTIZATION 0x00000008
/**
* struct v4l2_subdev_mbus_code_enum - Media bus format enumeration
* @pad: pad number, as reported by the media API
* @index: format index during enumeration
* @code: format code (MEDIA_BUS_FMT_ definitions)
* @which: format type (from enum v4l2_subdev_format_whence)
* @flags: flags set by the driver, (V4L2_SUBDEV_MBUS_CODE_*)
* @stream: stream number, defined in subdev routing
* @reserved: drivers and applications must zero this array
*/
struct v4l2_subdev_mbus_code_enum {
__u32 pad;
__u32 index;
__u32 code;
__u32 which;
__u32 flags;
__u32 stream;
__u32 reserved[6];
};
/**
* struct v4l2_subdev_frame_size_enum - Media bus format enumeration
* @index: format index during enumeration
* @pad: pad number, as reported by the media API
* @code: format code (MEDIA_BUS_FMT_ definitions)
* @min_width: minimum frame width, in pixels
* @max_width: maximum frame width, in pixels
* @min_height: minimum frame height, in pixels
* @max_height: maximum frame height, in pixels
* @which: format type (from enum v4l2_subdev_format_whence)
* @stream: stream number, defined in subdev routing
* @reserved: drivers and applications must zero this array
*/
struct v4l2_subdev_frame_size_enum {
__u32 index;
__u32 pad;
__u32 code;
__u32 min_width;
__u32 max_width;
__u32 min_height;
__u32 max_height;
__u32 which;
__u32 stream;
__u32 reserved[7];
};
/**
* struct v4l2_subdev_frame_interval - Pad-level frame rate
* @pad: pad number, as reported by the media API
* @interval: frame interval in seconds
* @stream: stream number, defined in subdev routing
* @which: interval type (from enum v4l2_subdev_format_whence)
* @reserved: drivers and applications must zero this array
*/
struct v4l2_subdev_frame_interval {
__u32 pad;
Annotation
- Immediate include surface: `linux/const.h`, `linux/ioctl.h`, `linux/types.h`, `linux/v4l2-common.h`, `linux/v4l2-mediabus.h`.
- Detected declarations: `struct v4l2_subdev_format`, `struct v4l2_subdev_crop`, `struct v4l2_subdev_mbus_code_enum`, `struct v4l2_subdev_frame_size_enum`, `struct v4l2_subdev_frame_interval`, `struct v4l2_subdev_frame_interval_enum`, `struct v4l2_subdev_selection`, `struct v4l2_subdev_capability`, `struct v4l2_subdev_route`, `struct v4l2_subdev_routing`.
- 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.