diff options
author | steveu <steveu@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2003-07-18 19:27:48 +0000 |
---|---|---|
committer | steveu <steveu@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2003-07-18 19:27:48 +0000 |
commit | e2ea9bbcd29b5a6fb07be6191f512c9059836e8f (patch) | |
tree | 62e06483e3ae8c3a6937ff555d3da8309fd501f5 /zaptel.c | |
parent | 90e9470c5bdb89a0aafe75e0dd85bfdad77017f8 (diff) |
Support for additional errors counts added. These are now copied between
structures, alongside the bipolar violation count (which used to be the
only error count handled by the driver). The error counts are also
presented in the procfs files. The procfs files also show which ports
are in use (i.e. opened from software - not necessarily handling a call).
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@221 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel.c')
-rwxr-xr-x | zaptel.c | 53 |
1 files changed, 34 insertions, 19 deletions
@@ -28,6 +28,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * + * $Id$ */ #include <linux/kernel.h> @@ -458,28 +459,39 @@ static int zaptel_proc_read(char *page, char **start, off_t off, int count, int if (spans[span]->syncsrc && (spans[span]->syncsrc == spans[span]->spanno)) len += sprintf(page + len, "ClockSource "); len += sprintf(page + len, "\n"); + if (spans[span]->bpvcount) + len += sprintf(page + len, "\tBPV count: %d\n", spans[span]->bpvcount); + if (spans[span]->crc4count) + len += sprintf(page + len, "\tCRC4 error count: %d\n", spans[span]->crc4count); + if (spans[span]->ebitcount) + len += sprintf(page + len, "\tE-bit error count: %d\n", spans[span]->ebitcount); + if (spans[span]->fascount) + len += sprintf(page + len, "\tFAS error count: %d\n", spans[span]->fascount); + if (spans[span]->irqmisses) + len += sprintf(page + len, "\tIRQ misses: %d\n", spans[span]->irqmisses); + len += sprintf(page + len, "\n"); for (x=1;x<ZT_MAX_CHANNELS;x++) { if (chans[x]) { if (chans[x]->span && (chans[x]->span->spanno == span)) { - - if (chans[x]->name) - len += sprintf(page + len, "\t%d %s ", x, chans[x]->name ); - - if (chans[x]->sig) { - if (chans[x]->sig == ZT_SIG_SLAVE) - len += sprintf(page + len, "%s", sigstr(chans[x]->master->sig)); - else { - len += sprintf(page + len, "%s", sigstr(chans[x]->sig)); - if (chans[x]->nextslave && chans[x]->master->channo == x) - len += sprintf(page + len, "Master "); - } + if (chans[x]->name) + len += sprintf(page + len, "\t%4d %s ", x, chans[x]->name); + if (chans[x]->sig) { + if (chans[x]->sig == ZT_SIG_SLAVE) + len += sprintf(page + len, "%s ", sigstr(chans[x]->master->sig)); + else { + len += sprintf(page + len, "%s ", sigstr(chans[x]->sig)); + if (chans[x]->nextslave && chans[x]->master->channo == x) + len += sprintf(page + len, "Master "); + } + } + if ((chans[x]->flags & ZT_FLAG_OPEN)) { + len += sprintf(page + len, "(In use) "); } len += sprintf(page + len, "\n"); } - } } return len; @@ -2541,12 +2553,15 @@ static int zt_common_ioctl(struct inode *node, struct file *file, unsigned int c if (maxspans) span.totalspans = maxspans - 1; /* put total number of spans here */ strncpy(span.desc, spans[i]->desc, sizeof(span.desc) - 1); strncpy(span.name, spans[i]->name, sizeof(span.name) - 1); - span.alarms = spans[i]->alarms; /* get alarm status */ - span.bpvcount = spans[i]->bpvcount; /* get BPV count */ - span.rxlevel = spans[i]->rxlevel; /* get rx level */ - span.txlevel = spans[i]->txlevel; /* get tx level */ - span.irqmisses = spans[i]->irqmisses; /* get BPV count */ - span.syncsrc = spans[i]->syncsrc; /* get active sync source */ + span.alarms = spans[i]->alarms; /* get alarm status */ + span.bpvcount = spans[i]->bpvcount; /* get BPV count */ + span.rxlevel = spans[i]->rxlevel; /* get rx level */ + span.txlevel = spans[i]->txlevel; /* get tx level */ + span.crc4count = spans[i]->crc4count; /* get CRC4 error count */ + span.ebitcount = spans[i]->ebitcount; /* get E-bit error count */ + span.fascount = spans[i]->fascount; /* get FAS error count */ + span.irqmisses = spans[i]->irqmisses; /* get IRQ miss count */ + span.syncsrc = spans[i]->syncsrc; /* get active sync source */ span.totalchans = spans[i]->channels; span.numchans = 0; for (j=0; j < spans[i]->channels; j++) |