64 unsigned int work_to_do,
66 u8 type,
u16 q_number,
u16 completed_index,
void *opaque),
69 struct cq_desc *cq_desc;
70 unsigned int work_done = 0;
74 cq_desc = (
struct cq_desc *)((
u8 *)cq->
ring.descs +
76 cq_desc_dec(cq_desc, &type, &color,
77 &q_number, &completed_index);
81 if ((*q_service)(cq->
vdev, cq_desc, type,
82 q_number, completed_index, opaque))
91 cq_desc = (
struct cq_desc *)((
u8 *)cq->
ring.descs +
93 cq_desc_dec(cq_desc, &type, &color,
94 &q_number, &completed_index);
97 if (work_done >= work_to_do)
106 unsigned int desc_count,
unsigned int desc_size);
108 unsigned int color_enable,
unsigned int cq_head,
unsigned int cq_tail,
109 unsigned int cq_tail_color,
unsigned int interrupt_enable,
110 unsigned int cq_entry_enable,
unsigned int message_enable,
111 unsigned int interrupt_offset,
u64 message_addr);