Lines Matching defs:dcp

310 	struct devctl_iocdata *dcp;
315 dcp = kmem_zalloc(sizeof (*dcp), KM_SLEEP);
318 if (copyin(iocarg, dcp, sizeof (*dcp)) != 0) {
319 kmem_free(dcp, sizeof (*dcp));
328 kmem_free(dcp, sizeof (*dcp));
331 dcp->cmd = (uint_t)dcp32.cmd;
332 dcp->flags = (uint_t)dcp32.flags;
333 dcp->cpyout_buf = (uint_t *)(uintptr_t)dcp32.cpyout_buf;
334 dcp->nvl_user = (nvlist_t *)(uintptr_t)dcp32.nvl_user;
335 dcp->nvl_usersz = (size_t)dcp32.nvl_usersz;
336 dcp->c_nodename = (char *)(uintptr_t)dcp32.c_nodename;
337 dcp->c_unitaddr = (char *)(uintptr_t)dcp32.c_unitaddr;
340 if (dcp->c_nodename != NULL) {
342 if (copyinstr(dcp->c_nodename, cpybuf, MAXNAMELEN, 0) != 0) {
344 kmem_free(dcp, sizeof (*dcp));
348 dcp->c_nodename = cpybuf;
351 if (dcp->c_unitaddr != NULL) {
353 if (copyinstr(dcp->c_unitaddr, cpybuf, MAXNAMELEN, 0) != 0) {
355 if (dcp->c_nodename != NULL)
356 kmem_free(dcp->c_nodename, MAXNAMELEN);
357 kmem_free(dcp, sizeof (*dcp));
361 dcp->c_unitaddr = cpybuf;
367 if (dcp->nvl_user != NULL) {
368 if ((dcp->nvl_usersz == 0) ||
369 (dcp->nvl_usersz > DEVCTL_MAX_NVL_USERSZ)) {
370 if (dcp->c_nodename != NULL)
371 kmem_free(dcp->c_nodename, MAXNAMELEN);
372 if (dcp->c_unitaddr != NULL)
373 kmem_free(dcp->c_unitaddr, MAXNAMELEN);
374 kmem_free(dcp, sizeof (*dcp));
377 cpybuf = kmem_alloc(dcp->nvl_usersz, KM_SLEEP);
378 if (copyin(dcp->nvl_user, cpybuf, dcp->nvl_usersz) != 0) {
379 kmem_free(cpybuf, dcp->nvl_usersz);
380 if (dcp->c_nodename != NULL)
381 kmem_free(dcp->c_nodename, MAXNAMELEN);
382 if (dcp->c_unitaddr != NULL)
383 kmem_free(dcp->c_unitaddr, MAXNAMELEN);
384 kmem_free(dcp, sizeof (*dcp));
388 if (nvlist_unpack(cpybuf, dcp->nvl_usersz, &dcp->nvl_user,
390 kmem_free(cpybuf, dcp->nvl_usersz);
391 if (dcp->c_nodename != NULL)
392 kmem_free(dcp->c_nodename, MAXNAMELEN);
393 if (dcp->c_unitaddr != NULL)
394 kmem_free(dcp->c_unitaddr, MAXNAMELEN);
395 kmem_free(dcp, sizeof (*dcp));
401 kmem_free(cpybuf, dcp->nvl_usersz);
405 *rdcp = dcp;
413 ndi_dc_freehdl(struct devctl_iocdata *dcp)
415 ASSERT(dcp != NULL);
417 if (dcp->c_nodename != NULL)
418 kmem_free(dcp->c_nodename, MAXNAMELEN);
420 if (dcp->c_unitaddr != NULL)
421 kmem_free(dcp->c_unitaddr, MAXNAMELEN);
423 nvlist_free(dcp->nvl_user);
425 kmem_free(dcp, sizeof (*dcp));
429 ndi_dc_getname(struct devctl_iocdata *dcp)
431 ASSERT(dcp != NULL);
432 return (dcp->c_nodename);
437 ndi_dc_getaddr(struct devctl_iocdata *dcp)
439 ASSERT(dcp != NULL);
440 return (dcp->c_unitaddr);
444 ndi_dc_get_ap_data(struct devctl_iocdata *dcp)
446 ASSERT(dcp != NULL);
448 return (dcp->nvl_user);
456 ndi_devctl_device_online(dev_info_t *dip, struct devctl_iocdata *dcp,
463 if (ndi_dc_getname(dcp) == NULL || ndi_dc_getaddr(dcp) == NULL)
468 ndi_dc_getname(dcp), ndi_dc_getaddr(dcp));
501 ndi_devctl_device_offline(dev_info_t *dip, struct devctl_iocdata *dcp,
507 if (ndi_dc_getname(dcp) == NULL || ndi_dc_getaddr(dcp) == NULL)
512 ndi_dc_getname(dcp), ndi_dc_getaddr(dcp));
538 ndi_devctl_device_remove(dev_info_t *dip, struct devctl_iocdata *dcp,
544 if (ndi_dc_getname(dcp) == NULL || ndi_dc_getaddr(dcp) == NULL)
549 ndi_dc_getname(dcp), ndi_dc_getaddr(dcp));
575 ndi_devctl_device_getstate(dev_info_t *parent, struct devctl_iocdata *dcp,
585 ((name = ndi_dc_getname(dcp)) == NULL) ||
586 ((addr = ndi_dc_getaddr(dcp)) == NULL))
631 ndi_dc_return_dev_state(dev_info_t *dip, struct devctl_iocdata *dcp)
637 if ((dip == NULL) || (dcp == NULL))
657 if (copyout(&devstate, dcp->cpyout_buf, sizeof (uint_t)) != 0)
668 ndi_devctl_bus_getstate(dev_info_t *dip, struct devctl_iocdata *dcp,
671 if ((dip == NULL) || (dcp == NULL))
684 struct devctl_iocdata *dcp;
691 if (ndi_dc_allochdl((void *)arg, &dcp) != NDI_SUCCESS)
697 rval = ndi_devctl_bus_getstate(dip, dcp, &state);
699 if (copyout(&state, dcp->cpyout_buf,
706 rval = ndi_devctl_device_online(dip, dcp, flags);
710 rval = ndi_devctl_device_offline(dip, dcp, flags);
714 rval = ndi_devctl_device_getstate(dip, dcp, &state);
716 if (copyout(&state, dcp->cpyout_buf,
723 rval = ndi_devctl_device_remove(dip, dcp, flags);
727 rval = ndi_dc_devi_create(dcp, dip, 0, NULL);
750 ndi_dc_freehdl(dcp);
759 ndi_dc_return_ap_state(devctl_ap_state_t *ap, struct devctl_iocdata *dcp)
761 if ((ap == NULL) || (dcp == NULL))
766 if (copyout(ap, dcp->cpyout_buf,
780 if (copyout(&ap_state32, dcp->cpyout_buf,
794 ndi_dc_return_bus_state(dev_info_t *dip, struct devctl_iocdata *dcp)
798 if ((dip == NULL) || (dcp == NULL))
804 if (copyout(&devstate, dcp->cpyout_buf, sizeof (uint_t)) != 0)
818 ndi_dc_devi_create(struct devctl_iocdata *dcp, dev_info_t *pdip, int flags,
832 if ((rv = i_dc_devi_create(dcp, pdip, &cdip)) != 0)
854 if (dcp->flags & DEVCTL_OFFLINE) {
934 if (dcp->cpyout_buf == NULL)
943 if (copyout(&devnm, dcp->cpyout_buf, nmlen) != 0) {
951 i_dc_devi_create(struct devctl_iocdata *dcp, dev_info_t *pdip,
957 nvlist_t *nvlp = dcp->nvl_user;