Lines Matching full:state
71 IRQMPState *state; member
90 static void grlib_irqmp_check_irqs(IRQMPState *state) in grlib_irqmp_check_irqs() argument
94 assert(state != NULL); in grlib_irqmp_check_irqs()
95 assert(state->parent != NULL); in grlib_irqmp_check_irqs()
97 for (i = 0; i < state->parent->ncpus; i++) { in grlib_irqmp_check_irqs()
98 uint32_t pend = (state->pending | state->force[i]) & state->mask[i]; in grlib_irqmp_check_irqs()
99 uint32_t level0 = pend & ~state->level; in grlib_irqmp_check_irqs()
100 uint32_t level1 = pend & state->level; in grlib_irqmp_check_irqs()
102 trace_grlib_irqmp_check_irqs(state->pending, state->force[i], in grlib_irqmp_check_irqs()
103 state->mask[i], level1, level0); in grlib_irqmp_check_irqs()
106 qemu_set_irq(state->parent->irq[i], level1 ?: level0); in grlib_irqmp_check_irqs()
110 static void grlib_irqmp_ack_mask(IRQMPState *state, unsigned int cpu, in grlib_irqmp_ack_mask() argument
114 state->pending &= ~mask; in grlib_irqmp_ack_mask()
115 state->force[cpu] &= ~mask; in grlib_irqmp_ack_mask()
117 grlib_irqmp_check_irqs(state); in grlib_irqmp_ack_mask()
123 IRQMPState *state; in grlib_irqmp_ack() local
126 state = irqmp->state; in grlib_irqmp_ack()
127 assert(state != NULL); in grlib_irqmp_ack()
134 grlib_irqmp_ack_mask(state, cpu, mask); in grlib_irqmp_ack()
143 s = irqmp->state; in grlib_irqmp_set_irq()
167 IRQMPState *state; in grlib_irqmp_read() local
170 state = irqmp->state; in grlib_irqmp_read()
171 assert(state != NULL); in grlib_irqmp_read()
178 return state->level; in grlib_irqmp_read()
181 return state->pending; in grlib_irqmp_read()
185 return state->force[0]; in grlib_irqmp_read()
192 return state->mpstatus; in grlib_irqmp_read()
195 return state->broadcast; in grlib_irqmp_read()
206 return state->mask[cpu]; in grlib_irqmp_read()
214 return state->force[cpu]; in grlib_irqmp_read()
222 return state->extended[cpu]; in grlib_irqmp_read()
233 IRQMPState *state; in grlib_irqmp_write() local
237 state = irqmp->state; in grlib_irqmp_write()
238 assert(state != NULL); in grlib_irqmp_write()
246 state->level = value; in grlib_irqmp_write()
257 state->force[0] = value; in grlib_irqmp_write()
258 grlib_irqmp_check_irqs(irqmp->state); in grlib_irqmp_write()
264 grlib_irqmp_ack_mask(state, i, value); in grlib_irqmp_write()
278 state->mpstatus &= ~(1 << i); in grlib_irqmp_write()
285 state->broadcast = value; in grlib_irqmp_write()
298 state->mask[cpu] = value; in grlib_irqmp_write()
299 grlib_irqmp_check_irqs(irqmp->state); in grlib_irqmp_write()
310 uint32_t old = state->force[cpu]; in grlib_irqmp_write()
312 state->force[cpu] = (old | force) & ~clear; in grlib_irqmp_write()
313 grlib_irqmp_check_irqs(irqmp->state); in grlib_irqmp_write()
323 state->extended[cpu] = value; in grlib_irqmp_write()
343 assert(irqmp->state != NULL); in grlib_irqmp_reset()
345 memset(irqmp->state, 0, sizeof *irqmp->state); in grlib_irqmp_reset()
346 irqmp->state->parent = irqmp; in grlib_irqmp_reset()
347 irqmp->state->mpstatus = ((irqmp->ncpus - 1) << MP_STATUS_NCPU_SHIFT) | in grlib_irqmp_reset()
374 irqmp->state = g_malloc0(sizeof *irqmp->state); in grlib_irqmp_realize()