* MA 02111-1307, USA.
*/
-
-
#ifndef _PROCESS_LIST_H
#define _PROCESS_LIST_H
/* Enumeration of the columns */
enum
{
- PROCESS_COLUMN,
- BRAND_COLUMN,
- PID_COLUMN,
- TGID_COLUMN,
- PPID_COLUMN,
- CPU_COLUMN,
- BIRTH_S_COLUMN,
- BIRTH_NS_COLUMN,
- TRACE_COLUMN,
+ NAME_COLUMN,
N_COLUMNS
};
-typedef struct _ProcessInfo {
-
- guint pid;
- guint tgid;
- guint cpu;
- guint ppid;
- LttTime birth;
+typedef struct _ResourceInfo {
+ GQuark name;
guint trace_num;
+ guint type;
+ guint64 id;
+} ResourceInfo;
- // gint height_cache;
-
-} ProcessInfo;
-
-typedef struct _HashedProcessData {
+typedef struct _HashedResourceData {
GdkPixmap *pixmap; // Pixmap slice containing drawing buffer for the PID
gint height; // height of the pixmap
LttTime next_good_time; /* precalculate the next time where the next
pixel is.*/
-} HashedProcessData;
+} HashedResourceData;
struct _ProcessList {
gint cell_height;
/* Current process pointer, one per cpu, one per trace */
- HashedProcessData ***current_hash_data;
+ HashedResourceData ***current_hash_data;
/* Array containing index -> pixmap correspondance. Must be updated
* every time the process list is reordered, process added or removed */
// out : success (0) and height
/* CPU num is only used for PID 0 */
-int processlist_add(ProcessList *process_list, Drawing_t * drawing,
- guint pid, guint tgid, guint cpu, guint ppid,
- LttTime *birth, guint trace_num, GQuark name, GQuark brand, guint *height,
- ProcessInfo **process_info,
- HashedProcessData **hashed_process_data);
+int resourcelist_add( ProcessList *process_list, Drawing_t *drawing, guint trace_num,
+ GQuark name, guint type, guint id, guint *height, ResourceInfo **pm_resource_info,
+ HashedResourceData **pm_hashed_resource_data);
+
// out : success (0) and height
int processlist_remove(ProcessList *process_list, guint pid, guint cpu,
LttTime *birth, guint trace_num);
/* Set the name of a process */
void processlist_set_name(ProcessList *process_list,
GQuark name,
- HashedProcessData *hashed_process_data);
+ HashedResourceData *hashed_process_data);
void processlist_set_brand(ProcessList *process_list,
GQuark brand,
- HashedProcessData *hashed_process_data);
+ HashedResourceData *hashed_process_data);
/* Set the ppid of a process */
void processlist_set_tgid(ProcessList *process_list,
guint tgid,
- HashedProcessData *hashed_process_data);
+ HashedResourceData *hashed_process_data);
void processlist_set_ppid(ProcessList *process_list,
guint ppid,
- HashedProcessData *hashed_process_data);
+ HashedResourceData *hashed_process_data);
/* Synchronize the list at the left and the drawing */
}
-static inline HashedProcessData *processlist_get_process_data(
- ProcessList *process_list,
- guint pid, guint cpu, LttTime *birth, guint trace_num)
+static inline HashedResourceData *processlist_get_process_data(
+ ProcessList *process_list, GQuark resource_name, guint trace_num)
{
- ProcessInfo process_info;
-
- process_info.pid = pid;
- if(pid == 0)
- process_info.cpu = cpu;
- else
- process_info.cpu = ANY_CPU;
- process_info.birth = *birth;
- process_info.trace_num = trace_num;
-
- return (HashedProcessData*)g_hash_table_lookup(
+ ResourceInfo resource_info;
+
+// process_info.pid = pid;
+// if(pid == 0)
+// process_info.cpu = cpu;
+// else
+// process_info.cpu = ANY_CPU;
+// process_info.birth = *birth;
+// process_info.trace_num = trace_num;
+ resource_info.name = resource_name;
+ resource_info.trace_num = trace_num;
+
+ return (HashedResourceData*)g_hash_table_lookup(
process_list->process_hash,
- &process_info);
+ &resource_info);
}
static inline gint processlist_get_pixels_from_data( ProcessList *process_list,
- HashedProcessData *hashed_process_data,
+ HashedResourceData *hashed_process_data,
guint *y,
guint *height)
{
}
static inline guint processlist_get_index_from_data(ProcessList *process_list,
- HashedProcessData *hashed_process_data)
+ HashedResourceData *hashed_process_data)
{
gint *path_indices;
GtkTreePath *tree_path;