diff options
author | Steven Toth <stoth@linuxtv.org> | 2008-09-11 09:23:01 -0400 |
---|---|---|
committer | Steven Toth <stoth@linuxtv.org> | 2008-09-11 09:23:01 -0400 |
commit | 991e6d40e8d9894e3dba60323fad2c7b79948788 (patch) | |
tree | 52c1a1169ed7c860882cc7581cd9957c8ff5ce46 /linux/include | |
parent | 68901d77882c18dcb4f6e1fa0309e93893f1a7a0 (diff) | |
download | mediapointer-dvb-s2-991e6d40e8d9894e3dba60323fad2c7b79948788.tar.gz mediapointer-dvb-s2-991e6d40e8d9894e3dba60323fad2c7b79948788.tar.bz2 |
S2API: typedefs replaced, _SEQ_'s removed, fixed 16 command arrays replaced
From: Steven Toth <stoth@linuxtv.org>
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.
Priority: normal
Signed-off-by: Steven Toth <stoth@linuxtv.org>
Diffstat (limited to 'linux/include')
-rw-r--r-- | linux/include/linux/dvb/frontend.h | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/linux/include/linux/dvb/frontend.h b/linux/include/linux/dvb/frontend.h index aeace74b5..f667bf377 100644 --- a/linux/include/linux/dvb/frontend.h +++ b/linux/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) /** |