All of lore.kernel.org
 help / color / mirror / Atom feed
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: [PATCH 2/9] eepro100: Simplify status handling
Date: Tue, 6 Apr 2010 17:34:13 +0300	[thread overview]
Message-ID: <20100406143413.GC20325@redhat.com> (raw)
In-Reply-To: <4BBB4559.6030702@mail.berlios.de>

On Tue, Apr 06, 2010 at 04:29:45PM +0200, Stefan Weil wrote:
> Michael S. Tsirkin schrieb:
> > On Tue, Apr 06, 2010 at 01:44:02PM +0200, Stefan Weil wrote:
> >   
> >> Signed-off-by: Stefan Weil <weil@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;
> >>     
> >
> > 0 is not a bit, I would just use 0 as a constant below.
> >   
> 
> In a philosophical way, not a bit is some kind of a bit.
> 
> I think ok_status = STATUS_NOT_OK is clearer than
> ok_status = 0.

The reason it's not clear is because STATUS_OK | STATUS_NOT_OK
is not a valid combination. IOW, each enum should be:
- a set of bits. 0 is not a bit, you write 0 to say "no bits".
  you can | the values.
- a set of values. you can not | values together.

So either we have ok_status = 0 -> no bits set, and then
ok_status | STATUS_C, or

      STATUS_NOT_OK = BIT(15)
      STATUS_OK = BIT(13) | BIT(15),

and then just use ok_status.

> >   
> >> @@ -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
> >>     

  reply	other threads:[~2010-04-06 14:37 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-06 11:44 [Qemu-devel] eepro100: New patches Stefan Weil
2010-04-06 11:44 ` [Qemu-devel] [PATCH 1/9] eepro100: Don't allow writing SCBStatus Stefan Weil
2010-04-06 11:44 ` [Qemu-devel] [PATCH 2/9] eepro100: Simplify status handling Stefan Weil
2010-04-06 12:18   ` [Qemu-devel] " Michael S. Tsirkin
2010-04-06 14:29     ` Stefan Weil
2010-04-06 14:34       ` Michael S. Tsirkin [this message]
2010-04-06 11:44 ` [Qemu-devel] [PATCH 3/9] eepro100: Simplified device instantiation Stefan Weil
2010-04-06 11:44 ` [Qemu-devel] [PATCH 4/9] eepro100: Add new device variant i82801 Stefan Weil
2010-04-06 11:44 ` [Qemu-devel] [PATCH 5/9] eepro100: Set configuration bit for standard TCB Stefan Weil
2010-04-06 11:44 ` [Qemu-devel] [PATCH 6/9] eepro100: Support compilation without EEPROM Stefan Weil
2010-04-06 12:10   ` [Qemu-devel] " Michael S. Tsirkin
2010-04-06 14:26     ` Stefan Weil
2010-04-06 15:44   ` [Qemu-devel] " Richard Henderson
2010-04-06 16:01     ` Stefan Weil
2010-04-06 16:35       ` Richard Henderson
2010-04-07  1:00   ` Paul Brook
2010-04-07  7:02     ` Stefan Weil
2010-04-07  7:29       ` Michael S. Tsirkin
2010-04-06 11:44 ` [Qemu-devel] [PATCH 7/9] eepro100: Set power management capability using pci_reserve_capability Stefan Weil
2010-04-06 12:09   ` [Qemu-devel] " Michael S. Tsirkin
2010-04-06 11:44 ` [Qemu-devel] [PATCH 8/9] eepro100: Fix mapping of flash memory Stefan Weil
2010-04-06 11:57   ` [Qemu-devel] " Michael S. Tsirkin
2010-04-06 14:23     ` Stefan Weil
2010-04-06 14:30       ` Michael S. Tsirkin
2010-04-06 11:44 ` [Qemu-devel] [PATCH 9/9] eepro100: Fix PCI interrupt pin configuration regression Stefan Weil
2010-04-06 11:55   ` [Qemu-devel] " Michael S. Tsirkin
2010-04-06 12:40 ` [Qemu-devel] Re: eepro100: New patches Michael S. Tsirkin
2010-04-06 16:09   ` Stefan Weil
2010-04-07  8:10     ` Michael S. Tsirkin

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=20100406143413.GC20325@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.