780 nvlist_add_int32(nvl, "old_total", oldncpuids) != 0 ||
781 nvlist_add_int32(nvl, "new_total", newncpuids) != 0 ||
782 nvlist_add_int32_array(nvl, "old_cpu_list", oldcpuids,
783 oldncpuids) != 0 ||
784 nvlist_add_int32_array(nvl, "new_cpu_list", newcpuids,
785 newncpuids) != 0)
786 goto done;
787
788 (void) snprintf(buf, sizeof (buf), fmt, change);
789 ap_msg(a, MSG_ISSUE, cmd, buf);
790
791 if (cmd == CMD_RCM_CAP_DEL) {
792 rv = (*rcm->request_capacity_change)(hd, "SUNW_cpu",
793 flags, nvl, rinfo);
794 } else {
795 rv = (*rcm->notify_capacity_change)(hd, "SUNW_cpu",
796 flags & ~RCM_FORCE, nvl, rinfo);
797 }
798
799 done:
800 if (nvl)
801 nvlist_free(nvl);
802 s_free(oldcpuids);
803 s_free(newcpuids);
804 return (rv);
805 }
806
807 static int
808 ap_rcm_cap_mem(apd_t *a, rcmd_t *rcm, rcm_handle_t *hd, uint_t flags,
809 rcm_info_t **rinfo, int cmd, long change)
810 {
811 int rv;
812 int pgsize;
813 long oldpages;
814 long newpages;
815 long currpages;
816 char buf[32];
817 nvlist_t *nvl;
818
819 DBG("ap_rcm_cap_mem(%p)\n", (void *)a);
820
|
780 nvlist_add_int32(nvl, "old_total", oldncpuids) != 0 ||
781 nvlist_add_int32(nvl, "new_total", newncpuids) != 0 ||
782 nvlist_add_int32_array(nvl, "old_cpu_list", oldcpuids,
783 oldncpuids) != 0 ||
784 nvlist_add_int32_array(nvl, "new_cpu_list", newcpuids,
785 newncpuids) != 0)
786 goto done;
787
788 (void) snprintf(buf, sizeof (buf), fmt, change);
789 ap_msg(a, MSG_ISSUE, cmd, buf);
790
791 if (cmd == CMD_RCM_CAP_DEL) {
792 rv = (*rcm->request_capacity_change)(hd, "SUNW_cpu",
793 flags, nvl, rinfo);
794 } else {
795 rv = (*rcm->notify_capacity_change)(hd, "SUNW_cpu",
796 flags & ~RCM_FORCE, nvl, rinfo);
797 }
798
799 done:
800 nvlist_free(nvl);
801 s_free(oldcpuids);
802 s_free(newcpuids);
803 return (rv);
804 }
805
806 static int
807 ap_rcm_cap_mem(apd_t *a, rcmd_t *rcm, rcm_handle_t *hd, uint_t flags,
808 rcm_info_t **rinfo, int cmd, long change)
809 {
810 int rv;
811 int pgsize;
812 long oldpages;
813 long newpages;
814 long currpages;
815 char buf[32];
816 nvlist_t *nvl;
817
818 DBG("ap_rcm_cap_mem(%p)\n", (void *)a);
819
|