Lines Matching defs:ctrlq

462 	struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
552 cv_init(&ctrlq->ctrlq_wait, "ctrl_vq");
553 mutex_init(&ctrlq->ctrlq_wait_lock, MUTEX_DEFAULT, IPL_NET);
554 ctrlq->ctrlq_inuse = FREE;
599 virtio_init_vq(vsc, ctrlq->ctrlq_vq, ctrlq_idx,
600 vioif_ctrl_intr, ctrlq);
602 r = virtio_alloc_vq(vsc, ctrlq->ctrlq_vq, NBPG, 1, "control");
609 cv_destroy(&ctrlq->ctrlq_wait);
610 mutex_destroy(&ctrlq->ctrlq_wait_lock);
670 cv_destroy(&ctrlq->ctrlq_wait);
671 mutex_destroy(&ctrlq->ctrlq_wait_lock);
672 virtio_free_vq(vsc, ctrlq->ctrlq_vq);
673 ctrlq->ctrlq_vq = NULL;
706 struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
730 virtio_start_vq_intr(vsc, ctrlq->ctrlq_vq);
754 struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
771 virtio_stop_vq_intr(vsc, ctrlq->ctrlq_vq);
1152 struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
1215 ctrlq->ctrlq_cmd = vioif_assign_mem(&p,
1216 sizeof(*ctrlq->ctrlq_cmd));
1217 ctrlq->ctrlq_status = vioif_assign_mem(&p,
1218 sizeof(*ctrlq->ctrlq_status));
1219 ctrlq->ctrlq_rx = vioif_assign_mem(&p,
1220 sizeof(*ctrlq->ctrlq_rx));
1221 ctrlq->ctrlq_mac_tbl_uc = vioif_assign_mem(&p,
1222 sizeof(*ctrlq->ctrlq_mac_tbl_uc)
1224 ctrlq->ctrlq_mac_tbl_mc = vioif_assign_mem(&p,
1225 sizeof(*ctrlq->ctrlq_mac_tbl_mc)
1227 ctrlq->ctrlq_mac_addr = vioif_assign_mem(&p,
1228 sizeof(*ctrlq->ctrlq_mac_addr));
1229 ctrlq->ctrlq_mq = vioif_assign_mem(&p, sizeof(*ctrlq->ctrlq_mq));
1311 r = vioif_dmamap_create_load(sc, &ctrlq->ctrlq_cmd_dmamap,
1312 ctrlq->ctrlq_cmd, sizeof(*ctrlq->ctrlq_cmd), 1,
1317 r = vioif_dmamap_create_load(sc, &ctrlq->ctrlq_status_dmamap,
1318 ctrlq->ctrlq_status, sizeof(*ctrlq->ctrlq_status), 1,
1324 r = vioif_dmamap_create_load(sc, &ctrlq->ctrlq_rx_dmamap,
1325 ctrlq->ctrlq_rx, sizeof(*ctrlq->ctrlq_rx), 1,
1331 r = vioif_dmamap_create_load(sc, &ctrlq->ctrlq_mq_dmamap,
1332 ctrlq->ctrlq_mq, sizeof(*ctrlq->ctrlq_mq), 1,
1339 r = vioif_dmamap_create(sc, &ctrlq->ctrlq_tbl_uc_dmamap,
1340 sizeof(*ctrlq->ctrlq_mac_tbl_uc)
1347 r = vioif_dmamap_create(sc, &ctrlq->ctrlq_tbl_mc_dmamap,
1348 sizeof(*ctrlq->ctrlq_mac_tbl_mc)
1356 &ctrlq->ctrlq_mac_addr_dmamap,
1357 ctrlq->ctrlq_mac_addr,
1358 sizeof(*ctrlq->ctrlq_mac_addr), 1,
1367 vioif_dmamap_destroy(sc, &ctrlq->ctrlq_tbl_mc_dmamap);
1368 vioif_dmamap_destroy(sc, &ctrlq->ctrlq_tbl_uc_dmamap);
1369 vioif_dmamap_destroy(sc, &ctrlq->ctrlq_rx_dmamap);
1370 vioif_dmamap_destroy(sc, &ctrlq->ctrlq_status_dmamap);
1371 vioif_dmamap_destroy(sc, &ctrlq->ctrlq_cmd_dmamap);
1372 vioif_dmamap_destroy(sc, &ctrlq->ctrlq_mac_addr_dmamap);
2287 struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
2289 mutex_enter(&ctrlq->ctrlq_wait_lock);
2290 while (ctrlq->ctrlq_inuse != FREE)
2291 cv_wait(&ctrlq->ctrlq_wait, &ctrlq->ctrlq_wait_lock);
2292 ctrlq->ctrlq_inuse = INUSE;
2293 ctrlq->ctrlq_owner = curlwp;
2294 mutex_exit(&ctrlq->ctrlq_wait_lock);
2300 struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
2302 KASSERT(ctrlq->ctrlq_inuse != FREE);
2303 KASSERT(ctrlq->ctrlq_owner == curlwp);
2305 mutex_enter(&ctrlq->ctrlq_wait_lock);
2306 ctrlq->ctrlq_inuse = FREE;
2307 ctrlq->ctrlq_owner = NULL;
2308 cv_signal(&ctrlq->ctrlq_wait);
2309 mutex_exit(&ctrlq->ctrlq_wait_lock);
2358 struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
2359 struct virtqueue *vq = ctrlq->ctrlq_vq;
2363 ctrlq->ctrlq_cmd->class = class;
2364 ctrlq->ctrlq_cmd->command = cmd;
2366 bus_dmamap_sync(virtio_dmat(vsc), ctrlq->ctrlq_cmd_dmamap,
2372 bus_dmamap_sync(virtio_dmat(vsc), ctrlq->ctrlq_status_dmamap,
2377 virtio_start_vq_intr(vsc, ctrlq->ctrlq_vq);
2385 virtio_enqueue(vsc, vq, slot, ctrlq->ctrlq_cmd_dmamap, true);
2389 virtio_enqueue(vsc, vq, slot, ctrlq->ctrlq_status_dmamap, false);
2393 mutex_enter(&ctrlq->ctrlq_wait_lock);
2394 while (ctrlq->ctrlq_inuse != DONE)
2395 cv_wait(&ctrlq->ctrlq_wait, &ctrlq->ctrlq_wait_lock);
2396 mutex_exit(&ctrlq->ctrlq_wait_lock);
2399 bus_dmamap_sync(virtio_dmat(vsc), ctrlq->ctrlq_cmd_dmamap, 0,
2405 bus_dmamap_sync(virtio_dmat(vsc), ctrlq->ctrlq_status_dmamap, 0,
2408 if (ctrlq->ctrlq_status->ack == VIRTIO_NET_OK)
2423 struct vioif_ctrlqueue *ctrlq = arg;
2424 struct virtqueue *vq = ctrlq->ctrlq_vq;
2436 mutex_enter(&ctrlq->ctrlq_wait_lock);
2437 ctrlq->ctrlq_inuse = DONE;
2438 cv_signal(&ctrlq->ctrlq_wait);
2439 mutex_exit(&ctrlq->ctrlq_wait_lock);
2559 /* filter already set in ctrlq->ctrlq_mac_tbl */
2613 struct vioif_ctrlqueue *ctrlq = &sc->sc_ctrlq;
2622 memcpy(ctrlq->ctrlq_mac_tbl_uc->macs[0],
2640 memcpy(ctrlq->ctrlq_mac_tbl_mc->macs[nentries],
2653 ctrlq->ctrlq_mac_tbl_uc->nentries = virtio_rw32(vsc, 1);
2654 ctrlq->ctrlq_mac_tbl_mc->nentries = virtio_rw32(vsc, nentries);
2662 ctrlq->ctrlq_mac_tbl_uc->nentries = virtio_rw32(vsc, 0);
2663 ctrlq->ctrlq_mac_tbl_mc->nentries = virtio_rw32(vsc, 0);