/* This file is part of odin, a memory profiler with fragmentation analysis. Copyright (C) 2007 Chris Wilson odin is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. odin 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 odin. If not, see / The GNU General Public License is contained in the file COPYING. */ #ifndef CLIENT_H #define CLIENT_H #include #include "frames.h" #include "shared-objects.h" G_BEGIN_DECLS typedef struct _string String; struct _string { String *ht_next; guint hash, len; gchar str[0]; }; struct _client { enum { LWP, VALGRIND } type; gboolean active; gchar *name; GPid pid; gboolean terminated; guint time; guint last; gboolean update; Allocator *allocators; struct { guint size; guint nnodes; Allocator **nodes; } allocator_by_addr; Block *blocks; struct { guint size; guint nnodes; Block **nodes; } block_by_addr; SharedObjects objects; Frames frames; CallGraphStore *call_graph; GArray *events; struct { guint size; guint nnodes; String **nodes; } strings; Chunk *perm_chunks; Chunk *block_chunks; Block *block_free_list; GSource *timeout; }; gpointer client_perm_alloc (Client *client, guint size); const gchar * client_add_string (Client *client, const gchar *str); #endif /* CLIENT_H */