@@ -56,9 +56,8 @@ typedef int (*tep_plugin_unload_func)(struct tep_handle *tep);
struct tep_plugin_option {
struct tep_plugin_option *next;
void *handle;
- char *file;
+ char *plugin;
char *name;
- char *plugin_alias;
char *description;
const char *value;
void *priv;
@@ -84,7 +83,6 @@ struct tep_plugin_option {
* struct tep_plugin_option TEP_PLUGIN_OPTIONS[] = {
* {
* .name = "option-name",
- * .plugin_alias = "override-file-name", (optional)
* .description = "description of option to show users",
* },
* {
@@ -94,27 +92,18 @@ struct tep_plugin_option {
*
* Array must end with .name = NULL;
*
- *
- * .plugin_alias is used to give a shorter name to access
- * the vairable. Useful if a plugin handles more than one event.
- *
* If .value is not set, then it is considered a boolean and only
* .set will be processed. If .value is defined, then it is considered
* a string option and .set will be ignored.
- *
- * TEP_PLUGIN_ALIAS: (optional)
- * The name to use for finding options (uses filename if not defined)
*/
#define TEP_PLUGIN_LOADER tep_plugin_loader
#define TEP_PLUGIN_UNLOADER tep_plugin_unloader
#define TEP_PLUGIN_OPTIONS tep_plugin_options
-#define TEP_PLUGIN_ALIAS tep_plugin_alias
#define _MAKE_STR(x) #x
#define MAKE_STR(x) _MAKE_STR(x)
#define TEP_PLUGIN_LOADER_NAME MAKE_STR(TEP_PLUGIN_LOADER)
#define TEP_PLUGIN_UNLOADER_NAME MAKE_STR(TEP_PLUGIN_UNLOADER)
#define TEP_PLUGIN_OPTIONS_NAME MAKE_STR(TEP_PLUGIN_OPTIONS)
-#define TEP_PLUGIN_ALIAS_NAME MAKE_STR(TEP_PLUGIN_ALIAS)
enum tep_format_flags {
TEP_FIELD_IS_ARRAY = 1,
@@ -12,14 +12,14 @@
struct tep_plugin_option trace_ftrace_options[] = {
{
+ .plugin = "ftrace",
.name = "tailprint",
- .plugin_alias = "fgraph",
.description =
"Print function name at function exit in function graph",
},
{
+ .plugin = "ftrace",
.name = "depth",
- .plugin_alias = "fgraph",
.description =
"Show the depth of each entry",
},
@@ -100,7 +100,6 @@ load_plugin(struct trace_plugin_context *trace, const char *path,
struct trace_plugin_list **plugin_list = data;
tracecmd_plugin_load_func func;
struct trace_plugin_list *list;
- const char *alias;
char *plugin;
void *handle;
int ret;
@@ -118,10 +117,6 @@ load_plugin(struct trace_plugin_context *trace, const char *path,
goto out_free;
}
- alias = dlsym(handle, TRACECMD_PLUGIN_ALIAS_NAME);
- if (!alias)
- alias = file;
-
func = dlsym(handle, TRACECMD_PLUGIN_LOADER_NAME);
if (!func) {
warning("could not find func '%s' in plugin '%s'\n%s\n",
@@ -113,11 +113,10 @@ char **tep_plugin_list_options(void)
for (reg = registered_options; reg; reg = reg->next) {
for (op = reg->options; op->name; op++) {
- char *alias = op->plugin_alias ? op->plugin_alias : op->file;
char **temp = list;
int ret;
- ret = asprintf(&name, "%s:%s", alias, op->name);
+ ret = asprintf(&name, "%s:%s", op->plugin, op->name);
if (ret < 0)
goto err;
@@ -163,20 +162,14 @@ update_option(const char *file, struct tep_plugin_option *option)
struct trace_plugin_options *op;
char *plugin;
int ret = 0;
+ char *p;
- if (option->plugin_alias) {
- plugin = strdup(option->plugin_alias);
- if (!plugin)
- return -1;
- } else {
- char *p;
- plugin = strdup(file);
- if (!plugin)
- return -1;
- p = strstr(plugin, ".");
- if (p)
- *p = '\0';
- }
+ plugin = strdup(file);
+ if (!plugin)
+ return -1;
+ p = strstr(plugin, ".");
+ if (p)
+ *p = '\0';
/* first look for named options */
for (op = trace_plugin_options; op; op = op->next) {
@@ -274,16 +267,10 @@ find_registered_option(const char *plugin, const char *option)
{
struct registered_plugin_options *reg;
struct tep_plugin_option *op;
- const char *op_plugin;
for (reg = registered_options; reg; reg = reg->next) {
for (op = reg->options; op->name; op++) {
- if (op->plugin_alias)
- op_plugin = op->plugin_alias;
- else
- op_plugin = op->file;
-
- if (plugin && strcmp(plugin, op_plugin) != 0)
+ if (plugin && strcmp(plugin, op->plugin) != 0)
continue;
if (strcmp(option, op->name) != 0)
continue;
@@ -404,8 +391,7 @@ void tep_plugin_print_options(struct trace_seq *s)
for (op = reg->options; op->name; op++) {
if (op != reg->options)
trace_seq_printf(s, "------------\n");
- print_op_data(s, "file", op->file);
- print_op_data(s, "plugin", op->plugin_alias);
+ print_op_data(s, "plugin", op->plugin);
print_op_data(s, "option", op->name);
print_op_data(s, "desc", op->description);
print_op_data(s, "value", op->value);
@@ -444,7 +430,6 @@ load_plugin(struct tep_handle *tep, const char *path,
struct tep_plugin_option *options;
tep_plugin_load_func func;
struct tep_plugin_list *list;
- const char *alias;
char *plugin;
void *handle;
int ret;
@@ -462,14 +447,10 @@ load_plugin(struct tep_handle *tep, const char *path,
goto out_free;
}
- alias = dlsym(handle, TEP_PLUGIN_ALIAS_NAME);
- if (!alias)
- alias = file;
-
options = dlsym(handle, TEP_PLUGIN_OPTIONS_NAME);
if (options) {
while (options->name) {
- ret = update_option(alias, options);
+ ret = update_option(file, options);
if (ret < 0)
goto out_free;
options++;
@@ -22,21 +22,21 @@ static int cpus = -1;
struct tep_plugin_option plugin_options[] =
{
{
+ .plugin = "ftrace",
.name = "parent",
- .plugin_alias = "ftrace",
.description =
"Print parent of functions for function events",
},
{
+ .plugin = "ftrace",
.name = "indent",
- .plugin_alias = "ftrace",
.description =
"Try to show function call indents, based on parents",
.set = 1,
},
{
+ .plugin = "ftrace",
.name = "offset",
- .plugin_alias = "ftrace",
.description =
"Show function names as well as their offsets",
.set = 0,
When registering a plugin option, the current API allows to set an alias to the option's plugin. This logic complicates the implementation, but is not used by any existing plugin. In order to simplify the libtracevent API, these changes are introduced, related to plugin options: - Removed "plugin_alias" from options and all logic associated with it. - Renamed "file" field to "plugin", the new name describes more closely its purpose. Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> --- include/traceevent/event-parse.h | 13 +------- lib/trace-cmd/trace-ftrace.c | 4 +-- lib/trace-cmd/trace-plugin.c | 5 --- lib/traceevent/event-plugin.c | 41 +++++++----------------- lib/traceevent/plugins/plugin_function.c | 6 ++-- 5 files changed, 17 insertions(+), 52 deletions(-)