summaryrefslogtreecommitdiff
path: root/zaptel.c
diff options
context:
space:
mode:
authorjim <jim@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2004-11-04 20:04:53 +0000
committerjim <jim@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2004-11-04 20:04:53 +0000
commit7e99207e834bd395443af5f88453b0aea65d3315 (patch)
tree37bdd5563db7c329733f31693fa75e7b634a8529 /zaptel.c
parentb420103c9e0c8eaf5bf9c0b040642f08539a487f (diff)
Added support for Zapata Telephony Quad PCI Radio Interface card.
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@489 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel.c')
-rwxr-xr-xzaptel.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/zaptel.c b/zaptel.c
index 4f88f6f..d28b40b 100755
--- a/zaptel.c
+++ b/zaptel.c
@@ -274,6 +274,8 @@ of the next sample chunk's data (next time around the world).
#include "digits.h"
+static int zt_chan_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long data, int unit);
+
#if defined(CONFIG_ZAPTEL_MMX) || defined(ECHO_CAN_FP)
/* XXX kernel_fpu_begin() is NOT exported properly (in 2.4), so we have to make
a local version. Somebody fix this! XXX */
@@ -2687,6 +2689,7 @@ static int zt_timer_ioctl(struct inode *node, struct file *file, unsigned int cm
}
return 0;
}
+
static int zt_common_ioctl(struct inode *node, struct file *file, unsigned int cmd, unsigned long data, int unit)
{
union {
@@ -2989,9 +2992,15 @@ static int zt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd
struct zt_chan *newmaster;
struct zt_dialparams tdp;
struct zt_maintinfo maint;
+ struct zt_indirect_data ind;
unsigned long flags;
int rv;
switch(cmd) {
+ case ZT_INDIRECT:
+ if (copy_from_user(&ind, (struct zt_indirect_data *)data, sizeof(ind)))
+ return -EFAULT;
+ VALID_CHANNEL(ind.chan);
+ return zt_chan_ioctl(inode, file, ind.op, (unsigned long) ind.data, ind.chan);
case ZT_SPANCONFIG:
if (copy_from_user(&lc, (struct zt_lineconfig *)data, sizeof(lc)))
return -EFAULT;