projects
/
lttv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make first working version of irq resource
[lttv.git]
/
ltt
/
branches
/
poly
/
lttv
/
lttv
/
state.c
diff --git
a/ltt/branches/poly/lttv/lttv/state.c
b/ltt/branches/poly/lttv/lttv/state.c
index 4ef1e6419cabad04caf6b9fc334e911a728a1605..823bbe78aeb96a83359f8618764f0c7cce90b4a7 100644
(file)
--- a/
ltt/branches/poly/lttv/lttv/state.c
+++ b/
ltt/branches/poly/lttv/lttv/state.c
@@
-2059,6
+2059,7
@@
static gboolean irq_entry(void *hook_data, void *call_data)
cpu_push_mode(s->cpu_state, LTTV_CPU_IRQ);
/* update irq status */
cpu_push_mode(s->cpu_state, LTTV_CPU_IRQ);
/* update irq status */
+ s->cpu_state->last_irq = irq;
irq_push_mode(&ts->irq_states[irq], LTTV_IRQ_BUSY);
return FALSE;
irq_push_mode(&ts->irq_states[irq], LTTV_IRQ_BUSY);
return FALSE;
@@
-2077,12
+2078,16
@@
static gboolean soft_irq_exit(void *hook_data, void *call_data)
static gboolean irq_exit(void *hook_data, void *call_data)
{
LttvTracefileState *s = (LttvTracefileState *)call_data;
static gboolean irq_exit(void *hook_data, void *call_data)
{
LttvTracefileState *s = (LttvTracefileState *)call_data;
+ LttvTraceState *ts = (LttvTraceState *)s->parent.t_context;
pop_state(s, LTTV_STATE_IRQ);
/* update cpu status */
cpu_pop_mode(s->cpu_state);
pop_state(s, LTTV_STATE_IRQ);
/* update cpu status */
cpu_pop_mode(s->cpu_state);
+ /* update irq status */
+ irq_pop_mode(&ts->irq_states[s->cpu_state->last_irq]);
+
return FALSE;
}
return FALSE;
}
This page took
0.023498 seconds
and
4
git commands to generate.