All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] [PATCH 10/14] uhci: use enum for uhci_handle_td return codes
Date: Tue, 13 Mar 2012 13:20:07 +0100	[thread overview]
Message-ID: <1331641211-20077-11-git-send-email-kraxel@redhat.com> (raw)
In-Reply-To: <1331641211-20077-1-git-send-email-kraxel@redhat.com>

Step #1 (separate for better bisectability): replace numbers with names.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/usb/hcd-uhci.c |   39 +++++++++++++++++++++++----------------
 1 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c
index 054ae19..25dfc2b 100644
--- a/hw/usb/hcd-uhci.c
+++ b/hw/usb/hcd-uhci.c
@@ -77,6 +77,13 @@
 
 #define NB_PORTS 2
 
+enum {
+    TD_RESULT_STOP_FRAME = -1,
+    TD_RESULT_COMPLETE   = 0,
+    TD_RESULT_NEXT_QH    = 1,
+    TD_RESULT_ASYNC      = 2,
+};
+
 typedef struct UHCIState UHCIState;
 typedef struct UHCIAsync UHCIAsync;
 typedef struct UHCIQueue UHCIQueue;
@@ -721,13 +728,13 @@ static int uhci_complete_td(UHCIState *s, UHCI_TD *td, UHCIAsync *async, uint32_
             /* short packet: do not update QH */
             trace_usb_uhci_packet_complete_shortxfer(async->queue->token,
                                                     async->td);
-            return 1;
+            return TD_RESULT_NEXT_QH;
         }
     }
 
     /* success */
     trace_usb_uhci_packet_complete_success(async->queue->token, async->td);
-    return 0;
+    return TD_RESULT_COMPLETE;
 
 out:
     switch(ret) {
@@ -740,7 +747,7 @@ out:
         }
         uhci_update_irq(s);
         trace_usb_uhci_packet_complete_stall(async->queue->token, async->td);
-        return 1;
+        return TD_RESULT_NEXT_QH;
 
     case USB_RET_BABBLE:
         td->ctrl |= TD_CTRL_BABBLE | TD_CTRL_STALL;
@@ -752,13 +759,13 @@ out:
         uhci_update_irq(s);
         /* frame interrupted */
         trace_usb_uhci_packet_complete_babble(async->queue->token, async->td);
-        return -1;
+        return TD_RESULT_STOP_FRAME;
 
     case USB_RET_NAK:
         td->ctrl |= TD_CTRL_NAK;
         if (pid == USB_TOKEN_SETUP)
             break;
-	return 1;
+        return TD_RESULT_NEXT_QH;
 
     case USB_RET_IOERROR:
     case USB_RET_NODEV:
@@ -784,7 +791,7 @@ out:
     }
     td->ctrl = (td->ctrl & ~(3 << TD_CTRL_ERROR_SHIFT)) |
         (err << TD_CTRL_ERROR_SHIFT);
-    return 1;
+    return TD_RESULT_NEXT_QH;
 }
 
 static int uhci_handle_td(UHCIState *s, uint32_t addr, UHCI_TD *td, uint32_t *int_mask)
@@ -797,7 +804,7 @@ static int uhci_handle_td(UHCIState *s, uint32_t addr, UHCI_TD *td, uint32_t *in
 
     /* Is active ? */
     if (!(td->ctrl & TD_CTRL_ACTIVE))
-        return 1;
+        return TD_RESULT_NEXT_QH;
 
     async = uhci_async_find_td(s, addr, td);
     if (async) {
@@ -805,7 +812,7 @@ static int uhci_handle_td(UHCIState *s, uint32_t addr, UHCI_TD *td, uint32_t *in
         async->queue->valid = 32;
 
         if (!async->done)
-            return 1;
+            return TD_RESULT_NEXT_QH;
 
         uhci_async_unlink(async);
         goto done;
@@ -814,7 +821,7 @@ static int uhci_handle_td(UHCIState *s, uint32_t addr, UHCI_TD *td, uint32_t *in
     /* Allocate new packet */
     async = uhci_async_alloc(uhci_queue_get(s, td), addr);
     if (!async)
-        return 1;
+        return TD_RESULT_NEXT_QH;
 
     /* valid needs to be large enough to handle 10 frame delay
      * for initial isochronous requests
@@ -848,12 +855,12 @@ static int uhci_handle_td(UHCIState *s, uint32_t addr, UHCI_TD *td, uint32_t *in
         uhci_async_free(async);
         s->status |= UHCI_STS_HCPERR;
         uhci_update_irq(s);
-        return -1;
+        return TD_RESULT_STOP_FRAME;
     }
  
     if (len == USB_RET_ASYNC) {
         uhci_async_link(async);
-        return 2;
+        return TD_RESULT_ASYNC;
     }
 
     async->packet.result = len;
@@ -959,7 +966,7 @@ static void uhci_fill_queue(UHCIState *s, UHCI_TD *td)
         }
         trace_usb_uhci_td_queue(plink & ~0xf, ptd.ctrl, ptd.token);
         ret = uhci_handle_td(s, plink, &ptd, &int_mask);
-        assert(ret == 2); /* got USB_RET_ASYNC */
+        assert(ret == TD_RESULT_ASYNC);
         assert(int_mask == 0);
         plink = ptd.link;
     }
@@ -1047,15 +1054,15 @@ static void uhci_process_frame(UHCIState *s)
         }
 
         switch (ret) {
-        case -1: /* interrupted frame */
+        case TD_RESULT_STOP_FRAME: /* interrupted frame */
             goto out;
 
-        case 1: /* goto next queue */
+        case TD_RESULT_NEXT_QH:
             trace_usb_uhci_td_nextqh(curr_qh & ~0xf, link & ~0xf);
             link = curr_qh ? qh.link : td.link;
             continue;
 
-        case 2: /* got USB_RET_ASYNC */
+        case TD_RESULT_ASYNC:
             trace_usb_uhci_td_async(curr_qh & ~0xf, link & ~0xf);
             if (is_valid(td.link)) {
                 uhci_fill_queue(s, &td);
@@ -1063,7 +1070,7 @@ static void uhci_process_frame(UHCIState *s)
             link = curr_qh ? qh.link : td.link;
             continue;
 
-        case 0: /* completed TD */
+        case TD_RESULT_COMPLETE:
             trace_usb_uhci_td_complete(curr_qh & ~0xf, link & ~0xf);
             link = td.link;
             td_count++;
-- 
1.7.1

  parent reply	other threads:[~2012-03-13 12:20 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-13 12:19 [Qemu-devel] [PULL 00/14] usb patch queue Gerd Hoffmann
2012-03-13 12:19 ` [Qemu-devel] [PATCH 01/14] usb: the big rename Gerd Hoffmann
2012-03-13 13:29   ` Hans de Goede
2012-03-13 12:19 ` [Qemu-devel] [PATCH 02/14] usb: zap hw/ush-{ohic, uhci}.h + init wrappers Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 03/14] usb-ehci: drop unused isoch_pause variable Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 04/14] usb-ohci: DMA writeback bug fixes Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 05/14] usb: improve packet state sanity checks Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 06/14] uhci: pass addr to uhci_async_alloc Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 07/14] uhci: fix uhci_async_cancel_all Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 08/14] uhci: cancel on schedule stop Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 09/14] uhci: tracing support Gerd Hoffmann
2012-03-13 12:20 ` Gerd Hoffmann [this message]
2012-03-13 12:20 ` [Qemu-devel] [PATCH 11/14] uhci: renumber uhci_handle_td return codes Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 12/14] uhci: new uhci_handle_td return code for tds still in flight Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 13/14] uhci: alloc can't fail, drop check Gerd Hoffmann
2012-03-13 12:20 ` [Qemu-devel] [PATCH 14/14] Endian fix an assertion in usb-msd Gerd Hoffmann
2012-03-13 19:55 ` [Qemu-devel] [PULL 00/14] usb patch queue Anthony Liguori

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=1331641211-20077-11-git-send-email-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.