aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dvb
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2008-09-11 09:23:01 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-12 07:37:04 -0400
commite7fee0f3aa111d42cdcfc1470cfdc21dde0cdbe2 (patch)
treefedd63397870c4f97b26176ed3b7e2d660d77957 /include/linux/dvb
parent56f0680a28397f4b412fc14f60ac380b910ee328 (diff)
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 {
251 * binary compatability. 251 * binary compatability.
252 */ 252 */
253typedef enum dtv_cmd_types { 253typedef enum dtv_cmd_types {
254 DTV_SEQ_UNDEFINED, 254 DTV_TUNE,
255 DTV_SEQ_START, 255 DTV_CLEAR,
256 DTV_SEQ_CONTINUE,
257 DTV_SEQ_COMPLETE,
258 DTV_SEQ_TERMINATE,
259 256
260 DTV_SET_FREQUENCY, 257 DTV_SET_FREQUENCY,
261 DTV_SET_MODULATION, 258 DTV_SET_MODULATION,
@@ -348,22 +345,32 @@ struct dtv_cmds_h {
348 __u32 reserved:30; /* Align */ 345 __u32 reserved:30; /* Align */
349}; 346};
350 347
351typedef struct { 348struct dtv_property {
352 __u32 cmd; 349 __u32 cmd;
350 __u32 reserved[3];
353 union { 351 union {
352 __s32 valuemin;
353 __s32 valuemax;
354 __u32 data; 354 __u32 data;
355 struct { 355 struct {
356 __u8 data[32]; 356 __u8 data[32];
357 __u32 len; 357 __u32 len;
358 __u32 reserved1[3];
359 void *reserved2;
358 } buffer; 360 } buffer;
359 } u; 361 } u;
360} dtv_property_t; 362} __attribute__ ((packed));
361 363
362/* No more than 16 properties during any given ioctl */ 364/* No more than 16 properties during any given ioctl */
363typedef dtv_property_t dtv_properties_t[16]; 365struct dtv_properties {
366 __u32 num;
367 struct dtv_property *props;
368};
369
370#define DTV_IOCTL_MAX_MSGS 64
364 371
365#define FE_SET_PROPERTY _IOW('o', 82, dtv_properties_t) 372#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
366#define FE_GET_PROPERTY _IOR('o', 83, dtv_properties_t) 373#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
367 374
368 375
369/** 376/**