1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2000 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _MONTERCARLO_SYS_SCSBIOCTL_H 28 #define _MONTERCARLO_SYS_SCSBIOCTL_H 29 30 #pragma ident "%Z%%M% %I% %E% SMI" 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 /* 37 * SCB HW information, which is needed in scsb.h for scsb.c. 38 * there are 32 data registers on the system controller board 39 * most are used in P1.0, all are used in P1.5 40 */ 41 #define SCSB_DATA_REGISTERS 48 42 43 44 #define _SCSBIOC ('s' << 8) 45 46 #define SCSBIOC_GET_STATUS (_SCSBIOC | 1) /* Internal */ 47 #define SCSBIOC_I2C_XFER (_SCSBIOC | 2) /* Internal */ 48 49 #define SCSBIOC_ALL_LEDS_ON (_SCSBIOC | 3) /* Diagnostics */ 50 #define SCSBIOC_ALL_LEDS_OFF (_SCSBIOC | 4) /* Diagnostics */ 51 52 #define SCSBIOC_FREEZE (_SCSBIOC | 5) /* Internal */ 53 #define SCSBIOC_RESTORE (_SCSBIOC | 6) /* Internal */ 54 55 #define SCSBIOC_LED_NOK_SET (_SCSBIOC | 7) /* Diagnostics */ 56 #define SCSBIOC_LED_NOK_GET (_SCSBIOC | 8) /* Diagnostics */ 57 #define SCSBIOC_LED_OK_SET (_SCSBIOC | 9) /* Diagnostics */ 58 #define SCSBIOC_LED_OK_GET (_SCSBIOC | 10) /* Diagnostics */ 59 #define SCSBIOC_GET_FAN_STATUS (_SCSBIOC | 11) /* Internal */ 60 #define SCSBIOC_RESET_UNIT (_SCSBIOC | 12) /* Diagnostics */ 61 #define SCSBIOC_FAKE_INTR (_SCSBIOC | 13) /* Internal */ 62 #define SCSBIOC_BSELECT_SET (_SCSBIOC | 14) /* Internal */ 63 #define SCSBIOC_BSELECT_GET (_SCSBIOC | 15) /* Internal */ 64 #define SCSBIOC_BHEALTHY_SET (_SCSBIOC | 16) /* Internal */ 65 #define SCSBIOC_BHEALTHY_GET (_SCSBIOC | 17) /* Internal */ 66 #define SCSBIOC_GET_INTR_ARRAY (_SCSBIOC | 18) /* Internal */ 67 68 #define ENVC_IOC_ACQUIRE_SLOT_LED_CTRL (_SCSBIOC | 21) /* EnvMon */ 69 #define ENVC_IOC_RELEASE_SLOT_LED_CTRL (_SCSBIOC | 22) /* EnvMon */ 70 #define ENVC_IOC_SETFSP (_SCSBIOC | 23) /* EnvMon */ 71 #define ENVC_IOC_GETDSKLED (_SCSBIOC | 24) /* EnvMon */ 72 #define ENVC_IOC_SETDSKLED (_SCSBIOC | 25) /* EnvMon */ 73 #define ENVC_IOC_REGISTER_PID (_SCSBIOC | 26) /* EnvMon */ 74 #define ENVC_IOC_UNREGISTER_PID (_SCSBIOC | 27) /* EnvMon */ 75 #define ENVC_IOC_ACCONF_RESTORED (_SCSBIOC | 28) /* EnvMon */ 76 #define ENVC_IOC_ACCONF_STORED (_SCSBIOC | 29) /* EnvMon */ 77 78 #define SCSBIOC_REG_READ (_SCSBIOC | 31) /* Diagnostic */ 79 #define SCSBIOC_REG_WRITE (_SCSBIOC | 32) /* Diagnostic */ 80 #define SCSBIOC_GET_VERSIONS (_SCSBIOC | 33) /* Diagnostic */ 81 82 /* these are for debug/testing and may be temporary */ 83 #define SCSBIOC_SHUTDOWN_POLL (_SCSBIOC | 41) /* Internal */ 84 #define SCSBIOC_SLOT_OCCUPANCY (_SCSBIOC | 42) /* Internal */ 85 #define SCSBIOC_INTEVENT_POLL (_SCSBIOC | 43) /* Internal */ 86 #define SCSBIOC_TOPOLOGY_DUMP (_SCSBIOC | 44) /* Internal */ 87 #define SCSBIOC_VALUE_MODE (_SCSBIOC | 45) /* Internal */ 88 #define SCSBIOC_GET_SLOT_INFO (_SCSBIOC | 46) /* Internal */ 89 #define SCSBIOC_DEBUG_MODE (_SCSBIOC | 52) /* Internal */ 90 91 /* 92 * SCSBIOC_GET_VERSIONS structure 93 */ 94 #define SCSB_MODSTR_LEN 64 95 #define SCSB_VERSTR_LEN 12 96 typedef struct scsb_ids { 97 char modldrv_string[SCSB_MODSTR_LEN]; 98 char scsb_version[SCSB_VERSTR_LEN]; 99 uint8_t promid; 100 uint8_t pad[3]; 101 } scsb_ids_t; 102 103 104 typedef enum { 105 GET = 0, 106 SET = 1 107 } scsb_op_t; 108 109 typedef enum { 110 NOK = 0, 111 OK = 1, 112 NOUSE = 2 113 } scsb_led_t; 114 115 #define SCSB_LED_TYPES 2 116 117 typedef enum { 118 OFF = 0, 119 ON = 1, 120 BLINK = 2 121 } scsb_ustate_t; 122 123 typedef struct { 124 scsb_unum_t unit_number; 125 scsb_utype_t unit_type; 126 scsb_ustate_t unit_state; 127 scsb_led_t led_type; 128 } scsb_uinfo_t; 129 130 131 /* SCSBIOC_GET_STATUS data */ 132 typedef struct { 133 uchar_t scsb_reg[SCSB_DATA_REGISTERS]; 134 } scsb_status_t; 135 136 137 /* SCSBIOC_REG_READ / SCSBIOC_REG_WRITE data */ 138 typedef struct { 139 int16_t ioc_result; /* O: return value */ 140 uint16_t ioc_resio; /* O: bytes not transfered */ 141 uint16_t ioc_wlen; /* I: length of write buffer */ 142 uint16_t ioc_rlen; /* I: length of read buffer */ 143 uchar_t ioc_rbuf[64]; 144 uchar_t ioc_wbuf[64]; 145 uchar_t ioc_regindex; 146 } scsb_ioc_rdwr_t; 147 148 149 #ifdef __cplusplus 150 } 151 #endif 152 153 #endif /* _MONTERCARLO_SYS_SCSBIOCTL_H */ 154