diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-18 21:34:16 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-18 21:34:16 +0000 |
commit | 3b4524f26a44db3c21bcc8ab3017fadb7f78cc27 (patch) | |
tree | 85906a1f3cbb34a5a4ca9003e3c982b38beef083 /ztscan.c | |
parent | e60736433d7bd0baa5bd314e544d2d8059b4cebb (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.c | 219 |
1 files changed, 113 insertions, 106 deletions
@@ -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(¶ms, 0, sizeof(params)); - params.channo = y; - if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) { - 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(¶ms, 0, sizeof(params)); + params.channo = y; + if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) { + 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(¶ms, 0, sizeof(params)); - params.channo = y; - if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) { - 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(¶ms, 0, sizeof(params)); + params.channo = y; + if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) { + 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); |