diff options
author | Steven Toth <stoth@linuxtv.org> | 2008-09-11 09:23:01 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:37:04 -0400 |
commit | e7fee0f3aa111d42cdcfc1470cfdc21dde0cdbe2 (patch) | |
tree | fedd63397870c4f97b26176ed3b7e2d660d77957 /include/linux/dvb | |
parent | 56f0680a28397f4b412fc14f60ac380b910ee328 (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.h | 27 |
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 | */ |
253 | typedef enum dtv_cmd_types { | 253 | typedef 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 | ||
351 | typedef struct { | 348 | struct 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 */ |
363 | typedef dtv_property_t dtv_properties_t[16]; | 365 | struct 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 | /** |