28 #define vnic_cq_service fnic_cq_service
29 #define vnic_cq_free fnic_cq_free
30 #define vnic_cq_alloc fnic_cq_alloc
31 #define vnic_cq_init fnic_cq_init
32 #define vnic_cq_clean fnic_cq_clean
71 unsigned int work_to_do,
73 u8 type,
u16 q_number,
u16 completed_index,
void *opaque),
76 struct cq_desc *cq_desc;
77 unsigned int work_done = 0;
81 cq_desc = (
struct cq_desc *)((
u8 *)cq->
ring.descs +
83 cq_desc_dec(cq_desc, &type, &color,
84 &q_number, &completed_index);
88 if ((*q_service)(cq->
vdev, cq_desc, type,
89 q_number, completed_index, opaque))
98 cq_desc = (
struct cq_desc *)((
u8 *)cq->
ring.descs +
100 cq_desc_dec(cq_desc, &type, &color,
101 &q_number, &completed_index);
104 if (work_done >= work_to_do)
113 unsigned int desc_count,
unsigned int desc_size);
115 unsigned int color_enable,
unsigned int cq_head,
unsigned int cq_tail,
116 unsigned int cq_tail_color,
unsigned int interrupt_enable,
117 unsigned int cq_entry_enable,
unsigned int message_enable,
118 unsigned int interrupt_offset,
u64 message_addr);