Revision c6d86a33 hw/sh_intc.c
b/hw/sh_intc.c | ||
---|---|---|
465 | 465 |
|
466 | 466 |
return 0; |
467 | 467 |
} |
468 |
|
|
469 |
/* Assert level <n> IRL interrupt. |
|
470 |
0:deassert. 1:lowest priority,... 15:highest priority. */ |
|
471 |
void sh_intc_set_irl(void *opaque, int n, int level) |
|
472 |
{ |
|
473 |
struct intc_source *s = opaque; |
|
474 |
int i, irl = level ^ 15; |
|
475 |
for (i = 0; (s = sh_intc_source(s->parent, s->next_enum_id)); i++) { |
|
476 |
if (i == irl) |
|
477 |
sh_intc_toggle_source(s, s->enable_count?0:1, s->asserted?0:1); |
|
478 |
else |
|
479 |
if (s->asserted) |
|
480 |
sh_intc_toggle_source(s, 0, -1); |
|
481 |
} |
|
482 |
} |
Also available in: Unified diff