Lines Matching refs:mgr

52 static void	ixl_vc_process_next(struct ixl_vc_mgr *mgr);
53 static void ixl_vc_schedule_retry(struct ixl_vc_mgr *mgr);
54 static void ixl_vc_send_current(struct ixl_vc_mgr *mgr);
1123 ixl_vc_init_mgr(struct ixlv_sc *sc, struct ixl_vc_mgr *mgr)
1125 mgr->sc = sc;
1126 mgr->current = NULL;
1127 TAILQ_INIT(&mgr->pending);
1128 callout_init_mtx(&mgr->callout, &sc->mtx, 0);
1132 ixl_vc_process_completion(struct ixl_vc_mgr *mgr, enum i40e_status_code err)
1136 cmd = mgr->current;
1137 mgr->current = NULL;
1141 ixl_vc_process_next(mgr);
1145 ixl_vc_process_resp(struct ixl_vc_mgr *mgr, uint32_t request,
1150 cmd = mgr->current;
1154 callout_stop(&mgr->callout);
1156 ixl_vc_process_completion(mgr, (enum i40e_status_code)err);
1162 struct ixl_vc_mgr *mgr = (struct ixl_vc_mgr *)arg;
1164 IXLV_CORE_LOCK_ASSERT(mgr->sc);
1165 ixl_vc_process_completion(mgr, I40E_ERR_TIMEOUT);
1171 struct ixl_vc_mgr *mgr = (struct ixl_vc_mgr *)arg;
1173 IXLV_CORE_LOCK_ASSERT(mgr->sc);
1174 ixl_vc_send_current(mgr);
1178 ixl_vc_send_current(struct ixl_vc_mgr *mgr)
1182 cmd = mgr->current;
1183 ixl_vc_send_cmd(mgr->sc, cmd->request);
1184 callout_reset(&mgr->callout, IXLV_VC_TIMEOUT, ixl_vc_cmd_timeout, mgr);
1188 ixl_vc_process_next(struct ixl_vc_mgr *mgr)
1192 if (mgr->current != NULL)
1195 if (TAILQ_EMPTY(&mgr->pending))
1198 cmd = TAILQ_FIRST(&mgr->pending);
1199 TAILQ_REMOVE(&mgr->pending, cmd, next);
1201 mgr->current = cmd;
1202 ixl_vc_send_current(mgr);
1206 ixl_vc_schedule_retry(struct ixl_vc_mgr *mgr)
1209 callout_reset(&mgr->callout, howmany(hz, 100), ixl_vc_cmd_retry, mgr);
1213 ixl_vc_enqueue(struct ixl_vc_mgr *mgr, struct ixl_vc_cmd *cmd,
1216 IXLV_CORE_LOCK_ASSERT(mgr->sc);
1219 if (mgr->current == cmd)
1220 mgr->current = NULL;
1222 TAILQ_REMOVE(&mgr->pending, cmd, next);
1229 TAILQ_INSERT_TAIL(&mgr->pending, cmd, next);
1231 ixl_vc_process_next(mgr);
1235 ixl_vc_flush(struct ixl_vc_mgr *mgr)
1239 IXLV_CORE_LOCK_ASSERT(mgr->sc);
1240 KASSERT(TAILQ_EMPTY(&mgr->pending) || mgr->current != NULL,
1243 cmd = mgr->current;
1245 mgr->current = NULL;
1250 while ((cmd = TAILQ_FIRST(&mgr->pending)) != NULL) {
1251 TAILQ_REMOVE(&mgr->pending, cmd, next);
1256 callout_stop(&mgr->callout);