/*
* block queue tracing application
*
- * TODO (in no particular order):
- * - Add option for relayfs mount point
- *
* Copyright (C) 2005 Jens Axboe <axboe@suse.de>
*
* This program is free software; you can redistribute it and/or modify
DECLARE_MASK_MAP( PC ),
};
-#define S_OPTS "d:a:A:"
+#define S_OPTS "d:a:A:r:"
struct option l_opts[] = {
{
.name = "dev",
.flag = NULL,
.val = 'A'
},
+ {
+ .name = "relay",
+ .has_arg = 1,
+ .flag = NULL,
+ .val = 'r'
+ },
{
.name = NULL,
.has_arg = 0,
unsigned long events_processed;
};
-static char relay_path[] = "/relay/";
+static char *relay_path;
#define is_done() (*(volatile int *)(&done))
static volatile int done;
int main(int argc, char *argv[])
{
+ static char default_relay_path[] = "/relay";
struct stat st;
int i, c;
int act_mask_tmp = 0;
dev = strdup(optarg);
break;
+ case 'r':
+ relay_path = optarg;
+ break;
+
default:
fprintf(stderr,"Usage: %s -d <dev> "
"[-a <trace> [-a <trace>]]\n", argv[0]);
return 4;
}
+ if (!relay_path)
+ relay_path = default_relay_path;
+
if (act_mask_tmp != 0) {
act_mask = act_mask_tmp;
printf("Tracing 0x%04x: ", act_mask);
}
if (start_trace(dev)) {
+ close(devfd);
fprintf(stderr, "Failed to start trace on %s\n", dev);
return 3;
}