Lines Matching refs:qmgr

38 static int	ixl_pf_qmgr_find_free_contiguous_block(struct ixl_pf_qmgr *qmgr, int num);
41 ixl_pf_qmgr_init(struct ixl_pf_qmgr *qmgr, u16 num_queues)
46 qmgr->num_queues = num_queues;
47 qmgr->qinfo = malloc(num_queues * sizeof(struct ixl_pf_qmgr_qinfo),
49 if (qmgr->qinfo == NULL)
56 ixl_pf_qmgr_alloc_contiguous(struct ixl_pf_qmgr *qmgr, u16 num, struct ixl_pf_qtag *qtag)
70 avail = ixl_pf_qmgr_get_num_free(qmgr);
74 block_start = ixl_pf_qmgr_find_free_contiguous_block(qmgr, alloc_size);
80 qmgr->qinfo[i].allocated = true;
83 qtag->qmgr = qmgr;
96 ixl_pf_qmgr_alloc_scattered(struct ixl_pf_qmgr *qmgr, u16 num, struct ixl_pf_qtag *qtag)
108 avail = ixl_pf_qmgr_get_num_free(qmgr);
113 qtag->qmgr = qmgr;
118 for (i = 0; i < qmgr->num_queues; i++) {
119 if (!qmgr->qinfo[i].allocated) {
122 qmgr->qinfo[i].allocated = true;
133 ixl_pf_qmgr_release(struct ixl_pf_qmgr *qmgr, struct ixl_pf_qtag *qtag)
143 bzero(&qmgr->qinfo[qidx], sizeof(qmgr->qinfo[qidx]));
148 bzero(&qmgr->qinfo[i], sizeof(qmgr->qinfo[qidx]));
151 qtag->qmgr = NULL;
156 ixl_pf_qmgr_get_num_queues(struct ixl_pf_qmgr *qmgr)
158 return (qmgr->num_queues);
166 ixl_pf_qmgr_get_num_free(struct ixl_pf_qmgr *qmgr)
170 for (int i = 0; i < qmgr->num_queues; i++) {
171 if (!qmgr->qinfo[i].allocated)
179 ixl_pf_qmgr_get_first_free(struct ixl_pf_qmgr *qmgr, u16 start)
183 if (start > qmgr->num_queues - 1)
186 for (i = start; i < qmgr->num_queues; i++) {
187 if (qmgr->qinfo[i].allocated)
198 ixl_pf_qmgr_destroy(struct ixl_pf_qmgr *qmgr)
200 free(qmgr->qinfo, M_IXL);
201 qmgr->qinfo = NULL;
209 struct ixl_pf_qmgr *qmgr = qtag->qmgr;
212 qmgr->qinfo[pf_qidx].tx_enabled = true;
214 qmgr->qinfo[pf_qidx].rx_enabled = true;
222 struct ixl_pf_qmgr *qmgr = qtag->qmgr;
225 qmgr->qinfo[pf_qidx].tx_enabled = false;
227 qmgr->qinfo[pf_qidx].rx_enabled = false;
235 struct ixl_pf_qmgr *qmgr = qtag->qmgr;
238 qmgr->qinfo[pf_qidx].tx_configured = true;
240 qmgr->qinfo[pf_qidx].rx_configured = true;
248 struct ixl_pf_qmgr *qmgr = qtag->qmgr;
251 return (qmgr->qinfo[pf_qidx].tx_enabled);
253 return (qmgr->qinfo[pf_qidx].rx_enabled);
261 struct ixl_pf_qmgr *qmgr = qtag->qmgr;
264 return (qmgr->qinfo[pf_qidx].tx_configured);
266 return (qmgr->qinfo[pf_qidx].rx_configured);
274 struct ixl_pf_qmgr *qmgr = qtag->qmgr;
278 qmgr->qinfo[pf_qidx].tx_configured = 0;
279 qmgr->qinfo[pf_qidx].rx_configured = 0;
280 qmgr->qinfo[pf_qidx].rx_enabled = 0;
281 qmgr->qinfo[pf_qidx].tx_enabled = 0;
299 ixl_pf_qmgr_find_free_contiguous_block(struct ixl_pf_qmgr *qmgr, int num)
306 for (i = 0; i < qmgr->num_queues; i++) {
307 if (!qmgr->qinfo[i].allocated) {