2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. 2N/A * Support function for the i86pc chip enumerator 2N/A * Whinge a debug message via topo_mod_dprintf and increment the 2N/A * given error counter. 2N/A * Given an nvpair of a limited number of data types, extract the property 2N/A * name and value and add that combination to the given node in the 2N/A * specified property group using the corresponding topo_prop_set_* function 2N/A * for the data type. Return 1 on success, otherwise 0. 2N/A "'%s' in property group %s of %s node\n",
2N/A * Lookup string data named pname in the given nvlist and add that 2N/A * as property named pname in the given property group pgname on the indicated 2N/A * topo node. Fill pvalp with a pointer to the string value, valid until 2N/A * nvlist_free is called. 2N/A * Lookup an int32 item named pname in the given nvlist and add that 2N/A * as property named pname in the given property group pgname on the indicated 2N/A * topo node. Fill pvalp with the property value. 2N/A * In a given nvlist lookup a variable number of int32 properties named in 2N/A * const char * varargs and each each in the given property group on the 2N/A * node. Fill an array of the retrieved values. 2N/A nerr++;
/* have whinged elsewhere */ 2N/A * Construct an hc scheme resource FMRI for a node named name with 2N/A * instance number inst, parented by the given parent node pnode. 2N/A return (
nvl !=
NULL ? 0 : -
1);
/* caller must free nvlist */ 2N/A * Construct a cpu scheme FMRI with the given data; the caller must free 2N/A * the allocated nvlist with nvlist_free(). 2N/A * if 'in' includes an hc-specific member which specifies asru-physaddr 2N/A * or asru-offset then rename them to asru and physaddr respectively. 2N/A * If we're getting called then the question of whether this dimm is plugged 2N/A * in has already been answered. What we don't know for sure is whether it's 2N/A * the same dimm or a different one plugged in the same slot. To check, we 2N/A * try and compare the serial numbers on the dimm in the current topology with 2N/A * the serial num from the unum fmri that got passed into this function as the 2N/A * If a serial number for the dimm was available at the time of the 2N/A * fault, it will have been added as a string to the unum nvlist 2N/A * If the current serial number is available for the DIMM that this rank 2N/A * belongs to, it will be accessible as a property on the parent (dimm) 2N/A * node. If there is a serial id in the resource fmri, then use that. 2N/A * Otherwise fall back to looking for a serial id property in the 2N/A "error retrieving serial from node");
2N/A * Terminate the walk if we reach start-node's sibling