X-Git-Url: https://git.lttng.org/?p=lttngtop.git;a=blobdiff_plain;f=src%2Fcommon.h;h=d3616a2d136fa237fb4ffe51dd95b77623e189be;hp=6370b77f30afe1bcd14fa71815ebbba2dc77ba47;hb=54645d5cab414bb3391837ef7acb919cf106c71f;hpb=3ba84bed69e8eb8e6794a7250da97406dbbe02c2 diff --git a/src/common.h b/src/common.h index 6370b77..d3616a2 100644 --- a/src/common.h +++ b/src/common.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Julien Desfossez + * Copyright (C) 2011-2012 Julien Desfossez * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License Version 2 as @@ -29,18 +29,44 @@ sem_t goodtodisplay, goodtoupdate, timer, pause_sem, end_trace_sem, bootstrap; GPtrArray *copies; /* struct lttngtop */ -pthread_mutex_t perf_list_mutex; +GHashTable *global_perf_liszt; +GHashTable *global_filter_list; +GHashTable *global_host_list; +GHashTable *global_procname_list; + +char *opt_tid; +char *opt_procname; +char *opt_relay_hostname; +char *opt_kprobes; +char *opt_exec_name; +char **opt_exec_argv; +char **opt_exec_env; +int opt_exec_pid; +char *opt_output; +FILE *output; +GHashTable *tid_filter_list; + +int remote_live; + +int toggle_filter; + +extern int quit; struct lttngtop *data; -struct processtop *find_process_tid(struct lttngtop *ctx, int pid, char *comm); +struct processtop *find_process_tid(struct lttngtop *ctx, int pid, const char *comm); struct processtop* add_proc(struct lttngtop *ctx, int pid, char *comm, - unsigned long timestamp); + unsigned long timestamp, char *hostname); struct processtop* update_proc(struct processtop* proc, int pid, int tid, - int ppid, char *comm); + int ppid, int vpid, int vtid, int vppid, char *comm, + char *hostname); void add_thread(struct processtop *parent, struct processtop *thread); struct processtop* get_proc(struct lttngtop *ctx, int tid, char *comm, - unsigned long timestamp); + unsigned long timestamp, char *hostname); + +struct processtop *get_proc_pid(struct lttngtop *ctx, int tid, int pid, + unsigned long timestamp, char *hostname); + void death_proc(struct lttngtop *ctx, int tid, char *comm, unsigned long timestamp); struct cputime* add_cpu(int cpu); @@ -50,6 +76,7 @@ struct perfcounter *add_perf_counter(GPtrArray *perf, GQuark quark, unsigned long count); struct perfcounter *get_perf_counter(const char *name, struct processtop *proc, struct cputime *cpu); +void reset_global_counters(void); /* common field access functions */ uint64_t get_cpu_id(const struct bt_ctf_event *event); @@ -57,5 +84,26 @@ uint64_t get_context_tid(const struct bt_ctf_event *event); uint64_t get_context_pid(const struct bt_ctf_event *event); uint64_t get_context_ppid(const struct bt_ctf_event *event); char *get_context_comm(const struct bt_ctf_event *event); +uint64_t get_context_vtid(const struct bt_ctf_event *event); +uint64_t get_context_vpid(const struct bt_ctf_event *event); +uint64_t get_context_vppid(const struct bt_ctf_event *event); +char *get_context_hostname(const struct bt_ctf_event *event); + +enum bt_cb_ret handle_statedump_process_state(struct bt_ctf_event *call_data, + void *private_data); + +struct tm format_timestamp(uint64_t timestamp); + +int *lookup_filter_tid_list(int tid); +int *lookup_tid_list(int tid); +void remove_hostname_list(const char *hostname); +void add_filter_tid_list(struct processtop *proc); +void remove_filter_tid_list(int tid); +struct host *lookup_hostname_list(const char *hostname); +int is_hostname_filtered(const char *hostname); +struct host *add_hostname_list(char *hostname, int filter); +void update_hostname_filter(struct host *host); +char *lookup_procname(const char *procname); +char *add_procname_list(char *procname, int filter); #endif /* _COMMON_H */