rename lttngtop/ to src/
[lttngtop.git] / src / lttngtoptypes.h
diff --git a/src/lttngtoptypes.h b/src/lttngtoptypes.h
new file mode 100644 (file)
index 0000000..f10a684
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2011 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
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+#ifndef LTTNGTOPTYPES_H
+#define LTTNGTOPTYPES_H
+
+#include <glib.h>
+
+struct lttngtop {
+       GPtrArray *process_table;       /* struct processtop */
+       GPtrArray *files_table;         /* struct files */
+       GPtrArray *cpu_table;           /* struct cputime */
+       GHashTable *perf_list;          /* struct perfcounter */
+       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;
+       GPtrArray *process_files_table;
+       GPtrArray *threads;
+       GHashTable *perf;
+       struct processtop *threadparent;
+       unsigned long totalfileread;
+       unsigned long totalfilewrite;
+       unsigned long totalcpunsec;
+       unsigned long threadstotalcpunsec;
+       /* IO speed for this process */
+       struct iostream *iostream;
+};
+
+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;
+       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 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;
+        unsigned int cpu_id;
+        unsigned int type;
+        unsigned int tid;
+};
+
+struct signals {
+       int dest_pid;
+       int id;
+       unsigned long count;
+};
+
+struct iostream {
+        struct syscalls *syscall_info; /* NULL if there is no waiting for an exit_syscall */
+        unsigned long ret_read;        /* value returned by an I/O syscall_exit for a sys_read*/
+        unsigned long ret_write;       /* value returned by an I/O syscall_exit for a sys_write*/
+        unsigned long ret_total;
+};
+
+#endif /* LTTNGTOPTYPES_H */
This page took 0.023178 seconds and 4 git commands to generate.