Signed-off-by: Stefan Weil <w...@mail.berlios.de> --- hw/eepro100.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/hw/eepro100.c b/hw/eepro100.c index 0415132..741031c 100644 --- a/hw/eepro100.c +++ b/hw/eepro100.c @@ -175,6 +175,7 @@ typedef enum { } scb_command_bit; typedef enum { + STATUS_NOT_OK = 0, STATUS_C = BIT(15), STATUS_OK = BIT(13), } scb_status_bit; @@ -882,7 +883,7 @@ static void action_command(EEPRO100State *s) bool bit_s; bool bit_i; bool bit_nc; - bool success = true; + uint16_t ok_status = STATUS_OK; s->cb_address = s->cu_base + s->cu_offset; read_cb(s); bit_el = ((s->tx.command & COMMAND_EL) != 0); @@ -915,7 +916,7 @@ static void action_command(EEPRO100State *s) case CmdTx: if (bit_nc) { missing("CmdTx: NC = 0"); - success = false; + ok_status = STATUS_NOT_OK; break; } tx_command(s); @@ -932,11 +933,11 @@ static void action_command(EEPRO100State *s) break; default: missing("undefined command"); - success = false; + ok_status = STATUS_NOT_OK; break; } /* Write new status. */ - stw_phys(s->cb_address, s->tx.status | STATUS_C | (success ? STATUS_OK : 0)); + stw_phys(s->cb_address, s->tx.status | ok_status | STATUS_C); if (bit_i) { /* CU completed action. */ eepro100_cx_interrupt(s); -- 1.7.0