Lines Matching defs:vsc

169 virtio_mmio_read_queue_size(struct virtio_softc *vsc, uint16_t idx)
171 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
178 virtio_mmio_setup_queue(struct virtio_softc *vsc, struct virtqueue *vq,
181 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
214 virtio_mmio_setup_intrs(struct virtio_softc *vsc)
219 virtio_mmio_get_status(struct virtio_softc *vsc)
221 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
228 virtio_mmio_set_status(struct virtio_softc *vsc, int status)
230 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
261 struct virtio_softc *vsc = &sc->sc_sc;
304 vsc->sc_ops = &virtio_mmio_ops;
305 vsc->sc_dmat = sc->sc_dmat;
308 virtio_device_reset(vsc);
309 virtio_mmio_set_status(vsc, VIRTIO_CONFIG_DEVICE_STATUS_ACK);
310 virtio_mmio_set_status(vsc, VIRTIO_CONFIG_DEVICE_STATUS_DRIVER);
314 vsc->sc_child = NULL;
316 if (vsc->sc_child == NULL) {
318 vsc->sc_dev.dv_xname);
321 if (vsc->sc_child == VIRTIO_CHILD_ERROR) {
323 vsc->sc_dev.dv_xname);
330 virtio_set_status(vsc, VIRTIO_CONFIG_DEVICE_STATUS_FAILED);
334 virtio_mmio_attach_finish(struct virtio_softc *vsc,
337 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
341 sc->sc_ih = fdt_intr_establish(vma->vma_fa->fa_node, vsc->sc_ipl,
342 virtio_mmio_intr, sc, vsc->sc_dev.dv_xname);
345 vsc->sc_dev.dv_xname);
355 struct virtio_softc *vsc = &sc->sc_sc;
358 if (vsc->sc_child != 0 && vsc->sc_child != VIRTIO_CHILD_ERROR) {
359 r = config_detach(vsc->sc_child, flags);
363 KASSERT(vsc->sc_child == 0 || vsc->sc_child == VIRTIO_CHILD_ERROR);
364 KASSERT(vsc->sc_vqs == 0);
380 virtio_mmio_negotiate_features(struct virtio_softc *vsc,
383 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
386 vsc->sc_active_features = 0;
392 if (!(vsc->sc_dev.dv_cfdata->cf_flags & VIRTIO_CF_NO_INDIRECT) &&
393 !(vsc->sc_child->dv_cfdata->cf_flags & VIRTIO_CF_NO_INDIRECT)) {
394 vsc->sc_driver_features |= VIRTIO_F_RING_INDIRECT_DESC;
402 if ((vsc->sc_driver_features & VIRTIO_F_RING_EVENT_IDX) &&
403 ((vsc->sc_dev.dv_cfdata->cf_flags & VIRTIO_CF_NO_EVENT_IDX) ||
404 (vsc->sc_child->dv_cfdata->cf_flags & VIRTIO_CF_NO_EVENT_IDX))) {
407 vsc->sc_driver_features &= ~(VIRTIO_F_RING_EVENT_IDX);
414 neg = host & vsc->sc_driver_features;
423 vsc->sc_active_features = neg;
425 vsc->sc_indirect = 1;
427 vsc->sc_indirect = 0;
436 virtio_mmio_read_device_config_1(struct virtio_softc *vsc, int index)
438 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
444 virtio_mmio_read_device_config_2(struct virtio_softc *vsc, int index)
446 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
452 virtio_mmio_read_device_config_4(struct virtio_softc *vsc, int index)
454 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
460 virtio_mmio_read_device_config_8(struct virtio_softc *vsc, int index)
462 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
474 virtio_mmio_write_device_config_1(struct virtio_softc *vsc,
477 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
483 virtio_mmio_write_device_config_2(struct virtio_softc *vsc,
486 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
492 virtio_mmio_write_device_config_4(struct virtio_softc *vsc,
495 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
501 virtio_mmio_write_device_config_8(struct virtio_softc *vsc,
504 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
520 struct virtio_softc *vsc = &sc->sc_sc;
529 (vsc->sc_config_change != NULL))
530 r = (vsc->sc_config_change)(vsc);
532 r |= virtio_check_vqs(vsc);
538 virtio_mmio_kick(struct virtio_softc *vsc, uint16_t idx)
540 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
546 virtio_mmio_intr_barrier(struct virtio_softc *vsc)
548 struct virtio_mmio_softc *sc = (struct virtio_mmio_softc *)vsc;
554 virtio_mmio_intr_establish(struct virtio_softc *vsc,