Lines Matching defs:psc

64     struct pst_softc		*psc;		/* pointer to softc */
87 struct pst_softc *psc;
92 if (!(psc = malloc(sizeof(struct pst_softc),
97 psc->iop = sc;
98 psc->lct = lct;
99 device_set_softc(child, psc);
113 struct pst_softc *psc = device_get_softc(dev);
119 if (!(reply = iop_get_util_params(psc->iop, psc->lct->local_tid,
124 if (!(psc->info = (struct i2o_bsa_device *)
129 bcopy(reply->result, psc->info, sizeof(struct i2o_bsa_device));
132 if (!(reply = iop_get_util_params(psc->iop, psc->lct->local_tid,
143 psc->info->capacity, psc->info->block_size);
150 bioq_init(&psc->queue);
152 psc->disk = disk_alloc();
153 psc->disk->d_name = "pst";
154 psc->disk->d_strategy = pststrategy;
155 psc->disk->d_maxsize = 64 * 1024; /*I2O_SGL_MAX_SEGS * PAGE_SIZE;*/
156 psc->disk->d_drv1 = psc;
157 psc->disk->d_unit = lun;
159 psc->disk->d_sectorsize = psc->info->block_size;
160 psc->disk->d_mediasize = psc->info->capacity;
161 psc->disk->d_fwsectors = 63;
162 psc->disk->d_fwheads = 255;
164 disk_create(psc->disk, DISK_VERSION);
167 (unsigned long long)psc->info->capacity / (1024 * 1024),
168 name, psc->info->capacity/(512*255*63), 255, 63,
169 device_get_nameunit(psc->iop->dev));
179 struct pst_softc *psc = device_get_softc(dev);
183 mfa = iop_get_mfa(psc->iop);
184 msg = (struct i2o_bsa_cache_flush_message *)(psc->iop->ibase + mfa);
189 msg->target_address = psc->lct->local_tid;
193 if (iop_queue_wait_msg(psc->iop, mfa, (struct i2o_basic_message *)msg))
201 struct pst_softc *psc = bp->bio_disk->d_drv1;
203 mtx_lock(&psc->iop->mtx);
204 bioq_disksort(&psc->queue, bp);
205 pst_start(psc);
206 mtx_unlock(&psc->iop->mtx);
210 pst_start(struct pst_softc *psc)
216 if (psc->iop->outstanding < (I2O_IOP_OUTBOUND_FRAME_COUNT - 1) &&
217 (bp = bioq_first(&psc->queue))) {
218 if ((mfa = iop_get_mfa(psc->iop)) != 0xffffffff) {
219 bioq_remove(&psc->queue, bp);
224 iop_free_mfa(psc->iop, mfa);
227 psc->iop->outstanding++;
228 request->psc = psc;
233 iop_free_mfa(request->psc->iop, request->mfa);
234 psc->iop->outstanding--;
246 struct pst_softc *psc = request->psc;
252 psc->iop->reg->oqueue = mfa;
253 psc->iop->outstanding--;
254 pst_start(psc);
264 (request->psc->iop->ibase + request->mfa);
269 msg->target_address = request->psc->lct->local_tid;
298 request->psc->iop->reg->iqueue = request->mfa;
313 mtx_lock(&request->psc->iop->mtx);
314 iop_free_mfa(request->psc->iop, request->mfa);
315 if ((request->mfa = iop_get_mfa(request->psc->iop)) == 0xffffffff) {
318 request->psc->iop->outstanding--;
319 mtx_unlock(&request->psc->iop->mtx);
323 iop_free_mfa(request->psc->iop, request->mfa);
325 request->psc->iop->outstanding--;
327 mtx_unlock(&request->psc->iop->mtx);