03831d35f7499c87d51205817c93e9a8d42c4baestevel/*
03831d35f7499c87d51205817c93e9a8d42c4baestevel * CDDL HEADER START
03831d35f7499c87d51205817c93e9a8d42c4baestevel *
03831d35f7499c87d51205817c93e9a8d42c4baestevel * The contents of this file are subject to the terms of the
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Common Development and Distribution License, Version 1.0 only
03831d35f7499c87d51205817c93e9a8d42c4baestevel * (the "License"). You may not use this file except in compliance
03831d35f7499c87d51205817c93e9a8d42c4baestevel * with the License.
03831d35f7499c87d51205817c93e9a8d42c4baestevel *
03831d35f7499c87d51205817c93e9a8d42c4baestevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
03831d35f7499c87d51205817c93e9a8d42c4baestevel * or http://www.opensolaris.org/os/licensing.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * See the License for the specific language governing permissions
03831d35f7499c87d51205817c93e9a8d42c4baestevel * and limitations under the License.
03831d35f7499c87d51205817c93e9a8d42c4baestevel *
03831d35f7499c87d51205817c93e9a8d42c4baestevel * When distributing Covered Code, include this CDDL HEADER in each
03831d35f7499c87d51205817c93e9a8d42c4baestevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * If applicable, add the following below this CDDL HEADER, with the
03831d35f7499c87d51205817c93e9a8d42c4baestevel * fields enclosed by brackets "[]" replaced with your own identifying
03831d35f7499c87d51205817c93e9a8d42c4baestevel * information: Portions Copyright [yyyy] [name of copyright owner]
03831d35f7499c87d51205817c93e9a8d42c4baestevel *
03831d35f7499c87d51205817c93e9a8d42c4baestevel * CDDL HEADER END
03831d35f7499c87d51205817c93e9a8d42c4baestevel */
03831d35f7499c87d51205817c93e9a8d42c4baestevel/*
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Copyright (c) 1999-2001 by Sun Microsystems, Inc.
03831d35f7499c87d51205817c93e9a8d42c4baestevel * All rights reserved.
03831d35f7499c87d51205817c93e9a8d42c4baestevel */
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#ifndef _DISPLAY_SUN4U_H
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define _DISPLAY_SUN4U_H
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#pragma ident "%Z%%M% %I% %E% SMI"
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#include <pdevinfo_sun4u.h>
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#ifdef __cplusplus
03831d35f7499c87d51205817c93e9a8d42c4baestevelextern "C" {
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel/*
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Define the memory decode bits for easier reading. These are from
03831d35f7499c87d51205817c93e9a8d42c4baestevel * the Sunfire Programmer's Manual.
03831d35f7499c87d51205817c93e9a8d42c4baestevel */
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SIZE_64M 0x4
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SIZE_256M 0xb
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SIZE_1G 0xf
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SIZE_2G 0x2
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SPEED_50ns 0x0
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SPEED_60ns 0x3
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SPEED_70ns 0x2
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MEM_SPEED_80ns 0x1
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel/*
03831d35f7499c87d51205817c93e9a8d42c4baestevel * If a QLC card is present in the system, the following values are needed
03831d35f7499c87d51205817c93e9a8d42c4baestevel * to decode what type of a QLC card it is.
03831d35f7499c87d51205817c93e9a8d42c4baestevel */
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define AMBER_SUBSYSTEM_ID 0x4082
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define CRYSTAL_SUBSYSTEM_ID 0x4083
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define AMBER_CARD_NAME "Amber"
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define CRYSTAL_CARD_NAME "Crystal+"
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define MAX_QLC_MODEL_LEN 10
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel/*
03831d35f7499c87d51205817c93e9a8d42c4baestevel * Define strings in this structure as arrays instead of pointers so
03831d35f7499c87d51205817c93e9a8d42c4baestevel * that copying is easier.
03831d35f7499c87d51205817c93e9a8d42c4baestevel */
03831d35f7499c87d51205817c93e9a8d42c4baestevelstruct io_card {
03831d35f7499c87d51205817c93e9a8d42c4baestevel int display; /* Should we display this card? */
03831d35f7499c87d51205817c93e9a8d42c4baestevel int node_id; /* Node ID */
03831d35f7499c87d51205817c93e9a8d42c4baestevel int board; /* Board number */
03831d35f7499c87d51205817c93e9a8d42c4baestevel char bus_type[MAXSTRLEN]; /* Type of bus this IO card is on */
03831d35f7499c87d51205817c93e9a8d42c4baestevel int schizo_portid; /* portid of the Schizo for this card */
03831d35f7499c87d51205817c93e9a8d42c4baestevel char pci_bus; /* PCI bus A or B */
03831d35f7499c87d51205817c93e9a8d42c4baestevel int slot; /* Slot number */
03831d35f7499c87d51205817c93e9a8d42c4baestevel char slot_str[MAXSTRLEN]; /* Slot description string */
03831d35f7499c87d51205817c93e9a8d42c4baestevel int freq; /* Frequency (in MHz) */
03831d35f7499c87d51205817c93e9a8d42c4baestevel char status[MAXSTRLEN]; /* Card status */
03831d35f7499c87d51205817c93e9a8d42c4baestevel char name[MAXSTRLEN]; /* Card name */
03831d35f7499c87d51205817c93e9a8d42c4baestevel char model[MAXSTRLEN]; /* Card model */
03831d35f7499c87d51205817c93e9a8d42c4baestevel int dev_no; /* device number */
03831d35f7499c87d51205817c93e9a8d42c4baestevel int func_no; /* function number */
03831d35f7499c87d51205817c93e9a8d42c4baestevel char notes[MAXSTRLEN]; /* notes */
03831d35f7499c87d51205817c93e9a8d42c4baestevel struct io_card *next;
03831d35f7499c87d51205817c93e9a8d42c4baestevel};
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel/* used to determine whether slot (int) or slot_str(char*) should be used */
03831d35f7499c87d51205817c93e9a8d42c4baestevel#define PCI_SLOT_IS_STRING (-99)
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevelint display(Sys_tree *, Prom_node *, struct system_kstat_data *, int);
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#ifdef __cplusplus
03831d35f7499c87d51205817c93e9a8d42c4baestevel}
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif
03831d35f7499c87d51205817c93e9a8d42c4baestevel
03831d35f7499c87d51205817c93e9a8d42c4baestevel#endif /* _DISPLAY_SUN4U_H */