X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fcontrolflow%2Fprocesslist.h;h=808e5fab4d4e5656aa2fae5d22a066edec142085;hb=7893f726b92c58d32505219ea5275d138c3ee3ff;hp=2ed7b3430585f0ba0509ecdf115a7c74d570716b;hpb=88feb618dc79481733516a77f285bb6514bb1d17;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h index 2ed7b343..808e5fab 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/processlist.h @@ -1,3 +1,23 @@ +/* This file is part of the Linux Trace Toolkit viewer + * Copyright (C) 2003-2004 Mathieu Desnoyers + * + * 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 _PROCESS_LIST_H #define _PROCESS_LIST_H @@ -24,14 +44,27 @@ typedef struct _ProcessInfo { guint pid; + GQuark cpu; /* only for PID 0 */ + guint ppid; LttTime birth; + guint trace_num; + + gint height_cache; } ProcessInfo; typedef struct _HashedProcessData { - GtkTreeRowReference *row_ref; - DrawContext *draw_context; + GtkTreeIter y_iter; // Access quickly to y pos. + // DrawContext *draw_context; + /* Information on current drawing */ + struct { + guint over; + guint middle; + guint under; + } x; /* last x position saved by after state update */ + + // FIXME : add info on last event ? } HashedProcessData; @@ -39,11 +72,13 @@ struct _ProcessList { GtkWidget *process_list_widget; GtkListStore *list_store; + GtkWidget *button; /* one button of the tree view */ /* A hash table by PID to speed up process position find in the list */ GHashTable *process_hash; guint number_of_process; + gint cell_height_cache; }; @@ -53,21 +88,26 @@ ProcessList *processlist_construct(void); void processlist_destroy(ProcessList *process_list); GtkWidget *processlist_get_widget(ProcessList *process_list); +void processlist_clear(ProcessList *process_list); + // out : success (0) and height -int processlist_add(ProcessList *process_list, guint pid, LttTime *birth, - gchar *name, guint *height, HashedProcessData **hashed_process_data); +/* CPU num is only used for PID 0 */ +int processlist_add(ProcessList *process_list, guint pid, guint cpu, guint ppid, + LttTime *birth, guint trace_num, const gchar *name, guint *height, + HashedProcessData **hashed_process_data); // out : success (0) and height -int processlist_remove(ProcessList *process_list, guint pid, LttTime *birth); +int processlist_remove(ProcessList *process_list, guint pid, guint cpu, + LttTime *birth, guint trace_num); guint processlist_get_height(ProcessList *process_list); // Returns 0 on success -gint processlist_get_process_pixels(ProcessList *process_list, - guint pid, LttTime *birth, +__inline gint processlist_get_process_pixels(ProcessList *process_list, + guint pid, guint cpu, LttTime *birth, guint trace_num, guint *y, guint *height, HashedProcessData **hashed_process_data); -gint processlist_get_pixels_from_data( ProcessList *process_list, +__inline gint processlist_get_pixels_from_data( ProcessList *process_list, ProcessInfo *process_info, HashedProcessData *hashed_process_data, guint *y,