Home | History | Annotate | Download | only in ic

Lines Matching defs:ic

55 #include <dev/ic/icpreg.h>
56 #include <dev/ic/icpvar.h>
138 struct icp_ccb *ic;
167 if (__predict_false((ic = icp_ccb_alloc(icp)) == NULL)) {
172 rc = &ic->ic_cmd.cmd_packet.rc;
173 ic->ic_sg = rc->rc_sg;
174 ic->ic_service = ICP_SCSIRAWSERVICE;
175 soff = ICP_SCRATCH_SENSE + ic->ic_ident *
183 ic->ic_cmd.cmd_opcode = htole16(ICP_WRITE);
202 rv = icp_ccb_map(icp, ic, xs->data, xs->datalen,
206 icp_ccb_free(icp, ic);
212 rc->rc_nsgent = htole32(ic->ic_nsgent);
221 ic->ic_cmdlen = (u_long)ic->ic_sg - (u_long)&ic->ic_cmd +
222 ic->ic_nsgent * sizeof(*ic->ic_sg);
230 ic->ic_intr = icpsp_intr;
231 ic->ic_context = xs;
232 ic->ic_dv = sc->sc_dv;
236 rv = icp_ccb_poll(icp, ic, xs->timeout);
239 icp_ccb_unmap(icp, ic);
240 icp_ccb_free(icp, ic);
254 icp_ccb_enqueue(icp, ic);
271 icpsp_intr(struct icp_ccb *ic)
278 struct icpsp_softc *sc = device_private(ic->ic_dv);
280 xs = ic->ic_context;
281 icp = device_private(device_parent(ic->ic_dv));
282 soff = ICP_SCRATCH_SENSE + ic->ic_ident *
290 if (ic->ic_status == ICP_S_OK) {
293 } else if (ic->ic_status != ICP_S_RAW_SCSI || icp->icp_info >= 0x100) {
323 icp_ccb_unmap(icp, ic);
324 icp_ccb_free(icp, ic);