Lines Matching refs:psc

66     struct pst_softc		*psc;		/* pointer to softc */
89 struct pst_softc *psc;
94 if (!(psc = malloc(sizeof(struct pst_softc),
99 psc->iop = sc;
100 psc->lct = lct;
101 device_set_softc(child, psc);
115 struct pst_softc *psc = device_get_softc(dev);
121 if (!(reply = iop_get_util_params(psc->iop, psc->lct->local_tid,
126 if (!(psc->info = (struct i2o_bsa_device *)
131 bcopy(reply->result, psc->info, sizeof(struct i2o_bsa_device));
134 if (!(reply = iop_get_util_params(psc->iop, psc->lct->local_tid,
145 psc->info->capacity, psc->info->block_size);
152 bioq_init(&psc->queue);
154 psc->disk = disk_alloc();
155 psc->disk->d_name = "pst";
156 psc->disk->d_strategy = pststrategy;
157 psc->disk->d_maxsize = 64 * 1024; /*I2O_SGL_MAX_SEGS * PAGE_SIZE;*/
158 psc->disk->d_drv1 = psc;
159 psc->disk->d_unit = lun;
161 psc->disk->d_sectorsize = psc->info->block_size;
162 psc->disk->d_mediasize = psc->info->capacity;
163 psc->disk->d_fwsectors = 63;
164 psc->disk->d_fwheads = 255;
166 disk_create(psc->disk, DISK_VERSION);
169 (unsigned long long)psc->info->capacity / (1024 * 1024),
170 name, psc->info->capacity/(512*255*63), 255, 63,
171 device_get_nameunit(psc->iop->dev));
181 struct pst_softc *psc = device_get_softc(dev);
185 mfa = iop_get_mfa(psc->iop);
186 msg = (struct i2o_bsa_cache_flush_message *)(psc->iop->ibase + mfa);
191 msg->target_address = psc->lct->local_tid;
195 if (iop_queue_wait_msg(psc->iop, mfa, (struct i2o_basic_message *)msg))
203 struct pst_softc *psc = bp->bio_disk->d_drv1;
205 mtx_lock(&psc->iop->mtx);
206 bioq_disksort(&psc->queue, bp);
207 pst_start(psc);
208 mtx_unlock(&psc->iop->mtx);
212 pst_start(struct pst_softc *psc)
219 if (psc->iop->outstanding < (I2O_IOP_OUTBOUND_FRAME_COUNT - 1) &&
220 (bp = bioq_first(&psc->queue))) {
221 if ((mfa = iop_get_mfa(psc->iop)) != 0xffffffff) {
222 bioq_remove(&psc->queue, bp);
227 iop_free_mfa(psc->iop, mfa);
230 callout_init_mtx(&request->timeout, &psc->iop->mtx, 0);
231 psc->iop->outstanding++;
232 request->psc = psc;
237 iop_free_mfa(request->psc->iop, request->mfa);
238 psc->iop->outstanding--;
250 struct pst_softc *psc = request->psc;
256 psc->iop->reg->oqueue = mfa;
257 psc->iop->outstanding--;
258 pst_start(psc);
268 (request->psc->iop->ibase + request->mfa);
273 msg->target_address = request->psc->lct->local_tid;
302 request->psc->iop->reg->iqueue = request->mfa;
318 mtx_assert(&request->psc->iop->mtx, MA_OWNED);
319 iop_free_mfa(request->psc->iop, request->mfa);
320 if ((request->mfa = iop_get_mfa(request->psc->iop)) == 0xffffffff) {
323 request->psc->iop->outstanding--;
327 iop_free_mfa(request->psc->iop, request->mfa);
329 request->psc->iop->outstanding--;