fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * CDDL HEADER START
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The contents of this file are subject to the terms of the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Common Development and Distribution License (the "License").
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * You may not use this file except in compliance with the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * or http://www.opensolaris.org/os/licensing.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * See the License for the specific language governing permissions
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * and limitations under the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * When distributing Covered Code, include this CDDL HEADER in each
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If applicable, add the following below this CDDL HEADER, with the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * fields enclosed by brackets "[]" replaced with your own identifying
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * information: Portions Copyright [yyyy] [name of copyright owner]
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * CDDL HEADER END
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Use is subject to license terms.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A5X00 Library definitions
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * I18N message number ranges
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * This file: 16000 - 16499
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Shared common messages: 1 - 1999
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifndef _A5K_H
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define _A5K_H
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef __cplusplus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern "C" {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Defines */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ENCLOSURE_PROD_ID "SENA"
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ENCLOSURE_PROD_NAME "Network Array"
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define MAX_DRIVES_PER_BOX 22
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define MAX_DRIVES_DAK 12
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_WWN_LENGTH 16
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define BOX_ID_MASK 0x60
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define BOX_ID 0x0d
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ALT_BOX_ID 0x10
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define MAX_IB_ELEMENTS 50
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define MAX_VEND_SPECIFIC_ENC 216
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define MAX_POSSIBLE_ELEMENTS 255
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define SET_RQST_INSRT 0
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define SET_RQST_RMV 1
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define OVERALL_STATUS 2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define SET_FAULT 3
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define SET_DRV_ON 4
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define INSERT_DEVICE 106
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define REMOVE_DEVICE 114
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* device specific identification for display, etc */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define DAK_OFF_NAME "Daktari official" /* inq response, prod ident */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define DAK_PROD_STR "SUNWGS INT FCBPL"
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define UNDEF_ENC_TYPE 2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define DAK_ENC_TYPE 1
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define SENA_ENC_TYPE 0
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Page defines */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_PAGE_LIST 0x00 /* Supported pages page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_CONFIG 0x01 /* Configuration page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_1 L_PAGE_CONFIG
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_ENCL_CTL 0x02 /* Enclosure Control page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_ENCL_STATUS 0x02 /* Enclosure status page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_2 L_PAGE_ENCL_STATUS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_STRING 0x04
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_4 L_PAGE_STRING
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PAGE_7 0x07 /* Element Descriptor Page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_MAX_POSSIBLE_PAGES 255
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_MAX_SENAIB_PAGES 8
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * FRU types internal and external (host SES type)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_NONE 0x0 /* Unspecified */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_DD 0x01 /* Disk Drive - device */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_PS 0x02 /* Power Supply */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_FT 0x03 /* Fan Tray - cooling element */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_TS 0x04 /* Temperature Sensors */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_FP 0x0c /* FPM screen - display */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_KP 0x0d /* keypad on FPM - keypad device */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_FL 0x0f /* Fibre Link module - SCSI port/trancvr */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_LN 0x10 /* Language */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_SP 0x11 /* Serial Port - communicaion port */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_MB 0x80 /* Motherboard/Centerplane */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_IB 0x81 /* IB(ESI) - controller electronics */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_BP 0x82 /* BackPlane */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_LO 0xa0 /* Loop Configuration */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define ELM_TYP_OR 0xa2 /* Orientation */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define S_HI_SPEED 0x5
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* code (status code) definitions */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define S_OK 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define S_CRITICAL 0x02
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define S_NONCRITICAL 0x03
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define S_NOT_INSTALLED 0x05
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define S_NOT_AVAILABLE 0x07
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* String codes. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_WWN 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_PASSWORD 0x02
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_ENCL_NAME 0x03
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_BOX_ID 0x04
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_AUTO_LIP 0x05
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Loop states */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_NO_LOOP 0x80 /* drive not accessable */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_INVALID_WWN 0x100
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_INVALID_MAP 0x200
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_NO_PATH_FOUND 0x400
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* d_state_flags definitions */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_OK 0x00 /* NOTE: Must be zero. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_NOT_READY 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_NOT_READABLE 0x02
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_SPUN_DWN_D 0x04
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_RESERVED 0x08
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_OPEN_FAIL 0x10
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_NO_LABEL 0x20
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_SCSI_ERR 0x40
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Values used by the l_led function */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_LED_STATUS 0x00
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_LED_RQST_IDENTIFY 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_LED_ON 0x02
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define L_LED_OFF 0x04
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Structure definitions */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct box_list_struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t prod_id_s[17]; /* NULL terminated string */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t b_name[33]; /* NULL terminated string */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char logical_path[MAXNAMELEN];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char b_physical_path[MAXNAMELEN];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char b_node_wwn_s[17]; /* NULL terminated string */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t b_node_wwn[8];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char b_port_wwn_s[17]; /* NULL terminated string */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t b_port_wwn[8];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct box_list_struct *box_prev;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct box_list_struct *box_next;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Box_list;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct path_struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char *p_physical_path;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char *argv;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int slot_valid; /* Slot valid flag. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int slot;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int f_flag; /* Front/rear flag. 1 = front */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int ib_path_flag;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Path_struct;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Page 0
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ib_page_0 {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t page_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t sub_enclosures;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ushort_t page_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t sup_page_codes[0x100];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} IB_page_0;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Page 1
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Configuration page
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct type_desc_hdr {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t type;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t num;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t sub_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t text_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Type_desc_hdr;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct type_desc_text {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t text_element[256];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Type_desc_text;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ib_page_config {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t page_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t sub_enclosures;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ushort_t page_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uint_t gen_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte /* Enclosure descriptor header */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t enc_res;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t enc_sub_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t enc_num_elem;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t enc_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte /* Enclosure descriptor */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t enc_node_wwn[8];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t vend_id[8];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t prod_id[16];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t prod_revision[4];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t res[MAX_VEND_SPECIFIC_ENC];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte Type_desc_hdr type_hdr[MAX_IB_ELEMENTS];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte Type_desc_text text[MAX_IB_ELEMENTS];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} IB_page_config;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Page 2
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Enclosure status/control page
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Loop Configuration.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct loop_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 7, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte split : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Loop_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Language
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct language_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ushort_t language_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Lang_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Tranceiver status
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct trans_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 7,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte report : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 3, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte disabled : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte lol : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte lsr_fail : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Trans_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * ESI Controller status
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ctlr_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 7, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte report : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 4, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte overtemp_alart : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ib_loop_1_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ib_loop_0_fail : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Ctlr_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Backplane status
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct bp_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t select : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 3, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte disabled : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte en_bypass_a : 1, /* Not in Spec. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte en_bypass_b : 1, /* Not in Spec. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte byp_a_enabled : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte byp_b_enabled : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Bp_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Temperature sensor status
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct temp_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char degrees;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 4, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ot_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ot_warn : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ut_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ut_warn : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Temp_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct fan_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte rqsted_on : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte speed : 3;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Fan_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ps_element_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte swap : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 4, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte dc_over : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte dc_under : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte dc_over_i : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 1; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte rqsted_on : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ovrtmp_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte temp_warn : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ac_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte dc_fail : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Ps_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct device_element {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t select : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte prd_fail : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte disable : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte swap : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t sel_id; /* Hard address */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte dont_remove : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte : 2,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte rdy_to_ins : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte rmv : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ident : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte report : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 1, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fault : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fault_req : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte dev_off : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte en_bypass_a : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte en_bypass_b : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte bypass_a_en : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte bypass_b_en : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Dev_elem_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct interconnect_assem_status {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 4, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte code : 4;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 7, /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte eprom_fail : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Interconnect_st;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ib_page_2 {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t page_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte union {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t res : 3, /* Reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte invop : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte info : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte non_crit : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte crit : 1,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte unrec : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t ab_cond;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte } ui;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ushort_t page_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uint_t gen_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uint_t element[MAX_POSSIBLE_ELEMENTS];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} IB_page_2;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Page 4
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * String page.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct page4_name {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t page_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ushort_t page_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t string_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 7,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte enable : 1;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t name[32];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Page4_name;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct element_descriptor {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ushort_t desc_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t desc_string[0xff];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Elem_desc;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ib_page_7 {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t page_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t : 8; /* reserved */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ushort_t page_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uint_t gen_code;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte Elem_desc element_desc[MAX_POSSIBLE_ELEMENTS];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} IB_page_7;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* structure for IB */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ib_state_struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t enclosure_name[33]; /* extra character is NULL */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IB_page_0 p0;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IB_page_config config; /* Enclosure configuration page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IB_page_2 p2_s; /* Enclosure status page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IB_page_7 p7_s; /* Element descriptor page */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int res;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int box_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct dlist *ib_multipath_list;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} Ib_state;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Individual SENA drive state */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct l_disk_state_struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte Dev_elem_st ib_status;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int l_state_flag; /* Loop State */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct g_disk_state_struct g_disk_state;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} L_disk_state;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * State of the Photon
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct l_state_struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte Ib_state ib_tbl; /* state of controller */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int total_num_drv;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct l_disk_state_struct drv_front[MAX_DRIVES_PER_BOX/2];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct l_disk_state_struct drv_rear[MAX_DRIVES_PER_BOX/2];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} L_state;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Function Prototypes for the functions defined in libg_fc
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * These are the functions that will be visible to an end user
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * They are all CONTRACT PRIVATE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#if defined(__STDC__)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_chk_null_wwn(Path_struct *, char *, L_state *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_convert_name(char *, char **, struct path_struct **, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_dev_pwr_up_down(char *, struct path_struct *, int, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_device_present(char *, int, gfc_map_t *, int, char **);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_download(char *, char *, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_duplicate_names(Box_list *, char *, char *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_encl_status_page_funcs(int, char *, int, char *,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct l_state_struct *, int, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_format_ifp_status_msg(char *, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_format_fc_status_msg(char *, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern void l_free_box_list(struct box_list_struct **);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_free_lstate(L_state **);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_allses(char *, struct box_list_struct *, struct dlist **,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_box_list(struct box_list_struct **, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_disk_element_index(struct l_state_struct *, int *, int *);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_disk_port_status(char *, struct l_disk_state_struct *,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_disk_status(char *, struct l_disk_state_struct *,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte WWN_list *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern void l_get_drive_name(char *, int, int, char *);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_envsen(char *, uchar_t *, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_envsen_page(int, uchar_t *, int, uchar_t, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_ib_status(char *, struct l_state_struct *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_individual_state(char *, struct l_disk_state_struct *,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte Ib_state *, int, struct box_list_struct *,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct wwn_list_struct *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_port(char *, int *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_ses_path(char *, char *, gfc_map_t *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_slot(struct path_struct *, L_state *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_status(char *, struct l_state_struct *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_led(struct path_struct *, int, struct device_element *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_make_node(char *, int, char *, gfc_map_t *, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_new_name(char *, char *);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_offline_photon(struct hotplug_disk_list *,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte struct wwn_list_struct *, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_enc_type(L_inquiry inq);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_pho_pwr_up_down(char *, char *, int, int, int);
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#else /* __STDC__ */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_chk_null_wwn();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_convert_name();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_dev_pwr_up_down();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_device_present();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_download();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_duplicate_names();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_encl_status_page_funcs();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_format_fc_status_msg();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_format_ifp_status_msg();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern void l_free_box_list();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_free_lstate();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_allses();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_box_list();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_disk_element_index();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_disk_port_status();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_disk_status();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern void l_get_drive_name();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_envsen();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_envsen_page();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_ib_status();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_individual_state();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_port();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_ses_path();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_slot();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_status();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_led();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_make_node();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_new_name();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_offline_photon();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_pho_pwr_up_down();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern int l_get_enc_type();
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* __STDC__ */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef __cplusplus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte}
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* _A5K_H */