ipmi_strings.c 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  1. /*
  2. * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions
  6. * are met:
  7. *
  8. * Redistribution of source code must retain the above copyright
  9. * notice, this list of conditions and the following disclaimer.
  10. *
  11. * Redistribution in binary form must reproduce the above copyright
  12. * notice, this list of conditions and the following disclaimer in the
  13. * documentation and/or other materials provided with the distribution.
  14. *
  15. * Neither the name of Sun Microsystems, Inc. or the names of
  16. * contributors may be used to endorse or promote products derived
  17. * from this software without specific prior written permission.
  18. *
  19. * This software is provided "AS IS," without a warranty of any kind.
  20. * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
  21. * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
  22. * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
  23. * SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE
  24. * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
  25. * OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
  26. * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA,
  27. * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
  28. * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
  29. * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
  30. * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  31. */
  32. #include <stddef.h>
  33. #include <ipmitool/ipmi_strings.h>
  34. #include <ipmitool/ipmi_constants.h>
  35. #include <ipmitool/ipmi_sensor.h>
  36. #include <ipmitool/ipmi_sel.h> /* for IPMI_OEM */
  37. const struct valstr ipmi_oem_info[] = {
  38. { IPMI_OEM_UNKNOWN, "Unknown" },
  39. { IPMI_OEM_HP, "Hewlett-Packard" },
  40. { IPMI_OEM_SUN, "Sun Microsystems" },
  41. { IPMI_OEM_INTEL, "Intel Corporation" },
  42. { IPMI_OEM_LMC, "LMC" },
  43. { IPMI_OEM_RADISYS, "RadiSys Corporation" },
  44. { IPMI_OEM_TYAN, "Tyan Computer Corporation" },
  45. { IPMI_OEM_NEWISYS, "Newisys" },
  46. { IPMI_OEM_SUPERMICRO, "Supermicro" },
  47. { IPMI_OEM_GOOGLE, "Google" },
  48. { IPMI_OEM_KONTRON, "Kontron" },
  49. { IPMI_OEM_NOKIA, "Nokia" },
  50. { IPMI_OEM_PICMG, "PICMG" },
  51. { IPMI_OEM_PEPPERCON, "Peppercon AG" },
  52. { IPMI_OEM_DELL, "DELL Inc" },
  53. { IPMI_OEM_NEC, "NEC" },
  54. { IPMI_OEM_MAGNUM, "Magnum Technologies" },
  55. { IPMI_OEM_FUJITSU_SIEMENS, "Fujitsu Siemens" },
  56. { IPMI_OEM_TATUNG, "Tatung" },
  57. { IPMI_OEM_AMI, "AMI" },
  58. { IPMI_OEM_RARITAN, "Raritan" },
  59. { IPMI_OEM_AVOCENT, "Avocent" },
  60. { IPMI_OEM_OSA, "OSA" },
  61. { IPMI_OEM_TOSHIBA, "Toshiba" },
  62. { IPMI_OEM_HITACHI_116, "Hitachi" },
  63. { IPMI_OEM_HITACHI_399, "Hitachi" },
  64. { IPMI_OEM_NOKIA_SOLUTIONS_AND_NETWORKS, "Nokia Solutions and Networks" },
  65. { IPMI_OEM_BULL, "Bull Company" },
  66. { IPMI_OEM_PPS, "Pigeon Point Systems" },
  67. { IPMI_OEM_BROADCOM, "Broadcom Corporation" },
  68. { IPMI_OEM_ERICSSON, "Ericsson AB"},
  69. { IPMI_OEM_QUANTA, "Quanta" },
  70. { IPMI_OEM_VITA, "VITA" },
  71. { IPMI_OEM_ADVANTECH, "Advantech" },
  72. /************************************************************************
  73. * Add ID String for IANA Enterprise Number of IBM & ADLINK
  74. * https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
  75. * 2
  76. * IBM
  77. * Kristine Adamson
  78. * adamson&us.ibm.com
  79. * 4769
  80. * IBM Corporation
  81. * Victor Sample
  82. * vsample&us.ibm.com
  83. * 20301
  84. * IBM eServer X
  85. * Lynn Fore
  86. * sls&us.ibm.com
  87. * 24339
  88. * ADLINK TECHNOLOGY INC.
  89. * Ryan Hsu
  90. * ryan.hsu&adlinktech.com
  91. ************************************************************************/
  92. { IPMI_OEM_IBM_2, "IBM" },
  93. { IPMI_OEM_IBM_4769, "IBM Corporation" },
  94. { IPMI_OEM_IBM_20301, "IBM eServer X" },
  95. { IPMI_OEM_ADLINK_24339, "ADLINK Technology Inc." },
  96. { 0xffff , NULL },
  97. };
  98. const struct oemvalstr ipmi_oem_product_info[] = {
  99. /* Keep OEM grouped together */
  100. /* Intel stuff, thanks to Tim Bell */
  101. { IPMI_OEM_INTEL, 0x000C, "TSRLT2" },
  102. { IPMI_OEM_INTEL, 0x001B, "TIGPR2U" },
  103. { IPMI_OEM_INTEL, 0x0022, "TIGI2U" },
  104. { IPMI_OEM_INTEL, 0x0026, "Bridgeport" },
  105. { IPMI_OEM_INTEL, 0x0028, "S5000PAL" },
  106. { IPMI_OEM_INTEL, 0x0029, "S5000PSL" },
  107. { IPMI_OEM_INTEL, 0x0100, "Tiger4" },
  108. { IPMI_OEM_INTEL, 0x0103, "McCarran" },
  109. { IPMI_OEM_INTEL, 0x0800, "ZT5504" },
  110. { IPMI_OEM_INTEL, 0x0808, "MPCBL0001" },
  111. { IPMI_OEM_INTEL, 0x0811, "TIGW1U" },
  112. { IPMI_OEM_INTEL, 0x4311, "NSI2U" },
  113. /* Kontron */
  114. { IPMI_OEM_KONTRON,4000, "AM4000 AdvancedMC" },
  115. { IPMI_OEM_KONTRON,4001, "AM4001 AdvancedMC" },
  116. { IPMI_OEM_KONTRON,4002, "AM4002 AdvancedMC" },
  117. { IPMI_OEM_KONTRON,4010, "AM4010 AdvancedMC" },
  118. { IPMI_OEM_KONTRON,5503, "AM4500/4520 AdvancedMC" },
  119. { IPMI_OEM_KONTRON,5504, "AM4300 AdvancedMC" },
  120. { IPMI_OEM_KONTRON,5507, "AM4301 AdvancedMC" },
  121. { IPMI_OEM_KONTRON,5508, "AM4330 AdvancedMC" },
  122. { IPMI_OEM_KONTRON,5520, "KTC5520/EATX" },
  123. { IPMI_OEM_KONTRON,5703, "RTM8020" },
  124. { IPMI_OEM_KONTRON,5704, "RTM8030" },
  125. { IPMI_OEM_KONTRON,5705, "RTM8050" },
  126. { IPMI_OEM_KONTRON,6000, "CP6000" },
  127. { IPMI_OEM_KONTRON,6006, "DT-64" },
  128. { IPMI_OEM_KONTRON,6010, "CP6010" },
  129. { IPMI_OEM_KONTRON,6011, "CP6011" },
  130. { IPMI_OEM_KONTRON,6012, "CP6012" },
  131. { IPMI_OEM_KONTRON,6014, "CP6014" },
  132. { IPMI_OEM_KONTRON,5002, "AT8001" },
  133. { IPMI_OEM_KONTRON,5003, "AT8010" },
  134. { IPMI_OEM_KONTRON,5004, "AT8020" },
  135. { IPMI_OEM_KONTRON,5006, "AT8030 IPMC" },
  136. { IPMI_OEM_KONTRON,2025, "AT8030 MMC" },
  137. { IPMI_OEM_KONTRON,5007, "AT8050" },
  138. { IPMI_OEM_KONTRON,5301, "AT8400" },
  139. { IPMI_OEM_KONTRON,5303, "AT8901" },
  140. /* Broadcom */
  141. { IPMI_OEM_BROADCOM, 5725, "BCM5725" },
  142. /* Ericsson */
  143. { IPMI_OEM_ERICSSON, 0x0054, "Phantom" },
  144. /* Advantech */
  145. /* ATCA Blades */
  146. { IPMI_OEM_ADVANTECH, 0x3393, "MIC-3393" },
  147. { IPMI_OEM_ADVANTECH, 0x3395, "MIC-3395" },
  148. { IPMI_OEM_ADVANTECH, 0x3396, "MIC-3396" },
  149. { IPMI_OEM_ADVANTECH, 0x5302, "MIC-5302" },
  150. { IPMI_OEM_ADVANTECH, 0x5304, "MIC-5304" },
  151. { IPMI_OEM_ADVANTECH, 0x5320, "MIC-5320" },
  152. { IPMI_OEM_ADVANTECH, 0x5321, "MIC-5321" },
  153. { IPMI_OEM_ADVANTECH, 0x5322, "MIC-5322" },
  154. { IPMI_OEM_ADVANTECH, 0x5332, "MIC-5332" },
  155. { IPMI_OEM_ADVANTECH, 0x5333, "MIC-5333" },
  156. { IPMI_OEM_ADVANTECH, 0x5342, "MIC-5342" },
  157. { IPMI_OEM_ADVANTECH, 0x5343, "MIC-5343" },
  158. { IPMI_OEM_ADVANTECH, 0x5344, "MIC-5344" },
  159. { IPMI_OEM_ADVANTECH, 0x5345, "MIC-5345" },
  160. { IPMI_OEM_ADVANTECH, 0x5201, "MIC-5201 Dual 10GE AMC"},
  161. { IPMI_OEM_ADVANTECH, 0x5203, "MIC-5203 Quad GbE AMC"},
  162. { IPMI_OEM_ADVANTECH, 0x5212, "MIC-5212 Dual 10GE AMC"},
  163. /* AdvancedMC */
  164. { IPMI_OEM_ADVANTECH, 0x5401, "MIC-5401" },
  165. { IPMI_OEM_ADVANTECH, 0x5601, "MIC-5601" },
  166. { IPMI_OEM_ADVANTECH, 0x5602, "MIC-5602" },
  167. { IPMI_OEM_ADVANTECH, 0x5604, "MIC-5604" },
  168. { IPMI_OEM_ADVANTECH, 0x5603, "MIC-5603" },
  169. { IPMI_OEM_ADVANTECH, 0x6311, "MIC-6311" },
  170. { IPMI_OEM_ADVANTECH, 0x6313, "MIC-6313" },
  171. { IPMI_OEM_ADVANTECH, 0x8301, "MIC-8301" },
  172. { IPMI_OEM_ADVANTECH, 0x8302, "MIC-8302" },
  173. { IPMI_OEM_ADVANTECH, 0x8304, "MIC-8304" },
  174. { IPMI_OEM_ADVANTECH, 0x5101, "RTM-5101" },
  175. { IPMI_OEM_ADVANTECH, 0x5102, "RTM-5102" },
  176. { IPMI_OEM_ADVANTECH, 0x5106, "RTM-5106" },
  177. { IPMI_OEM_ADVANTECH, 0x5107, "RTM-5107" },
  178. { IPMI_OEM_ADVANTECH, 0x5210, "RTM-5210" },
  179. { IPMI_OEM_ADVANTECH, 0x5220, "RTM-5220" },
  180. { IPMI_OEM_ADVANTECH, 0x5104, "RTM-5104" },
  181. { IPMI_OEM_ADVANTECH, 0x5500, "UTCA-5500"},
  182. { IPMI_OEM_ADVANTECH, 0x5503, "UTCA-5503"},
  183. { IPMI_OEM_ADVANTECH, 0x5504, "UTCA-5504"},
  184. { IPMI_OEM_ADVANTECH, 0x5801, "UTCA-5801"},
  185. { IPMI_OEM_ADVANTECH, 0x2210, "NCPB-2210"},
  186. { IPMI_OEM_ADVANTECH, 0x2305, "NCPB-2305"},
  187. { IPMI_OEM_ADVANTECH, 0x2320, "NCPB-2320"},
  188. { IPMI_OEM_ADVANTECH, 0x3109, "NCP-3109" },
  189. { IPMI_OEM_ADVANTECH, 0x3110, "NCP-3110" },
  190. { IPMI_OEM_ADVANTECH, 0x3200, "NCP-3200" },
  191. { IPMI_OEM_ADVANTECH, 0x5060, "SMM-5060" },
  192. { IPMI_OEM_ADVANTECH, 0x3210, "FWA-3210" },
  193. { IPMI_OEM_ADVANTECH, 0x3220, "FWA-3220" },
  194. { IPMI_OEM_ADVANTECH, 0x3221, "FWA-3221" },
  195. { IPMI_OEM_ADVANTECH, 0x3230, "FWA-3230" },
  196. { IPMI_OEM_ADVANTECH, 0x3231, "FWA-3231" },
  197. { IPMI_OEM_ADVANTECH, 0x3233, "FWA-3233" },
  198. { IPMI_OEM_ADVANTECH, 0x3250, "FWA-3250" },
  199. { IPMI_OEM_ADVANTECH, 0x3260, "FWA-3260" },
  200. { IPMI_OEM_ADVANTECH, 0x5020, "FWA-5020" },
  201. { IPMI_OEM_ADVANTECH, 0x6510, "FWA-6510" },
  202. { IPMI_OEM_ADVANTECH, 0x6511, "FWA-6511" },
  203. { IPMI_OEM_ADVANTECH, 0x6512, "FWA-6512" },
  204. { IPMI_OEM_ADVANTECH, 0x6520, "FWA-6520" },
  205. { IPMI_OEM_ADVANTECH, 0x6521, "FWA-6521" },
  206. { IPMI_OEM_ADVANTECH, 0x6522, "FWA-6522" },
  207. { IPMI_OEM_ADVANTECH, 0x7310, "ATCA-7310"},
  208. { IPMI_OEM_ADVANTECH, 0x7330, "ATCA-7330"},
  209. { IPMI_OEM_ADVANTECH, 0x7410, "ATCA-7410"},
  210. { IPMI_OEM_ADVANTECH, 0x9023, "ATCA-9023"},
  211. { IPMI_OEM_ADVANTECH, 0x9112, "ATCA-9112"},
  212. { IPMI_OEM_ADVANTECH, 0x4201, "AMC-4201" },
  213. { IPMI_OEM_ADVANTECH, 0x4202, "AMC-4202" },
  214. { IPMI_OEM_ADVANTECH, 0x3211, "NAMB-3211"},
  215. { IPMI_OEM_ADVANTECH, 0x1207, "CPCI-1207"},
  216. { IPMI_OEM_ADVANTECH, 0x120E, "CPCI-1207 Test Board"},
  217. { IPMI_OEM_ADVANTECH, 0x1304, "CPCI-1304"},
  218. { IPMI_OEM_ADVANTECH, 0x7001, "CPCI-7001"},
  219. { IPMI_OEM_ADVANTECH, 0x8220, "CPCI-8220"},
  220. { IPMI_OEM_ADVANTECH, 0x9001, "ESP-9001" },
  221. { IPMI_OEM_ADVANTECH, 0x9002, "ESP-9002" },
  222. { IPMI_OEM_ADVANTECH, 0x9012, "ESP-9012" },
  223. { IPMI_OEM_ADVANTECH, 0x9212, "ESP-9212" },
  224. { IPMI_OEM_ADVANTECH, 0x6000, "CGS-6000" },
  225. { IPMI_OEM_ADVANTECH, 0x6010, "CGS-6010" },
  226. /* ADLINK Technology Inc. */
  227. /* AdvancedTCA Processor Blades */
  228. { IPMI_OEM_ADLINK_24339, 0x3100, "aTCA-3100" },
  229. { IPMI_OEM_ADLINK_24339, 0x3110, "aTCA-3110" },
  230. { IPMI_OEM_ADLINK_24339, 0x3150, "aTCA-3150" },
  231. { IPMI_OEM_ADLINK_24339, 0x3420, "aTCA-3420" },
  232. { IPMI_OEM_ADLINK_24339, 0x3710, "aTCA-3710" },
  233. { IPMI_OEM_ADLINK_24339, 0x6100, "aTCA-6100" },
  234. { IPMI_OEM_ADLINK_24339, 0x6200, "aTCA-6200" },
  235. { IPMI_OEM_ADLINK_24339, 0x6250, "aTCA-6250/6250STW" },
  236. { IPMI_OEM_ADLINK_24339, 0x6270, "aTCA-R6270" },
  237. { IPMI_OEM_ADLINK_24339, 0x6280, "aTCA-R6280" },
  238. { IPMI_OEM_ADLINK_24339, 0x6890, "aTCA-6890" },
  239. { IPMI_OEM_ADLINK_24339, 0x6891, "aTCA-6891" },
  240. { IPMI_OEM_ADLINK_24339, 0x6900, "aTCA-6900" },
  241. { IPMI_OEM_ADLINK_24339, 0x6905, "aTCA-R6905" },
  242. { IPMI_OEM_ADLINK_24339, 0x690A, "aTCA-R6900" },
  243. { IPMI_OEM_ADLINK_24339, 0x8214, "aTCA-8214" },
  244. { IPMI_OEM_ADLINK_24339, 0x8606, "aTCA-8606" },
  245. { IPMI_OEM_ADLINK_24339, 0x9300, "aTCA-9300" },
  246. { IPMI_OEM_ADLINK_24339, 0x9700, "aTCA-9700" },
  247. { IPMI_OEM_ADLINK_24339, 0x9700, "aTCA-R9700" },
  248. { IPMI_OEM_ADLINK_24339, 0x970D, "aTCA-9700D" },
  249. { IPMI_OEM_ADLINK_24339, 0x9710, "aTCA-9710" },
  250. { IPMI_OEM_ADLINK_24339, 0x9710, "aTCA-R9710" },
  251. { IPMI_OEM_ADLINK_24339, 0xF001, "aTCA-FN001" },
  252. { IPMI_OEM_ADLINK_24339, 0xF2A0, "aTCA-F2AX" },
  253. { IPMI_OEM_ADLINK_24339, 0xF5A0, "aTCA-F5AX" },
  254. /* CompactPCI Blades */
  255. { IPMI_OEM_ADLINK_24339, 0x3510, "cPCI-3510" },
  256. { IPMI_OEM_ADLINK_24339, 0x3970, "cPCI-3970" },
  257. { IPMI_OEM_ADLINK_24339, 0x6010, "cPCI-6010" },
  258. { IPMI_OEM_ADLINK_24339, 0x6210, "cPCI-6210" },
  259. { IPMI_OEM_ADLINK_24339, 0x6510, "cPCI-6510" },
  260. { IPMI_OEM_ADLINK_24339, 0x6520, "cPCI-6520" },
  261. { IPMI_OEM_ADLINK_24339, 0x6525, "cPCI-6525" },
  262. { IPMI_OEM_ADLINK_24339, 0x6530, "cPCI-6530/6530BL" },
  263. { IPMI_OEM_ADLINK_24339, 0x6600, "cPCI-6600" },
  264. { IPMI_OEM_ADLINK_24339, 0x6840, "cPCI-6840" },
  265. { IPMI_OEM_ADLINK_24339, 0x6870, "cPCI-6870" },
  266. { IPMI_OEM_ADLINK_24339, 0x6880, "cPCI-6880" },
  267. { IPMI_OEM_ADLINK_24339, 0x6910, "cPCI-6910" },
  268. { IPMI_OEM_ADLINK_24339, 0x6920, "cPCI-6920" },
  269. { IPMI_OEM_ADLINK_24339, 0x6930, "cPCI-6930" },
  270. { IPMI_OEM_ADLINK_24339, 0x6940, "cPCI-6940" },
  271. /* VPX Blades */
  272. { IPMI_OEM_ADLINK_24339, 0x3000, "VPX3000" },
  273. { IPMI_OEM_ADLINK_24339, 0x3001, "VPX3001" },
  274. { IPMI_OEM_ADLINK_24339, 0x3002, "VPX3002" },
  275. { IPMI_OEM_ADLINK_24339, 0x3010, "VPX3010" },
  276. { IPMI_OEM_ADLINK_24339, 0x3F10, "VPX3G10" },
  277. { IPMI_OEM_ADLINK_24339, 0x6000, "VPX6000" },
  278. /* Network Appliance */
  279. { IPMI_OEM_ADLINK_24339, 0x0410, "MXN-0410" },
  280. { IPMI_OEM_ADLINK_24339, 0x2600, "MCN-2600" },
  281. { IPMI_OEM_ADLINK_24339, 0x1500, "MCN-1500" },
  282. { 0xffffff , 0xffff , NULL },
  283. };
  284. const char *ipmi_generic_sensor_type_vals[] = {
  285. "reserved",
  286. "Temperature", "Voltage", "Current", "Fan",
  287. "Physical Security", "Platform Security", "Processor",
  288. "Power Supply", "Power Unit", "Cooling Device", "Other",
  289. "Memory", "Drive Slot / Bay", "POST Memory Resize",
  290. "System Firmwares", "Event Logging Disabled", "Watchdog1",
  291. "System Event", "Critical Interrupt", "Button",
  292. "Module / Board", "Microcontroller", "Add-in Card",
  293. "Chassis", "Chip Set", "Other FRU", "Cable / Interconnect",
  294. "Terminator", "System Boot Initiated", "Boot Error",
  295. "OS Boot", "OS Critical Stop", "Slot / Connector",
  296. "System ACPI Power State", "Watchdog2", "Platform Alert",
  297. "Entity Presence", "Monitor ASIC", "LAN",
  298. "Management Subsys Health", "Battery", "Session Audit",
  299. "Version Change", "FRU State",
  300. NULL
  301. };
  302. const struct oemvalstr ipmi_oem_sensor_type_vals[] = {
  303. /* Keep OEM grouped together */
  304. { IPMI_OEM_KONTRON, 0xC0, "Firmware Info" },
  305. { IPMI_OEM_KONTRON, 0xC2, "Init Agent" },
  306. { IPMI_OEM_KONTRON, 0xC2, "Board Reset(cPCI)" },
  307. { IPMI_OEM_KONTRON, 0xC3, "IPMBL Link State" },
  308. { IPMI_OEM_KONTRON, 0xC4, "Board Reset" },
  309. { IPMI_OEM_KONTRON, 0xC5, "FRU Information Agent" },
  310. { IPMI_OEM_KONTRON, 0xC6, "POST Value Sensor" },
  311. { IPMI_OEM_KONTRON, 0xC7, "FWUM Status" },
  312. { IPMI_OEM_KONTRON, 0xC8, "Switch Mngt Software Status" },
  313. { IPMI_OEM_KONTRON, 0xC9, "OEM Diagnostic Status" },
  314. { IPMI_OEM_KONTRON, 0xCA, "Component Firmware Upgrade" },
  315. { IPMI_OEM_KONTRON, 0xCB, "FRU Over Current" },
  316. { IPMI_OEM_KONTRON, 0xCC, "FRU Sensor Error" },
  317. { IPMI_OEM_KONTRON, 0xCD, "FRU Power Denied" },
  318. { IPMI_OEM_KONTRON, 0xCE, "Reserved" },
  319. { IPMI_OEM_KONTRON, 0xCF, "Board Reset" },
  320. { IPMI_OEM_KONTRON, 0xD0, "Clock Resource Control" },
  321. { IPMI_OEM_KONTRON, 0xD1, "Power State" },
  322. { IPMI_OEM_KONTRON, 0xD2, "FRU Mngt Power Failure" },
  323. { IPMI_OEM_KONTRON, 0xD3, "Jumper Status" },
  324. { IPMI_OEM_KONTRON, 0xF2, "RTM Module Hotswap" },
  325. /* PICMG Sensor Types */
  326. { IPMI_OEM_PICMG, 0xF0, "FRU Hot Swap" },
  327. { IPMI_OEM_PICMG, 0xF1,"IPMB Physical Link" },
  328. { IPMI_OEM_PICMG, 0xF2, "Module Hot Swap" },
  329. { IPMI_OEM_PICMG, 0xF3, "Power Channel Notification" },
  330. { IPMI_OEM_PICMG, 0xF4, "Telco Alarm Input" },
  331. /* VITA 46.11 Sensor Types */
  332. { IPMI_OEM_VITA, 0xF0, "FRU State" },
  333. { IPMI_OEM_VITA, 0xF1, "System IPMB Link" },
  334. { IPMI_OEM_VITA, 0xF2, "FRU Health" },
  335. { IPMI_OEM_VITA, 0xF3, "FRU Temperature" },
  336. { IPMI_OEM_VITA, 0xF4, "Payload Test Results" },
  337. { IPMI_OEM_VITA, 0xF5, "Payload Test Status" },
  338. { 0xffffff, 0x00, NULL }
  339. };
  340. const struct valstr ipmi_netfn_vals[] = {
  341. { IPMI_NETFN_CHASSIS, "Chassis" },
  342. { IPMI_NETFN_BRIDGE, "Bridge" },
  343. { IPMI_NETFN_SE, "SensorEvent" },
  344. { IPMI_NETFN_APP, "Application" },
  345. { IPMI_NETFN_FIRMWARE, "Firmware" },
  346. { IPMI_NETFN_STORAGE, "Storage" },
  347. { IPMI_NETFN_TRANSPORT, "Transport" },
  348. { 0xff, NULL },
  349. };
  350. /*
  351. * From table 26-4 of the IPMI v2 specification
  352. */
  353. const struct valstr ipmi_bit_rate_vals[] = {
  354. { 0x00, "IPMI-Over-Serial-Setting"}, /* Using the value in the IPMI Over Serial Config */
  355. { 0x06, "9.6" },
  356. { 0x07, "19.2" },
  357. { 0x08, "38.4" },
  358. { 0x09, "57.6" },
  359. { 0x0A, "115.2" },
  360. { 0x00, NULL },
  361. };
  362. const struct valstr ipmi_channel_activity_type_vals[] = {
  363. { 0, "IPMI Messaging session active" },
  364. { 1, "Callback Messaging session active" },
  365. { 2, "Dial-out Alert active" },
  366. { 3, "TAP Page Active" },
  367. { 0x00, NULL },
  368. };
  369. const struct valstr ipmi_privlvl_vals[] = {
  370. { IPMI_SESSION_PRIV_CALLBACK, "CALLBACK" },
  371. { IPMI_SESSION_PRIV_USER, "USER" },
  372. { IPMI_SESSION_PRIV_OPERATOR, "OPERATOR" },
  373. { IPMI_SESSION_PRIV_ADMIN, "ADMINISTRATOR" },
  374. { IPMI_SESSION_PRIV_OEM, "OEM" },
  375. { 0xF, "NO ACCESS" },
  376. { 0xFF, NULL },
  377. };
  378. const struct valstr ipmi_set_in_progress_vals[] = {
  379. { IPMI_SET_IN_PROGRESS_SET_COMPLETE, "set-complete" },
  380. { IPMI_SET_IN_PROGRESS_IN_PROGRESS, "set-in-progress" },
  381. { IPMI_SET_IN_PROGRESS_COMMIT_WRITE, "commit-write" },
  382. { 0, NULL },
  383. };
  384. const struct valstr ipmi_authtype_session_vals[] = {
  385. { IPMI_SESSION_AUTHTYPE_NONE, "NONE" },
  386. { IPMI_SESSION_AUTHTYPE_MD2, "MD2" },
  387. { IPMI_SESSION_AUTHTYPE_MD5, "MD5" },
  388. { IPMI_SESSION_AUTHTYPE_PASSWORD, "PASSWORD" },
  389. { IPMI_SESSION_AUTHTYPE_OEM, "OEM" },
  390. { IPMI_SESSION_AUTHTYPE_RMCP_PLUS,"RMCP+" },
  391. { 0xFF, NULL },
  392. };
  393. const struct valstr ipmi_authtype_vals[] = {
  394. { IPMI_1_5_AUTH_TYPE_BIT_NONE, "NONE" },
  395. { IPMI_1_5_AUTH_TYPE_BIT_MD2, "MD2" },
  396. { IPMI_1_5_AUTH_TYPE_BIT_MD5, "MD5" },
  397. { IPMI_1_5_AUTH_TYPE_BIT_PASSWORD, "PASSWORD" },
  398. { IPMI_1_5_AUTH_TYPE_BIT_OEM, "OEM" },
  399. { 0, NULL },
  400. };
  401. const struct valstr entity_id_vals[] = {
  402. { 0x00, "Unspecified" },
  403. { 0x01, "Other" },
  404. { 0x02, "Unknown" },
  405. { 0x03, "Processor" },
  406. { 0x04, "Disk or Disk Bay" },
  407. { 0x05, "Peripheral Bay" },
  408. { 0x06, "System Management Module" },
  409. { 0x07, "System Board" },
  410. { 0x08, "Memory Module" },
  411. { 0x09, "Processor Module" },
  412. { 0x0a, "Power Supply" },
  413. { 0x0b, "Add-in Card" },
  414. { 0x0c, "Front Panel Board" },
  415. { 0x0d, "Back Panel Board" },
  416. { 0x0e, "Power System Board" },
  417. { 0x0f, "Drive Backplane" },
  418. { 0x10, "System Internal Expansion Board" },
  419. { 0x11, "Other System Board" },
  420. { 0x12, "Processor Board" },
  421. { 0x13, "Power Unit" },
  422. { 0x14, "Power Module" },
  423. { 0x15, "Power Management" },
  424. { 0x16, "Chassis Back Panel Board" },
  425. { 0x17, "System Chassis" },
  426. { 0x18, "Sub-Chassis" },
  427. { 0x19, "Other Chassis Board" },
  428. { 0x1a, "Disk Drive Bay" },
  429. { 0x1b, "Peripheral Bay" },
  430. { 0x1c, "Device Bay" },
  431. { 0x1d, "Fan Device" },
  432. { 0x1e, "Cooling Unit" },
  433. { 0x1f, "Cable/Interconnect" },
  434. { 0x20, "Memory Device" },
  435. { 0x21, "System Management Software" },
  436. { 0x22, "BIOS" },
  437. { 0x23, "Operating System" },
  438. { 0x24, "System Bus" },
  439. { 0x25, "Group" },
  440. { 0x26, "Remote Management Device" },
  441. { 0x27, "External Environment" },
  442. { 0x28, "Battery" },
  443. { 0x29, "Processing Blade" },
  444. { 0x2A, "Connectivity Switch" },
  445. { 0x2B, "Processor/Memory Module" },
  446. { 0x2C, "I/O Module" },
  447. { 0x2D, "Processor/IO Module" },
  448. { 0x2E, "Management Controller Firmware" },
  449. { 0x2F, "IPMI Channel" },
  450. { 0x30, "PCI Bus" },
  451. { 0x31, "PCI Express Bus" },
  452. { 0x32, "SCSI Bus (parallel)" },
  453. { 0x33, "SATA/SAS Bus" },
  454. { 0x34, "Processor/Front-Side Bus" },
  455. { 0x35, "Real Time Clock(RTC)" },
  456. { 0x36, "Reserved" },
  457. { 0x37, "Air Inlet" },
  458. { 0x38, "Reserved" },
  459. { 0x39, "Reserved" },
  460. { 0x3A, "Reserved" },
  461. { 0x3B, "Reserved" },
  462. { 0x3C, "Reserved" },
  463. { 0x3D, "Reserved" },
  464. { 0x3E, "Reserved" },
  465. { 0x3F, "Reserved" },
  466. { 0x40, "Air Inlet" },
  467. { 0x41, "Processor" },
  468. { 0x42, "Baseboard/Main System Board" },
  469. /* PICMG */
  470. { 0xA0, "PICMG Front Board" },
  471. { 0xC0, "PICMG Rear Transition Module" },
  472. { 0xC1, "PICMG AdvancedMC Module" },
  473. { 0xF0, "PICMG Shelf Management Controller" },
  474. { 0xF1, "PICMG Filtration Unit" },
  475. { 0xF2, "PICMG Shelf FRU Information" },
  476. { 0xF3, "PICMG Alarm Panel" },
  477. { 0x00, NULL },
  478. };
  479. const struct valstr entity_device_type_vals[] = {
  480. { 0x00, "Reserved" },
  481. { 0x01, "Reserved" },
  482. { 0x02, "DS1624 temperature sensor" },
  483. { 0x03, "DS1621 temperature sensor" },
  484. { 0x04, "LM75 Temperature Sensor" },
  485. { 0x05, "Heceta ASIC" },
  486. { 0x06, "Reserved" },
  487. { 0x07, "Reserved" },
  488. { 0x08, "EEPROM, 24C01" },
  489. { 0x09, "EEPROM, 24C02" },
  490. { 0x0a, "EEPROM, 24C04" },
  491. { 0x0b, "EEPROM, 24C08" },
  492. { 0x0c, "EEPROM, 24C16" },
  493. { 0x0d, "EEPROM, 24C17" },
  494. { 0x0e, "EEPROM, 24C32" },
  495. { 0x0f, "EEPROM, 24C64" },
  496. { 0x1000, "IPMI FRU Inventory" },
  497. { 0x1001, "DIMM Memory ID" },
  498. { 0x1002, "IPMI FRU Inventory" },
  499. { 0x1003, "System Processor Cartridge FRU" },
  500. { 0x11, "Reserved" },
  501. { 0x12, "Reserved" },
  502. { 0x13, "Reserved" },
  503. { 0x14, "PCF 8570 256 byte RAM" },
  504. { 0x15, "PCF 8573 clock/calendar" },
  505. { 0x16, "PCF 8574A I/O Port" },
  506. { 0x17, "PCF 8583 clock/calendar" },
  507. { 0x18, "PCF 8593 clock/calendar" },
  508. { 0x19, "Clock calendar" },
  509. { 0x1a, "PCF 8591 A/D, D/A Converter" },
  510. { 0x1b, "I/O Port" },
  511. { 0x1c, "A/D Converter" },
  512. { 0x1d, "D/A Converter" },
  513. { 0x1e, "A/D, D/A Converter" },
  514. { 0x1f, "LCD Controller/Driver" },
  515. { 0x20, "Core Logic (Chip set) Device" },
  516. { 0x21, "LMC6874 Intelligent Battery controller" },
  517. { 0x22, "Intelligent Batter controller" },
  518. { 0x23, "Combo Management ASIC" },
  519. { 0x24, "Maxim 1617 Temperature Sensor" },
  520. { 0xbf, "Other/Unspecified" },
  521. { 0x00, NULL },
  522. };
  523. const struct valstr ipmi_channel_protocol_vals[] = {
  524. { 0x00, "reserved" },
  525. { 0x01, "IPMB-1.0" },
  526. { 0x02, "ICMB-1.0" },
  527. { 0x03, "reserved" },
  528. { 0x04, "IPMI-SMBus" },
  529. { 0x05, "KCS" },
  530. { 0x06, "SMIC" },
  531. { 0x07, "BT-10" },
  532. { 0x08, "BT-15" },
  533. { 0x09, "TMode" },
  534. { 0x1c, "OEM 1" },
  535. { 0x1d, "OEM 2" },
  536. { 0x1e, "OEM 3" },
  537. { 0x1f, "OEM 4" },
  538. { 0x00, NULL },
  539. };
  540. const struct valstr ipmi_channel_medium_vals[] = {
  541. { IPMI_CHANNEL_MEDIUM_RESERVED, "reserved" },
  542. { IPMI_CHANNEL_MEDIUM_IPMB_I2C, "IPMB (I2C)" },
  543. { IPMI_CHANNEL_MEDIUM_ICMB_1, "ICMB v1.0" },
  544. { IPMI_CHANNEL_MEDIUM_ICMB_09, "ICMB v0.9" },
  545. { IPMI_CHANNEL_MEDIUM_LAN, "802.3 LAN" },
  546. { IPMI_CHANNEL_MEDIUM_SERIAL, "Serial/Modem" },
  547. { IPMI_CHANNEL_MEDIUM_LAN_OTHER,"Other LAN" },
  548. { IPMI_CHANNEL_MEDIUM_SMBUS_PCI,"PCI SMBus" },
  549. { IPMI_CHANNEL_MEDIUM_SMBUS_1, "SMBus v1.0/v1.1" },
  550. { IPMI_CHANNEL_MEDIUM_SMBUS_2, "SMBus v2.0" },
  551. { IPMI_CHANNEL_MEDIUM_USB_1, "USB 1.x" },
  552. { IPMI_CHANNEL_MEDIUM_USB_2, "USB 2.x" },
  553. { IPMI_CHANNEL_MEDIUM_SYSTEM, "System Interface" },
  554. { 0x00, NULL },
  555. };
  556. const struct valstr completion_code_vals[] = {
  557. { 0x00, "Command completed normally" },
  558. { 0xc0, "Node busy" },
  559. { 0xc1, "Invalid command" },
  560. { 0xc2, "Invalid command on LUN" },
  561. { 0xc3, "Timeout" },
  562. { 0xc4, "Out of space" },
  563. { 0xc5, "Reservation cancelled or invalid" },
  564. { 0xc6, "Request data truncated" },
  565. { 0xc7, "Request data length invalid" },
  566. { 0xc8, "Request data field length limit exceeded" },
  567. { 0xc9, "Parameter out of range" },
  568. { 0xca, "Cannot return number of requested data bytes" },
  569. { 0xcb, "Requested sensor, data, or record not found" },
  570. { 0xcc, "Invalid data field in request" },
  571. { 0xcd, "Command illegal for specified sensor or record type" },
  572. { 0xce, "Command response could not be provided" },
  573. { 0xcf, "Cannot execute duplicated request" },
  574. { 0xd0, "SDR Repository in update mode" },
  575. { 0xd1, "Device firmeware in update mode" },
  576. { 0xd2, "BMC initialization in progress" },
  577. { 0xd3, "Destination unavailable" },
  578. { 0xd4, "Insufficient privilege level" },
  579. { 0xd5, "Command not supported in present state" },
  580. { 0xd6, "Cannot execute command, command disabled" },
  581. { 0xff, "Unspecified error" },
  582. { 0x00, NULL }
  583. };
  584. const struct valstr ipmi_chassis_power_control_vals[] = {
  585. { IPMI_CHASSIS_CTL_POWER_DOWN, "Down/Off" },
  586. { IPMI_CHASSIS_CTL_POWER_UP, "Up/On" },
  587. { IPMI_CHASSIS_CTL_POWER_CYCLE, "Cycle" },
  588. { IPMI_CHASSIS_CTL_HARD_RESET, "Reset" },
  589. { IPMI_CHASSIS_CTL_PULSE_DIAG, "Diag" },
  590. { IPMI_CHASSIS_CTL_ACPI_SOFT, "Soft" },
  591. { 0x00, NULL },
  592. };
  593. const struct valstr ipmi_auth_algorithms[] = {
  594. { IPMI_AUTH_RAKP_NONE, "none" },
  595. { IPMI_AUTH_RAKP_HMAC_SHA1, "hmac_sha1" },
  596. { IPMI_AUTH_RAKP_HMAC_MD5, "hmac_md5" },
  597. #ifdef HAVE_CRYPTO_SHA256
  598. { IPMI_AUTH_RAKP_HMAC_SHA256, "hmac_sha256" },
  599. #endif /* HAVE_CRYPTO_SHA256 */
  600. { 0x00, NULL }
  601. };
  602. const struct valstr ipmi_integrity_algorithms[] = {
  603. { IPMI_INTEGRITY_NONE, "none" },
  604. { IPMI_INTEGRITY_HMAC_SHA1_96, "hmac_sha1_96" },
  605. { IPMI_INTEGRITY_HMAC_MD5_128, "hmac_md5_128" },
  606. { IPMI_INTEGRITY_MD5_128 , "md5_128" },
  607. #ifdef HAVE_CRYPTO_SHA256
  608. { IPMI_INTEGRITY_HMAC_SHA256_128, "sha256_128" },
  609. #endif /* HAVE_CRYPTO_SHA256 */
  610. { 0x00, NULL }
  611. };
  612. const struct valstr ipmi_encryption_algorithms[] = {
  613. { IPMI_CRYPT_NONE, "none" },
  614. { IPMI_CRYPT_AES_CBC_128, "aes_cbc_128" },
  615. { IPMI_CRYPT_XRC4_128, "xrc4_128" },
  616. { IPMI_CRYPT_XRC4_40, "xrc4_40" },
  617. { 0x00, NULL }
  618. };
  619. const struct valstr ipmi_user_enable_status_vals[] = {
  620. { 0x00, "unknown" },
  621. { 0x40, "enabled" },
  622. { 0x80, "disabled" },
  623. { 0xC0, "reserved" },
  624. { 0xFF, NULL },
  625. };
  626. const struct valstr picmg_frucontrol_vals[] = {
  627. { 0, "Cold Reset" },
  628. { 1, "Warm Reset" },
  629. { 2, "Graceful Reboot" },
  630. { 3, "Issue Diagnostic Interrupt" },
  631. { 4, "Quiesce" },
  632. { 5, NULL },
  633. };
  634. const struct valstr picmg_clk_family_vals[] = {
  635. { 0x00, "Unspecified" },
  636. { 0x01, "SONET/SDH/PDH" },
  637. { 0x02, "Reserved for PCI Express" },
  638. { 0x03, "Reserved" }, /* from 03h to C8h */
  639. { 0xC9, "Vendor defined clock family" }, /* from C9h to FFh */
  640. { 0x00, NULL },
  641. };
  642. const struct oemvalstr picmg_clk_accuracy_vals[] = {
  643. { 0x01, 10, "PRS" },
  644. { 0x01, 20, "STU" },
  645. { 0x01, 30, "ST2" },
  646. { 0x01, 40, "TNC" },
  647. { 0x01, 50, "ST3E" },
  648. { 0x01, 60, "ST3" },
  649. { 0x01, 70, "SMC" },
  650. { 0x01, 80, "ST4" },
  651. { 0x01, 90, "DUS" },
  652. { 0x02, 0xE0, "PCI Express Generation 2" },
  653. { 0x02, 0xF0, "PCI Express Generation 1" },
  654. { 0xffffff, 0x00, NULL }
  655. };
  656. const struct oemvalstr picmg_clk_resource_vals[] = {
  657. { 0x0, 0, "On-Carrier Device 0" },
  658. { 0x0, 1, "On-Carrier Device 1" },
  659. { 0x1, 1, "AMC Site 1 - A1" },
  660. { 0x1, 2, "AMC Site 1 - A2" },
  661. { 0x1, 3, "AMC Site 1 - A3" },
  662. { 0x1, 4, "AMC Site 1 - A4" },
  663. { 0x1, 5, "AMC Site 1 - B1" },
  664. { 0x1, 6, "AMC Site 1 - B2" },
  665. { 0x1, 7, "AMC Site 1 - B3" },
  666. { 0x1, 8, "AMC Site 1 - B4" },
  667. { 0x2, 0, "ATCA Backplane" },
  668. { 0xffffff, 0x00, NULL }
  669. };
  670. const struct oemvalstr picmg_clk_id_vals[] = {
  671. { 0x0, 0, "Clock 0" },
  672. { 0x0, 1, "Clock 1" },
  673. { 0x0, 2, "Clock 2" },
  674. { 0x0, 3, "Clock 3" },
  675. { 0x0, 4, "Clock 4" },
  676. { 0x0, 5, "Clock 5" },
  677. { 0x0, 6, "Clock 6" },
  678. { 0x0, 7, "Clock 7" },
  679. { 0x0, 8, "Clock 8" },
  680. { 0x0, 9, "Clock 9" },
  681. { 0x0, 10, "Clock 10" },
  682. { 0x0, 11, "Clock 11" },
  683. { 0x0, 12, "Clock 12" },
  684. { 0x0, 13, "Clock 13" },
  685. { 0x0, 14, "Clock 14" },
  686. { 0x0, 15, "Clock 15" },
  687. { 0x1, 1, "TCLKA" },
  688. { 0x1, 2, "TCLKB" },
  689. { 0x1, 3, "TCLKC" },
  690. { 0x1, 4, "TCLKD" },
  691. { 0x1, 5, "FLCKA" },
  692. { 0x2, 1, "CLK1A" },
  693. { 0x2, 2, "CLK1A" },
  694. { 0x2, 3, "CLK1A" },
  695. { 0x2, 4, "CLK1A" },
  696. { 0x2, 5, "CLK1A" },
  697. { 0x2, 6, "CLK1A" },
  698. { 0x2, 7, "CLK1A" },
  699. { 0x2, 8, "CLK1A" },
  700. { 0x2, 9, "CLK1A" },
  701. { 0xffffff, 0x00, NULL }
  702. };
  703. const struct valstr picmg_busres_id_vals[] = {
  704. { 0x0, "Metallic Test Bus pair #1" },
  705. { 0x1, "Metallic Test Bus pair #2" },
  706. { 0x2, "Synch clock group 1 (CLK1)" },
  707. { 0x3, "Synch clock group 2 (CLK2)" },
  708. { 0x4, "Synch clock group 3 (CLK3)" },
  709. { 0x5, NULL }
  710. };
  711. const struct valstr picmg_busres_board_cmd_vals[] = {
  712. { 0x0, "Query" },
  713. { 0x1, "Release" },
  714. { 0x2, "Force" },
  715. { 0x3, "Bus Free" },
  716. { 0x4, NULL }
  717. };
  718. const struct valstr picmg_busres_shmc_cmd_vals[] = {
  719. { 0x0, "Request" },
  720. { 0x1, "Relinquish" },
  721. { 0x2, "Notify" },
  722. { 0x3, NULL }
  723. };
  724. const struct oemvalstr picmg_busres_board_status_vals[] = {
  725. { 0x0, 0x0, "In control" },
  726. { 0x0, 0x1, "No control" },
  727. { 0x1, 0x0, "Ack" },
  728. { 0x1, 0x1, "Refused" },
  729. { 0x1, 0x2, "No control" },
  730. { 0x2, 0x0, "Ack" },
  731. { 0x2, 0x1, "No control" },
  732. { 0x3, 0x0, "Accept" },
  733. { 0x3, 0x1, "Not Needed" },
  734. { 0xffffff, 0x00, NULL }
  735. };
  736. const struct oemvalstr picmg_busres_shmc_status_vals[] = {
  737. { 0x0, 0x0, "Grant" },
  738. { 0x0, 0x1, "Busy" },
  739. { 0x0, 0x2, "Defer" },
  740. { 0x0, 0x3, "Deny" },
  741. { 0x1, 0x0, "Ack" },
  742. { 0x1, 0x1, "Error" },
  743. { 0x2, 0x0, "Ack" },
  744. { 0x2, 0x1, "Error" },
  745. { 0x2, 0x2, "Deny" },
  746. { 0xffffff, 0x00, NULL }
  747. };