3614 picl_nodehdl_t plafh;
3615 picl_nodehdl_t nodeh;
3616 nvlist_t *nvlp;
3617
3618 if ((earg == NULL) ||
3619 (ptree_get_node_by_path(PLATFORM_PATH, &plafh) != PICL_SUCCESS))
3620 return;
3621
3622 if (strcmp(ename, PICLEVENT_DR_AP_STATE_CHANGE) == 0) {
3623 (void) setup_cpus(plafh);
3624 if (picldevtree_debug > 1)
3625 syslog(LOG_INFO, "picldevtree: event handler done\n");
3626 return;
3627 }
3628
3629 nvlp = NULL;
3630 if (nvlist_unpack((char *)earg, size, &nvlp, NULL) ||
3631 nvlist_lookup_string(nvlp, PICLEVENTARG_DEVFS_PATH, &devfs_path) ||
3632 strlen(devfs_path) > (PATH_MAX - sizeof (PLATFORM_PATH))) {
3633 syslog(LOG_INFO, PICL_EVENT_DROPPED, ename);
3634 if (nvlp)
3635 nvlist_free(nvlp);
3636 return;
3637 }
3638
3639 (void) strlcpy(ptreepath, PLATFORM_PATH, PATH_MAX);
3640 (void) strlcat(ptreepath, devfs_path, PATH_MAX);
3641 (void) strlcpy(dipath, devfs_path, PATH_MAX);
3642 nvlist_free(nvlp);
3643
3644 if (picldevtree_debug)
3645 syslog(LOG_INFO, "picldevtree: event handler invoked ename:%s "
3646 "ptreepath:%s\n", ename, ptreepath);
3647
3648 if (strcmp(ename, PICLEVENT_CPU_STATE_CHANGE) == 0) {
3649 goto done;
3650 }
3651 if (strcmp(ename, PICLEVENT_SYSEVENT_DEVICE_ADDED) == 0) {
3652 di_node_t devnode;
3653 char *strp;
3654 picl_nodehdl_t parh;
|
3614 picl_nodehdl_t plafh;
3615 picl_nodehdl_t nodeh;
3616 nvlist_t *nvlp;
3617
3618 if ((earg == NULL) ||
3619 (ptree_get_node_by_path(PLATFORM_PATH, &plafh) != PICL_SUCCESS))
3620 return;
3621
3622 if (strcmp(ename, PICLEVENT_DR_AP_STATE_CHANGE) == 0) {
3623 (void) setup_cpus(plafh);
3624 if (picldevtree_debug > 1)
3625 syslog(LOG_INFO, "picldevtree: event handler done\n");
3626 return;
3627 }
3628
3629 nvlp = NULL;
3630 if (nvlist_unpack((char *)earg, size, &nvlp, NULL) ||
3631 nvlist_lookup_string(nvlp, PICLEVENTARG_DEVFS_PATH, &devfs_path) ||
3632 strlen(devfs_path) > (PATH_MAX - sizeof (PLATFORM_PATH))) {
3633 syslog(LOG_INFO, PICL_EVENT_DROPPED, ename);
3634 nvlist_free(nvlp);
3635 return;
3636 }
3637
3638 (void) strlcpy(ptreepath, PLATFORM_PATH, PATH_MAX);
3639 (void) strlcat(ptreepath, devfs_path, PATH_MAX);
3640 (void) strlcpy(dipath, devfs_path, PATH_MAX);
3641 nvlist_free(nvlp);
3642
3643 if (picldevtree_debug)
3644 syslog(LOG_INFO, "picldevtree: event handler invoked ename:%s "
3645 "ptreepath:%s\n", ename, ptreepath);
3646
3647 if (strcmp(ename, PICLEVENT_CPU_STATE_CHANGE) == 0) {
3648 goto done;
3649 }
3650 if (strcmp(ename, PICLEVENT_SYSEVENT_DEVICE_ADDED) == 0) {
3651 di_node_t devnode;
3652 char *strp;
3653 picl_nodehdl_t parh;
|