summaryrefslogtreecommitdiffstats
path: root/include/linux/dvb
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2008-09-11 10:23:01 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-12 09:37:04 -0200
commite7fee0f3aa111d42cdcfc1470cfdc21dde0cdbe2 (patch)
treefedd63397870c4f97b26176ed3b7e2d660d77957 /include/linux/dvb
parent56f0680a28397f4b412fc14f60ac380b910ee328 (diff)
downloadlinux-e7fee0f3aa111d42cdcfc1470cfdc21dde0cdbe2.tar.gz
linux-e7fee0f3aa111d42cdcfc1470cfdc21dde0cdbe2.tar.bz2
linux-e7fee0f3aa111d42cdcfc1470cfdc21dde0cdbe2.zip
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>
Diffstat (limited to 'include/linux/dvb')
-rw-r--r--include/linux/dvb/frontend.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index aeace74b5366..f667bf377a7b 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -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 DTV_IOCTL_MAX_MSGS 64
-#define FE_SET_PROPERTY _IOW('o', 82, dtv_properties_t)
-#define FE_GET_PROPERTY _IOR('o', 83, dtv_properties_t)
+#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
+#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
/**