blob: db4b5601e12d260fa09a28664605e5e7e3c61c07 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2022 Google Inc, Steven Rostedt <rostedt@goodmis.org>
*/
#include "ktrace.h"
#define EXEC_NAME "ktrace"
static void usage(char **argv)
{
printf("usage: %s\n"
"\n", EXEC_NAME);
exit(-1);
}
static void __vdie(const char *fmt, va_list ap, int err)
{
int ret = errno;
if (err && errno)
perror(EXEC_NAME);
else
ret = -1;
fprintf(stderr, " ");
vfprintf(stderr, fmt, ap);
fprintf(stderr, "\n");
exit(ret);
}
void pdie(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
__vdie(fmt, ap, 1);
va_end(ap);
}
int main (int argc, char **argv)
{
struct ccli *ccli;
struct tep_handle *tep;
tep = tracefs_local_events(NULL);
if (!tep) {
if (errno == EPERM)
pdie("Failed to initialize tracing directory.\n"
" You do not have permission to read it");
pdie("Failed to initialize tracing directory");
}
ccli = ccli_alloc("ktrace> ", STDIN_FILENO, STDOUT_FILENO);
if (!ccli)
pdie("ccli initialization");
ccli_register_command(ccli, "create", cmd_create, tep);
ccli_register_completion(ccli, "create", create_completion);
ccli_loop(ccli);
ccli_free(ccli);
tep_free(tep);
return 0;
}