#include <glib.h>
-struct lttngtop {
- GPtrArray *process_table; /* struct processtop */
- GPtrArray *files_table; /* struct files */
- GPtrArray *cpu_table; /* struct cputime */
- unsigned long start;
- unsigned long end;
- unsigned int nbproc;
- unsigned int nbnewproc;
- unsigned int nbdeadproc;
- unsigned int nbthreads;
- unsigned int nbnewthreads;
- unsigned int nbdeadthreads;
- unsigned int nbfiles;
- unsigned int nbnewfiles;
- unsigned int nbclosedfiles;
-} lttngtop;
-
-struct processtop {
- unsigned int puuid;
- int pid;
- char *comm;
- int tid;
- int ppid;
- int oldpid;
- int oldtid;
- int oldppid;
- unsigned long birth;
- unsigned long death;
- unsigned long lastactivity;
- /* Files managing */
- GPtrArray *process_files_table;
- struct file_history *files_history;
- GPtrArray *threads;
- GHashTable *perf;
- struct processtop *threadparent;
- /* IO calculting */
- unsigned long totalfileread;
- unsigned long totalfilewrite;
- unsigned long fileread;
- unsigned long filewrite;
- struct syscalls *syscall_info;
- unsigned long totalcpunsec;
- unsigned long threadstotalcpunsec;
-};
-
-struct perfcounter
-{
- unsigned long count;
- int visible;
- int sort;
-};
-
-struct cputime {
- guint id;
- struct processtop *current_task;
- unsigned long task_start;
- GHashTable *perf;
-};
-
-/*
- * used for "relative seeks" (with fd, for example fs.lseek)
- * and for "absolute seeks" (events occuring on a device without
- * any link to a particular process)
- */
-struct seeks {
- unsigned long offset;
- unsigned long count;
-};
-
-struct ioctls {
- unsigned int command;
- unsigned long count;
-};
-
-struct files {
- struct processtop *ref;
- unsigned int fuuid;
- int fd;
- char *name;
- int oldfd;
- int device;
- int openmode;
- int flag;
- unsigned long openedat;
- unsigned long closedat;
- unsigned long lastaccess;
- unsigned long read;
- unsigned long write;
- unsigned long nbpoll;
- unsigned long nbselect;
- unsigned long nbopen;
- unsigned long nbclose;
- //struct *seeks; /* relative seeks inside the file */
- //struct *ioctls;
- /* XXX : average wait time */
-};
-
-struct file_history {
- struct files *file;
- struct file_history *next;
-};
-
-struct sockets {
- int fd;
- int parent_fd; /* on accept a new fd is created from the bound socket */
- int family;
- int type;
- int protocol;
- int sock_address;
- unsigned long openedat;
- unsigned long closedat;
- unsigned long bind_address;
- unsigned long remote_address;
- //struct *sock_options;
-};
-
-struct sock_options {
- int name;
- int value;
-};
-
-struct vmas {
- unsigned long start;
- unsigned long end;
- unsigned long flags;
- unsigned long prot;
- char *description; /* filename or description if possible (stack, heap) */
- unsigned long page_faults;
-};
-
-struct syscalls {
- unsigned int id;
- unsigned long count;
- uint64_t cpu_id;
- unsigned int type;
- unsigned int tid;
- unsigned int fd;
-};
-
-struct signals {
- int dest_pid;
- int id;
- unsigned long count;
-};
-
-struct file_info {
- struct file_info *next;
- char *name;
- int fd;
- int status;
-};
-
/* header for cputop display */
struct header_view {
char *title;