Lines Matching full:dsc
277 struct devmem_softc *dsc; in get_memseg() local
286 SLIST_FOREACH(dsc, &sc->devmem, link) { in get_memseg()
287 if (dsc->segid == mseg->segid) in get_memseg()
290 KASSERT(dsc != NULL, ("%s: devmem segment %d not found", in get_memseg()
292 error = copystr(dsc->name, mseg->name, len, NULL); in get_memseg()
869 struct devmem_softc *dsc; in vmmdev_destroy() local
881 SLIST_FOREACH(dsc, &sc->devmem, link) { in vmmdev_destroy()
882 KASSERT(dsc->cdev != NULL, ("devmem cdev already destroyed")); in vmmdev_destroy()
883 devmem_destroy(dsc); in vmmdev_destroy()
891 while ((dsc = SLIST_FIRST(&sc->devmem)) != NULL) { in vmmdev_destroy()
892 KASSERT(dsc->cdev == NULL, ("%s: devmem not free", __func__)); in vmmdev_destroy()
894 free(dsc->name, M_VMMDEV); in vmmdev_destroy()
895 free(dsc, M_VMMDEV); in vmmdev_destroy()
1225 struct devmem_softc *dsc; in devmem_mmap_single() local
1231 dsc = cdev->si_drv1; in devmem_mmap_single()
1232 if (dsc == NULL) { in devmem_mmap_single()
1242 vm_slock_memsegs(dsc->sc->vm); in devmem_mmap_single()
1244 error = vm_get_memseg(dsc->sc->vm, dsc->segid, &seglen, &sysmem, objp); in devmem_mmap_single()
1246 ("%s: invalid devmem segment %d", __func__, dsc->segid)); in devmem_mmap_single()
1253 vm_unlock_memsegs(dsc->sc->vm); in devmem_mmap_single()
1267 struct devmem_softc *dsc; in devmem_create_cdev() local
1272 dsc = malloc(sizeof(struct devmem_softc), M_VMMDEV, M_WAITOK | M_ZERO); in devmem_create_cdev()
1273 dsc->segid = segid; in devmem_create_cdev()
1274 dsc->name = devname; in devmem_create_cdev()
1275 dsc->sc = sc; in devmem_create_cdev()
1276 SLIST_INSERT_HEAD(&sc->devmem, dsc, link); in devmem_create_cdev()
1284 mda.mda_si_drv1 = dsc; in devmem_create_cdev()
1286 error = make_dev_s(&mda, &dsc->cdev, "vmm.io/%s.%s", vm_name(sc->vm), in devmem_create_cdev()
1289 SLIST_REMOVE(&sc->devmem, dsc, devmem_softc, link); in devmem_create_cdev()
1290 free(dsc->name, M_VMMDEV); in devmem_create_cdev()
1291 free(dsc, M_VMMDEV); in devmem_create_cdev()
1302 struct devmem_softc *dsc = arg; in devmem_destroy() local
1304 destroy_dev(dsc->cdev); in devmem_destroy()
1305 dsc->cdev = NULL; in devmem_destroy()
1306 dsc->sc = NULL; in devmem_destroy()