V4L/DVB (8996): S2API: typedefs replaced, _SEQ_'s removed, fixed 16 command arrays replaced
After discussion the following changes were made: 1. Removed the typedefs in frontend.h, use structures. 2. In the frontend.h, remove the 16 command limit on the API and switch to a flexible variable length API. For practical reasons a #define limits this to 64, this should be discussed. 3. Changed dvb-core ioctl handing to deal with variable sequences of commands. tune-v0.0.3.c is required to use this API, it contains the interface changes. Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
56f0680a28
commit
e7fee0f3aa
@ -251,11 +251,8 @@ struct dvb_frontend_event {
|
||||
* binary compatability.
|
||||
*/
|
||||
typedef enum dtv_cmd_types {
|
||||
DTV_SEQ_UNDEFINED,
|
||||
DTV_SEQ_START,
|
||||
DTV_SEQ_CONTINUE,
|
||||
DTV_SEQ_COMPLETE,
|
||||
DTV_SEQ_TERMINATE,
|
||||
DTV_TUNE,
|
||||
DTV_CLEAR,
|
||||
|
||||
DTV_SET_FREQUENCY,
|
||||
DTV_SET_MODULATION,
|
||||
@ -348,22 +345,32 @@ struct dtv_cmds_h {
|
||||
__u32 reserved:30; /* Align */
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
struct dtv_property {
|
||||
__u32 cmd;
|
||||
__u32 reserved[3];
|
||||
union {
|
||||
__s32 valuemin;
|
||||
__s32 valuemax;
|
||||
__u32 data;
|
||||
struct {
|
||||
__u8 data[32];
|
||||
__u32 len;
|
||||
__u32 reserved1[3];
|
||||
void *reserved2;
|
||||
} buffer;
|
||||
} u;
|
||||
} dtv_property_t;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* No more than 16 properties during any given ioctl */
|
||||
typedef dtv_property_t dtv_properties_t[16];
|
||||
struct dtv_properties {
|
||||
__u32 num;
|
||||
struct dtv_property *props;
|
||||
};
|
||||
|
||||
#define FE_SET_PROPERTY _IOW('o', 82, dtv_properties_t)
|
||||
#define FE_GET_PROPERTY _IOR('o', 83, dtv_properties_t)
|
||||
#define DTV_IOCTL_MAX_MSGS 64
|
||||
|
||||
#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
|
||||
#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
|
||||
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user