mirror of https://github.com/proxmox/mirror_qemu
i8259: Fix coding style
No functional changes. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>master
parent
747c70af78
commit
81a02f93ba
54
hw/i8259.c
54
hw/i8259.c
|
@ -67,7 +67,7 @@ struct PicState {
|
||||||
MemoryRegion elcr_io;
|
MemoryRegion elcr_io;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(DEBUG_PIC) || defined (DEBUG_IRQ_COUNT)
|
#if defined(DEBUG_PIC) || defined(DEBUG_IRQ_COUNT)
|
||||||
static int irq_level[16];
|
static int irq_level[16];
|
||||||
#endif
|
#endif
|
||||||
#ifdef DEBUG_IRQ_COUNT
|
#ifdef DEBUG_IRQ_COUNT
|
||||||
|
@ -84,11 +84,14 @@ static PicState *slave_pic;
|
||||||
static int get_priority(PicState *s, int mask)
|
static int get_priority(PicState *s, int mask)
|
||||||
{
|
{
|
||||||
int priority;
|
int priority;
|
||||||
if (mask == 0)
|
|
||||||
|
if (mask == 0) {
|
||||||
return 8;
|
return 8;
|
||||||
|
}
|
||||||
priority = 0;
|
priority = 0;
|
||||||
while ((mask & (1 << ((priority + s->priority_add) & 7))) == 0)
|
while ((mask & (1 << ((priority + s->priority_add) & 7))) == 0) {
|
||||||
priority++;
|
priority++;
|
||||||
|
}
|
||||||
return priority;
|
return priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,14 +102,16 @@ static int pic_get_irq(PicState *s)
|
||||||
|
|
||||||
mask = s->irr & ~s->imr;
|
mask = s->irr & ~s->imr;
|
||||||
priority = get_priority(s, mask);
|
priority = get_priority(s, mask);
|
||||||
if (priority == 8)
|
if (priority == 8) {
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
/* compute current priority. If special fully nested mode on the
|
/* compute current priority. If special fully nested mode on the
|
||||||
master, the IRQ coming from the slave is not taken into account
|
master, the IRQ coming from the slave is not taken into account
|
||||||
for the priority computation. */
|
for the priority computation. */
|
||||||
mask = s->isr;
|
mask = s->isr;
|
||||||
if (s->special_mask)
|
if (s->special_mask) {
|
||||||
mask &= ~s->imr;
|
mask &= ~s->imr;
|
||||||
|
}
|
||||||
if (s->special_fully_nested_mode && s->master) {
|
if (s->special_fully_nested_mode && s->master) {
|
||||||
mask &= ~(1 << 2);
|
mask &= ~(1 << 2);
|
||||||
}
|
}
|
||||||
|
@ -188,14 +193,16 @@ static void pic_set_irq(void *opaque, int irq, int level)
|
||||||
static void pic_intack(PicState *s, int irq)
|
static void pic_intack(PicState *s, int irq)
|
||||||
{
|
{
|
||||||
if (s->auto_eoi) {
|
if (s->auto_eoi) {
|
||||||
if (s->rotate_on_auto_eoi)
|
if (s->rotate_on_auto_eoi) {
|
||||||
s->priority_add = (irq + 1) & 7;
|
s->priority_add = (irq + 1) & 7;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
s->isr |= (1 << irq);
|
s->isr |= (1 << irq);
|
||||||
}
|
}
|
||||||
/* We don't clear a level sensitive interrupt here */
|
/* We don't clear a level sensitive interrupt here */
|
||||||
if (!(s->elcr & (1 << irq)))
|
if (!(s->elcr & (1 << irq))) {
|
||||||
s->irr &= ~(1 << irq);
|
s->irr &= ~(1 << irq);
|
||||||
|
}
|
||||||
pic_update_irq(s);
|
pic_update_irq(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -283,18 +290,22 @@ static void pic_ioport_write(void *opaque, target_phys_addr_t addr64,
|
||||||
s->init_state = 1;
|
s->init_state = 1;
|
||||||
s->init4 = val & 1;
|
s->init4 = val & 1;
|
||||||
s->single_mode = val & 2;
|
s->single_mode = val & 2;
|
||||||
if (val & 0x08)
|
if (val & 0x08) {
|
||||||
hw_error("level sensitive irq not supported");
|
hw_error("level sensitive irq not supported");
|
||||||
|
}
|
||||||
} else if (val & 0x08) {
|
} else if (val & 0x08) {
|
||||||
if (val & 0x04)
|
if (val & 0x04) {
|
||||||
s->poll = 1;
|
s->poll = 1;
|
||||||
if (val & 0x02)
|
}
|
||||||
|
if (val & 0x02) {
|
||||||
s->read_reg_select = val & 1;
|
s->read_reg_select = val & 1;
|
||||||
if (val & 0x40)
|
}
|
||||||
|
if (val & 0x40) {
|
||||||
s->special_mask = (val >> 5) & 1;
|
s->special_mask = (val >> 5) & 1;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
cmd = val >> 5;
|
cmd = val >> 5;
|
||||||
switch(cmd) {
|
switch (cmd) {
|
||||||
case 0:
|
case 0:
|
||||||
case 4:
|
case 4:
|
||||||
s->rotate_on_auto_eoi = cmd >> 2;
|
s->rotate_on_auto_eoi = cmd >> 2;
|
||||||
|
@ -305,8 +316,9 @@ static void pic_ioport_write(void *opaque, target_phys_addr_t addr64,
|
||||||
if (priority != 8) {
|
if (priority != 8) {
|
||||||
irq = (priority + s->priority_add) & 7;
|
irq = (priority + s->priority_add) & 7;
|
||||||
s->isr &= ~(1 << irq);
|
s->isr &= ~(1 << irq);
|
||||||
if (cmd == 5)
|
if (cmd == 5) {
|
||||||
s->priority_add = (irq + 1) & 7;
|
s->priority_add = (irq + 1) & 7;
|
||||||
|
}
|
||||||
pic_update_irq(s);
|
pic_update_irq(s);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -331,7 +343,7 @@ static void pic_ioport_write(void *opaque, target_phys_addr_t addr64,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch(s->init_state) {
|
switch (s->init_state) {
|
||||||
case 0:
|
case 0:
|
||||||
/* normal mode */
|
/* normal mode */
|
||||||
s->imr = val;
|
s->imr = val;
|
||||||
|
@ -374,10 +386,11 @@ static uint64_t pic_ioport_read(void *opaque, target_phys_addr_t addr,
|
||||||
s->poll = 0;
|
s->poll = 0;
|
||||||
} else {
|
} else {
|
||||||
if (addr == 0) {
|
if (addr == 0) {
|
||||||
if (s->read_reg_select)
|
if (s->read_reg_select) {
|
||||||
ret = s->isr;
|
ret = s->isr;
|
||||||
else
|
} else {
|
||||||
ret = s->irr;
|
ret = s->irr;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ret = s->imr;
|
ret = s->imr;
|
||||||
}
|
}
|
||||||
|
@ -410,7 +423,7 @@ static const VMStateDescription vmstate_pic = {
|
||||||
.version_id = 1,
|
.version_id = 1,
|
||||||
.minimum_version_id = 1,
|
.minimum_version_id = 1,
|
||||||
.minimum_version_id_old = 1,
|
.minimum_version_id_old = 1,
|
||||||
.fields = (VMStateField []) {
|
.fields = (VMStateField[]) {
|
||||||
VMSTATE_UINT8(last_irr, PicState),
|
VMSTATE_UINT8(last_irr, PicState),
|
||||||
VMSTATE_UINT8(irr, PicState),
|
VMSTATE_UINT8(irr, PicState),
|
||||||
VMSTATE_UINT8(imr, PicState),
|
VMSTATE_UINT8(imr, PicState),
|
||||||
|
@ -474,9 +487,9 @@ void pic_info(Monitor *mon)
|
||||||
int i;
|
int i;
|
||||||
PicState *s;
|
PicState *s;
|
||||||
|
|
||||||
if (!isa_pic)
|
if (!isa_pic) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
s = i == 0 ? isa_pic : slave_pic;
|
s = i == 0 ? isa_pic : slave_pic;
|
||||||
monitor_printf(mon, "pic%d: irr=%02x imr=%02x isr=%02x hprio=%d "
|
monitor_printf(mon, "pic%d: irr=%02x imr=%02x isr=%02x hprio=%d "
|
||||||
|
@ -498,8 +511,9 @@ void irq_info(Monitor *mon)
|
||||||
monitor_printf(mon, "IRQ statistics:\n");
|
monitor_printf(mon, "IRQ statistics:\n");
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
count = irq_count[i];
|
count = irq_count[i];
|
||||||
if (count > 0)
|
if (count > 0) {
|
||||||
monitor_printf(mon, "%2d: %" PRId64 "\n", i, count);
|
monitor_printf(mon, "%2d: %" PRId64 "\n", i, count);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue