From: "Michael S. Tsirkin" <mst@redhat.com>
To: Stefan Weil <weil@mail.berlios.de>
Cc: QEMU Developers <qemu-devel@nongnu.org>
Subject: [Qemu-devel] Re: [PATCHv3 17/20] eepro100: New function for reading command block
Date: Wed, 3 Mar 2010 13:44:09 +0200 [thread overview]
Message-ID: <20100303114409.GA15278@redhat.com> (raw)
In-Reply-To: <1267565880-18382-17-git-send-email-weil@mail.berlios.de>
On Tue, Mar 02, 2010 at 10:37:57PM +0100, Stefan Weil wrote:
> 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 <weil@mail.berlios.de>
> ---
> hw/eepro100.c | 42 ++++++++++++++++++++++++++++--------------
> 1 files changed, 28 insertions(+), 14 deletions(-)
>
> diff --git a/hw/eepro100.c b/hw/eepro100.c
> index f5aa306..e10ce62 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);
() is never needed around the assigned value. this can be fixed
separately though. AFAIK you also do not need != : values are coersed
by assignment to bool correctly.
Again, can be fixed separately.
> +#if 0
> + bool bit_sf = ((s->tx.command & COMMAND_SF) != 0);
> +#endif
Is the above likely to be useful?
> + 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.7.0
next prev parent reply other threads:[~2010-03-03 11:47 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-14 16:15 [Qemu-devel] eepro100: New patch series adds full GPXE support Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 01/20] eepro100: Fix compiler errors from debug messages Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 02/20] eepro100: Add missing SCB register names Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 03/20] eepro100: Fix PXE boot Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 04/20] eepro100: Support gpxe boot for all eepro100 devices Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 05/20] eepro100: Add all supported devices to pci.c Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 06/20] eepro100: Add TODO list Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 07/20] eepro100: Update copyright notice Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 08/20] eepro100: Add device descriptions Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 09/20] eepro100: Use symbolic names and BIT macros in binary operations Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 10/20] eepro100: Remove old unused code Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 12/20] eepro100: Replace variable name to fix a compiler warning Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 13/20] eepro100: Support RNR interrupt Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 14/20] eepro100: Fix CU Start command Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 15/20] eepro100: Prettify code (no functional changes) Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 16/20] eepro100: Use tx.status Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 17/20] eepro100: New function for reading command block Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 18/20] eepro100: Add diagnose command Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 19/20] eepro100: Remove C++ comments Stefan Weil
2010-02-14 16:16 ` [Qemu-devel] [PATCH 20/20] eepro100: Keep includes sorted Stefan Weil
2010-02-21 17:05 ` [Qemu-devel] Re: [PATCH 11/20] eepro100: Use symbolic names for bits in EEPROM id Michael S. Tsirkin
2010-02-21 21:38 ` Stefan Weil
2010-02-22 9:00 ` Michael S. Tsirkin
2010-03-02 18:42 ` [Qemu-devel] " Stefan Weil
2010-02-21 17:00 ` [Qemu-devel] Re: [PATCH 05/20] eepro100: Add all supported devices to pci.c Michael S. Tsirkin
2010-02-21 21:08 ` Stefan Weil
2010-03-03 11:51 ` Michael S. Tsirkin
2010-03-03 13:31 ` Gerd Hoffmann
2010-03-03 13:33 ` Michael S. Tsirkin
2010-03-03 18:53 ` Stefan Weil
2010-03-04 8:56 ` Gerd Hoffmann
2010-03-02 18:43 ` [Qemu-devel] [PATCH 03/20] eepro100: Fix PXE boot Stefan Weil
2010-03-02 20:04 ` [Qemu-devel] " Michael S. Tsirkin
2010-02-19 21:05 ` [Qemu-devel] [PATCH 01/20] eepro100: Fix compiler errors from debug messages Anthony Liguori
2010-03-01 17:54 ` Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 " Stefan Weil
2010-03-03 11:52 ` [Qemu-devel] " Michael S. Tsirkin
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 02/20] eepro100: Add missing SCB register names Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 03/20] eepro100: Fix PXE boot Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 04/20] eepro100: Support gpxe boot for all eepro100 devices Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 05/20] eepro100: Add all supported devices to pci.c Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 06/20] eepro100: Add TODO list Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 07/20] eepro100: Update copyright notice Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 08/20] eepro100: Add device descriptions Stefan Weil
2010-03-03 11:49 ` [Qemu-devel] " Michael S. Tsirkin
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 09/20] eepro100: Use symbolic names and BIT macros in binary operations Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 10/20] eepro100: Remove old unused code Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 11/20] eepro100: Use symbolic names for bits in EEPROM id Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 12/20] eepro100: Replace variable name to fix a compiler warning Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 13/20] eepro100: Support RNR interrupt Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 14/20] eepro100: Fix CU Start command Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 15/20] eepro100: Prettify code (no functional changes) Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 16/20] eepro100: Use tx.status Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 17/20] eepro100: New function for reading command block Stefan Weil
2010-03-03 11:44 ` Michael S. Tsirkin [this message]
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 18/20] eepro100: Add diagnose command Stefan Weil
2010-03-02 21:37 ` [Qemu-devel] [PATCHv3 19/20] eepro100: Remove C++ comments Stefan Weil
2010-03-03 11:47 ` [Qemu-devel] " Michael S. Tsirkin
2010-03-03 19:15 ` Stefan Weil
2010-03-03 19:59 ` Michael S. Tsirkin
2010-03-02 21:38 ` [Qemu-devel] [PATCHv3 20/20] eepro100: Keep includes sorted Stefan Weil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100303114409.GA15278@redhat.com \
--to=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=weil@mail.berlios.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).