Lines Matching refs:nsc

38 static int nvme_strategy_core(nvme_softns_t *nsc, struct bio *bio, int delay);
69 nvme_disk_attach(nvme_softns_t *nsc) in nvme_disk_attach() argument
77 sc = nsc->sc; in nvme_disk_attach()
78 devstat_add_entry(&nsc->stats, "nvme", nsc->unit, nsc->blksize, in nvme_disk_attach()
82 nsc->cdev = disk_create(nsc->unit, &nsc->disk, &nvme_ops); in nvme_disk_attach()
83 nsc->cdev->si_drv1 = nsc; in nvme_disk_attach()
84 nsc->cdev->si_iosize_max = MAXPHYS; /* XXX */ in nvme_disk_attach()
85 disk_setdisktype(&nsc->disk, "ssd"); in nvme_disk_attach()
88 info.d_media_blksize = nsc->blksize; in nvme_disk_attach()
89 info.d_media_blocks = nsc->idns.size; in nvme_disk_attach()
100 ksnprintf(serial + len, sizeof(serial) - len, "-%u", nsc->nsid); in nvme_disk_attach()
104 cap_gb = nsc->idns.size / (1024 * 1024 * 1024 / nsc->blksize); in nvme_disk_attach()
108 nsc->unit, nsc->nsid, in nvme_disk_attach()
109 nsc->blksize, nsc->idns.size, cap_gb, serial); in nvme_disk_attach()
111 disk_setdiskinfo(&nsc->disk, &info); in nvme_disk_attach()
116 nvme_disk_detach(nvme_softns_t *nsc) in nvme_disk_detach() argument
118 if (nsc->cdev) { in nvme_disk_detach()
119 disk_destroy(&nsc->disk); in nvme_disk_detach()
120 devstat_remove_entry(&nsc->stats); in nvme_disk_detach()
129 nvme_softns_t *nsc = dev->si_drv1; in nvme_open() local
130 nvme_softc_t *sc = nsc->sc; in nvme_open()
145 nvme_softns_t *nsc = dev->si_drv1; in nvme_close() local
146 nvme_softc_t *sc = nsc->sc; in nvme_close()
157 nvme_softns_t *nsc = dev->si_drv1; in nvme_ioctl() local
158 nvme_softc_t *sc = nsc->sc; in nvme_ioctl()
176 nvme_softns_t *nsc = dev->si_drv1; in nvme_strategy() local
178 nvme_strategy_core(nsc, ap->a_bio, nvme_sync_delay); in nvme_strategy()
191 nvme_softns_t *nsc; in nvme_disk_requeues() local
196 nsc = sc->nscary[i]; in nvme_disk_requeues()
197 if (nsc == NULL || nsc->sc == NULL) in nvme_disk_requeues()
199 if (bioq_first(&nsc->bioq)) { in nvme_disk_requeues()
200 lockmgr(&nsc->lk, LK_EXCLUSIVE); in nvme_disk_requeues()
201 while ((bio = bioq_first(&nsc->bioq)) != NULL) { in nvme_disk_requeues()
202 bioq_remove(&nsc->bioq, bio); in nvme_disk_requeues()
203 lockmgr(&nsc->lk, LK_RELEASE); in nvme_disk_requeues()
204 if (nvme_strategy_core(nsc, bio, 0)) in nvme_disk_requeues()
206 lockmgr(&nsc->lk, LK_EXCLUSIVE); in nvme_disk_requeues()
208 lockmgr(&nsc->lk, LK_RELEASE); in nvme_disk_requeues()
223 nvme_strategy_core(nvme_softns_t *nsc, struct bio *bio, int delay) in nvme_strategy_core() argument
225 nvme_softc_t *sc = nsc->sc; in nvme_strategy_core()
236 secno = bio->bio_offset / nsc->blksize; in nvme_strategy_core()
237 nlba = bp->b_bcount / nsc->blksize; in nvme_strategy_core()
239 devstat_start_transaction(&nsc->stats); in nvme_strategy_core()
257 bp->b_data, nlba * nsc->blksize); in nvme_strategy_core()
261 req->cmd.read.head.nsid = nsc->nsid; in nvme_strategy_core()
276 bp->b_data, nlba * nsc->blksize); in nvme_strategy_core()
279 req->cmd.write.head.nsid = nsc->nsid; in nvme_strategy_core()
297 req->cmd.writez.head.nsid = nsc->nsid; in nvme_strategy_core()
310 req->cmd.flush.head.nsid = nsc->nsid; in nvme_strategy_core()
333 req->nsc = nsc; in nvme_strategy_core()
360 devstat_end_transaction_buf(&nsc->stats, bp); in nvme_strategy_core()
365 devstat_end_transaction_buf(&nsc->stats, bp); in nvme_strategy_core()
381 lockmgr(&nsc->lk, LK_EXCLUSIVE); in nvme_strategy_core()
382 bioqdisksort(&nsc->bioq, bio); in nvme_strategy_core()
383 lockmgr(&nsc->lk, LK_RELEASE); in nvme_strategy_core()
396 nvme_softns_t *nsc = req->nsc; in nvme_disk_callback() local
410 devstat_end_transaction_buf(&nsc->stats, bp); in nvme_disk_callback()
417 device_get_name(nsc->sc->dev), in nvme_disk_callback()
418 device_get_unit(nsc->sc->dev), in nvme_disk_callback()
447 nvme_softns_t *nsc = dev->si_drv1; in nvme_dump() local
448 nvme_softc_t *sc = nsc->sc; in nvme_dump()
459 secno = ap->a_offset / nsc->blksize; in nvme_dump()
460 nlba = ap->a_length / nsc->blksize; in nvme_dump()
471 ap->a_virtual, nlba * nsc->blksize); in nvme_dump()
472 req->cmd.write.head.nsid = nsc->nsid; in nvme_dump()
482 req->cmd.flush.head.nsid = nsc->nsid; in nvme_dump()
490 req->nsc = nsc; in nvme_dump()