summaryrefslogtreecommitdiffstats
path: root/runtime/stpd/stpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/stpd/stpd.c')
-rw-r--r--runtime/stpd/stpd.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/runtime/stpd/stpd.c b/runtime/stpd/stpd.c
index 0b42ff6e..2fecc380 100644
--- a/runtime/stpd/stpd.c
+++ b/runtime/stpd/stpd.c
@@ -36,9 +36,11 @@ int quiet = 0;
int merge = 1;
int verbose = 0;
int enable_relayfs = 1;
+int target_pid = 0;
unsigned int buffer_size = 0;
char *modname = NULL;
char *modpath = NULL;
+char *target_cmd = NULL;
/* relayfs base file name */
static char stpd_filebase[1024];
@@ -52,10 +54,14 @@ char *stp_check="stp_check";
static void usage(char *prog)
{
- fprintf(stderr, "\n%s [-m] [-p] [-q] [-b bufsize] [-n num_subbufs] kmod-name\n", prog);
+ fprintf(stderr, "\n%s [-m] [-p] [-q] [-r] [-c cmd ] [-t pid] [-b bufsize] kmod-name\n", prog);
fprintf(stderr, "-m Don't merge per-cpu files.\n");
fprintf(stderr, "-p Print only. Don't log to files.\n");
fprintf(stderr, "-q Quiet. Don't display trace to stdout.\n");
+ fprintf(stderr, "-r Disable running stp_check and loading relayfs module.\n");
+ fprintf(stderr, "-c cmd. Command \'cmd\' will be run and stpd will exit when it does.\n");
+ fprintf(stderr, " _stp_target will contain the pid for the command.\n");
+ fprintf(stderr, "-t pid. Sets _stp_target to pid.\n");
fprintf(stderr, "-b buffer size. The systemtap module will specify a buffer size.\n");
fprintf(stderr, " Setting one here will override that value. The value should be\n");
fprintf(stderr, " an integer between 1 and 64 which be assumed to be the\n");
@@ -68,7 +74,7 @@ int main(int argc, char **argv)
int c, status;
pid_t pid;
- while ((c = getopt(argc, argv, "mpqrb:n:v")) != EOF)
+ while ((c = getopt(argc, argv, "mpqrb:n:t:c:v")) != EOF)
{
switch (c) {
case 'm':
@@ -98,6 +104,12 @@ int main(int argc, char **argv)
buffer_size = size;
break;
}
+ case 't':
+ target_pid = atoi(optarg);
+ break;
+ case 'c':
+ target_cmd = optarg;
+ break;
default:
usage(argv[0]);
}