summaryrefslogtreecommitdiff
path: root/ztscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'ztscan.c')
-rw-r--r--ztscan.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/ztscan.c b/ztscan.c
index 917767a..d821092 100644
--- a/ztscan.c
+++ b/ztscan.c
@@ -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;
}