18 #ifndef _VNIC_WQ_COPY_H_
19 #define _VNIC_WQ_COPY_H_
21 #include <linux/pci.h>
25 #define VNIC_WQ_COPY_MAX 1
36 static inline unsigned int vnic_wq_copy_desc_avail(
struct vnic_wq_copy *wq)
38 return wq->
ring.desc_avail;
41 static inline unsigned int vnic_wq_copy_desc_in_use(
struct vnic_wq_copy *wq)
43 return wq->
ring.desc_count - 1 - wq->
ring.desc_avail;
46 static inline void *vnic_wq_copy_next_desc(
struct vnic_wq_copy *wq)
52 static inline void vnic_wq_copy_post(
struct vnic_wq_copy *wq)
57 wq->
ring.desc_avail--;
83 static inline void vnic_wq_copy_service(
struct vnic_wq_copy *wq,
89 unsigned int curr_index;
94 (*q_service)(wq, &wq_desc[wq->to_clean_index]);
96 wq->ring.desc_avail++;
98 curr_index = wq->to_clean_index;
103 ((wq->to_clean_index + 1) == wq->ring.desc_count) ?
104 (wq->to_clean_index = 0) : (wq->to_clean_index++);
106 if (curr_index == completed_index)
110 if ((completed_index == (
u16)-1) &&
111 (wq->to_clean_index == wq->to_use_index))
120 unsigned int index,
unsigned int desc_count,
unsigned int desc_size);
122 unsigned int error_interrupt_enable,
123 unsigned int error_interrupt_offset);