include/uapi/linux/media/v4l2-isp.h

Source file repositories/reference/linux-study-clean/include/uapi/linux/media/v4l2-isp.h

File Facts

System
Linux kernel
Corpus path
include/uapi/linux/media/v4l2-isp.h
Extension
.h
Size
4065 bytes
Lines
103
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct v4l2_isp_params_block_header {
	__u16 type;
	__u16 flags;
	__u32 size;
} __attribute__((aligned(8)));

/**
 * struct v4l2_isp_params_buffer - V4L2 extensible parameters configuration
 * @version: The parameters buffer version (driver-specific)
 * @data_size: The configuration data effective size, excluding this header
 * @data: The configuration data
 *
 * This structure contains the configuration parameters of the ISP algorithms,
 * serialized by userspace into a data buffer. Each configuration parameter
 * block is represented by a block-specific structure which contains a
 * :c:type:`v4l2_isp_params_block_header` entry as first member. Userspace
 * populates the @data buffer with configuration parameters for the blocks that
 * it intends to configure. As a consequence, the data buffer effective size
 * changes according to the number of ISP blocks that userspace intends to
 * configure and is set by userspace in the @data_size field.
 *
 * The parameters buffer is versioned by the @version field to allow modifying
 * and extending its definition. Userspace shall populate the @version field to
 * inform the driver about the version it intends to use. The driver will parse
 * and handle the @data buffer according to the data layout specific to the
 * indicated version and return an error if the desired version is not
 * supported.
 *
 * For each ISP block that userspace wants to configure, a block-specific
 * structure is appended to the @data buffer, one after the other without gaps
 * in between. Userspace shall populate the @data_size field with the effective
 * size, in bytes, of the @data buffer.
 */
struct v4l2_isp_params_buffer {
	__u32 version;
	__u32 data_size;
	__u8 data[] __counted_by(data_size);
};

#endif /* _UAPI_V4L2_ISP_H_ */

Annotation

Implementation Notes