Lines Matching defs:ReqWrap
566 VBOXUSBREQ ReqWrap;
567 if (IOCPARM_LEN(Cmd) != sizeof(ReqWrap))
569 LogRel((DEVICE_NAME ": VBoxUSBMonSolarisIOCtl: bad request %#x size=%d expected=%d\n", Cmd, IOCPARM_LEN(Cmd), sizeof(ReqWrap)));
573 int rc = ddi_copyin((void *)pArg, &ReqWrap, sizeof(ReqWrap), Mode);
580 if (ReqWrap.u32Magic != VBOXUSBMON_MAGIC)
582 LogRel((DEVICE_NAME ": VBoxUSBMonSolarisIOCtl: bad magic %#x; pArg=%p Cmd=%d.\n", ReqWrap.u32Magic, pArg, Cmd));
585 if (RT_UNLIKELY( ReqWrap.cbData == 0
586 || ReqWrap.cbData > _1M*16))
588 LogRel((DEVICE_NAME ": VBoxUSBMonSolarisIOCtl: bad size %#x; pArg=%p Cmd=%d.\n", ReqWrap.cbData, pArg, Cmd));
595 void *pvBuf = RTMemTmpAlloc(ReqWrap.cbData);
598 LogRel((DEVICE_NAME ":VBoxUSBMonSolarisIOCtl: RTMemTmpAlloc failed to alloc %d bytes.\n", ReqWrap.cbData));
602 rc = ddi_copyin((void *)(uintptr_t)ReqWrap.pvDataR3, pvBuf, ReqWrap.cbData, Mode);
609 if (RT_UNLIKELY( ReqWrap.cbData != 0
622 rc = vboxUSBMonSolarisProcessIOCtl(Cmd, pState, pvBuf, ReqWrap.cbData, &cbDataReturned);
623 ReqWrap.rc = rc;
626 if (RT_UNLIKELY(cbDataReturned > ReqWrap.cbData))
628 LogRel((DEVICE_NAME ":VBoxUSBMonSolarisIOCtl: too much output data %d expected %d\n", cbDataReturned, ReqWrap.cbData));
629 cbDataReturned = ReqWrap.cbData;
632 ReqWrap.cbData = cbDataReturned;
637 rc = ddi_copyout(&ReqWrap, (void *)pArg, sizeof(ReqWrap), Mode);
645 rc = ddi_copyout(pvBuf, (void *)(uintptr_t)ReqWrap.pvDataR3, cbDataReturned, Mode);