2005-09-04 23:44:49

by Johannes Stezenbach

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

From: Andreas Oberritter <[email protected]>

Glue code for DMX_GET_CAPS and DMX_SET_SOURCE ioctls.

Signed-off-by: Andreas Oberritter <[email protected]>
Signed-off-by: Johannes Stezenbach <[email protected]>

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;

--