[svn-commits] tzafrir: branch tzafrir/ztscan r4002 - /team/tzafrir/ztscan/ztscan.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Sun Mar 16 14:39:32 CDT 2008
Author: tzafrir
Date: Sun Mar 16 14:39:32 2008
New Revision: 4002
URL: http://svn.digium.com/view/zaptel?view=rev&rev=4002
Log:
move the span printing to a separate function.
Modified:
team/tzafrir/ztscan/ztscan.c
Modified: team/tzafrir/ztscan/ztscan.c
URL: http://svn.digium.com/view/zaptel/team/tzafrir/ztscan/ztscan.c?view=diff&rev=4002&r1=4001&r2=4002
==============================================================================
--- team/tzafrir/ztscan/ztscan.c (original)
+++ team/tzafrir/ztscan/ztscan.c Sun Mar 16 14:39:32 2008
@@ -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 s;
+ 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);
+ memset(&s, 0, sizeof(s));
+ s.spanno = spanno;
+ if (ioctl(ctl, ZT_SPANSTAT, &s))
+ 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");
}
-
- for (x = 1; x < ZT_MAX_SPANS; x++) {
- memset(&s, 0, sizeof(s));
- s.spanno = x;
- if (ioctl(ctl, ZT_SPANSTAT, &s))
- continue;
- 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");
- }
+ fprintf(stdout, "[%d]\n", spanno);
+ 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;
+ return;
+ }
- 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;
- }
-
- 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", 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);
+ 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 @@
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 += s.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);
More information about the svn-commits
mailing list