[DVB patch 04/54] core: glue code for DMX_GET_CAPS and DMX_SET_SOURCE

Johannes Stezenbach
2005-09-04T23:44:49Z

[-- Attachment #1: dvb-core-add-get_caps-set_source-glue.patch --]
[-- Type: text/plain, Size: 1866 bytes --]

From: Andreas Oberritter <obi@linuxtv.org>

Glue code for DMX_GET_CAPS and DMX_SET_SOURCE ioctls.

Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>

drivers/media/dvb/dvb-core/demux.h | 5 +++++
drivers/media/dvb/dvb-core/dmxdev.c | 16 ++++++++++++++++
2 files changed, 21 insertions(+)

--- linux-2.6.13-git4.orig/drivers/media/dvb/dvb-core/demux.h 2005-09-04 22:24:24.000000000 +0200
+++ linux-2.6.13-git4/drivers/media/dvb/dvb-core/demux.h 2005-09-04 22:27:52.000000000 +0200
@@ -30,6 +30,7 @@
#include <linux/errno.h>
#include <linux/list.h>
#include <linux/time.h>
+#include <linux/dvb/dmx.h>

/*--------------------------------------------------------------------------*/
/* Common definitions */
@@ -282,6 +283,10 @@ struct dmx_demux {

int (*get_pes_pids) (struct dmx_demux* demux, u16 *pids);

+ int (*get_caps) (struct dmx_demux* demux, struct dmx_caps *caps);
+
+ int (*set_source) (struct dmx_demux* demux, const dmx_source_t *src);
+
int (*get_stc) (struct dmx_demux* demux, unsigned int num,
u64 *stc, unsigned int *base);
};
--- linux-2.6.13-git4.orig/drivers/media/dvb/dvb-core/dmxdev.c 2005-09-04 22:24:24.000000000 +0200
+++ linux-2.6.13-git4/drivers/media/dvb/dvb-core/dmxdev.c 2005-09-04 22:27:52.000000000 +0200
@@ -929,6 +929,22 @@ static int dvb_demux_do_ioctl(struct ino
dmxdev->demux->get_pes_pids(dmxdev->demux, (u16 *)parg);
break;

+ case DMX_GET_CAPS:
+ if (!dmxdev->demux->get_caps) {
+ ret = -EINVAL;
+ break;
+ }
+ ret = dmxdev->demux->get_caps(dmxdev->demux, parg);
+ break;
+
+ case DMX_SET_SOURCE:
+ if (!dmxdev->demux->set_source) {
+ ret = -EINVAL;
+ break;
+ }
+ ret = dmxdev->demux->set_source(dmxdev->demux, parg);
+ break;
+
case DMX_GET_STC:
if (!dmxdev->demux->get_stc) {
ret=-EINVAL;

--