Lines Matching defs:xio
87 #include <dev/vme/xio.h>
1024 struct xd_iocmd *xio;
1116 xio = (struct xd_iocmd *) addr;
1117 req = xd_getkauthreq(xio->cmd);
1119 dev, req, xio)) != 0)
1121 return (xdc_ioctlcmd(xd, dev, xio));
2319 xdc_ioctlcmd(struct xd_softc *xd, dev_t dev, struct xd_iocmd *xio)
2330 switch (xio->cmd) {
2333 if (xio->subfn || xio->dptr || xio->dlen ||
2334 xio->block || xio->sectcnt)
2340 if (xio->subfn || xio->sectcnt > XD_IOCMD_MAXS ||
2341 xio->sectcnt * XDFM_BPS != xio->dlen || xio->dptr == NULL)
2354 if (xio->subfn != XDFUN_DRV ||
2355 xio->dlen || xio->block || xio->dptr)
2358 xio->sectcnt = xd->hw_spt; /* we already know the answer */
2365 switch (xio->subfn) {
2368 if (xio->sectcnt != xd->hw_spt ||
2369 (xio->block % xd->nsect) != 0 ||
2370 xio->dlen != XD_IOCMD_HSZ * xd->hw_spt ||
2371 xio->dptr == NULL)
2373 xio->sectcnt = 0;
2377 if (xio->cmd == XDCMD_XRD)
2379 if (xio->sectcnt || xio->dlen ||
2380 (xio->block % xd->nsect) != 0 || xio->dptr)
2389 if (xio->sectcnt || xio->dlen != XD_IOCMD_DMSZ ||
2390 (xio->block % xd->nsect) != 0 || xio->dptr == NULL)
2409 if (xio->dlen) {
2414 xio->dlen, (void **)&buf,
2420 if (xio->cmd == XDCMD_WR || xio->cmd == XDCMD_XWR) {
2421 if ((error = copyin(xio->dptr, buf, xio->dlen)) != 0) {
2422 bus_dmamem_unmap(xdcsc->dmatag, buf, xio->dlen);
2433 rqno = xdc_cmd(xdcsc, xio->cmd, xio->subfn, xd->xd_drive, xio->block,
2434 xio->sectcnt, dvmabuf, XD_SUB_WAIT);
2439 xio->errnum = xdcsc->reqs[rqno].errnum;
2440 xio->tries = xdcsc->reqs[rqno].tries;
2444 if (xio->cmd == XDCMD_RD || xio->cmd == XDCMD_XRD)
2445 error = copyout(buf, xio->dptr, xio->dlen);
2451 xio->dlen, buf);