int SRopen(ScsiReq *rp, char *unit) { if(SRopenraw(rp, unit) == -1) return -1; SRready(rp); if(SRinquiry(rp) >= 0){ switch(rp->inquiry[0]){ default: fprint(2, "unknown device type 0x%.2x\n", rp->inquiry[0]); rp->status = Status_SW; break; case Devdir: case Devcd: case Devmo: if(dirdevopen(rp) == -1) break; return 0; case Devseq: rp->flags |= Fseqdev; if(seqdevopen(rp) == -1) break; return 0; case Devprint: rp->flags |= Fprintdev; return 0; case Devworm: rp->flags |= Fwormdev; if(wormdevopen(rp) == -1) break; return 0; case Devjuke: rp->flags |= Fchanger; return 0; } } SRclose(rp); return -1; }
static long cmdready(ScsiReq *rp, int argc, char *argv[]) { USED(argc, argv); return SRready(rp); }