version: 1.7.1-rc0
[dpdk.git] / lib / librte_pmd_virtio / virtqueue.h
index 7684395..a63723d 100644 (file)
@@ -1,13 +1,13 @@
 /*-
  *   BSD LICENSE
- * 
+ *
  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
  *   All rights reserved.
- * 
+ *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
  *   are met:
- * 
+ *
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
@@ -17,7 +17,7 @@
  *     * Neither the name of Intel Corporation nor the names of its
  *       contributors may be used to endorse or promote products derived
  *       from this software without specific prior written permission.
- * 
+ *
  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -88,7 +88,7 @@ enum { VTNET_RQ = 0, VTNET_TQ = 1, VTNET_CQ = 2 };
 #define VIRTIO_NET_CTRL_RX_ALLUNI       2
 #define VIRTIO_NET_CTRL_RX_NOMULTI      3
 #define VIRTIO_NET_CTRL_RX_NOUNI        4
-#define VIRTIO_NET_CTRL_RX_NOBCAST      5 
+#define VIRTIO_NET_CTRL_RX_NOBCAST      5
 
 /**
  * Control VLAN filtering
@@ -209,12 +209,12 @@ void virtqueue_dump(struct virtqueue *vq);
 /**
  *  Get all mbufs to be freed.
  */
-struct rte_mbuf * virtqueue_detatch_unused(struct virtqueue *vq);
+struct rte_mbuf *virtqueue_detatch_unused(struct virtqueue *vq);
 
 static inline int
 virtqueue_full(const struct virtqueue *vq)
 {
-       return (vq->vq_free_cnt == 0);
+       return vq->vq_free_cnt == 0;
 }
 
 #define VIRTQUEUE_NUSED(vq) ((uint16_t)((vq)->vq_ring.used->idx - (vq)->vq_used_cons_idx))
@@ -243,7 +243,7 @@ vq_update_avail_ring(struct virtqueue *vq, uint16_t desc_idx)
 }
 
 static inline int __attribute__((always_inline))
-virtqueue_kick_prepare(struct virtqueue * vq)
+virtqueue_kick_prepare(struct virtqueue *vq)
 {
        return !(vq->vq_ring.used->flags & VRING_USED_F_NO_NOTIFY);
 }
@@ -251,7 +251,7 @@ virtqueue_kick_prepare(struct virtqueue * vq)
 static inline void __attribute__((always_inline))
 virtqueue_notify(struct virtqueue *vq)
 {
-       /* 
+       /*
         * Ensure updated avail->idx is visible to host. mb() necessary?
         * For virtio on IA, the notificaiton is through io port operation
         * which is a serialization instruction itself.
@@ -276,7 +276,7 @@ vq_ring_free_chain(struct virtqueue *vq, uint16_t desc_idx)
                }
        }
        dxp->ndescs = 0;
-       
+
        /*
         * We must append the existing free chain, if any, to the end of
         * newly freed chain. If the virtqueue was completely used, then
@@ -298,18 +298,17 @@ virtqueue_enqueue_recv_refill(struct virtqueue *vq, struct rte_mbuf *cookie)
 {
        struct vq_desc_extra *dxp;
        struct vring_desc *start_dp;
-       uint16_t needed;
+       uint16_t needed = 1;
        uint16_t head_idx, idx;
-       needed = 1;
 
        if (unlikely(vq->vq_free_cnt == 0))
-               return (-ENOSPC);
+               return -ENOSPC;
        if (unlikely(vq->vq_free_cnt < needed))
-               return (-EMSGSIZE);
+               return -EMSGSIZE;
 
        head_idx = vq->vq_desc_head_idx;
        if (unlikely(head_idx >= vq->vq_nentries))
-               return (-EFAULT);
+               return -EFAULT;
 
        idx = head_idx;
        dxp = &vq->vq_descx[idx];
@@ -328,7 +327,7 @@ virtqueue_enqueue_recv_refill(struct virtqueue *vq, struct rte_mbuf *cookie)
        vq->vq_free_cnt = (uint16_t)(vq->vq_free_cnt - needed);
        vq_update_avail_ring(vq, head_idx);
 
-       return (0);
+       return 0;
 }
 
 static inline int __attribute__((always_inline))
@@ -336,16 +335,16 @@ virtqueue_enqueue_xmit(struct virtqueue *txvq, struct rte_mbuf *cookie)
 {
        struct vq_desc_extra *dxp;
        struct vring_desc *start_dp;
-       uint16_t needed;
+       uint16_t needed = 2;
        uint16_t head_idx, idx;
-       needed = 2;
+
        if (unlikely(txvq->vq_free_cnt == 0))
-               return (-ENOSPC);
+               return -ENOSPC;
        if (unlikely(txvq->vq_free_cnt < needed))
-               return (-EMSGSIZE);
+               return -EMSGSIZE;
        head_idx = txvq->vq_desc_head_idx;
-       if (unlikely(head_idx >= txvq->vq_nentries)) 
-               return (-EFAULT);
+       if (unlikely(head_idx >= txvq->vq_nentries))
+               return -EFAULT;
 
        idx = head_idx;
        dxp = &txvq->vq_descx[idx];
@@ -369,7 +368,7 @@ virtqueue_enqueue_xmit(struct virtqueue *txvq, struct rte_mbuf *cookie)
        txvq->vq_free_cnt = (uint16_t)(txvq->vq_free_cnt - needed);
        vq_update_avail_ring(txvq, head_idx);
 
-       return (0);
+       return 0;
 }
 
 static inline uint16_t __attribute__((always_inline))
@@ -381,7 +380,7 @@ virtqueue_dequeue_burst_rx(struct virtqueue *vq, struct rte_mbuf **rx_pkts, uint
        uint16_t i;
 
        /*  Caller does the check */
-       for (i = 0; i < num ; i ++) {
+       for (i = 0; i < num; i++) {
                used_idx = (uint16_t)(vq->vq_used_cons_idx & (vq->vq_nentries - 1));
                uep = &vq->vq_ring.used->ring[used_idx];
                desc_idx = (uint16_t) uep->id;
@@ -389,7 +388,7 @@ virtqueue_dequeue_burst_rx(struct virtqueue *vq, struct rte_mbuf **rx_pkts, uint
                cookie = (struct rte_mbuf *)vq->vq_descx[desc_idx].cookie;
 
                if (unlikely(cookie == NULL)) {
-                       PMD_DRV_LOG(ERR, "vring descriptor with no mbuf cookie at %u\n", 
+                       PMD_DRV_LOG(ERR, "vring descriptor with no mbuf cookie at %u\n",
                                vq->vq_used_cons_idx);
                        break;
                }
@@ -402,7 +401,7 @@ virtqueue_dequeue_burst_rx(struct virtqueue *vq, struct rte_mbuf **rx_pkts, uint
                vq->vq_descx[desc_idx].cookie = NULL;
        }
 
-       return (i);
+       return i;
 }
 
 static inline uint16_t __attribute__((always_inline))
@@ -420,7 +419,7 @@ virtqueue_dequeue_pkt_tx(struct virtqueue *vq)
        return 0;
 }
 
-#ifdef  RTE_LIBRTE_VIRTIO_DEBUG_DUMP
+#ifdef RTE_LIBRTE_VIRTIO_DEBUG_DUMP
 #define VIRTQUEUE_DUMP(vq) do { \
        uint16_t used_idx, nused; \
        used_idx = (vq)->vq_ring.used->idx; \