1 /*
2  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
3  * Use is subject to license terms.
4  */
5 
6 #include <libipmi.h>
7 #include <ipmi_impl.h>
8 
9 ipmi_name_trans_t ipmi_errno_table[] = {
10 	{ EIPMI_BMC_OPEN_FAILED, "failed to open /dev/ipmi0" },
11 	{ EIPMI_BMC_PUTMSG, "failed to send message to /dev/ipmi0" },
12 	{ EIPMI_BMC_GETMSG, "failed to read response from /dev/ipmi0" },
13 	{ EIPMI_BMC_RESPONSE, "response from /dev/ipmi0 failed" },
14 	{ EIPMI_INVALID_COMMAND, "invalid command" },
15 	{ EIPMI_COMMAND_TIMEOUT, "command timeout" },
16 	{ EIPMI_DATA_LENGTH_EXCEEDED, "maximum data length exceeded" },
17 	{ EIPMI_SEND_FAILED, "failed to send BMC request" },
18 	{ EIPMI_UNSPECIFIED, "unspecified BMC error" },
19 	{ EIPMI_UNKNOWN, "unknown error" },
20 	{ EIPMI_BAD_RESPONSE, "received unexpected response" },
21 	{ EIPMI_BAD_RESPONSE_LENGTH, "unexpected response length" },
22 	{ EIPMI_INVALID_RESERVATION, "invalid or cancelled reservation" },
23 	{ EIPMI_NOT_PRESENT, "requested entity not present" },
24 	{ EIPMI_INVALID_REQUEST, "malformed request data" },
25 	{ EIPMI_BUSY, "service processor is busy" },
26 	{ EIPMI_NOSPACE, "service processor is out of space" },
27 	{ EIPMI_UNAVAILABLE, "service processor is unavailable" },
28 	{ EIPMI_ACCESS, "insufficient privileges" },
29 	{ EIPMI_BADPARAM, "parameter is not supported" },
30 	{ EIPMI_READONLY, "attempt to write read-only param" },
31 	{ EIPMI_WRITEONLY, "attempt to read write-only param" },
32 	{ EIPMI_LAN_OPEN_FAILED, "failed to open socket" },
33 	{ EIPMI_LAN_PING_FAILED, "RMCP Ping message failed" },
34 	{ EIPMI_LAN_CHALLENGE, "failure getting challenge" },
35 	{ EIPMI_LAN_SESSION, "failure activating session" },
36 	{ EIPMI_LAN_SETPRIV, "failure setting session privs" },
37 	{ 0, NULL }
38 };
39 
40 ipmi_name_trans_t ipmi_entity_table[] = {
41 	{ IPMI_ET_UNSPECIFIED, "UNSPECIFIED" },
42 	{ IPMI_ET_OTHER, "OTHER" },
43 	{ IPMI_ET_UNKNOWN, "UNKNOWN" },
44 	{ IPMI_ET_PROCESSOR, "PROCESSOR" },
45 	{ IPMI_ET_DISK, "DISK" },
46 	{ IPMI_ET_PERIPHERAL, "PERIPHERAL" },
47 	{ IPMI_ET_MANAGEMENT_MODULE, "MANAGEMENT_MODULE" },
48 	{ IPMI_ET_MOTHERBOARD, "MOTHERBOARD" },
49 	{ IPMI_ET_MEMORY_MODULE, "MEMORY_MODULE" },
50 	{ IPMI_ET_PROCESSOR_MODULE, "PROCESSOR_MODULE" },
51 	{ IPMI_ET_PSU, "PSU" },
52 	{ IPMI_ET_CARD, "CARD" },
53 	{ IPMI_ET_FRONT_PANEL, "FRONT_PANEL" },
54 	{ IPMI_ET_BACK_PANEL, "BACK_PANEL" },
55 	{ IPMI_ET_POWER_BOARD, "POWER_BOARD" },
56 	{ IPMI_ET_BACKPLANE, "BACKPLANE" },
57 	{ IPMI_ET_EXPANSION_BOARD, "EXPANSION_BOARD" },
58 	{ IPMI_ET_OTHER_BOARD, "OTHER_BOARD" },
59 	{ IPMI_ET_PROCESSOR_BOARD, "PROCESSOR_BOARD" },
60 	{ IPMI_ET_POWER_DOMAIN, "POWER_DOMAIN" },
61 	{ IPMI_ET_POWER_CONVERTER, "POWER_CONVERTER" },
62 	{ IPMI_ET_POWER_MANAGEMENT, "POWER_MANAGEMENT" },
63 	{ IPMI_ET_BACK_CHASSIS, "BACK_CHASSIS" },
64 	{ IPMI_ET_SYSTEM_CHASSIS, "SYSTEM_CHASSIS" },
65 	{ IPMI_ET_SUB_CHASSIS, "SUB_CHASSIS" },
66 	{ IPMI_ET_OTHER_CHASSIS, "OTHER_CHASSIS" },
67 	{ IPMI_ET_DISK_BAY, "DISK_BAY" },
68 	{ IPMI_ET_PERIPHERAL_BAY, "PERIPHERAL_BAY" },
69 	{ IPMI_ET_DEVICE_BAY, "DEVICE_BAY" },
70 	{ IPMI_ET_FAN, "FAN" },
71 	{ IPMI_ET_COOLING_DOMAIN, "COOLING_DOMAIN" },
72 	{ IPMI_ET_CABLE, "CABLE" },
73 	{ IPMI_ET_MEMORY_DEVICE, "MEMORY_DEVICE" },
74 	{ IPMI_ET_MANAGEMENT_SOFTWARE, "MANAGEMENT_SOFTWARE" },
75 	{ IPMI_ET_SYSTEM_FIRMWARE, "SYSTEM_FIRMWARE" },
76 	{ IPMI_ET_OS, "OS" },
77 	{ IPMI_ET_SYSTEM_BUS, "SYSTEM_BUS" },
78 	{ IPMI_ET_GROUP, "GROUP" },
79 	{ IPMI_ET_REMOTE, "REMOTE" },
80 	{ IPMI_ET_ENVIRONMENT, "ENVIRONMENT" },
81 	{ IPMI_ET_BATTERY, "BATTERY" },
82 	{ IPMI_ET_BLADE, "BLADE" },
83 	{ IPMI_ET_SWITCH, "SWITCH" },
84 	{ IPMI_ET_PROCMEM_MODULE, "PROCMEM_MODULE" },
85 	{ IPMI_ET_IO_MODULE, "IO_MODULE" },
86 	{ IPMI_ET_PROCIO_MODULE, "PROCIO_MODULE" },
87 	{ IPMI_ET_CONTROLLER_FIRMWARE, "CONTROLLER_FIRMWARE" },
88 	{ IPMI_ET_CHANNEL, "CHANNEL" },
89 	{ IPMI_ET_PCI, "PCI" },
90 	{ IPMI_ET_PCIE, "PCIE" },
91 	{ IPMI_ET_SCSI, "SCSI" },
92 	{ IPMI_ET_SATA_SAS, "SATA_SAS" },
93 	{ IPMI_ET_FSB, "FSB" },
94 	{ IPMI_ET_RTC, "RTC" },
95 	{ 0, NULL }
96 };
97 
98 ipmi_name_trans_t ipmi_sensor_type_table[] = {
99 	{ IPMI_ST_RESERVED, "RESERVED" },
100 	{ IPMI_ST_TEMP, "TEMP" },
101 	{ IPMI_ST_VOLTAGE, "VOLTAGE" },
102 	{ IPMI_ST_CURRENT, "CURRENT" },
103 	{ IPMI_ST_FAN, "FAN" },
104 	{ IPMI_ST_PHYSICAL, "PHYSICAL" },
105 	{ IPMI_ST_PLATFORM, "PLATFORM" },
106 	{ IPMI_ST_PROCESSOR, "PROCESSOR" },
107 	{ IPMI_ST_POWER_SUPPLY, "POWER_SUPPLY" },
108 	{ IPMI_ST_POWER_UNIT, "POWER_UNIT" },
109 	{ IPMI_ST_COOLING, "COOLING" },
110 	{ IPMI_ST_OTHER, "OTHER" },
111 	{ IPMI_ST_MEMORY, "MEMORY" },
112 	{ IPMI_ST_BAY, "BAY" },
113 	{ IPMI_ST_POST_RESIZE, "POST_RESIZE" },
114 	{ IPMI_ST_FIRMWARE, "FIRMWARE" },
115 	{ IPMI_ST_EVENT_LOG, "EVENT_LOG" },
116 	{ IPMI_ST_WATCHDOG1, "WATCHDOG1" },
117 	{ IPMI_ST_SYSTEM, "SYSTEM" },
118 	{ IPMI_ST_CRITICAL, "CRITICAL" },
119 	{ IPMI_ST_BUTTON, "BUTTON" },
120 	{ IPMI_ST_MODULE, "MODULE" },
121 	{ IPMI_ST_MICROCONTROLLER, "MICROCONTROLLER" },
122 	{ IPMI_ST_CARD, "CARD" },
123 	{ IPMI_ST_CHASSIS, "CHASSIS" },
124 	{ IPMI_ST_CHIPSET, "CHIPSET" },
125 	{ IPMI_ST_FRU, "FRU" },
126 	{ IPMI_ST_CABLE, "CABLE" },
127 	{ IPMI_ST_TERMINATOR, "TERMINATOR" },
128 	{ IPMI_ST_BOOT, "BOOT" },
129 	{ IPMI_ST_BOOT_ERROR, "BOOT_ERROR" },
130 	{ IPMI_ST_BOOT_OS, "BOOT_OS" },
131 	{ IPMI_ST_OS_SHUTDOWN, "OS_SHUTDOWN" },
132 	{ IPMI_ST_SLOT, "SLOT" },
133 	{ IPMI_ST_ACPI, "ACPI" },
134 	{ IPMI_ST_WATCHDOG2, "WATCHDOG2" },
135 	{ IPMI_ST_ALERT, "ALERT" },
136 	{ IPMI_ST_PRESENCE, "PRESENCE" },
137 	{ IPMI_ST_ASIC, "ASIC" },
138 	{ IPMI_ST_LAN, "LAN" },
139 	{ IPMI_ST_HEALTH, "HEALTH" },
140 	{ IPMI_ST_BATTERY, "BATTERY" },
141 	{ IPMI_ST_AUDIT, "AUDIT" },
142 	{ IPMI_ST_VERSION, "VERSION" },
143 	{ IPMI_ST_FRU_STATE, "FRU_STATE" },
144 	{ 0, NULL }
145 };
146 
147 ipmi_name_trans_t ipmi_reading_type_table[] = {
148 	{ IPMI_RT_THRESHOLD, "THRESHOLD" },
149 	{ IPMI_RT_USAGE, "USAGE" },
150 	{ IPMI_RT_STATE, "STATE" },
151 	{ IPMI_RT_PREDFAIL, "PREDFAIL" },
152 	{ IPMI_RT_LIMIT, "LIMIT" },
153 	{ IPMI_RT_PERFORMANCE, "PERFORMANCE" },
154 	{ IPMI_RT_SEVERITY, "SEVERITY" },
155 	{ IPMI_RT_PRESENT, "PRESENT" },
156 	{ IPMI_RT_ENABLED, "ENABLED" },
157 	{ IPMI_RT_AVAILABILITY, "AVAILABILITY" },
158 	{ IPMI_RT_REDUNDANCY, "REDUNDANCY" },
159 	{ IPMI_RT_ACPI, "ACPI" },
160 	{ IPMI_RT_SPECIFIC, "SPECIFIC" },
161 	{ 0, NULL }
162 };
163 
164 ipmi_name_trans_t ipmi_units_type_table[] = {
165 	{ IPMI_UNITS_UNSPECIFIED, "UNSPECIFIED" },
166 	{ IPMI_UNITS_DEGREES_C, "DEGREES_C" },
167 	{ IPMI_UNITS_DEGREES_F, "DEGREES_F" },
168 	{ IPMI_UNITS_DEGREES_K, "DEGREES_K" },
169 	{ IPMI_UNITS_VOLTS, "VOLTS" },
170 	{ IPMI_UNITS_AMPS, "AMPS" },
171 	{ IPMI_UNITS_WATTS, "WATTS" },
172 	{ IPMI_UNITS_JOULES, "JOULES" },
173 	{ IPMI_UNITS_COULOMBS, "COULOMBS" },
174 	{ IPMI_UNITS_VA, "VA" },
175 	{ IPMI_UNITS_NITS, "NITS" },
176 	{ IPMI_UNITS_LUMEN, "LUMEN" },
177 	{ IPMI_UNITS_LUX, "LUX" },
178 	{ IPMI_UNITS_CANDELA, "CANDELA" },
179 	{ IPMI_UNITS_KPA, "KPA" },
180 	{ IPMI_UNITS_PSI, "PSI" },
181 	{ IPMI_UNITS_NEWTON, "NEWTON" },
182 	{ IPMI_UNITS_CFM, "CFM" },
183 	{ IPMI_UNITS_RPM, "RPM" },
184 	{ IPMI_UNITS_HZ, "HZ" },
185 	{ IPMI_UNITS_MICROSEC, "MICROSEC" },
186 	{ IPMI_UNITS_MILLISEC, "MILLISEC" },
187 	{ IPMI_UNITS_SECS, "SECS" },
188 	{ IPMI_UNITS_MIN, "MIN" },
189 	{ IPMI_UNITS_HOUR, "HOUR" },
190 	{ IPMI_UNITS_DAY, "DAY" },
191 	{ IPMI_UNITS_WEEK, "WEEK" },
192 	{ IPMI_UNITS_MIL, "MIL" },
193 	{ IPMI_UNITS_INCHES, "INCHES" },
194 	{ IPMI_UNITS_FEET, "FEET" },
195 	{ IPMI_UNITS_CUB_INCH, "CUB_INCH" },
196 	{ IPMI_UNITS_CUB_FEET, "CUB_FEET" },
197 	{ IPMI_UNITS_MM, "MM" },
198 	{ IPMI_UNITS_CM, "CM" },
199 	{ IPMI_UNITS_METERS, "METERS" },
200 	{ IPMI_UNITS_CUB_CM, "CUB_CM" },
201 	{ IPMI_UNITS_CUB_METER, "CUB_METER" },
202 	{ IPMI_UNITS_LITERS, "LITERS" },
203 	{ IPMI_UNITS_FLUID_OUNCE, "FLUID_OUNCE" },
204 	{ IPMI_UNITS_RADIANS, "RADIANS" },
205 	{ IPMI_UNITS_STERADIANS, "STERADIANS" },
206 	{ IPMI_UNITS_REVOLUTIONS, "REVOLUTIONS" },
207 	{ IPMI_UNITS_CYCLES, "CYCLES" },
208 	{ IPMI_UNITS_GRAVITIES, "GRAVITIES" },
209 	{ IPMI_UNITS_OUNCE, "OUNCE" },
210 	{ IPMI_UNITS_POUND, "POUND" },
211 	{ IPMI_UNITS_FOOT_POUND, "FOOT_POUND" },
212 	{ IPMI_UNITS_OZ_INCH, "OZ_INCH" },
213 	{ IPMI_UNITS_GAUSS, "GAUSS" },
214 	{ IPMI_UNITS_GILBERTS, "GILBERTS" },
215 	{ IPMI_UNITS_HENRY, "HENRY" },
216 	{ IPMI_UNITS_MILHENRY, "MILHENRY" },
217 	{ IPMI_UNITS_FARAD, "FARAD" },
218 	{ IPMI_UNITS_MICROFARAD, "MICROFARAD" },
219 	{ IPMI_UNITS_OHMS, "OHMS" },
220 	{ IPMI_UNITS_SIEMENS, "SIEMENS" },
221 	{ IPMI_UNITS_MOLE, "MOLE" },
222 	{ IPMI_UNITS_BECQUEREL, "BECQUEREL" },
223 	{ IPMI_UNITS_PPM, "PPM" },
224 	{ IPMI_UNITS_DECIBELS, "DECIBELS" },
225 	{ IPMI_UNITS_DBA, "DBA" },
226 	{ IPMI_UNITS_DBC, "DBC" },
227 	{ IPMI_UNITS_GRAY, "GRAY" },
228 	{ IPMI_UNITS_SIEVERT, "SIEVERT" },
229 	{ IPMI_UNITS_COLOR_TEMP_K, "COLOR_TEMP_K" },
230 	{ IPMI_UNITS_BIT, "BIT" },
231 	{ IPMI_UNITS_KILOBIT, "KILOBIT" },
232 	{ IPMI_UNITS_MEGABIT, "MEGABIT" },
233 	{ IPMI_UNITS_GIGABIT, "GIGABIT" },
234 	{ IPMI_UNITS_BYTE, "BYTE" },
235 	{ IPMI_UNITS_KILOBYTE, "KILOBYTE" },
236 	{ IPMI_UNITS_MEGABYTE, "MEGABYTE" },
237 	{ IPMI_UNITS_GIGABYTE, "GIGABYTE" },
238 	{ IPMI_UNITS_WORD, "WORD" },
239 	{ IPMI_UNITS_DWORD, "DWORD" },
240 	{ IPMI_UNITS_QWORD, "QWORD" },
241 	{ IPMI_UNITS_MEMLINE, "MEMLINE" },
242 	{ IPMI_UNITS_HIT, "HIT" },
243 	{ IPMI_UNITS_MISS, "MISS" },
244 	{ IPMI_UNITS_RETRY, "RETRY" },
245 	{ IPMI_UNITS_RESET, "RESET" },
246 	{ IPMI_UNITS_OVERFLOW, "OVERFLOW" },
247 	{ IPMI_UNITS_UNDERRUN, "UNDERRUN" },
248 	{ IPMI_UNITS_COLLISION, "COLLISION" },
249 	{ IPMI_UNITS_PACKETS, "PACKETS" },
250 	{ IPMI_UNITS_MESSAGES, "MESSAGES" },
251 	{ IPMI_UNITS_CHARACTERS, "CHARACTERS" },
252 	{ IPMI_UNITS_ERROR, "ERROR" },
253 	{ IPMI_UNITS_CE, "CE" },
254 	{ IPMI_UNITS_UE, "UE" },
255 	{ IPMI_UNITS_FATAL_ERROR, "FATAL_ERROR" },
256 	{ IPMI_UNITS_GRAMS, "GRAMS" },
257 	{ 0, NULL }
258 };
259