60405de4d8688d96dd05157c28db3ade5c9bc234kz * CDDL HEADER START
60405de4d8688d96dd05157c28db3ade5c9bc234kz * The contents of this file are subject to the terms of the
60405de4d8688d96dd05157c28db3ade5c9bc234kz * Common Development and Distribution License (the "License").
60405de4d8688d96dd05157c28db3ade5c9bc234kz * You may not use this file except in compliance with the License.
60405de4d8688d96dd05157c28db3ade5c9bc234kz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60405de4d8688d96dd05157c28db3ade5c9bc234kz * See the License for the specific language governing permissions
60405de4d8688d96dd05157c28db3ade5c9bc234kz * and limitations under the License.
60405de4d8688d96dd05157c28db3ade5c9bc234kz * When distributing Covered Code, include this CDDL HEADER in each
60405de4d8688d96dd05157c28db3ade5c9bc234kz * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60405de4d8688d96dd05157c28db3ade5c9bc234kz * If applicable, add the following below this CDDL HEADER, with the
60405de4d8688d96dd05157c28db3ade5c9bc234kz * fields enclosed by brackets "[]" replaced with your own identifying
60405de4d8688d96dd05157c28db3ade5c9bc234kz * information: Portions Copyright [yyyy] [name of copyright owner]
60405de4d8688d96dd05157c28db3ade5c9bc234kz * CDDL HEADER END
60405de4d8688d96dd05157c28db3ade5c9bc234kz * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
60405de4d8688d96dd05157c28db3ade5c9bc234kz * Use is subject to license terms.
60405de4d8688d96dd05157c28db3ade5c9bc234kz int (*func)(ldom_hdl_t *, nvlist_t *); /* callback func */
60405de4d8688d96dd05157c28db3ade5c9bc234kz dimm_page_service_state, dimm_page_retire, dimm_page_unretire;
60405de4d8688d96dd05157c28db3ade5c9bc234kz TOPO_METH_SERVICE_STATE_VERSION, TOPO_STABILITY_INTERNAL,
60405de4d8688d96dd05157c28db3ade5c9bc234kz TOPO_METH_SERVICE_STATE_VERSION, TOPO_STABILITY_INTERNAL,
60405de4d8688d96dd05157c28db3ade5c9bc234kzstatic void
60405de4d8688d96dd05157c28db3ade5c9bc234kzstatic void
60405de4d8688d96dd05157c28db3ade5c9bc234kzset_retnvl(topo_mod_t *mod, nvlist_t **out, const char *retname, uint32_t ret)
60405de4d8688d96dd05157c28db3ade5c9bc234kz topo_mod_dprintf(mod, "topo method set \"%s\" = %u\n", retname, ret);
60405de4d8688d96dd05157c28db3ade5c9bc234kz return (0);
60405de4d8688d96dd05157c28db3ade5c9bc234kz * For each visited cpu node, call the callback function with its ASRU.
60405de4d8688d96dd05157c28db3ade5c9bc234kz * Terminate the walk if we reach start-node's sibling
60405de4d8688d96dd05157c28db3ade5c9bc234kz topo_node_parent(node) == topo_node_parent(swdp->parent))
60405de4d8688d96dd05157c28db3ade5c9bc234kz * The "offline" and "online" counter are only useful for the "status"
60405de4d8688d96dd05157c28db3ade5c9bc234kz * callback.
60405de4d8688d96dd05157c28db3ade5c9bc234kz /* dump out status info if debug is turned on. */
60405de4d8688d96dd05157c28db3ade5c9bc234kz topo_mod_dprintf(mod, "%s cpu (%s): rc = %d, err = %s\n",
60405de4d8688d96dd05157c28db3ade5c9bc234kzwalk_cpus(topo_mod_t *mod, struct cpu_walk_data *swdp, tnode_t *parent,
60405de4d8688d96dd05157c28db3ade5c9bc234kz swdp->err = swdp->offline = swdp->online = swdp->fail = 0;
e92e3a8694f157faf8a9e44096a70ada86c556bfzw * Return failure if ldom service is not initialized.
e92e3a8694f157faf8a9e44096a70ada86c556bfzw return (0);
e92e3a8694f157faf8a9e44096a70ada86c556bfzw twp = topo_mod_walk_init(mod, parent, cpu_walker, swdp, &err);
e92e3a8694f157faf8a9e44096a70ada86c556bfzw return (-1);
e92e3a8694f157faf8a9e44096a70ada86c556bfzw return (-1);
e92e3a8694f157faf8a9e44096a70ada86c556bfzw return (0);
static nvlist_t *
return (NULL);
if (err != 0) {
return (NULL);
return (fmri);
&serial);
&serial);
err = 0;
pa);
offset);
if (err != 0) {
static boolean_t
&val) == 0 ||
&val) == 0 ||
&val) == 0 ||
&val) == 0))
return (B_TRUE);
return (B_FALSE);