diff options
Diffstat (limited to 'ztscan.c')
-rw-r--r-- | ztscan.c | 23 |
1 files changed, 19 insertions, 4 deletions
@@ -164,16 +164,31 @@ void print_span(int spanno, int ctl) int main(int argc, char *argv[]) { int ctl; - int x; + int x, spanno; 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); + /* If no parameters: loop over all spans */ + if (argc == 1) { + for (spanno = 1; spanno < ZT_MAX_SPANS; spanno++) + print_span(spanno, ctl); + return 0; } - exit(0); + /* Parameters provided: use them as span numbers */ + for (x=1; argv[x]; x++) { + /* We can use atoi because span numbers must be > 0 */ + int spanno = atoi(argv[x]); + if (spanno <= 0) { + fprintf(stderr, "%s: Error: Invalid span number %d (%s). Aborting\n", + argv[0], spanno, argv[x]); + exit(2); + } + print_span(spanno, ctl); + } + + return 0; } |