Kernel  |  4.1

下载     查看原文件
C++程序  |  79行  |  1.65 KB
#ifndef __VIDEO_ADF_ADF_FOPS32_H
#define __VIDEO_ADF_ADF_FOPS32_H

#include <linux/compat.h>
#include <linux/ioctl.h>

#include <video/adf.h>

#define ADF_POST_CONFIG32 \
		_IOW(ADF_IOCTL_TYPE, 2, struct adf_post_config32)
#define ADF_GET_DEVICE_DATA32 \
		_IOR(ADF_IOCTL_TYPE, 4, struct adf_device_data32)
#define ADF_GET_INTERFACE_DATA32 \
		_IOR(ADF_IOCTL_TYPE, 5, struct adf_interface_data32)
#define ADF_GET_OVERLAY_ENGINE_DATA32 \
		_IOR(ADF_IOCTL_TYPE, 6, struct adf_overlay_engine_data32)

struct adf_post_config32 {
	compat_size_t n_interfaces;
	compat_uptr_t interfaces;

	compat_size_t n_bufs;
	compat_uptr_t bufs;

	compat_size_t custom_data_size;
	compat_uptr_t custom_data;

	__s32 complete_fence;
};

struct adf_device_data32 {
	char name[ADF_NAME_LEN];

	compat_size_t n_attachments;
	compat_uptr_t attachments;

	compat_size_t n_allowed_attachments;
	compat_uptr_t allowed_attachments;

	compat_size_t custom_data_size;
	compat_uptr_t custom_data;
};

struct adf_interface_data32 {
	char name[ADF_NAME_LEN];

	__u8 type;
	__u32 id;
	/* e.g. type=ADF_INTF_TYPE_DSI, id=1 => DSI.1 */
	__u32 flags;

	__u8 dpms_state;
	__u8 hotplug_detect;
	__u16 width_mm;
	__u16 height_mm;

	struct drm_mode_modeinfo current_mode;
	compat_size_t n_available_modes;
	compat_uptr_t available_modes;

	compat_size_t custom_data_size;
	compat_uptr_t custom_data;
};

struct adf_overlay_engine_data32 {
	char name[ADF_NAME_LEN];

	compat_size_t n_supported_formats;
	compat_uptr_t supported_formats;

	compat_size_t custom_data_size;
	compat_uptr_t custom_data;
};

long adf_file_compat_ioctl(struct file *file, unsigned int cmd,
		unsigned long arg);

#endif /* __VIDEO_ADF_ADF_FOPS32_H */