[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 17/20] eepro100: New function for reading command bl
From: |
Stefan Weil |
Subject: |
[Qemu-devel] [PATCH 17/20] eepro100: New function for reading command block |
Date: |
Sun, 14 Feb 2010 17:16:26 +0100 |
Move code which reads the command block to the
new function read_cb. The patch also fixes some
endianess issues related to the command block
and moves declarations of local variables to
the beginning of the block.
Signed-off-by: Stefan Weil <address@hidden>
---
hw/eepro100.c | 42 ++++++++++++++++++++++++++++--------------
1 files changed, 28 insertions(+), 14 deletions(-)
diff --git a/hw/eepro100.c b/hw/eepro100.c
index ebf0f7d..43595eb 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -798,6 +798,16 @@ static void dump_statistics(EEPRO100State * s)
//~ missing("CU dump statistical counters");
}
+static void read_cb(EEPRO100State *s)
+{
+ cpu_physical_memory_read(s->cb_address, (uint8_t *) &s->tx, sizeof(s->tx));
+ s->tx.status = le16_to_cpu(s->tx.status);
+ s->tx.command = le16_to_cpu(s->tx.command);
+ s->tx.link = le32_to_cpu(s->tx.link);
+ s->tx.tbd_array_addr = le32_to_cpu(s->tx.tbd_array_addr);
+ s->tx.tcb_bytes = le16_to_cpu(s->tx.tcb_bytes);
+}
+
static void tx_command(EEPRO100State *s)
{
uint32_t tbd_array = le32_to_cpu(s->tx.tbd_array_addr);
@@ -901,21 +911,25 @@ static void set_multicast_list(EEPRO100State *s)
static void action_command(EEPRO100State *s)
{
for (;;) {
- s->cb_address = s->cu_base + s->cu_offset;
- cpu_physical_memory_read(s->cb_address, (uint8_t *)&s->tx,
sizeof(s->tx));
- uint16_t command = le16_to_cpu(s->tx.command);
- s->tx.status = le16_to_cpu(s->tx.status);
- logout("val=(cu start), status=0x%04x, command=0x%04x, link=0x%08x\n",
- s->tx.status, command, s->tx.link);
- bool bit_el = ((command & COMMAND_EL) != 0);
- bool bit_s = ((command & COMMAND_S) != 0);
- bool bit_i = ((command & COMMAND_I) != 0);
- bool bit_nc = ((command & COMMAND_NC) != 0);
+ bool bit_el;
+ bool bit_s;
+ bool bit_i;
+ bool bit_nc;
bool success = true;
- //~ bool bit_sf = ((command & COMMAND_SF) != 0);
- uint16_t cmd = command & COMMAND_CMD;
- s->cu_offset = le32_to_cpu(s->tx.link);
- switch (cmd) {
+ s->cb_address = s->cu_base + s->cu_offset;
+ read_cb(s);
+ bit_el = ((s->tx.command & COMMAND_EL) != 0);
+ bit_s = ((s->tx.command & COMMAND_S) != 0);
+ bit_i = ((s->tx.command & COMMAND_I) != 0);
+ bit_nc = ((s->tx.command & COMMAND_NC) != 0);
+#if 0
+ bool bit_sf = ((s->tx.command & COMMAND_SF) != 0);
+#endif
+ s->cu_offset = s->tx.link;
+ TRACE(OTHER,
+ logout("val=(cu start), status=0x%04x, command=0x%04x,
link=0x%08x\n",
+ s->tx.status, s->tx.command, s->tx.link));
+ switch (s->tx.command & COMMAND_CMD) {
case CmdNOp:
/* Do nothing. */
break;
--
1.6.6.1
- [Qemu-devel] [PATCH 07/20] eepro100: Update copyright notice, (continued)
- [Qemu-devel] [PATCH 07/20] eepro100: Update copyright notice, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 08/20] eepro100: Add device descriptions, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 09/20] eepro100: Use symbolic names and BIT macros in binary operations, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 10/20] eepro100: Remove old unused code, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 12/20] eepro100: Replace variable name to fix a compiler warning, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 13/20] eepro100: Support RNR interrupt, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 14/20] eepro100: Fix CU Start command, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 15/20] eepro100: Prettify code (no functional changes), Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 16/20] eepro100: Use tx.status, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 17/20] eepro100: New function for reading command block,
Stefan Weil <=
- [Qemu-devel] [PATCH 18/20] eepro100: Add diagnose command, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 19/20] eepro100: Remove C++ comments, Stefan Weil, 2010/02/14
- [Qemu-devel] [PATCH 20/20] eepro100: Keep includes sorted, Stefan Weil, 2010/02/14
- [Qemu-devel] Re: [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id, Michael S. Tsirkin, 2010/02/21
- [Qemu-devel] Re: [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id, Stefan Weil, 2010/02/21
- [Qemu-devel] Re: [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id, Michael S. Tsirkin, 2010/02/22
- [Qemu-devel] Re: [PATCH 05/20] eepro100: Add all supported devices to pci.c, Michael S. Tsirkin, 2010/02/21
- [Qemu-devel] Re: [PATCH 05/20] eepro100: Add all supported devices to pci.c, Stefan Weil, 2010/02/21
Re: [Qemu-devel] [PATCH 01/20] eepro100: Fix compiler errors from debug messages, Anthony Liguori, 2010/02/19