cmd: remove sparc-only virtinfo
[unleashed.git] / usr / src / cmd / picl / plugins / sun4u / psvc / psvcobj / psvc_objects_class.h
blob5969859dc8a294555e666d1e3dd1f53e96f3c188
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
20 * CDDL HEADER END
23 * Copyright 1999-2001, 2003 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
27 #ifndef _PSVC_OBJECTS_CLASS_H
28 #define _PSVC_OBJECTS_CLASS_H
30 #pragma ident "%Z%%M% %I% %E% SMI"
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
37 * Platform Services Framework private definitions
39 #include <pthread.h>
41 #define NAMELEN 32
42 #define PATHLEN 256
44 /* Logical device class */
45 typedef struct {
46 int32_t class;
47 int32_t subclass;
48 int32_t instance;
49 uint64_t features;
50 uint64_t addr_spec;
51 char state[32];
52 char previous_state[32];
53 char fault_id[32];
54 boolean_t present;
55 boolean_t previous_presence;
56 boolean_t enabled;
57 char label[32];
58 int32_t (*constructor)();
59 int32_t (*destructor)();
60 int32_t (*get_attr)();
61 int32_t (*set_attr)();
62 } EObj_t;
64 typedef struct {
65 EObj_t ld; /* logical device */
66 int32_t hw_lo_shut;
67 int32_t lo_warn; /* low warning threshold */
68 int32_t lo_shut; /* low shutdown threshold */
69 int32_t opt_temp;
70 int32_t hi_warn; /* high warning threshold */
71 int32_t hi_shut; /* high shutdown threshold */
72 int32_t hw_hi_shut;
73 } ETempSensor_t;
75 typedef struct {
76 EObj_t ld; /* logical device */
77 int16_t setpoint;
78 int16_t hysteresis;
79 int16_t loopgain;
80 int16_t loopbias;
81 float temp_differential[PSVC_MAXERRORS];
82 int16_t temp_differential_index;
83 } EFan_t;
85 typedef struct {
86 EObj_t ld; /* logical device */
87 } ESystem_t;
89 typedef struct {
90 EObj_t ld; /* logical device */
91 int32_t lo_warn; /* low warning threshold */
92 int32_t lo_shut; /* low shutdown threshold */
93 int32_t hi_warn; /* high warning threshold */
94 int32_t hi_shut; /* high shutdown threshold */
95 } EDigiSensor_t;
97 typedef struct {
98 EObj_t ld; /* logical device */
99 } EDigiControl_t;
101 typedef struct {
102 EObj_t ld; /* logical device */
103 } EBoolSensor_t;
105 typedef struct {
106 EObj_t ld;
107 } EGPIO8_t;
109 typedef struct {
110 EObj_t ld; /* logical device */
111 int16_t lit_count;
112 char color[32];
113 char is_locator[8];
114 char locator_name[32];
115 } ELed_t;
117 typedef struct {
118 EObj_t ld; /* logical device */
119 int32_t lo_warn; /* low warning threshold */
120 int32_t lo_shut; /* low shutdown threshold */
121 int32_t hi_warn; /* high warning threshold */
122 int32_t hi_shut; /* high shutdown threshold */
123 } EFanTach_t;
125 typedef struct {
126 EObj_t ld; /* logical device */
127 char switch_state[32];
128 } ESwitch_t;
130 typedef struct {
131 EObj_t ld; /* logical device */
132 } EKeySwitch_t;
134 typedef struct {
135 EObj_t ld; /* logical device */
136 int32_t (*get_temperature)();
137 int32_t (*get_fanspeed)();
138 int32_t (*get_bit)();
139 int32_t (*set_bit)();
140 int32_t (*get_port)();
141 int32_t (*set_port)();
142 int32_t (*get_reg)();
143 int32_t (*set_reg)();
144 int32_t (*get_output)();
145 int32_t (*set_output)();
146 int32_t (*get_input)();
147 } EPhysDev_t;
149 typedef struct {
150 uint8_t cell_type;
151 uint32_t size;
152 int64_t *table;
153 } ETable_t;
155 typedef struct {
156 char antecedent_id[NAMELEN];
157 int32_t ant_key;
158 char dependent_id[NAMELEN];
159 } EAssoc_t;
161 typedef struct {
162 char name[NAMELEN];
163 uint32_t count;
164 EAssoc_t *table;
165 } EAssocList_t;
167 /* structure for translating string to id */
168 typedef struct {
169 int32_t id;
170 char name[NAMELEN];
171 } EStringId_t;
173 typedef struct {
174 uint32_t controller;
175 uint32_t bus;
176 uint32_t addr;
177 uint32_t port;
178 char path[PATHLEN];
179 } EDevice_t;
181 /* translate name to object (or table) pointer */
182 typedef struct {
183 char name[NAMELEN];
184 int32_t key;
185 EObj_t *objp;
186 int32_t type; /* object or table */
187 } ENamePtr_t;
189 typedef struct {
190 ENamePtr_t *obj_tbl; /* object name to pointer translation */
191 uint32_t obj_count; /* number of objects */
192 uint32_t nextid; /* next open object slot */
193 } ETable_Array;
195 #define PSVC_OBJ 0
196 #define PSVC_TBL 1
197 #define PSVC_MAX_TABLE_ARRAYS 10
199 typedef struct {
200 ETable_Array tbl_arry[PSVC_MAX_TABLE_ARRAYS];
201 uint32_t total_obj_count; /* Total number of objects */
202 EStringId_t *othr_tbl; /* assoc string to id translations */
203 uint32_t othr_count; /* number of assoc strings */
204 EAssocList_t *assoc_tbl; /* associations between objects */
205 uint32_t assoc_count; /* number of associations */
206 EDevice_t *dev_tbl; /* device paths */
207 uint32_t dev_count; /* number of device paths */
208 FILE *fp; /* config file */
209 pthread_mutex_t mutex; /* multi threaded protection */
210 } EHdl_t;
212 /* String lookup table for attributes */
213 static char *attr_str_tab[] = {
214 "_class", /* 0 */
215 "Subclass", /* 1 */
216 "Presence", /* 2 */
217 "Previous-presence", /* 3 */
218 "State", /* 4 */
219 "Previous-state", /* 5 */
220 "Enabled", /* 6 */
221 "FaultInformation", /* 7 */
222 "Features", /* 8 */
223 "Label", /* 9 */
224 "Fruid", /* 10 */
225 "Instance", /* 11 */
226 "Led-color", /* 12 */
227 "Lo-warn", /* 13 */
228 "Lo-shut", /* 14 */
229 "Hi-warn", /* 15 */
230 "Hi-shut", /* 16 */
231 "Opt-temp", /* 17 */
232 "Hw-hi-shut", /* 18 */
233 "Hw-lo-shut", /* 19 */
234 "Setpoint", /* 20 */
235 "Hysteresis", /* 21 */
236 "Loopgain", /* 22 */
237 "Loopbias", /* 23 */
238 "Temp_differential", /* 24 */
239 "Temp_differential_index", /* 25 */
240 "Sensor-value", /* 26 */
241 "Gpio-value", /* 27 */
242 "#Bits", /* 28 */
243 "Control-value", /* 29 */
244 "Led-state", /* 30 */
245 "Switch-state", /* 31 */
246 "Probe-result", /* 32 */
247 "Table_value", /* 33 */
248 "Assoc_id", /* 34 */
249 "Assoc_matches", /* 35 */
250 "Addr-spec", /* 36 */
251 "Object-id", /* 37 */
252 "Led-lit-count", /* 38 */
253 "FRU-info", /* 39 */
254 "IsLocator", /* 40 */
255 "LocatorName" /* 41 */
258 int ATTR_STR_TAB_SIZE = sizeof (attr_str_tab) / sizeof (char *);
260 #ifdef __cplusplus
262 #endif
264 #endif /* _PSVC_OBJECTS_CLASS_H */