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>
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index aeace74..f667bf3 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -251,11 +251,8 @@
  * 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 @@
 	__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)
 
 
 /**