DCP
(void) strcat(devpath, DCP(dcp)->opath);
rv = dc_cmd(DEVCTL_AP_CONNECT, 0, DCP(dcp), ap_data, NULL);
rv = dc_cmd(DEVCTL_AP_DISCONNECT, 0, DCP(dcp), ap_data, NULL);
rv = dc_cmd(DEVCTL_AP_INSERT, 0, DCP(dcp), ap_data, NULL);
rv = dc_cmd(DEVCTL_AP_REMOVE, 0, DCP(dcp), ap_data, NULL);
rv = dc_cmd(DEVCTL_AP_CONFIGURE, 0, DCP(dcp), ap_data, NULL);
rv = dc_cmd(DEVCTL_AP_UNCONFIGURE, 0, DCP(dcp), ap_data, NULL);
rv = dc_cmd(DEVCTL_AP_GETSTATE, 0, DCP(dcp), ap_data,
(void) snprintf(pathbuf, bufsz, "%s", DCP(dcp)->opath);
if ((dcp == NULL) || (DCP(dcp)->fd == -1)) {
dcp->fd = dup(DCP(pc)->fd);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_RAISE_PWR, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_CHANGE_PWR_HIGH, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_CHANGE_PWR_LOW, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_IDLE_COMP, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_BUSY_COMP, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_BUSY_COMP_TEST, 0, DCP(dcp), NULL,
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_FAIL_SUSPEND, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_BUS_STRICT_TEST, 0, DCP(dcp), NULL,
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
rv = dc_cmd(DEVCTL_PM_PROM_PRINTF, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || (DCP(dcp)->hdltype != DEVCTL_PM_DEV &&
DCP(dcp)->hdltype != DEVCTL_PM_BUS)) {
DCP(dcp), NULL, NULL);
if (dcp == NULL || DCP(dcp)->hdltype != DEVCTL_PM_DEV) {
rv = dc_cmd(DEVCTL_PM_NO_LOWER_POWER, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || DCP(dcp)->hdltype != DEVCTL_PM_BUS) {
rv = dc_cmd(DEVCTL_PM_BUS_NO_INVOL, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || DCP(dcp)->hdltype != DEVCTL_DEVICE) {
rv = dc_cmd(DEVCTL_DEVICE_ONLINE, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || DCP(dcp)->hdltype != DEVCTL_DEVICE) {
rv = dc_cmd(DEVCTL_DEVICE_OFFLINE, 0, DCP(dcp), NULL, NULL);
if (dcp == NULL || DCP(dcp)->hdltype != DEVCTL_DEVICE) {
rv = dc_cmd(DEVCTL_DEVICE_REMOVE, 0, DCP(dcp), NULL, NULL);
rv = dc_cmd(DEVCTL_BUS_QUIESCE, 0, DCP(dcp), NULL, NULL);
rv = dc_cmd(DEVCTL_BUS_UNQUIESCE, 0, DCP(dcp), NULL, NULL);
if (DCP(hdl)->fd != -1)
(void) close(DCP(hdl)->fd);
rv = dc_cmd(DEVCTL_BUS_RESET, 0, DCP(dcp), NULL, NULL);
rv = dc_cmd(DEVCTL_BUS_RESETALL, 0, DCP(dcp), NULL, NULL);
if (DCP(hdl)->opath != NULL)
rv = dc_cmd(DEVCTL_DEVICE_RESET, 0, DCP(dcp), NULL, NULL);
free(DCP(hdl)->opath);
rv = dc_cmd(DEVCTL_DEVICE_GETSTATE, 0, DCP(dcp), NULL,
if (DCP(hdl)->nodename != NULL)
free(DCP(hdl)->nodename);
rv = dc_cmd(DEVCTL_BUS_GETSTATE, 0, DCP(dcp), NULL,
if (DCP(hdl)->unitaddr != NULL)
free(DCP(hdl)->unitaddr);
rv = dc_cmd(DEVCTL_BUS_CONFIGURE, 0, DCP(dcp), NULL, NULL);
rv = dc_cmd(DEVCTL_BUS_UNCONFIGURE, 0, DCP(dcp), NULL, NULL);
rv = dc_cmd(DEVCTL_BUS_DEV_CREATE, flags, DCP(dcp),