summaryrefslogtreecommitdiff
path: root/ztscan.c
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-03-18 21:34:16 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-03-18 21:34:16 +0000
commit3b4524f26a44db3c21bcc8ab3017fadb7f78cc27 (patch)
tree85906a1f3cbb34a5a4ca9003e3c982b38beef083 /ztscan.c
parente60736433d7bd0baa5bd314e544d2d8059b4cebb (diff)
ztscan.c: Moving some code, renaming some variables, no change in
functionality. git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@4006 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'ztscan.c')
-rw-r--r--ztscan.c219
1 files changed, 113 insertions, 106 deletions
diff --git a/ztscan.c b/ztscan.c
index 64298ee..917767a 100644
--- a/ztscan.c
+++ b/ztscan.c
@@ -40,116 +40,109 @@
#include <zaptel/zaptel.h>
#endif
-int main(int argc, char *argv[])
+void print_span(int spanno, int ctl)
{
- int ctl;
- int x, y;
+ struct zt_spaninfo spaninfo;
+ int y;
struct zt_params params;
unsigned int basechan = 1;
- struct zt_spaninfo s;
char buf[100];
char alarms[50];
- if ((ctl = open("/dev/zap/ctl", O_RDWR)) < 0) {
- fprintf(stderr, "Unable to open /dev/zap/ctl: %s\n", strerror(errno));
- exit(1);
- }
-
- for (x = 1; x < ZT_MAX_SPANS; x++) {
- memset(&s, 0, sizeof(s));
- s.spanno = x;
- if (ioctl(ctl, ZT_SPANSTAT, &s))
- continue;
+ memset(&spaninfo, 0, sizeof(spaninfo));
+ spaninfo.spanno = spanno;
+ if (ioctl(ctl, ZT_SPANSTAT, &spaninfo))
+ return;
- alarms[0] = '\0';
- if (s.alarms) {
- if (s.alarms & ZT_ALARM_BLUE)
- strcat(alarms,"BLU/");
- if (s.alarms & ZT_ALARM_YELLOW)
- strcat(alarms, "YEL/");
- if (s.alarms & ZT_ALARM_RED)
- strcat(alarms, "RED/");
- if (s.alarms & ZT_ALARM_LOOPBACK)
- strcat(alarms,"LB/");
- if (s.alarms & ZT_ALARM_RECOVER)
- strcat(alarms,"REC/");
- if (s.alarms & ZT_ALARM_NOTOPEN)
- strcat(alarms, "NOP/");
- if (!strlen(alarms))
- strcat(alarms, "UUU/");
- if (strlen(alarms)) {
- /* Strip trailing / */
- alarms[strlen(alarms)-1]='\0';
- }
- } else {
- if (s.numchans)
- strcpy(alarms, "OK");
- else
- strcpy(alarms, "UNCONFIGURED");
+ alarms[0] = '\0';
+ if (spaninfo.alarms) {
+ if (spaninfo.alarms & ZT_ALARM_BLUE)
+ strcat(alarms,"BLU/");
+ if (spaninfo.alarms & ZT_ALARM_YELLOW)
+ strcat(alarms, "YEL/");
+ if (spaninfo.alarms & ZT_ALARM_RED)
+ strcat(alarms, "RED/");
+ if (spaninfo.alarms & ZT_ALARM_LOOPBACK)
+ strcat(alarms,"LB/");
+ if (spaninfo.alarms & ZT_ALARM_RECOVER)
+ strcat(alarms,"REC/");
+ if (spaninfo.alarms & ZT_ALARM_NOTOPEN)
+ strcat(alarms, "NOP/");
+ if (!strlen(alarms))
+ strcat(alarms, "UUU/");
+ if (strlen(alarms)) {
+ /* Strip trailing / */
+ alarms[strlen(alarms)-1]='\0';
}
+ } else {
+ if (spaninfo.numchans)
+ strcpy(alarms, "OK");
+ else
+ strcpy(alarms, "UNCONFIGURED");
+ }
- fprintf(stdout, "[%d]\n", x);
- fprintf(stdout, "active=yes\n");
- fprintf(stdout, "alarms=%s\n", alarms);
- fprintf(stdout, "description=%s\n", s.desc);
- fprintf(stdout, "name=%s\n", s.name);
- fprintf(stdout, "manufacturer=%s\n", s.manufacturer);
- fprintf(stdout, "devicetype=%s\n", s.devicetype);
- fprintf(stdout, "location=%s\n", s.location);
- fprintf(stdout, "basechan=%d\n", basechan);
- fprintf(stdout, "totchans=%d\n", s.totalchans);
- fprintf(stdout, "irq=%d\n", s.irq);
- y = basechan;
- memset(&params, 0, sizeof(params));
- params.channo = y;
- if (ioctl(ctl, ZT_GET_PARAMS, &params)) {
- basechan += s.totalchans;
- continue;
- }
+ fprintf(stdout, "[%d]\n", spanno);
+ fprintf(stdout, "active=yes\n");
+ fprintf(stdout, "alarms=%s\n", alarms);
+ fprintf(stdout, "description=%s\n", spaninfo.desc);
+ fprintf(stdout, "name=%s\n", spaninfo.name);
+ fprintf(stdout, "manufacturer=%s\n", spaninfo.manufacturer);
+ fprintf(stdout, "devicetype=%s\n", spaninfo.devicetype);
+ fprintf(stdout, "location=%s\n", spaninfo.location);
+ fprintf(stdout, "basechan=%d\n", basechan);
+ fprintf(stdout, "totchans=%d\n", spaninfo.totalchans);
+ fprintf(stdout, "irq=%d\n", spaninfo.irq);
+ y = basechan;
+ memset(&params, 0, sizeof(params));
+ params.channo = y;
+ if (ioctl(ctl, ZT_GET_PARAMS, &params)) {
+ basechan += spaninfo.totalchans;
+ return;
+ }
- if (params.sigcap & (__ZT_SIG_DACS | ZT_SIG_CAS)) {
- /* this is a digital span */
- fprintf(stdout, "type=digital-%s\n", s.spantype);
- fprintf(stdout, "syncsrc=%d\n", s.syncsrc);
- fprintf(stdout, "lbo=%s\n", s.lboname);
- fprintf(stdout, "coding_opts=");
- buf[0] = '\0';
- if (s.linecompat & ZT_CONFIG_B8ZS) strcat(buf, "B8ZS,");
- if (s.linecompat & ZT_CONFIG_AMI) strcat(buf, "AMI,");
- if (s.linecompat & ZT_CONFIG_HDB3) strcat(buf, "HDB3,");
- buf[strlen(buf) - 1] = '\0';
- fprintf(stdout, "%s\n", buf);
- fprintf(stdout, "framing_opts=");
- buf[0] = '\0';
- if (s.linecompat & ZT_CONFIG_ESF) strcat(buf, "ESF,");
- if (s.linecompat & ZT_CONFIG_D4) strcat(buf, "D4,");
- if (s.linecompat & ZT_CONFIG_CCS) strcat(buf, "CCS,");
- if (s.linecompat & ZT_CONFIG_CRC4) strcat(buf, "CRC4,");
- buf[strlen(buf) - 1] = '\0';
- fprintf(stdout, "%s\n", buf);
- fprintf(stdout, "coding=");
- if (s.lineconfig & ZT_CONFIG_B8ZS) fprintf(stdout, "B8ZS");
- else if (s.lineconfig & ZT_CONFIG_AMI) fprintf(stdout, "AMI");
- else if (s.lineconfig & ZT_CONFIG_HDB3) fprintf(stdout, "HDB3");
- fprintf(stdout, "\n");
- fprintf(stdout, "framing=");
- if (s.lineconfig & ZT_CONFIG_ESF) fprintf(stdout, "ESF");
- else if (s.lineconfig & ZT_CONFIG_D4) fprintf(stdout, "D4");
- else if (s.lineconfig & ZT_CONFIG_CCS) fprintf(stdout, "CCS");
- else if (s.lineconfig & ZT_CONFIG_CRC4) fprintf(stdout, "/CRC4");
- fprintf(stdout, "\n");
- } else {
- /* this is an analog span */
- fprintf(stdout, "type=analog\n");
- for (y = basechan; y < (basechan + s.totalchans); y++) {
- memset(&params, 0, sizeof(params));
- params.channo = y;
- if (ioctl(ctl, ZT_GET_PARAMS, &params)) {
- fprintf(stdout, "port=%d,unknown\n", y);
- continue;
- };
- fprintf(stdout, "port=%d,", y);
- switch (params.sigcap & (__ZT_SIG_FXO | __ZT_SIG_FXS)) {
+ if (params.sigcap & (__ZT_SIG_DACS | ZT_SIG_CAS)) {
+ /* this is a digital span */
+ fprintf(stdout, "type=digital-%s\n", spaninfo.spantype);
+ fprintf(stdout, "syncsrc=%d\n", spaninfo.syncsrc);
+ fprintf(stdout, "lbo=%s\n", spaninfo.lboname);
+ fprintf(stdout, "coding_opts=");
+ buf[0] = '\0';
+ if (spaninfo.linecompat & ZT_CONFIG_B8ZS) strcat(buf, "B8ZS,");
+ if (spaninfo.linecompat & ZT_CONFIG_AMI) strcat(buf, "AMI,");
+ if (spaninfo.linecompat & ZT_CONFIG_HDB3) strcat(buf, "HDB3,");
+ buf[strlen(buf) - 1] = '\0';
+ fprintf(stdout, "%s\n", buf);
+ fprintf(stdout, "framing_opts=");
+ buf[0] = '\0';
+ if (spaninfo.linecompat & ZT_CONFIG_ESF) strcat(buf, "ESF,");
+ if (spaninfo.linecompat & ZT_CONFIG_D4) strcat(buf, "D4,");
+ if (spaninfo.linecompat & ZT_CONFIG_CCS) strcat(buf, "CCS,");
+ if (spaninfo.linecompat & ZT_CONFIG_CRC4) strcat(buf, "CRC4,");
+ buf[strlen(buf) - 1] = '\0';
+ fprintf(stdout, "%s\n", buf);
+ fprintf(stdout, "coding=");
+ if (spaninfo.lineconfig & ZT_CONFIG_B8ZS) fprintf(stdout, "B8ZS");
+ else if (spaninfo.lineconfig & ZT_CONFIG_AMI) fprintf(stdout, "AMI");
+ else if (spaninfo.lineconfig & ZT_CONFIG_HDB3) fprintf(stdout, "HDB3");
+ fprintf(stdout, "\n");
+ fprintf(stdout, "framing=");
+ if (spaninfo.lineconfig & ZT_CONFIG_ESF) fprintf(stdout, "ESF");
+ else if (spaninfo.lineconfig & ZT_CONFIG_D4) fprintf(stdout, "D4");
+ else if (spaninfo.lineconfig & ZT_CONFIG_CCS) fprintf(stdout, "CCS");
+ else if (spaninfo.lineconfig & ZT_CONFIG_CRC4) fprintf(stdout, "/CRC4");
+ fprintf(stdout, "\n");
+ } else {
+ /* this is an analog span */
+ fprintf(stdout, "type=analog\n");
+ for (y = basechan; y < (basechan + spaninfo.totalchans); y++) {
+ memset(&params, 0, sizeof(params));
+ params.channo = y;
+ if (ioctl(ctl, ZT_GET_PARAMS, &params)) {
+ fprintf(stdout, "port=%d,unknown\n", y);
+ return;
+ };
+ fprintf(stdout, "port=%d,", y);
+ switch (params.sigcap & (__ZT_SIG_FXO | __ZT_SIG_FXS)) {
case __ZT_SIG_FXO:
fprintf(stdout, "FXS");
break;
@@ -158,14 +151,28 @@ int main(int argc, char *argv[])
break;
default:
fprintf(stdout, "none");
- }
- if (params.sigcap & ZT_SIG_BROKEN)
- fprintf(stdout, " FAILED");
- fprintf(stdout, "\n");
}
+ if (params.sigcap & ZT_SIG_BROKEN)
+ fprintf(stdout, " FAILED");
+ fprintf(stdout, "\n");
}
-
- basechan += s.totalchans;
+ }
+
+ basechan += spaninfo.totalchans;
+}
+
+int main(int argc, char *argv[])
+{
+ int ctl;
+ int x;
+
+ if ((ctl = open("/dev/zap/ctl", O_RDWR)) < 0) {
+ fprintf(stderr, "Unable to open /dev/zap/ctl: %s\n", strerror(errno));
+ exit(1);
+ }
+
+ for (x = 1; x < ZT_MAX_SPANS; x++) {
+ print_span(x, ctl);
}
exit(0);