diff options
Diffstat (limited to 'hw/net/ne2000.c')
-rw-r--r-- | hw/net/ne2000.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/hw/net/ne2000.c b/hw/net/ne2000.c index 3a9fc89e48..26b234b7eb 100644 --- a/hw/net/ne2000.c +++ b/hw/net/ne2000.c @@ -26,6 +26,7 @@ #include "net/eth.h" #include "ne2000.h" #include "sysemu/sysemu.h" +#include "trace.h" /* debug NE2000 card */ //#define DEBUG_NE2000 @@ -662,19 +663,24 @@ static uint64_t ne2000_read(void *opaque, hwaddr addr, unsigned size) { NE2000State *s = opaque; + uint64_t val; if (addr < 0x10 && size == 1) { - return ne2000_ioport_read(s, addr); + val = ne2000_ioport_read(s, addr); } else if (addr == 0x10) { if (size <= 2) { - return ne2000_asic_ioport_read(s, addr); + val = ne2000_asic_ioport_read(s, addr); } else { - return ne2000_asic_ioport_readl(s, addr); + val = ne2000_asic_ioport_readl(s, addr); } } else if (addr == 0x1f && size == 1) { - return ne2000_reset_ioport_read(s, addr); + val = ne2000_reset_ioport_read(s, addr); + } else { + val = ((uint64_t)1 << (size * 8)) - 1; } - return ((uint64_t)1 << (size * 8)) - 1; + trace_ne2000_read(addr, val); + + return val; } static void ne2000_write(void *opaque, hwaddr addr, @@ -682,6 +688,7 @@ static void ne2000_write(void *opaque, hwaddr addr, { NE2000State *s = opaque; + trace_ne2000_write(addr, data); if (addr < 0x10 && size == 1) { ne2000_ioport_write(s, addr, data); } else if (addr == 0x10) { |