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:
Steven Toth
2008-09-11 10:23:01 -03:00
committed by Mauro Carvalho Chehab
parent 56f0680a28
commit e7fee0f3aa
4 changed files with 63 additions and 53 deletions

View File

@ -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)
/**