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) 2010, 2012, Oracle and/or its affiliates. All rights reserved. 2N/A * Including the following file gives us definitions of the three 2N/A * global arrays used to adjust labels, Slot_Rewrites, Physlot_Names, 2N/A * and Missing_Names. With those defined we can use the common labeling 2N/A /* Invoke the generic label generator for this node */ 2N/A * We have crossed a FRU boundary. Use the value in the 2N/A * chassis-location-name property as the node label. 2N/A /* Delete the "SUNW," */ 2N/A /* Is this an UltraSPARC-T1 platform? */ 2N/A * On UltraSPARC-T1 systems, use the legacy hc scheme on 2N/A * the adapter slots to ensure ALOM on the SP can interpret 2N/A * the FRU correctly. For everything else, follow the normal 2N/A * Is there a slotname associated with the device? 2N/A * We have crossed a FRU boundary and need to find the parent 2N/A * node with this location and set our FMRI to that value. 2N/A /* Find the root node */ 2N/A /* Create a walker starting at the root node */ 2N/A * Walk the tree breadth first to hopefully avoid visiting too many 2N/A * nodes while searching for the node with the appropriate FMRI. 2N/A /* This is the starting node. Do not check the location */ 2N/A /* This node has no location property. Continue the walk */ 2N/A * We have a match. Pass back the node's FRU FMRI.