Commit 047ff221 authored by Tzvetomir Stoyanov's avatar Tzvetomir Stoyanov Committed by Arnaldo Carvalho de Melo
Browse files

tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep



Input arguments of libtraceevent APIs are renamed from "struct
tep_handle *pevent" to "struct tep_handle *tep". This makes the API
consistent with the chosen naming convention: tep (trace event parser),
instead of the old pevent.

Signed-off-by: default avatarTzvetomir Stoyanov <tstoyanov@vmware.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lore.kernel.org/linux-trace-devel/20190401132111.13727-2-tstoyanov@vmware.com
Link: http://lkml.kernel.org/r/20190401164344.465573837@goodmis.org


Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 55c34ae0
Loading
Loading
Loading
Loading
+66 −66
Original line number Diff line number Diff line
@@ -92,11 +92,11 @@ bool tep_test_flag(struct tep_handle *tep, enum tep_flag flag)
	return false;
}

unsigned short tep_data2host2(struct tep_handle *pevent, unsigned short data)
unsigned short tep_data2host2(struct tep_handle *tep, unsigned short data)
{
	unsigned short swap;

	if (!pevent || pevent->host_bigendian == pevent->file_bigendian)
	if (!tep || tep->host_bigendian == tep->file_bigendian)
		return data;

	swap = ((data & 0xffULL) << 8) |
@@ -105,11 +105,11 @@ unsigned short tep_data2host2(struct tep_handle *pevent, unsigned short data)
	return swap;
}

unsigned int tep_data2host4(struct tep_handle *pevent, unsigned int data)
unsigned int tep_data2host4(struct tep_handle *tep, unsigned int data)
{
	unsigned int swap;

	if (!pevent || pevent->host_bigendian == pevent->file_bigendian)
	if (!tep || tep->host_bigendian == tep->file_bigendian)
		return data;

	swap = ((data & 0xffULL) << 24) |
@@ -121,11 +121,11 @@ unsigned int tep_data2host4(struct tep_handle *pevent, unsigned int data)
}

unsigned long long
tep_data2host8(struct tep_handle *pevent, unsigned long long data)
tep_data2host8(struct tep_handle *tep, unsigned long long data)
{
	unsigned long long swap;

	if (!pevent || pevent->host_bigendian == pevent->file_bigendian)
	if (!tep || tep->host_bigendian == tep->file_bigendian)
		return data;

	swap = ((data & 0xffULL) << 56) |
@@ -142,15 +142,15 @@ tep_data2host8(struct tep_handle *pevent, unsigned long long data)

/**
 * tep_get_header_page_size - get size of the header page
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This returns size of the header page
 * If @pevent is NULL, 0 is returned.
 * If @tep is NULL, 0 is returned.
 */
int tep_get_header_page_size(struct tep_handle *pevent)
int tep_get_header_page_size(struct tep_handle *tep)
{
	if (pevent)
		return pevent->header_page_size_size;
	if (tep)
		return tep->header_page_size_size;
	return 0;
}

@@ -170,163 +170,163 @@ int tep_get_header_timestamp_size(struct tep_handle *tep)

/**
 * tep_get_cpus - get the number of CPUs
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This returns the number of CPUs
 * If @pevent is NULL, 0 is returned.
 * If @tep is NULL, 0 is returned.
 */
int tep_get_cpus(struct tep_handle *pevent)
int tep_get_cpus(struct tep_handle *tep)
{
	if (pevent)
		return pevent->cpus;
	if (tep)
		return tep->cpus;
	return 0;
}

/**
 * tep_set_cpus - set the number of CPUs
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This sets the number of CPUs
 */
void tep_set_cpus(struct tep_handle *pevent, int cpus)
void tep_set_cpus(struct tep_handle *tep, int cpus)
{
	if (pevent)
		pevent->cpus = cpus;
	if (tep)
		tep->cpus = cpus;
}

/**
 * tep_get_long_size - get the size of a long integer on the traced machine
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This returns the size of a long integer on the traced machine
 * If @pevent is NULL, 0 is returned.
 * If @tep is NULL, 0 is returned.
 */
int tep_get_long_size(struct tep_handle *pevent)
int tep_get_long_size(struct tep_handle *tep)
{
	if (pevent)
		return pevent->long_size;
	if (tep)
		return tep->long_size;
	return 0;
}

/**
 * tep_set_long_size - set the size of a long integer on the traced machine
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 * @size: size, in bytes, of a long integer
 *
 * This sets the size of a long integer on the traced machine
 */
void tep_set_long_size(struct tep_handle *pevent, int long_size)
void tep_set_long_size(struct tep_handle *tep, int long_size)
{
	if (pevent)
		pevent->long_size = long_size;
	if (tep)
		tep->long_size = long_size;
}

/**
 * tep_get_page_size - get the size of a memory page on the traced machine
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This returns the size of a memory page on the traced machine
 * If @pevent is NULL, 0 is returned.
 * If @tep is NULL, 0 is returned.
 */
int tep_get_page_size(struct tep_handle *pevent)
int tep_get_page_size(struct tep_handle *tep)
{
	if (pevent)
		return pevent->page_size;
	if (tep)
		return tep->page_size;
	return 0;
}

/**
 * tep_set_page_size - set the size of a memory page on the traced machine
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 * @_page_size: size of a memory page, in bytes
 *
 * This sets the size of a memory page on the traced machine
 */
void tep_set_page_size(struct tep_handle *pevent, int _page_size)
void tep_set_page_size(struct tep_handle *tep, int _page_size)
{
	if (pevent)
		pevent->page_size = _page_size;
	if (tep)
		tep->page_size = _page_size;
}

/**
 * tep_is_file_bigendian - return the endian of the file
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This returns true if the file is in big endian order
 * If @pevent is NULL, false is returned.
 * If @tep is NULL, false is returned.
 */
bool tep_is_file_bigendian(struct tep_handle *pevent)
bool tep_is_file_bigendian(struct tep_handle *tep)
{
	if (pevent)
		return pevent->file_bigendian == TEP_BIG_ENDIAN;
	if (tep)
		return (tep->file_bigendian == TEP_BIG_ENDIAN);
	return false;
}

/**
 * tep_set_file_bigendian - set if the file is in big endian order
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 * @endian: non zero, if the file is in big endian order
 *
 * This sets if the file is in big endian order
 */
void tep_set_file_bigendian(struct tep_handle *pevent, enum tep_endian endian)
void tep_set_file_bigendian(struct tep_handle *tep, enum tep_endian endian)
{
	if (pevent)
		pevent->file_bigendian = endian;
	if (tep)
		tep->file_bigendian = endian;
}

/**
 * tep_is_local_bigendian - return the endian of the saved local machine
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This returns true if the saved local machine in @pevent is big endian.
 * If @pevent is NULL, false is returned.
 * This returns true if the saved local machine in @tep is big endian.
 * If @tep is NULL, false is returned.
 */
bool tep_is_local_bigendian(struct tep_handle *pevent)
bool tep_is_local_bigendian(struct tep_handle *tep)
{
	if (pevent)
		return pevent->host_bigendian == TEP_BIG_ENDIAN;
	if (tep)
		return (tep->host_bigendian == TEP_BIG_ENDIAN);
	return 0;
}

/**
 * tep_set_local_bigendian - set the stored local machine endian order
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 * @endian: non zero, if the local host has big endian order
 *
 * This sets the endian order for the local machine.
 */
void tep_set_local_bigendian(struct tep_handle *pevent, enum tep_endian endian)
void tep_set_local_bigendian(struct tep_handle *tep, enum tep_endian endian)
{
	if (pevent)
		pevent->host_bigendian = endian;
	if (tep)
		tep->host_bigendian = endian;
}

/**
 * tep_is_latency_format - get if the latency output format is configured
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 *
 * This returns true if the latency output format is configured
 * If @pevent is NULL, false is returned.
 * If @tep is NULL, false is returned.
 */
bool tep_is_latency_format(struct tep_handle *pevent)
bool tep_is_latency_format(struct tep_handle *tep)
{
	if (pevent)
		return pevent->latency_format;
	if (tep)
		return (tep->latency_format);
	return false;
}

/**
 * tep_set_latency_format - set the latency output format
 * @pevent: a handle to the tep_handle
 * @tep: a handle to the tep_handle
 * @lat: non zero for latency output format
 *
 * This sets the latency output format
  */
void tep_set_latency_format(struct tep_handle *pevent, int lat)
void tep_set_latency_format(struct tep_handle *tep, int lat)
{
	if (pevent)
		pevent->latency_format = lat;
	if (tep)
		tep->latency_format = lat;
}

/**
+3 −3
Original line number Diff line number Diff line
@@ -92,8 +92,8 @@ struct tep_handle {
void tep_free_event(struct tep_event *event);
void tep_free_format_field(struct tep_format_field *field);

unsigned short tep_data2host2(struct tep_handle *pevent, unsigned short data);
unsigned int tep_data2host4(struct tep_handle *pevent, unsigned int data);
unsigned long long tep_data2host8(struct tep_handle *pevent, unsigned long long data);
unsigned short tep_data2host2(struct tep_handle *tep, unsigned short data);
unsigned int tep_data2host4(struct tep_handle *tep, unsigned int data);
unsigned long long tep_data2host8(struct tep_handle *tep, unsigned long long data);

#endif /* _PARSE_EVENTS_INT_H */
+225 −227

File changed.

Preview size limit exceeded, changes collapsed.

+61 −62
Original line number Diff line number Diff line
@@ -64,8 +64,8 @@ typedef int (*tep_event_handler_func)(struct trace_seq *s,
				      struct tep_event *event,
				      void *context);

typedef int (*tep_plugin_load_func)(struct tep_handle *pevent);
typedef int (*tep_plugin_unload_func)(struct tep_handle *pevent);
typedef int (*tep_plugin_load_func)(struct tep_handle *tep);
typedef int (*tep_plugin_unload_func)(struct tep_handle *tep);

struct tep_plugin_option {
	struct tep_plugin_option	*next;
@@ -85,12 +85,12 @@ struct tep_plugin_option {
 * TEP_PLUGIN_LOADER:  (required)
 *   The function name to initialized the plugin.
 *
 *   int TEP_PLUGIN_LOADER(struct tep_handle *pevent)
 *   int TEP_PLUGIN_LOADER(struct tep_handle *tep)
 *
 * TEP_PLUGIN_UNLOADER:  (optional)
 *   The function called just before unloading
 *
 *   int TEP_PLUGIN_UNLOADER(struct tep_handle *pevent)
 *   int TEP_PLUGIN_UNLOADER(struct tep_handle *tep)
 *
 * TEP_PLUGIN_OPTIONS:  (optional)
 *   Plugin options that can be set before loading
@@ -393,9 +393,9 @@ struct tep_plugin_list;

#define INVALID_PLUGIN_LIST_OPTION	((char **)((unsigned long)-1))

struct tep_plugin_list *tep_load_plugins(struct tep_handle *pevent);
struct tep_plugin_list *tep_load_plugins(struct tep_handle *tep);
void tep_unload_plugins(struct tep_plugin_list *plugin_list,
			struct tep_handle *pevent);
			struct tep_handle *tep);
char **tep_plugin_list_options(void);
void tep_plugin_free_options_list(char **list);
int tep_plugin_add_options(const char *name,
@@ -410,7 +410,7 @@ typedef char *(tep_func_resolver_t)(void *priv,
				    unsigned long long *addrp, char **modp);
void tep_set_flag(struct tep_handle *tep, int flag);
void tep_clear_flag(struct tep_handle *tep, enum tep_flag flag);
bool tep_check_flags(struct tep_handle *tep, enum tep_flag flags);
bool tep_test_flag(struct tep_handle *tep, enum tep_flag flags);

static inline int tep_is_bigendian(void)
{
@@ -430,37 +430,37 @@ enum trace_flag_type {
	TRACE_FLAG_SOFTIRQ		= 0x10,
};

int tep_set_function_resolver(struct tep_handle *pevent,
int tep_set_function_resolver(struct tep_handle *tep,
			      tep_func_resolver_t *func, void *priv);
void tep_reset_function_resolver(struct tep_handle *pevent);
int tep_register_comm(struct tep_handle *pevent, const char *comm, int pid);
int tep_override_comm(struct tep_handle *pevent, const char *comm, int pid);
int tep_register_trace_clock(struct tep_handle *pevent, const char *trace_clock);
int tep_register_function(struct tep_handle *pevent, char *name,
void tep_reset_function_resolver(struct tep_handle *tep);
int tep_register_comm(struct tep_handle *tep, const char *comm, int pid);
int tep_override_comm(struct tep_handle *tep, const char *comm, int pid);
int tep_register_trace_clock(struct tep_handle *tep, const char *trace_clock);
int tep_register_function(struct tep_handle *tep, char *name,
			  unsigned long long addr, char *mod);
int tep_register_print_string(struct tep_handle *pevent, const char *fmt,
int tep_register_print_string(struct tep_handle *tep, const char *fmt,
			      unsigned long long addr);
bool tep_is_pid_registered(struct tep_handle *pevent, int pid);
bool tep_is_pid_registered(struct tep_handle *tep, int pid);

void tep_print_event_task(struct tep_handle *pevent, struct trace_seq *s,
void tep_print_event_task(struct tep_handle *tep, struct trace_seq *s,
			  struct tep_event *event,
			  struct tep_record *record);
void tep_print_event_time(struct tep_handle *pevent, struct trace_seq *s,
void tep_print_event_time(struct tep_handle *tep, struct trace_seq *s,
			  struct tep_event *event,
			  struct tep_record *record,
			  bool use_trace_clock);
void tep_print_event_data(struct tep_handle *pevent, struct trace_seq *s,
void tep_print_event_data(struct tep_handle *tep, struct trace_seq *s,
			  struct tep_event *event,
			  struct tep_record *record);
void tep_print_event(struct tep_handle *pevent, struct trace_seq *s,
void tep_print_event(struct tep_handle *tep, struct trace_seq *s,
		     struct tep_record *record, bool use_trace_clock);

int tep_parse_header_page(struct tep_handle *pevent, char *buf, unsigned long size,
int tep_parse_header_page(struct tep_handle *tep, char *buf, unsigned long size,
			  int long_size);

enum tep_errno tep_parse_event(struct tep_handle *pevent, const char *buf,
enum tep_errno tep_parse_event(struct tep_handle *tep, const char *buf,
			       unsigned long size, const char *sys);
enum tep_errno tep_parse_format(struct tep_handle *pevent,
enum tep_errno tep_parse_format(struct tep_handle *tep,
				struct tep_event **eventp,
				const char *buf,
				unsigned long size, const char *sys);
@@ -492,50 +492,50 @@ enum tep_reg_handler {
	TEP_REGISTER_SUCCESS_OVERWRITE,
};

int tep_register_event_handler(struct tep_handle *pevent, int id,
int tep_register_event_handler(struct tep_handle *tep, int id,
			       const char *sys_name, const char *event_name,
			       tep_event_handler_func func, void *context);
int tep_unregister_event_handler(struct tep_handle *pevent, int id,
int tep_unregister_event_handler(struct tep_handle *tep, int id,
				 const char *sys_name, const char *event_name,
				 tep_event_handler_func func, void *context);
int tep_register_print_function(struct tep_handle *pevent,
int tep_register_print_function(struct tep_handle *tep,
				tep_func_handler func,
				enum tep_func_arg_type ret_type,
				char *name, ...);
int tep_unregister_print_function(struct tep_handle *pevent,
int tep_unregister_print_function(struct tep_handle *tep,
				  tep_func_handler func, char *name);

struct tep_format_field *tep_find_common_field(struct tep_event *event, const char *name);
struct tep_format_field *tep_find_field(struct tep_event *event, const char *name);
struct tep_format_field *tep_find_any_field(struct tep_event *event, const char *name);

const char *tep_find_function(struct tep_handle *pevent, unsigned long long addr);
const char *tep_find_function(struct tep_handle *tep, unsigned long long addr);
unsigned long long
tep_find_function_address(struct tep_handle *pevent, unsigned long long addr);
unsigned long long tep_read_number(struct tep_handle *pevent, const void *ptr, int size);
tep_find_function_address(struct tep_handle *tep, unsigned long long addr);
unsigned long long tep_read_number(struct tep_handle *tep, const void *ptr, int size);
int tep_read_number_field(struct tep_format_field *field, const void *data,
			  unsigned long long *value);

struct tep_event *tep_get_first_event(struct tep_handle *tep);
int tep_get_events_count(struct tep_handle *tep);
struct tep_event *tep_find_event(struct tep_handle *pevent, int id);
struct tep_event *tep_find_event(struct tep_handle *tep, int id);

struct tep_event *
tep_find_event_by_name(struct tep_handle *pevent, const char *sys, const char *name);
tep_find_event_by_name(struct tep_handle *tep, const char *sys, const char *name);
struct tep_event *
tep_find_event_by_record(struct tep_handle *pevent, struct tep_record *record);
tep_find_event_by_record(struct tep_handle *tep, struct tep_record *record);

void tep_data_latency_format(struct tep_handle *pevent,
void tep_data_latency_format(struct tep_handle *tep,
			     struct trace_seq *s, struct tep_record *record);
int tep_data_type(struct tep_handle *pevent, struct tep_record *rec);
int tep_data_pid(struct tep_handle *pevent, struct tep_record *rec);
int tep_data_preempt_count(struct tep_handle *pevent, struct tep_record *rec);
int tep_data_flags(struct tep_handle *pevent, struct tep_record *rec);
const char *tep_data_comm_from_pid(struct tep_handle *pevent, int pid);
int tep_data_type(struct tep_handle *tep, struct tep_record *rec);
int tep_data_pid(struct tep_handle *tep, struct tep_record *rec);
int tep_data_preempt_count(struct tep_handle *tep, struct tep_record *rec);
int tep_data_flags(struct tep_handle *tep, struct tep_record *rec);
const char *tep_data_comm_from_pid(struct tep_handle *tep, int pid);
struct tep_cmdline;
struct tep_cmdline *tep_data_pid_from_comm(struct tep_handle *pevent, const char *comm,
struct tep_cmdline *tep_data_pid_from_comm(struct tep_handle *tep, const char *comm,
					   struct tep_cmdline *next);
int tep_cmdline_pid(struct tep_handle *pevent, struct tep_cmdline *cmdline);
int tep_cmdline_pid(struct tep_handle *tep, struct tep_cmdline *cmdline);

void tep_print_field(struct trace_seq *s, void *data,
		     struct tep_format_field *field);
@@ -543,11 +543,10 @@ void tep_print_fields(struct trace_seq *s, void *data,
		      int size __maybe_unused, struct tep_event *event);
void tep_event_info(struct trace_seq *s, struct tep_event *event,
		    struct tep_record *record);
int tep_strerror(struct tep_handle *pevent, enum tep_errno errnum,
int tep_strerror(struct tep_handle *tep, enum tep_errno errnum,
		 char *buf, size_t buflen);

struct tep_event **tep_list_events(struct tep_handle *tep,
				   enum tep_event_sort_type);
struct tep_event **tep_list_events(struct tep_handle *tep, enum tep_event_sort_type);
struct tep_event **tep_list_events_copy(struct tep_handle *tep,
					enum tep_event_sort_type);
struct tep_format_field **tep_event_common_fields(struct tep_event *event);
@@ -557,28 +556,28 @@ enum tep_endian {
        TEP_LITTLE_ENDIAN = 0,
        TEP_BIG_ENDIAN
};
int tep_get_cpus(struct tep_handle *pevent);
void tep_set_cpus(struct tep_handle *pevent, int cpus);
int tep_get_long_size(struct tep_handle *pevent);
void tep_set_long_size(struct tep_handle *pevent, int long_size);
int tep_get_page_size(struct tep_handle *pevent);
void tep_set_page_size(struct tep_handle *pevent, int _page_size);
bool tep_is_file_bigendian(struct tep_handle *pevent);
void tep_set_file_bigendian(struct tep_handle *pevent, enum tep_endian endian);
bool tep_is_local_bigendian(struct tep_handle *pevent);
void tep_set_local_bigendian(struct tep_handle *pevent, enum tep_endian endian);
bool tep_is_latency_format(struct tep_handle *pevent);
void tep_set_latency_format(struct tep_handle *pevent, int lat);
int tep_get_header_page_size(struct tep_handle *pevent);
int tep_get_cpus(struct tep_handle *tep);
void tep_set_cpus(struct tep_handle *tep, int cpus);
int tep_get_long_size(struct tep_handle *tep);
void tep_set_long_size(struct tep_handle *tep, int long_size);
int tep_get_page_size(struct tep_handle *tep);
void tep_set_page_size(struct tep_handle *tep, int _page_size);
bool tep_is_file_bigendian(struct tep_handle *tep);
void tep_set_file_bigendian(struct tep_handle *tep, enum tep_endian endian);
bool tep_is_local_bigendian(struct tep_handle *tep);
void tep_set_local_bigendian(struct tep_handle *tep, enum tep_endian endian);
bool tep_is_latency_format(struct tep_handle *tep);
void tep_set_latency_format(struct tep_handle *tep, int lat);
int tep_get_header_page_size(struct tep_handle *tep);
int tep_get_header_timestamp_size(struct tep_handle *tep);
bool tep_is_old_format(struct tep_handle *tep);
void tep_set_print_raw(struct tep_handle *tep, int print_raw);
void tep_set_test_filters(struct tep_handle *tep, int test_filters);

struct tep_handle *tep_alloc(void);
void tep_free(struct tep_handle *pevent);
void tep_ref(struct tep_handle *pevent);
void tep_unref(struct tep_handle *pevent);
void tep_free(struct tep_handle *tep);
void tep_ref(struct tep_handle *tep);
void tep_unref(struct tep_handle *tep);
int tep_get_ref(struct tep_handle *tep);

/* access to the internal parser */
@@ -590,8 +589,8 @@ const char *tep_get_input_buf(void);
unsigned long long tep_get_input_buf_ptr(void);

/* for debugging */
void tep_print_funcs(struct tep_handle *pevent);
void tep_print_printk(struct tep_handle *pevent);
void tep_print_funcs(struct tep_handle *tep);
void tep_print_printk(struct tep_handle *tep);

/* ----------------------- filtering ----------------------- */

@@ -724,7 +723,7 @@ struct tep_event_filter {
	char			error_buffer[TEP_FILTER_ERROR_BUFSZ];
};

struct tep_event_filter *tep_filter_alloc(struct tep_handle *pevent);
struct tep_event_filter *tep_filter_alloc(struct tep_handle *tep);

/* for backward compatibility */
#define FILTER_NONE		TEP_ERRNO__NO_FILTER
+4 −4
Original line number Diff line number Diff line
@@ -419,16 +419,16 @@ load_plugins(struct tep_handle *pevent, const char *suffix,
}

struct tep_plugin_list*
tep_load_plugins(struct tep_handle *pevent)
tep_load_plugins(struct tep_handle *tep)
{
	struct tep_plugin_list *list = NULL;

	load_plugins(pevent, ".so", load_plugin, &list);
	load_plugins(tep, ".so", load_plugin, &list);
	return list;
}

void
tep_unload_plugins(struct tep_plugin_list *plugin_list, struct tep_handle *pevent)
tep_unload_plugins(struct tep_plugin_list *plugin_list, struct tep_handle *tep)
{
	tep_plugin_unload_func func;
	struct tep_plugin_list *list;
@@ -438,7 +438,7 @@ tep_unload_plugins(struct tep_plugin_list *plugin_list, struct tep_handle *peven
		plugin_list = list->next;
		func = dlsym(list->handle, TEP_PLUGIN_UNLOADER_NAME);
		if (func)
			func(pevent);
			func(tep);
		dlclose(list->handle);
		free(list->name);
		free(list);
Loading