/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*/
#include <hb_sun4.h>
#include <hostbridge.h>
#include <pcibus.h>
#include <util.h>
int
{
busorrc_t *p;
int bt;
p = list->br_nextbus;
while (p != NULL) {
(*hbc)++;
bt++;
p = p->br_nextbus;
}
/*
* complexes in the list to have the same number of buses on
* each hostbridge
*/
"the number of hostbridges.\n");
}
return (0);
}
static int
{
if (isrc == 1)
else
return (0);
}
/*
* At this point we've looked through all the top-level device
* tree nodes for instances of drivers that represent logical
* PCI buses or root complexes. We've sorted them into a
* list, ordered by "bus address". We retrieved "bus address"
* using di_bus_addr(). That gave us a string that contains
* either a single hex number or a pair of them separated by a
* comma. If there was a single number, we've assumed the
* second number to be zero.
*
* complex, X1 and X2, with X1 being the number before the
* comma, and X2 being the number after (or the assumed zero).
* complexes, first by the value of X2, and using X1 to order
*
* We infer the existence of hostbridges by observing a
* pattern that X2 is recycled for different hostbridges, and
* values of X2 maintains the correct associations of
*/
return (-1);
if (isrc == 1)
else
}
static int
{
/* Scan for buses, top-level devinfo nodes with the right driver */
if (devtree == DI_NODE_NIL) {
}
while (pnode != DI_NODE_NIL) {
}
}
while (pnode != DI_NODE_NIL) {
}
}
while (pnode != DI_NODE_NIL) {
}
}
while (pnode != DI_NODE_NIL) {
}
}
return (0);
}
/*ARGSUSED*/
int
{
}
/*ARGSUSED*/
int
{
}