123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967 |
- /*
- * Copyright (c) 2004 Dell Computers. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistribution of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistribution in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Neither the name of Dell Computers, or the names of
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * This software is provided "AS IS," without a warranty of any kind.
- * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
- * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
- * DELL COMPUTERS ("DELL") AND ITS LICENSORS SHALL NOT BE LIABLE
- * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
- * OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
- * DELL OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA,
- * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
- * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
- * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
- * EVEN IF DELL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
- #ifndef IPMI_PEF_H
- #define IPMI_PEF_H
- #include <ipmitool/ipmi.h>
- /* PEF */
- struct pef_capabilities { /* "get pef capabilities" response */
- uint8_t version;
- uint8_t actions; /* mapped by PEF_ACTION_xxx */
- uint8_t event_filter_count;
- };
- typedef enum {
- P_TRUE,
- P_SUPP,
- P_ACTV,
- P_ABLE,
- } flg_e;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_table_entry {
- #define PEF_CONFIG_ENABLED 0x80
- #define PEF_CONFIG_PRECONFIGURED 0x40
- uint8_t config;
- #define PEF_ACTION_DIAGNOSTIC_INTERRUPT 0x20
- #define PEF_ACTION_OEM 0x10
- #define PEF_ACTION_POWER_CYCLE 0x08
- #define PEF_ACTION_RESET 0x04
- #define PEF_ACTION_POWER_DOWN 0x02
- #define PEF_ACTION_ALERT 0x01
- uint8_t action;
- #define PEF_POLICY_NUMBER_MASK 0x0f
- uint8_t policy_number;
- #define PEF_SEVERITY_NON_RECOVERABLE 0x20
- #define PEF_SEVERITY_CRITICAL 0x10
- #define PEF_SEVERITY_WARNING 0x08
- #define PEF_SEVERITY_OK 0x04
- #define PEF_SEVERITY_INFORMATION 0x02
- #define PEF_SEVERITY_MONITOR 0x01
- uint8_t severity;
- uint8_t generator_ID_addr;
- uint8_t generator_ID_lun;
- uint8_t sensor_type;
- #define PEF_SENSOR_NUMBER_MATCH_ANY 0xff
- uint8_t sensor_number;
- #define PEF_EVENT_TRIGGER_UNSPECIFIED 0x0
- #define PEF_EVENT_TRIGGER_THRESHOLD 0x1
- #define PEF_EVENT_TRIGGER_SENSOR_SPECIFIC 0x6f
- #define PEF_EVENT_TRIGGER_MATCH_ANY 0xff
- uint8_t event_trigger;
- uint8_t event_data_1_offset_mask[2];
- uint8_t event_data_1_AND_mask;
- uint8_t event_data_1_compare_1;
- uint8_t event_data_1_compare_2;
- uint8_t event_data_2_AND_mask;
- uint8_t event_data_2_compare_1;
- uint8_t event_data_2_compare_2;
- uint8_t event_data_3_AND_mask;
- uint8_t event_data_3_compare_1;
- uint8_t event_data_3_compare_2;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- struct desc_map { /* maps a description to a value/mask */
- const char *desc;
- uint32_t mask;
- };
- struct bit_desc_map { /* description text container */
- #define BIT_DESC_MAP_LIST 0x1 /* index-based text array */
- #define BIT_DESC_MAP_ANY 0x2 /* bitwise, but only print 1st one */
- #define BIT_DESC_MAP_ALL 0x3 /* bitwise, print them all */
- uint32_t desc_map_type;
- struct desc_map desc_maps[128];
- };
- static struct bit_desc_map
- pef_b2s_actions __attribute__((unused)) = {
- BIT_DESC_MAP_ALL,
- { {"Alert", PEF_ACTION_ALERT},
- {"Power-off", PEF_ACTION_POWER_DOWN},
- {"Reset", PEF_ACTION_RESET},
- {"Power-cycle", PEF_ACTION_POWER_CYCLE},
- {"OEM-defined", PEF_ACTION_OEM},
- {"Diagnostic-interrupt", PEF_ACTION_DIAGNOSTIC_INTERRUPT},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_severities __attribute__((unused)) = {
- BIT_DESC_MAP_ANY,
- { {"Non-recoverable", PEF_SEVERITY_NON_RECOVERABLE},
- {"Critical", PEF_SEVERITY_CRITICAL},
- {"Warning", PEF_SEVERITY_WARNING},
- {"OK", PEF_SEVERITY_OK},
- {"Information", PEF_SEVERITY_INFORMATION},
- {"Monitor", PEF_SEVERITY_MONITOR},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_sensortypes __attribute__((unused)) = {
- BIT_DESC_MAP_LIST,
- { {"Any", 255},
- {"Temperature", 1},
- {"Voltage", 2},
- {"Current", 3},
- {"Fan", 4},
- {"Chassis Intrusion", 5},
- {"Platform security breach", 6},
- {"Processor", 7},
- {"Power supply", 8},
- {"Power Unit", 9},
- {"Cooling device", 10},
- {"Other (units-based)", 11},
- {"Memory", 12},
- {"Drive Slot", 13},
- {"POST memory resize", 14},
- {"POST error", 15},
- {"Logging disabled", 16},
- {"Watchdog 1", 17},
- {"System event", 18},
- {"Critical Interrupt", 19},
- {"Button", 20},
- {"Module/board", 21},
- {"uController/coprocessor", 22},
- {"Add-in card", 23},
- {"Chassis", 24},
- {"Chipset", 25},
- {"Other (FRU)", 26},
- {"Cable/interconnect", 27},
- {"Terminator", 28},
- {"System boot", 29},
- {"Boot error", 30},
- {"OS boot", 31},
- {"OS critical stop", 32},
- {"Slot/connector", 33},
- {"ACPI power state", 34},
- {"Watchdog 2", 35},
- {"Platform alert", 36},
- {"Entity presence", 37},
- {"Monitor ASIC/IC", 38},
- {"LAN", 39},
- {"Management subsytem health",40},
- {"Battery", 41},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_1 = {
- BIT_DESC_MAP_LIST,
- { {"<LNC", 0}, /* '<' : getting worse */
- {">LNC", 1}, /* '>' : getting better */
- {"<LC", 2},
- {">LC", 3},
- {"<LNR", 4},
- {">LNR", 5},
- {">UNC", 6},
- {"<UNC", 7},
- {">UC", 8},
- {"<UC", 9},
- {">UNR", 10},
- {"<UNR", 11},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_2 = {
- BIT_DESC_MAP_LIST,
- { {"transition to idle", 0},
- {"transition to active", 1},
- {"transition to busy", 2},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_3 = {
- BIT_DESC_MAP_LIST,
- { {"state deasserted", 0},
- {"state asserted", 1},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_4 = {
- BIT_DESC_MAP_LIST,
- { {"predictive failure deasserted", 0},
- {"predictive failure asserted", 1},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_5 = {
- BIT_DESC_MAP_LIST,
- { {"limit not exceeded", 0},
- {"limit exceeded", 1},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_6 = {
- BIT_DESC_MAP_LIST,
- { {"performance met", 0},
- {"performance lags", 1},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_7 = {
- BIT_DESC_MAP_LIST,
- { {"ok", 0},
- {"<warn", 1}, /* '<' : getting worse */
- {"<fail", 2},
- {"<dead", 3},
- {">warn", 4}, /* '>' : getting better */
- {">fail", 5},
- {"dead", 6},
- {"monitor", 7},
- {"informational", 8},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_8 = {
- BIT_DESC_MAP_LIST,
- { {"device removed/absent", 0},
- {"device inserted/present", 1},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_9 = {
- BIT_DESC_MAP_LIST,
- { {"device disabled", 0},
- {"device enabled", 1},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_10 = {
- BIT_DESC_MAP_LIST,
- { {"transition to running", 0},
- {"transition to in test", 1},
- {"transition to power off", 2},
- {"transition to online", 3},
- {"transition to offline", 4},
- {"transition to off duty", 5},
- {"transition to degraded", 6},
- {"transition to power save", 7},
- {"install error", 8},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_11 = {
- BIT_DESC_MAP_LIST,
- { {"fully redundant", 0},
- {"redundancy lost", 1},
- {"redundancy degraded", 2},
- {"<non-redundant/sufficient", 3}, /* '<' : getting worse */
- {">non-redundant/sufficient", 4}, /* '>' : getting better */
- {"non-redundant/insufficient", 5},
- {"<redundancy degraded", 6},
- {">redundancy degraded", 7},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_gentype_12 = {
- BIT_DESC_MAP_LIST,
- { {"D0 power state", 0},
- {"D1 power state", 1},
- {"D2 power state", 2},
- {"D3 power state", 3},
- {NULL}
- } };
- static struct bit_desc_map *
- pef_b2s_generic_ER[] __attribute__((unused)) = {
- &pef_b2s_gentype_1,
- &pef_b2s_gentype_2,
- &pef_b2s_gentype_3,
- &pef_b2s_gentype_4,
- &pef_b2s_gentype_5,
- &pef_b2s_gentype_6,
- &pef_b2s_gentype_7,
- &pef_b2s_gentype_8,
- &pef_b2s_gentype_9,
- &pef_b2s_gentype_10,
- &pef_b2s_gentype_11,
- &pef_b2s_gentype_12,
- };
- #define PEF_B2S_GENERIC_ER_ENTRIES \
- (sizeof(pef_b2s_generic_ER) / sizeof(pef_b2s_generic_ER[0]))
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_policy_entry {
- #define PEF_POLICY_ID_MASK 0xf0
- #define PEF_POLICY_ID_SHIFT 4
- #define PEF_POLICY_DISABLED 0xF7
- #define PEF_POLICY_ENABLED 0x08
- #define PEF_POLICY_FLAGS_MASK 0x07
- #define PEF_POLICY_FLAGS_MATCH_ALWAYS 0
- #define PEF_POLICY_FLAGS_PREV_OK_SKIP 1
- #define PEF_POLICY_FLAGS_PREV_OK_NEXT_POLICY_SET 2
- #define PEF_POLICY_FLAGS_PREV_OK_NEXT_CHANNEL_IN_SET 3
- #define PEF_POLICY_FLAGS_PREV_OK_NEXT_DESTINATION_IN_SET 4
- uint8_t policy;
- #define PEF_POLICY_CHANNEL_MASK 0xf0
- #define PEF_POLICY_CHANNEL_SHIFT 4
- #define PEF_POLICY_DESTINATION_MASK 0x0f
- uint8_t chan_dest;
- #define PEF_POLICY_EVENT_SPECIFIC 0x80
- uint8_t alert_string_key;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- static struct bit_desc_map
- pef_b2s_policies __attribute__((unused)) = {
- BIT_DESC_MAP_LIST,
- { {"Match-always", PEF_POLICY_FLAGS_MATCH_ALWAYS},
- {"Try-next-entry", PEF_POLICY_FLAGS_PREV_OK_SKIP},
- {"Try-next-set", PEF_POLICY_FLAGS_PREV_OK_NEXT_POLICY_SET},
- {"Try-next-channel", PEF_POLICY_FLAGS_PREV_OK_NEXT_CHANNEL_IN_SET},
- {"Try-next-destination", PEF_POLICY_FLAGS_PREV_OK_NEXT_DESTINATION_IN_SET},
- {NULL}
- } };
- static struct bit_desc_map
- pef_b2s_ch_medium __attribute__((unused)) = {
- #define PEF_CH_MEDIUM_TYPE_IPMB 1
- #define PEF_CH_MEDIUM_TYPE_ICMB_10 2
- #define PEF_CH_MEDIUM_TYPE_ICMB_09 3
- #define PEF_CH_MEDIUM_TYPE_LAN 4
- #define PEF_CH_MEDIUM_TYPE_SERIAL 5
- #define PEF_CH_MEDIUM_TYPE_XLAN 6
- #define PEF_CH_MEDIUM_TYPE_PCI_SMBUS 7
- #define PEF_CH_MEDIUM_TYPE_SMBUS_V1X 8
- #define PEF_CH_MEDIUM_TYPE_SMBUS_V2X 9
- #define PEF_CH_MEDIUM_TYPE_USB_V1X 10
- #define PEF_CH_MEDIUM_TYPE_USB_V2X 11
- #define PEF_CH_MEDIUM_TYPE_SYSTEM 12
- BIT_DESC_MAP_LIST,
- { {"IPMB (I2C)", PEF_CH_MEDIUM_TYPE_IPMB},
- {"ICMB v1.0", PEF_CH_MEDIUM_TYPE_ICMB_10},
- {"ICMB v0.9", PEF_CH_MEDIUM_TYPE_ICMB_09},
- {"802.3 LAN", PEF_CH_MEDIUM_TYPE_LAN},
- {"Serial/Modem (RS-232)", PEF_CH_MEDIUM_TYPE_SERIAL},
- {"Other LAN", PEF_CH_MEDIUM_TYPE_XLAN},
- {"PCI SMBus", PEF_CH_MEDIUM_TYPE_PCI_SMBUS},
- {"SMBus v1.0/1.1", PEF_CH_MEDIUM_TYPE_SMBUS_V1X},
- {"SMBus v2.0", PEF_CH_MEDIUM_TYPE_SMBUS_V2X},
- {"USB 1.x", PEF_CH_MEDIUM_TYPE_USB_V1X},
- {"USB 2.x", PEF_CH_MEDIUM_TYPE_USB_V2X},
- {"System I/F (KCS,SMIC,BT)", PEF_CH_MEDIUM_TYPE_SYSTEM},
- {NULL}
- } };
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_selector {
- #define PEF_CFGPARM_ID_REVISION_ONLY_MASK 0x80
- #define PEF_CFGPARM_ID_SET_IN_PROGRESS 0
- #define PEF_CFGPARM_ID_PEF_CONTROL 1
- #define PEF_CFGPARM_ID_PEF_ACTION 2
- #define PEF_CFGPARM_ID_PEF_STARTUP_DELAY 3
- #define PEF_CFGPARM_ID_PEF_ALERT_STARTUP_DELAY 4
- #define PEF_CFGPARM_ID_PEF_FILTER_TABLE_SIZE 5
- #define PEF_CFGPARM_ID_PEF_FILTER_TABLE_ENTRY 6
- #define PEF_CFGPARM_ID_PEF_FILTER_TABLE_DATA_1 7
- #define PEF_CFGPARM_ID_PEF_ALERT_POLICY_TABLE_SIZE 8
- #define PEF_CFGPARM_ID_PEF_ALERT_POLICY_TABLE_ENTRY 9
- #define PEF_CFGPARM_ID_SYSTEM_GUID 10
- #define PEF_CFGPARM_ID_PEF_ALERT_STRING_TABLE_SIZE 11
- #define PEF_CFGPARM_ID_PEF_ALERT_STRING_KEY 12
- #define PEF_CFGPARM_ID_PEF_ALERT_STRING_TABLE_ENTRY 13
- uint8_t id;
- uint8_t set;
- uint8_t block;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_set_in_progress {
- #define PEF_SET_IN_PROGRESS_COMMIT_WRITE 0x02
- #define PEF_SET_IN_PROGRESS 0x01
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_control {
- #define PEF_CONTROL_ENABLE_ALERT_STARTUP_DELAY 0x08
- #define PEF_CONTROL_ENABLE_STARTUP_DELAY 0x04
- #define PEF_CONTROL_ENABLE_EVENT_MESSAGES 0x02
- #define PEF_CONTROL_ENABLE 0x01
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- static struct bit_desc_map
- pef_b2s_control __attribute__((unused)) = {
- BIT_DESC_MAP_ALL,
- { {"PEF", PEF_CONTROL_ENABLE},
- {"PEF event messages", PEF_CONTROL_ENABLE_EVENT_MESSAGES},
- {"PEF startup delay", PEF_CONTROL_ENABLE_STARTUP_DELAY},
- {"Alert startup delay", PEF_CONTROL_ENABLE_ALERT_STARTUP_DELAY},
- {NULL}
- } };
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_action {
- #define PEF_ACTION_ENABLE_DIAGNOSTIC_INTERRUPT 0x20
- #define PEF_ACTION_ENABLE_OEM 0x10
- #define PEF_ACTION_ENABLE_POWER_CYCLE 0x08
- #define PEF_ACTION_ENABLE_RESET 0x04
- #define PEF_ACTION_ENABLE_POWER_DOWN 0x02
- #define PEF_ACTION_ENABLE_ALERT 0x01
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_startup_delay {
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_alert_startup_delay {
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_filter_table_size {
- #define PEF_FILTER_TABLE_SIZE_MASK 0x7f
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_filter_table_entry {
- # define PEF_FILTER_DISABLED 0x7F
- # define PEF_FILTER_ENABLED 0x80
- # define PEF_FILTER_TABLE_ID_MASK 0x7F
- uint8_t data1;
- struct pef_table_entry entry;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_filter_table_data_1 {
- uint8_t id;
- uint8_t cfg;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_policy_table_size {
- #define PEF_POLICY_TABLE_SIZE_MASK 0x7f
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_policy_table_entry {
- #define PEF_POLICY_TABLE_ID_MASK 0x7f
- uint8_t data1;
- struct pef_policy_entry entry;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_system_guid {
- #define PEF_SYSTEM_GUID_USED_IN_PET 0x01
- uint8_t data1;
- uint8_t guid[16];
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_alert_string_table_size {
- #define PEF_ALERT_STRING_TABLE_SIZE_MASK 0x7f
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_alert_string_keys {
- #define PEF_ALERT_STRING_ID_MASK 0x7f
- uint8_t data1;
- #define PEF_EVENT_FILTER_ID_MASK 0x7f
- uint8_t data2;
- #define PEF_ALERT_STRING_SET_ID_MASK 0x7f
- uint8_t data3;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_cfgparm_alert_string_table_entry {
- uint8_t id;
- uint8_t blockno;
- uint8_t block[16];
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- /* PEF - LAN */
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_lan_cfgparm_selector {
- #define PEF_LAN_CFGPARM_CH_REVISION_ONLY_MASK 0x80
- #define PEF_LAN_CFGPARM_CH_MASK 0x0f
- #define PEF_LAN_CFGPARM_ID_PET_COMMUNITY 16
- #define PEF_LAN_CFGPARM_ID_DEST_COUNT 17
- #define PEF_LAN_CFGPARM_ID_DESTTYPE 18
- #define PEF_LAN_CFGPARM_ID_DESTADDR 19
- uint8_t ch;
- uint8_t id;
- uint8_t set;
- uint8_t block;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_lan_cfgparm_dest_size {
- #define PEF_LAN_DEST_TABLE_SIZE_MASK 0x0f
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_lan_cfgparm_dest_type {
- #define PEF_LAN_DEST_TYPE_ID_MASK 0x0f
- uint8_t dest;
- #define PEF_LAN_DEST_TYPE_ACK 0x80
- #define PEF_LAN_DEST_TYPE_MASK 0x07
- #define PEF_LAN_DEST_TYPE_PET 0
- #define PEF_LAN_DEST_TYPE_OEM_1 6
- #define PEF_LAN_DEST_TYPE_OEM_2 7
- uint8_t dest_type;
- uint8_t alert_timeout;
- #define PEF_LAN_RETRIES_MASK 0x07
- uint8_t retries;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- static struct bit_desc_map
- pef_b2s_lan_desttype __attribute__((unused)) = {
- BIT_DESC_MAP_LIST,
- { {"Acknowledged", PEF_LAN_DEST_TYPE_ACK},
- {"PET", PEF_LAN_DEST_TYPE_PET},
- {"OEM 1", PEF_LAN_DEST_TYPE_OEM_1},
- {"OEM 2", PEF_LAN_DEST_TYPE_OEM_2},
- {NULL}
- } };
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_lan_cfgparm_dest_info {
- #define PEF_LAN_DEST_MASK 0x0f
- uint8_t dest;
- #define PEF_LAN_DEST_ADDRTYPE_MASK 0xf0
- #define PEF_LAN_DEST_ADDRTYPE_SHIFT 4
- #define PEF_LAN_DEST_ADDRTYPE_IPV4_MAC 0x00
- uint8_t addr_type;
- #define PEF_LAN_DEST_GATEWAY_USE_BACKUP 0x01
- uint8_t gateway;
- uint8_t ip[4];
- uint8_t mac[6];
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- /* PEF - Serial/PPP */
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_selector {
- #define PEF_SERIAL_CFGPARM_CH_REVISION_ONLY_MASK 0x80
- #define PEF_SERIAL_CFGPARM_CH_MASK 0x0f
- #define PEF_SERIAL_CFGPARM_ID_DEST_COUNT 16
- #define PEF_SERIAL_CFGPARM_ID_DESTINFO 17
- #define PEF_SERIAL_CFGPARM_ID_DEST_DIAL_STRING_COUNT 20
- #define PEF_SERIAL_CFGPARM_ID_DEST_DIAL_STRING 21
- #define PEF_SERIAL_CFGPARM_ID_TAP_ACCT_COUNT 24
- #define PEF_SERIAL_CFGPARM_ID_TAP_ACCT_INFO 25
- #define PEF_SERIAL_CFGPARM_ID_TAP_ACCT_PAGER_STRING 27
- uint8_t ch;
- uint8_t id;
- uint8_t set;
- uint8_t block;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_dest_size {
- #define PEF_SERIAL_DEST_TABLE_SIZE_MASK 0x0f
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_dest_info {
- #define PEF_SERIAL_DEST_MASK 0x0f
- uint8_t dest;
- #define PEF_SERIAL_DEST_TYPE_ACK 0x80
- #define PEF_SERIAL_DEST_TYPE_MASK 0x0f
- #define PEF_SERIAL_DEST_TYPE_DIAL 0
- #define PEF_SERIAL_DEST_TYPE_TAP 1
- #define PEF_SERIAL_DEST_TYPE_PPP 2
- #define PEF_SERIAL_DEST_TYPE_BASIC_CALLBACK 3
- #define PEF_SERIAL_DEST_TYPE_PPP_CALLBACK 4
- #define PEF_SERIAL_DEST_TYPE_OEM_1 14
- #define PEF_SERIAL_DEST_TYPE_OEM_2 15
- uint8_t dest_type;
- uint8_t alert_timeout;
- #define PEF_SERIAL_RETRIES_MASK 0x77
- #define PEF_SERIAL_RETRIES_POST_CONNECT_MASK 0x70
- #define PEF_SERIAL_RETRIES_PRE_CONNECT_MASK 0x07
- uint8_t retries;
- #define PEF_SERIAL_DIALPAGE_STRING_ID_MASK 0xf0
- #define PEF_SERIAL_DIALPAGE_STRING_ID_SHIFT 4
- #define PEF_SERIAL_TAP_PAGE_SERVICE_ID_MASK 0x0f
- #define PEF_SERIAL_PPP_ACCT_IPADDR_ID_MASK 0xf0
- #define PEF_SERIAL_PPP_ACCT_IPADDR_ID_SHIFT 4
- #define PEF_SERIAL_PPP_ACCT_ID_MASK 0x0f
- #define PEF_SERIAL_CALLBACK_IPADDR_ID_MASK 0x0f
- #define PEF_SERIAL_CALLBACK_IPADDR_ID_SHIFT 4
- #define PEF_SERIAL_CALLBACK_ACCT_ID_MASK 0xf0
- uint8_t data5;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- static struct bit_desc_map
- pef_b2s_serial_desttype __attribute__((unused)) = {
- BIT_DESC_MAP_LIST,
- { {"Acknowledged", PEF_SERIAL_DEST_TYPE_ACK},
- {"TAP page", PEF_SERIAL_DEST_TYPE_TAP},
- {"PPP PET", PEF_SERIAL_DEST_TYPE_PPP},
- {"Basic callback", PEF_SERIAL_DEST_TYPE_BASIC_CALLBACK},
- {"PPP callback", PEF_SERIAL_DEST_TYPE_PPP_CALLBACK},
- {"OEM 1", PEF_SERIAL_DEST_TYPE_OEM_1},
- {"OEM 2", PEF_SERIAL_DEST_TYPE_OEM_2},
- {NULL}
- } };
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_dial_string_count {
- #define PEF_SERIAL_DIAL_STRING_COUNT_MASK 0x0f
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_dial_string {
- #define PEF_SERIAL_DIAL_STRING_MASK 0x0f
- uint8_t data1;
- uint8_t data2;
- uint8_t data3;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_tap_acct_count {
- #define PEF_SERIAL_TAP_ACCT_COUNT_MASK 0x0f
- uint8_t data1;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_tap_acct_info {
- uint8_t data1;
- #define PEF_SERIAL_TAP_ACCT_INFO_DIAL_STRING_ID_MASK 0xf0
- #define PEF_SERIAL_TAP_ACCT_INFO_DIAL_STRING_ID_SHIFT 4
- #define PEF_SERIAL_TAP_ACCT_INFO_SVC_SETTINGS_ID_MASK 0x0f
- uint8_t data2;
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct pef_serial_cfgparm_tap_svc_settings {
- uint8_t data1;
- #define PEF_SERIAL_TAP_CONFIRMATION_ACK_AFTER_ETX 0x0
- #define PEF_SERIAL_TAP_CONFIRMATION_211_ACK_AFTER_ETX 0x01
- #define PEF_SERIAL_TAP_CONFIRMATION_21X_ACK_AFTER_ETX 0x02
- uint8_t confirmation_flags;
- uint8_t service_type[3];
- uint8_t escape_mask[4];
- uint8_t timeout_parms[3];
- uint8_t retry_parms[2];
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- static struct bit_desc_map
- pef_b2s_tap_svc_confirm __attribute__((unused)) = {
- BIT_DESC_MAP_LIST,
- { {"ACK", PEF_SERIAL_TAP_CONFIRMATION_ACK_AFTER_ETX},
- {"211+ACK", PEF_SERIAL_TAP_CONFIRMATION_211_ACK_AFTER_ETX},
- {"{211|213}+ACK", PEF_SERIAL_TAP_CONFIRMATION_21X_ACK_AFTER_ETX},
- {NULL}
- } };
- #if 0 /* FYI : config parm groupings */
- struct pef_config_parms { /* PEF */
- struct pef_cfgparm_set_in_progress;
- struct pef_cfgparm_control;
- struct pef_cfgparm_action;
- struct pef_cfgparm_startup_delay; /* in seconds, 1-based */
- struct pef_cfgparm_alert_startup_delay; /* in seconds, 1-based */
- struct pef_cfgparm_filter_table_size; /* 1-based, READ-ONLY */
- struct pef_cfgparm_filter_table_entry;
- struct pef_cfgparm_filter_table_data_1;
- struct pef_cfgparm_policy_table_size;
- struct pef_cfgparm_policy_table_entry;
- struct pef_cfgparm_system_guid;
- struct pef_cfgparm_alert_string_table_size;
- struct pef_cfgparm_alert_string_keys;
- struct pef_cfgparm_alert_string_table_entry;
- } ATTRIBUTE_PACKING;
- struct pef_lan_config_parms { /* LAN */
- struct pef_lan_cfgparm_set_in_progress;
- struct pef_lan_cfgparm_auth_capabilities;
- struct pef_lan_cfgparm_auth_type;
- struct pef_lan_cfgparm_ip_address;
- struct pef_lan_cfgparm_ip_address_source;
- struct pef_lan_cfgparm_mac_address;
- struct pef_lan_cfgparm_subnet_mask;
- struct pef_lan_cfgparm_ipv4_header_parms;
- struct pef_lan_cfgparm_primary_rmcp_port;
- struct pef_lan_cfgparm_secondary_rmcp_port;
- struct pef_lan_cfgparm_bmc_generated_arp_control;
- struct pef_lan_cfgparm_gratuitous_arp;
- struct pef_lan_cfgparm_default_gateway_ipaddr;
- struct pef_lan_cfgparm_default_gateway_macaddr;
- struct pef_lan_cfgparm_backup_gateway_ipaddr;
- struct pef_lan_cfgparm_backup_gateway_macaddr;
- struct pef_lan_cfgparm_pet_community;
- struct pef_lan_cfgparm_destination_count;
- struct pef_lan_cfgparm_destination_type;
- struct pef_lan_cfgparm_destination_ipaddr;
- } ATTRIBUTE_PACKING;
- struct pef_serial_config_parms { /* Serial/PPP */
- struct pef_serial_cfgparm_set_in_progress;
- struct pef_serial_cfgparm_auth_capabilities;
- struct pef_serial_cfgparm_auth_type;
- struct pef_serial_cfgparm_connection_mode;
- struct pef_serial_cfgparm_idle_timeout;
- struct pef_serial_cfgparm_callback_control;
- struct pef_serial_cfgparm_session_termination;
- struct pef_serial_cfgparm_ipmi_settings;
- struct pef_serial_cfgparm_mux_control;
- struct pef_serial_cfgparm_modem_ring_time;
- struct pef_serial_cfgparm_modem_init_string;
- struct pef_serial_cfgparm_modem_escape_sequence;
- struct pef_serial_cfgparm_modem_hangup_sequence;
- struct pef_serial_cfgparm_modem_dial_command;
- struct pef_serial_cfgparm_page_blackout_interval;
- struct pef_serial_cfgparm_pet_community;
- struct pef_serial_cfgparm_destination_count;
- struct pef_serial_cfgparm_destination_info;
- struct pef_serial_cfgparm_call_retry_interval;
- struct pef_serial_cfgparm_destination_settings;
- struct pef_serial_cfgparm_dialstring_count;
- struct pef_serial_cfgparm_dialstring_info;
- struct pef_serial_cfgparm_ipaddr_count;
- struct pef_serial_cfgparm_ipaddr_info;
- struct pef_serial_cfgparm_tap_acct_count;
- struct pef_serial_cfgparm_tap_acct_info;
- struct pef_serial_cfgparm_tap_acct_passwords; /* WRITE only */
- struct pef_serial_cfgparm_tap_pager_id_strings;
- struct pef_serial_cfgparm_tap_service_settings;
- struct pef_serial_cfgparm_terminal_mode_config;
- struct pef_serial_cfgparm_ppp_otions;
- struct pef_serial_cfgparm_ppp_primary_rmcp_port;
- struct pef_serial_cfgparm_ppp_secondary_rmcp_port;
- struct pef_serial_cfgparm_ppp_link_auth;
- struct pef_serial_cfgparm_ppp_chap_name;
- struct pef_serial_cfgparm_ppp_accm;
- struct pef_serial_cfgparm_ppp_snoop_accm;
- struct pef_serial_cfgparm_ppp_acct_count;
- struct pef_serial_cfgparm_ppp_acct_dialstring_selector;
- struct pef_serial_cfgparm_ppp_acct_ipaddrs;
- struct pef_serial_cfgparm_ppp_acct_user_names;
- struct pef_serial_cfgparm_ppp_acct_user_domains;
- struct pef_serial_cfgparm_ppp_acct_user_passwords; /* WRITE only */
- struct pef_serial_cfgparm_ppp_acct_auth_settings;
- struct pef_serial_cfgparm_ppp_acct_connect_hold_times;
- struct pef_serial_cfgparm_ppp_udp_proxy_ipheader;
- struct pef_serial_cfgparm_ppp_udp_proxy_xmit_bufsize;
- struct pef_serial_cfgparm_ppp_udp_proxy_recv_bufsize;
- struct pef_serial_cfgparm_ppp_remote_console_ipaddr;
- } ATTRIBUTE_PACKING;
- #endif
- #define IPMI_CMD_GET_PEF_CAPABILITIES 0x10
- #define IPMI_CMD_SET_PEF_CONFIG_PARMS 0x12
- #define IPMI_CMD_GET_PEF_CONFIG_PARMS 0x13
- #define IPMI_CMD_GET_LAST_PROCESSED_EVT_ID 0x15
- #define IPMI_CMD_GET_SYSTEM_GUID 0x37
- #define IPMI_CMD_GET_CHANNEL_INFO 0x42
- #define IPMI_CMD_LAN_GET_CONFIG 0x02
- #define IPMI_CMD_SERIAL_GET_CONFIG 0x11
- struct pef_cfgparm_set_policy_table_entry
- {
- uint8_t param_selector;
- uint8_t policy_id;
- struct pef_policy_entry entry;
- } ATTRIBUTE_PACKING;
- const char * ipmi_pef_bit_desc(struct bit_desc_map * map, uint32_t val);
- void ipmi_pef_print_flags(struct bit_desc_map * map, flg_e type, uint32_t val);
- void ipmi_pef_print_dec(const char * text, uint32_t val);
- void ipmi_pef_print_hex(const char * text, uint32_t val);
- void ipmi_pef_print_1xd(const char * text, uint32_t val);
- void ipmi_pef_print_2xd(const char * text, uint8_t u1, uint8_t u2);
- void ipmi_pef_print_str(const char * text, const char * val);
- int ipmi_pef_main(struct ipmi_intf * intf, int argc, char ** argv);
- #endif /* IPMI_PEF_H */
|