summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-core/dvbdev.h
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@kernellabs.com>2009-05-23 18:00:59 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 18:40:21 -0200
commit9133aee09e3689c116c526fa9011c33b872e65c1 (patch)
tree39d57cadaf657855da42f44d77567f0a3ba3bc82 /drivers/media/dvb/dvb-core/dvbdev.h
parentdbda8f701abb0e4693a30e9bef4a2301d1c8ea80 (diff)
downloadop-kernel-dev-9133aee09e3689c116c526fa9011c33b872e65c1.zip
op-kernel-dev-9133aee09e3689c116c526fa9011c33b872e65c1.tar.gz
V4L/DVB (13103): create a standard method for dvb adapter drivers to override frontend ioctls
Signed-off-by: Michael Krufky <mkrufky@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-core/dvbdev.h')
-rw-r--r--drivers/media/dvb/dvb-core/dvbdev.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-core/dvbdev.h b/drivers/media/dvb/dvb-core/dvbdev.h
index 01fc704..f7b499d 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.h
+++ b/drivers/media/dvb/dvb-core/dvbdev.h
@@ -54,6 +54,8 @@
module_param_array(adapter_nr, short, NULL, 0444); \
MODULE_PARM_DESC(adapter_nr, "DVB adapter numbers")
+struct dvb_frontend;
+
struct dvb_adapter {
int num;
struct list_head list_head;
@@ -69,6 +71,32 @@ struct dvb_adapter {
int mfe_shared; /* indicates mutually exclusive frontends */
struct dvb_device *mfe_dvbdev; /* frontend device in use */
struct mutex mfe_lock; /* access lock for thread creation */
+
+ /* Allow the adapter/bridge driver to perform an action before and/or
+ * after the core handles an ioctl:
+ *
+ * DVB_FE_IOCTL_PRE indicates that the ioctl has not yet been handled.
+ * DVB_FE_IOCTL_POST indicates that the ioctl has been handled.
+ *
+ * When DVB_FE_IOCTL_PRE is passed to the callback as the stage arg:
+ *
+ * return 0 to allow dvb-core to handle the ioctl.
+ * return a positive int to prevent dvb-core from handling the ioctl,
+ * and exit without error.
+ * return a negative int to prevent dvb-core from handling the ioctl,
+ * and return that value as an error.
+ *
+ * When DVB_FE_IOCTL_POST is passed to the callback as the stage arg:
+ *
+ * return 0 to allow the dvb_frontend ioctl handler to exit normally.
+ * return a negative int to cause the dvb_frontend ioctl handler to
+ * return that value as an error.
+ */
+#define DVB_FE_IOCTL_PRE 0
+#define DVB_FE_IOCTL_POST 1
+ int (*fe_ioctl_override)(struct dvb_frontend *fe,
+ unsigned int cmd, void *parg,
+ unsigned int stage);
};
OpenPOWER on IntegriCloud