X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fstate.h;h=17294c4a42683ec99d6fe5f394aa872a1fb4c2a1;hb=b9ce0bad7daf7c0a2333c91fdb1e35d602afe17f;hp=cd91354cbc5218834f70aea4bb0bc5b85d2f3691;hpb=7a4bdb546094fea3343bfc80e3744ea26a08dd22;p=lttv.git diff --git a/lttv/lttv/state.h b/lttv/lttv/state.h index cd91354c..17294c4a 100644 --- a/lttv/lttv/state.h +++ b/lttv/lttv/state.h @@ -12,8 +12,8 @@ * * 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. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. */ #ifndef STATE_H @@ -119,7 +119,6 @@ extern GQuark LTT_EVENT_STATEDUMP_END, //LTT_EVENT_FUNCTION_ENTRY, //LTT_EVENT_FUNCTION_EXIT, - LTT_EVENT_THREAD_BRAND, LTT_EVENT_REQUEST_ISSUE, LTT_EVENT_REQUEST_COMPLETE, LTT_EVENT_LIST_INTERRUPT, @@ -171,11 +170,22 @@ typedef struct _LttvTraceStateClass LttvTraceStateClass; typedef struct _LttvTracefileState LttvTracefileState; typedef struct _LttvTracefileStateClass LttvTracefileStateClass; -void lttv_traceset_add_state_event_hooks(LttvTraceset *traceset); +void lttv_state_add_event_hooks(LttvTraceset *traceset); +gint lttv_state_hook_add_event_hooks(void *hook_data, void *call_data); -void lttv_traceset_remove_state_event_hooks(LttvTraceset *traceset); +void lttv_state_remove_event_hooks(LttvTraceset *traceset); +gint lttv_state_hook_remove_event_hooks(void *hook_data, void *call_data); -void lttv_traceset_seek_time_closest_prior_state(LttvTraceset *traceset, LttTime t); +gint lttv_state_save_hook_add_event_hooks(void *hook_data, void *call_data); +gint lttv_state_save_hook_remove_event_hooks(void *hook_data, void *call_data); + + +//TODO ybrosseau 2012-07-30: Change name of seek_time_closest to: +//void lttv_traceset_seek_time_closest_prior_state(LttvTraceset *traceset, LttTime t); + +void lttv_state_traceset_seek_time_closest(LttvTraceset *traceset, LttTime t); +void lttv_state_traceset_seek_time(LttvTraceset *traceset, LttTime t); +void lttv_state_traceset_seek_position(LttvTraceset *traceset, LttvTracesetPosition *position); /* The LttvProcessState structure defines the current state for each process. A process can make system calls (in some rare cases nested) and receive @@ -236,9 +246,6 @@ extern LttvProcessStatus LTTV_STATE_RUN, LTTV_STATE_DEAD; -extern GQuark - LTTV_STATE_UNBRANDED; - typedef GQuark LttvProcessType; extern LttvProcessType @@ -283,7 +290,6 @@ typedef struct _LttvProcessState { LttTime creation_time; LttTime insertion_time; GQuark name; - GQuark brand; GQuark pid_time; GArray *execution_stack; /* Array of LttvExecutionState */ LttvExecutionState *state; /* Top of interrupt stack */ @@ -364,7 +370,7 @@ struct _LttvTraceState { /* Array of per cpu running process */ LttvProcessState **running_process; - gboolean has_precomputed_states; + LttvCPUState *cpu_states; /* state of each cpu */ /* FIXME should be a g_array to deal with resize and copy. */ LttvIRQState *irq_states; /* state of each irq handler */