usmp_cmd
struct usmp_cmd cmd;
usmp_cmd_t usmp_cmd_data, *usmp_cmd = &usmp_cmd_data;
usmp_cmd32tousmp_cmd(usmp_cmd32, usmp_cmd);
if (ddi_copyin((void *)arg, usmp_cmd, sizeof (usmp_cmd_t),
if (ddi_copyin((void *)arg, usmp_cmd, sizeof (usmp_cmd_t), flag)) {
if ((usmp_cmd->usmp_reqsize < SMP_MIN_REQUEST_SIZE) ||
(usmp_cmd->usmp_reqsize > SMP_MAX_REQUEST_SIZE) ||
(usmp_cmd->usmp_rspsize < SMP_MIN_RESPONSE_SIZE) ||
(usmp_cmd->usmp_rspsize > SMP_MAX_RESPONSE_SIZE)) {
smp_pkt->smp_pkt_reqsize = usmp_cmd->usmp_reqsize;
smp_pkt->smp_pkt_rspsize = usmp_cmd->usmp_rspsize;
smp_pkt->smp_pkt_req = kmem_zalloc((size_t)usmp_cmd->usmp_reqsize,
smp_pkt->smp_pkt_rsp = kmem_zalloc((size_t)usmp_cmd->usmp_rspsize,
if (ddi_copyin(usmp_cmd->usmp_req, smp_pkt->smp_pkt_req,
(size_t)usmp_cmd->usmp_reqsize, flag) != 0) {
if (usmp_cmd->usmp_timeout <= 0) {
smp_pkt->smp_pkt_timeout = usmp_cmd->usmp_timeout;
(size_t)usmp_cmd->usmp_rspsize);
if (ddi_copyout(smp_pkt->smp_pkt_rsp, usmp_cmd->usmp_rsp,
(size_t)usmp_cmd->usmp_rspsize, flag) != 0) {