summaryrefslogtreecommitdiff
path: root/zaptel.c
diff options
context:
space:
mode:
authorsteveu <steveu@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2003-07-18 19:27:48 +0000
committersteveu <steveu@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2003-07-18 19:27:48 +0000
commite2ea9bbcd29b5a6fb07be6191f512c9059836e8f (patch)
tree62e06483e3ae8c3a6937ff555d3da8309fd501f5 /zaptel.c
parent90e9470c5bdb89a0aafe75e0dd85bfdad77017f8 (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-xzaptel.c53
1 files changed, 34 insertions, 19 deletions
diff --git a/zaptel.c b/zaptel.c
index 4ad2715..449018b 100755
--- a/zaptel.c
+++ b/zaptel.c
@@ -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++)