Fixed AMC point-to-point record parsing in FRU

-Fixed detection of packing support in GCC
 -Added packing support detection magic on all packed structures in project
This commit is contained in:
Francois Isabelle 2009-06-09 15:38:09 +00:00
parent fb0d4e7fc1
commit b23f858ee3
17 changed files with 764 additions and 269 deletions

View File

@ -41,6 +41,9 @@
#include <ipmitool/helper.h> #include <ipmitool/helper.h>
#include <ipmitool/ipmi_cc.h> #include <ipmitool/ipmi_cc.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#define IPMI_BUF_SIZE 1024 #define IPMI_BUF_SIZE 1024

View File

@ -54,6 +54,9 @@
* The Get Authentication Capabilities response structure * The Get Authentication Capabilities response structure
* From table 22-15 of the IPMI v2.0 spec * From table 22-15 of the IPMI v2.0 spec
*/ */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct get_channel_auth_cap_rsp { struct get_channel_auth_cap_rsp {
uint8_t channel_number; uint8_t channel_number;
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
@ -93,7 +96,10 @@ struct get_channel_auth_cap_rsp {
#endif #endif
uint8_t oem_id[3]; /* IANA enterprise number for auth type */ uint8_t oem_id[3]; /* IANA enterprise number for auth type */
uint8_t oem_aux_data; /* Additional OEM specific data for oem auths */ uint8_t oem_aux_data; /* Additional OEM specific data for oem auths */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
@ -101,6 +107,9 @@ struct get_channel_auth_cap_rsp {
* The Get Channel Info response structure * The Get Channel Info response structure
* From table 22-29 of the IPMI v2.0 spec * From table 22-29 of the IPMI v2.0 spec
*/ */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct get_channel_info_rsp { struct get_channel_info_rsp {
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint8_t __reserved1 : 4; uint8_t __reserved1 : 4;
@ -132,7 +141,10 @@ struct get_channel_info_rsp {
#endif #endif
uint8_t vendor_id[3]; /* For OEM that specified the protocol */ uint8_t vendor_id[3]; /* For OEM that specified the protocol */
uint8_t aux_info[2]; /* Not used*/ uint8_t aux_info[2]; /* Not used*/
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
@ -140,6 +152,9 @@ struct get_channel_info_rsp {
* The Get Channel Access response structure * The Get Channel Access response structure
* From table 22-28 of the IPMI v2.0 spec * From table 22-28 of the IPMI v2.0 spec
*/ */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct get_channel_access_rsp { struct get_channel_access_rsp {
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint8_t __reserved1 : 2; uint8_t __reserved1 : 2;
@ -161,9 +176,14 @@ struct get_channel_access_rsp {
uint8_t channel_priv_limit : 4; /* Channel privilege level limit */ uint8_t channel_priv_limit : 4; /* Channel privilege level limit */
uint8_t __reserved2 : 4; uint8_t __reserved2 : 4;
#endif #endif
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct get_user_access_rsp { struct get_user_access_rsp {
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint8_t __reserved1 : 2; uint8_t __reserved1 : 2;
@ -190,8 +210,14 @@ struct get_user_access_rsp {
uint8_t callin_callback : 1; uint8_t callin_callback : 1;
uint8_t __reserved4 : 1; uint8_t __reserved4 : 1;
#endif #endif
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct set_user_access_data { struct set_user_access_data {
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint8_t change_bits : 1; uint8_t change_bits : 1;
@ -218,7 +244,10 @@ struct set_user_access_data {
uint8_t session_limit : 4; uint8_t session_limit : 4;
uint8_t __reserved3 : 4; uint8_t __reserved3 : 4;
#endif #endif
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
uint8_t ipmi_get_channel_medium(struct ipmi_intf * intf, uint8_t channel); uint8_t ipmi_get_channel_medium(struct ipmi_intf * intf, uint8_t channel);
uint8_t ipmi_current_channel_medium(struct ipmi_intf * intf); uint8_t ipmi_current_channel_medium(struct ipmi_intf * intf);

View File

@ -33,6 +33,9 @@
#ifndef IPMI_ENTITY_H #ifndef IPMI_ENTITY_H
#define IPMI_ENTITY_H #define IPMI_ENTITY_H
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct entity_id { struct entity_id {
uint8_t id; /* physical entity id */ uint8_t id; /* physical entity id */
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
@ -42,6 +45,9 @@ struct entity_id {
uint8_t instance : 7; /* instance number */ uint8_t instance : 7; /* instance number */
uint8_t logical : 1; /* physical/logical */ uint8_t logical : 1; /* physical/logical */
#endif #endif
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#endif /* IPMI_ENTITY_H */ #endif /* IPMI_ENTITY_H */

View File

@ -41,6 +41,9 @@
#define EVENT_DIR_ASSERT 0 #define EVENT_DIR_ASSERT 0
#define EVENT_DIR_DEASSERT 1 #define EVENT_DIR_DEASSERT 1
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct platform_event_msg { struct platform_event_msg {
uint8_t evm_rev; uint8_t evm_rev;
uint8_t sensor_type; uint8_t sensor_type;
@ -53,7 +56,10 @@ struct platform_event_msg {
uint8_t event_dir : 1; uint8_t event_dir : 1;
#endif #endif
uint8_t event_data[3]; uint8_t event_data[3];
} __attribute__((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
int ipmi_event_main(struct ipmi_intf *, int, char **); int ipmi_event_main(struct ipmi_intf *, int, char **);

View File

@ -63,8 +63,11 @@ enum {
struct fru_info { struct fru_info {
uint16_t size; uint16_t size;
uint8_t access:1; uint8_t access:1;
} __attribute__ ((packed)); };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_header { struct fru_header {
uint8_t version; uint8_t version;
struct { struct {
@ -76,7 +79,10 @@ struct fru_header {
} offset; } offset;
uint8_t pad; uint8_t pad;
uint8_t checksum; uint8_t checksum;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
struct fru_area_chassis { struct fru_area_chassis {
uint8_t area_ver; uint8_t area_ver;
@ -111,6 +117,9 @@ struct fru_area_product {
char * fru; char * fru;
}; };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_multirec_header { struct fru_multirec_header {
#define FRU_RECORD_TYPE_POWER_SUPPLY_INFORMATION 0x00 #define FRU_RECORD_TYPE_POWER_SUPPLY_INFORMATION 0x00
#define FRU_RECORD_TYPE_DC_OUTPUT 0x01 #define FRU_RECORD_TYPE_DC_OUTPUT 0x01
@ -124,8 +133,14 @@ struct fru_multirec_header {
uint8_t len; uint8_t len;
uint8_t record_checksum; uint8_t record_checksum;
uint8_t header_checksum; uint8_t header_checksum;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_multirec_powersupply { struct fru_multirec_powersupply {
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint16_t capacity; uint16_t capacity;
@ -168,11 +183,17 @@ struct fru_multirec_powersupply {
#endif #endif
uint16_t combined_capacity; uint16_t combined_capacity;
uint8_t rps_threshold; uint8_t rps_threshold;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
static const char * combined_voltage_desc[] __attribute__((unused)) = { static const char * combined_voltage_desc[] __attribute__((unused)) = {
"12 V", "-12 V", "5 V", "3.3 V"}; "12 V", "-12 V", "5 V", "3.3 V"};
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_multirec_dcoutput { struct fru_multirec_dcoutput {
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint8_t standby:1; uint8_t standby:1;
@ -189,8 +210,14 @@ struct fru_multirec_dcoutput {
uint16_t ripple_and_noise; uint16_t ripple_and_noise;
uint16_t min_current; uint16_t min_current;
uint16_t max_current; uint16_t max_current;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_multirec_dcload { struct fru_multirec_dcload {
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint8_t __reserved:4; uint8_t __reserved:4;
@ -205,8 +232,14 @@ struct fru_multirec_dcload {
uint16_t ripple_and_noise; uint16_t ripple_and_noise;
uint16_t min_current; uint16_t min_current;
uint16_t max_current; uint16_t max_current;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_multirec_oem_header { struct fru_multirec_oem_header {
unsigned char mfg_id[3]; unsigned char mfg_id[3];
#define FRU_PICMG_BACKPLANE_P2P 0x04 #define FRU_PICMG_BACKPLANE_P2P 0x04
@ -236,12 +269,24 @@ struct fru_multirec_oem_header {
#define FRU_PICMG_CLK_CONFIG 0x2D #define FRU_PICMG_CLK_CONFIG 0x2D
unsigned char record_id; unsigned char record_id;
unsigned char record_version; unsigned char record_version;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_guid { struct fru_picmgext_guid {
unsigned char guid[16]; unsigned char guid[16];
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_link_desc { struct fru_picmgext_link_desc {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
unsigned int desig_channel:6; unsigned int desig_channel:6;
@ -268,7 +313,10 @@ struct fru_picmgext_link_desc {
unsigned int desig_if:2; unsigned int desig_if:2;
unsigned int desig_channel:6; unsigned int desig_channel:6;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#define FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED 0x00 #define FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED 0x00
@ -280,11 +328,20 @@ struct fru_picmgext_link_desc {
#define FRU_PICMGEXT_AMC_LINK_TYPE_RAPIDIO 0x06 #define FRU_PICMGEXT_AMC_LINK_TYPE_RAPIDIO 0x06
#define FRU_PICMGEXT_AMC_LINK_TYPE_STORAGE 0x07 #define FRU_PICMGEXT_AMC_LINK_TYPE_STORAGE 0x07
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
/* This is used in command, not in FRU */ /* This is used in command, not in FRU */
struct fru_picmgext_amc_link_info { struct fru_picmgext_amc_link_info {
unsigned char linkInfo[3]; unsigned char linkInfo[3];
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_amc_link_desc_core { struct fru_picmgext_amc_link_desc_core {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
unsigned int designator:12; unsigned int designator:12;
@ -297,8 +354,14 @@ struct fru_picmgext_amc_link_desc_core {
unsigned int type:8; unsigned int type:8;
unsigned int designator:12; unsigned int designator:12;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_amc_link_desc_extra { struct fru_picmgext_amc_link_desc_extra {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
unsigned char asymetricMatch:2; unsigned char asymetricMatch:2;
@ -307,9 +370,15 @@ struct fru_picmgext_amc_link_desc_extra {
unsigned char reserved:6; unsigned char reserved:6;
unsigned char asymetricMatch:2; unsigned char asymetricMatch:2;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_amc_link_desc { struct fru_picmgext_amc_link_desc {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
struct fru_picmgext_amc_link_desc_core core;/* lsb */ struct fru_picmgext_amc_link_desc_core core;/* lsb */
@ -318,14 +387,19 @@ struct fru_picmgext_amc_link_desc {
struct fru_picmgext_amc_link_desc_extra extra; struct fru_picmgext_amc_link_desc_extra extra;
struct fru_picmgext_amc_link_desc_core core;/* lsb */ struct fru_picmgext_amc_link_desc_core core;/* lsb */
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#define FRU_PICMGEXT_OEM_SWFW 0x03 #define FRU_PICMGEXT_OEM_SWFW 0x03
#define OEM_SWFW_NBLOCK_OFFSET 0x05 #define OEM_SWFW_NBLOCK_OFFSET 0x05
#define OEM_SWFW_FIELD_START_OFFSET 0x06 #define OEM_SWFW_FIELD_START_OFFSET 0x06
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_chn_desc { struct fru_picmgext_chn_desc {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
unsigned char remote_slot:8; unsigned char remote_slot:8;
@ -338,36 +412,66 @@ struct fru_picmgext_chn_desc {
unsigned char remote_chn:5; unsigned char remote_chn:5;
unsigned char remote_slot:8; unsigned char remote_slot:8;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_slot_desc { struct fru_picmgext_slot_desc {
unsigned char chan_type; unsigned char chan_type;
unsigned char slot_addr; unsigned char slot_addr;
unsigned char chn_count; unsigned char chn_count;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#define FRU_PICMGEXT_DESIGN_IF_BASE 0x00 #define FRU_PICMGEXT_DESIGN_IF_BASE 0x00
#define FRU_PICMGEXT_DESIGN_IF_FABRIC 0x01 #define FRU_PICMGEXT_DESIGN_IF_FABRIC 0x01
#define FRU_PICMGEXT_DESIGN_IF_UPDATE_CHANNEL 0x02 #define FRU_PICMGEXT_DESIGN_IF_UPDATE_CHANNEL 0x02
#define FRU_PICMGEXT_DESIGN_IF_RESERVED 0x03 #define FRU_PICMGEXT_DESIGN_IF_RESERVED 0x03
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_carrier_activation_record { struct fru_picmgext_carrier_activation_record {
unsigned short max_internal_curr; unsigned short max_internal_curr;
unsigned char allowance_for_readiness; unsigned char allowance_for_readiness;
unsigned char module_activation_record_count; unsigned char module_activation_record_count;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_activation_record { struct fru_picmgext_activation_record {
unsigned char ibmb_addr; unsigned char ibmb_addr;
unsigned char max_module_curr; unsigned char max_module_curr;
unsigned char reserved; unsigned char reserved;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_carrier_p2p_record { struct fru_picmgext_carrier_p2p_record {
unsigned char resource_id; unsigned char resource_id;
unsigned char p2p_count; unsigned char p2p_count;
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_carrier_p2p_descriptor { struct fru_picmgext_carrier_p2p_descriptor {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
unsigned char remote_resource_id; unsigned char remote_resource_id;
@ -380,8 +484,14 @@ struct fru_picmgext_carrier_p2p_descriptor {
unsigned short remote_port:5; unsigned short remote_port:5;
unsigned char remote_resource_id; unsigned char remote_resource_id;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_amc_p2p_record { struct fru_picmgext_amc_p2p_record {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
unsigned char resource_id :4; unsigned char resource_id :4;
@ -392,8 +502,14 @@ struct fru_picmgext_amc_p2p_record {
unsigned char /* reserved */ :3; unsigned char /* reserved */ :3;
unsigned char resource_id :4; unsigned char resource_id :4;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_amc_channel_desc_record { struct fru_picmgext_amc_channel_desc_record {
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
unsigned char lane0port :5; unsigned char lane0port :5;
@ -408,8 +524,14 @@ struct fru_picmgext_amc_channel_desc_record {
unsigned char lane1port :5; unsigned char lane1port :5;
unsigned char lane0port :5; unsigned char lane0port :5;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct fru_picmgext_amc_link_desc_record { struct fru_picmgext_amc_link_desc_record {
#define FRU_PICMGEXT_AMC_LINK_TYPE_PCIE 0x02 #define FRU_PICMGEXT_AMC_LINK_TYPE_PCIE 0x02
#define FRU_PICMGEXT_AMC_LINK_TYPE_PCIE_AS1 0x03 #define FRU_PICMGEXT_AMC_LINK_TYPE_PCIE_AS1 0x03
@ -452,7 +574,11 @@ struct fru_picmgext_amc_link_desc_record {
unsigned short port_flag_0 :1; unsigned short port_flag_0 :1;
unsigned short channel_id :8; unsigned short channel_id :8;
#endif #endif
} __attribute__ ((packed)); }ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
/* FRU Board manufacturing date */ /* FRU Board manufacturing date */
static const uint64_t secs_from_1970_1996 = 820450800; static const uint64_t secs_from_1970_1996 = 820450800;
static const char * chassis_type_desc[] __attribute__((unused)) = { static const char * chassis_type_desc[] __attribute__((unused)) = {

View File

@ -52,6 +52,9 @@ int ipmi_mc_main(struct ipmi_intf *, int, char **);
* Response data from IPM Get Device ID Command (IPMI rev 1.5, section 17.1) * Response data from IPM Get Device ID Command (IPMI rev 1.5, section 17.1)
* The following really apply to any IPM device, not just BMCs... * The following really apply to any IPM device, not just BMCs...
*/ */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct ipm_devid_rsp { struct ipm_devid_rsp {
uint8_t device_id; uint8_t device_id;
uint8_t device_revision; uint8_t device_revision;
@ -62,7 +65,10 @@ struct ipm_devid_rsp {
uint8_t manufacturer_id[3]; uint8_t manufacturer_id[3];
uint8_t product_id[2]; uint8_t product_id[2];
uint8_t aux_fw_rev[4]; uint8_t aux_fw_rev[4];
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#define IPM_DEV_DEVICE_ID_SDR_MASK (0x80) /* 1 = provides SDRs */ #define IPM_DEV_DEVICE_ID_SDR_MASK (0x80) /* 1 = provides SDRs */
#define IPM_DEV_DEVICE_ID_REV_MASK (0x0F) /* BCD-enoded */ #define IPM_DEV_DEVICE_ID_REV_MASK (0x0F) /* BCD-enoded */
@ -83,10 +89,16 @@ struct ipm_devid_rsp {
#define IPM_DEV_ADTL_SUPPORT_BITS (8) #define IPM_DEV_ADTL_SUPPORT_BITS (8)
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct ipm_selftest_rsp { struct ipm_selftest_rsp {
unsigned char code; unsigned char code;
unsigned char test; unsigned char test;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#define IPM_SFT_CODE_OK 0x55 #define IPM_SFT_CODE_OK 0x55
#define IPM_SFT_CODE_NOT_IMPLEMENTED 0x56 #define IPM_SFT_CODE_NOT_IMPLEMENTED 0x56
@ -103,6 +115,9 @@ struct ipm_selftest_rsp {
#define IPM_SELFTEST_FW_BOOTBLOCK 0x02 #define IPM_SELFTEST_FW_BOOTBLOCK 0x02
#define IPM_SELFTEST_FW_CORRUPTED 0x01 #define IPM_SELFTEST_FW_CORRUPTED 0x01
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct ipm_get_watchdog_rsp { struct ipm_get_watchdog_rsp {
unsigned char timer_use; unsigned char timer_use;
unsigned char timer_actions; unsigned char timer_actions;
@ -112,7 +127,10 @@ struct ipm_get_watchdog_rsp {
unsigned char initial_countdown_msb; unsigned char initial_countdown_msb;
unsigned char present_countdown_lsb; unsigned char present_countdown_lsb;
unsigned char present_countdown_msb; unsigned char present_countdown_msb;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#define IPM_WATCHDOG_RESET_ERROR 0x80 #define IPM_WATCHDOG_RESET_ERROR 0x80

View File

@ -50,6 +50,9 @@ typedef enum {
P_ABLE, P_ABLE,
} flg_e; } flg_e;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_table_entry { struct pef_table_entry {
#define PEF_CONFIG_ENABLED 0x80 #define PEF_CONFIG_ENABLED 0x80
#define PEF_CONFIG_PRECONFIGURED 0x40 #define PEF_CONFIG_PRECONFIGURED 0x40
@ -90,7 +93,10 @@ struct pef_table_entry {
uint8_t event_data_3_AND_mask; uint8_t event_data_3_AND_mask;
uint8_t event_data_3_compare_1; uint8_t event_data_3_compare_1;
uint8_t event_data_3_compare_2; uint8_t event_data_3_compare_2;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
struct desc_map { /* maps a description to a value/mask */ struct desc_map { /* maps a description to a value/mask */
const char *desc; const char *desc;
@ -324,6 +330,9 @@ pef_b2s_generic_ER[] __attribute__((unused)) = {
#define PEF_B2S_GENERIC_ER_ENTRIES \ #define PEF_B2S_GENERIC_ER_ENTRIES \
(sizeof(pef_b2s_generic_ER) / sizeof(pef_b2s_generic_ER[0])) (sizeof(pef_b2s_generic_ER) / sizeof(pef_b2s_generic_ER[0]))
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_policy_entry { struct pef_policy_entry {
#define PEF_POLICY_ID_MASK 0xf0 #define PEF_POLICY_ID_MASK 0xf0
#define PEF_POLICY_ID_SHIFT 4 #define PEF_POLICY_ID_SHIFT 4
@ -341,7 +350,10 @@ struct pef_policy_entry {
uint8_t chan_dest; uint8_t chan_dest;
#define PEF_POLICY_EVENT_SPECIFIC 0x80 #define PEF_POLICY_EVENT_SPECIFIC 0x80
uint8_t alert_string_key; uint8_t alert_string_key;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
static struct bit_desc_map static struct bit_desc_map
pef_b2s_policies __attribute__((unused)) = { pef_b2s_policies __attribute__((unused)) = {
@ -384,6 +396,9 @@ BIT_DESC_MAP_LIST,
{NULL} {NULL}
} }; } };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_selector { struct pef_cfgparm_selector {
#define PEF_CFGPARM_ID_REVISION_ONLY_MASK 0x80 #define PEF_CFGPARM_ID_REVISION_ONLY_MASK 0x80
#define PEF_CFGPARM_ID_SET_IN_PROGRESS 0 #define PEF_CFGPARM_ID_SET_IN_PROGRESS 0
@ -403,21 +418,36 @@ struct pef_cfgparm_selector {
uint8_t id; uint8_t id;
uint8_t set; uint8_t set;
uint8_t block; uint8_t block;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_set_in_progress { struct pef_cfgparm_set_in_progress {
#define PEF_SET_IN_PROGRESS_COMMIT_WRITE 0x02 #define PEF_SET_IN_PROGRESS_COMMIT_WRITE 0x02
#define PEF_SET_IN_PROGRESS 0x01 #define PEF_SET_IN_PROGRESS 0x01
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_control { struct pef_cfgparm_control {
#define PEF_CONTROL_ENABLE_ALERT_STARTUP_DELAY 0x08 #define PEF_CONTROL_ENABLE_ALERT_STARTUP_DELAY 0x08
#define PEF_CONTROL_ENABLE_STARTUP_DELAY 0x04 #define PEF_CONTROL_ENABLE_STARTUP_DELAY 0x04
#define PEF_CONTROL_ENABLE_EVENT_MESSAGES 0x02 #define PEF_CONTROL_ENABLE_EVENT_MESSAGES 0x02
#define PEF_CONTROL_ENABLE 0x01 #define PEF_CONTROL_ENABLE 0x01
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
static struct bit_desc_map static struct bit_desc_map
pef_b2s_control __attribute__((unused)) = { pef_b2s_control __attribute__((unused)) = {
@ -429,6 +459,9 @@ BIT_DESC_MAP_ALL,
{NULL} {NULL}
} }; } };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_action { struct pef_cfgparm_action {
#define PEF_ACTION_ENABLE_DIAGNOSTIC_INTERRUPT 0x20 #define PEF_ACTION_ENABLE_DIAGNOSTIC_INTERRUPT 0x20
#define PEF_ACTION_ENABLE_OEM 0x10 #define PEF_ACTION_ENABLE_OEM 0x10
@ -437,54 +470,114 @@ struct pef_cfgparm_action {
#define PEF_ACTION_ENABLE_POWER_DOWN 0x02 #define PEF_ACTION_ENABLE_POWER_DOWN 0x02
#define PEF_ACTION_ENABLE_ALERT 0x01 #define PEF_ACTION_ENABLE_ALERT 0x01
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_startup_delay { struct pef_cfgparm_startup_delay {
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_alert_startup_delay { struct pef_cfgparm_alert_startup_delay {
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_filter_table_size { struct pef_cfgparm_filter_table_size {
#define PEF_FILTER_TABLE_SIZE_MASK 0x7f #define PEF_FILTER_TABLE_SIZE_MASK 0x7f
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_filter_table_entry { struct pef_cfgparm_filter_table_entry {
#define PEF_FILTER_TABLE_ID_MASK 0x7f #define PEF_FILTER_TABLE_ID_MASK 0x7f
uint8_t data1; uint8_t data1;
struct pef_table_entry entry; struct pef_table_entry entry;
} __attribute__ ((packed)); } 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 { struct pef_cfgparm_filter_table_data_1 {
uint8_t data1; uint8_t data1;
uint8_t data2; uint8_t data2;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_policy_table_size { struct pef_cfgparm_policy_table_size {
#define PEF_POLICY_TABLE_SIZE_MASK 0x7f #define PEF_POLICY_TABLE_SIZE_MASK 0x7f
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_policy_table_entry { struct pef_cfgparm_policy_table_entry {
#define PEF_POLICY_TABLE_ID_MASK 0x7f #define PEF_POLICY_TABLE_ID_MASK 0x7f
uint8_t data1; uint8_t data1;
struct pef_policy_entry entry; struct pef_policy_entry entry;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_system_guid { struct pef_cfgparm_system_guid {
#define PEF_SYSTEM_GUID_USED_IN_PET 0x01 #define PEF_SYSTEM_GUID_USED_IN_PET 0x01
uint8_t data1; uint8_t data1;
uint8_t guid[16]; uint8_t guid[16];
} __attribute__ ((packed)); } 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 { struct pef_cfgparm_alert_string_table_size {
#define PEF_ALERT_STRING_TABLE_SIZE_MASK 0x7f #define PEF_ALERT_STRING_TABLE_SIZE_MASK 0x7f
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_cfgparm_alert_string_keys { struct pef_cfgparm_alert_string_keys {
#define PEF_ALERT_STRING_ID_MASK 0x7f #define PEF_ALERT_STRING_ID_MASK 0x7f
uint8_t data1; uint8_t data1;
@ -492,16 +585,27 @@ struct pef_cfgparm_alert_string_keys {
uint8_t data2; uint8_t data2;
#define PEF_ALERT_STRING_SET_ID_MASK 0x7f #define PEF_ALERT_STRING_SET_ID_MASK 0x7f
uint8_t data3; uint8_t data3;
} __attribute__ ((packed)); } 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 { struct pef_cfgparm_alert_string_table_entry {
uint8_t id; uint8_t id;
uint8_t blockno; uint8_t blockno;
uint8_t block[16]; uint8_t block[16];
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
/* PEF - LAN */ /* PEF - LAN */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_lan_cfgparm_selector { struct pef_lan_cfgparm_selector {
#define PEF_LAN_CFGPARM_CH_REVISION_ONLY_MASK 0x80 #define PEF_LAN_CFGPARM_CH_REVISION_ONLY_MASK 0x80
#define PEF_LAN_CFGPARM_CH_MASK 0x0f #define PEF_LAN_CFGPARM_CH_MASK 0x0f
@ -513,13 +617,25 @@ struct pef_lan_cfgparm_selector {
uint8_t id; uint8_t id;
uint8_t set; uint8_t set;
uint8_t block; uint8_t block;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_lan_cfgparm_dest_size { struct pef_lan_cfgparm_dest_size {
#define PEF_LAN_DEST_TABLE_SIZE_MASK 0x0f #define PEF_LAN_DEST_TABLE_SIZE_MASK 0x0f
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_lan_cfgparm_dest_type { struct pef_lan_cfgparm_dest_type {
#define PEF_LAN_DEST_TYPE_ID_MASK 0x0f #define PEF_LAN_DEST_TYPE_ID_MASK 0x0f
uint8_t dest; uint8_t dest;
@ -532,7 +648,10 @@ struct pef_lan_cfgparm_dest_type {
uint8_t alert_timeout; uint8_t alert_timeout;
#define PEF_LAN_RETRIES_MASK 0x07 #define PEF_LAN_RETRIES_MASK 0x07
uint8_t retries; uint8_t retries;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
static struct bit_desc_map static struct bit_desc_map
pef_b2s_lan_desttype __attribute__((unused)) = { pef_b2s_lan_desttype __attribute__((unused)) = {
@ -544,6 +663,9 @@ BIT_DESC_MAP_LIST,
{NULL} {NULL}
} }; } };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_lan_cfgparm_dest_info { struct pef_lan_cfgparm_dest_info {
#define PEF_LAN_DEST_MASK 0x0f #define PEF_LAN_DEST_MASK 0x0f
uint8_t dest; uint8_t dest;
@ -555,10 +677,15 @@ struct pef_lan_cfgparm_dest_info {
uint8_t gateway; uint8_t gateway;
uint8_t ip[4]; uint8_t ip[4];
uint8_t mac[6]; uint8_t mac[6];
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
/* PEF - Serial/PPP */ /* PEF - Serial/PPP */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_serial_cfgparm_selector { struct pef_serial_cfgparm_selector {
#define PEF_SERIAL_CFGPARM_CH_REVISION_ONLY_MASK 0x80 #define PEF_SERIAL_CFGPARM_CH_REVISION_ONLY_MASK 0x80
#define PEF_SERIAL_CFGPARM_CH_MASK 0x0f #define PEF_SERIAL_CFGPARM_CH_MASK 0x0f
@ -573,13 +700,25 @@ struct pef_serial_cfgparm_selector {
uint8_t id; uint8_t id;
uint8_t set; uint8_t set;
uint8_t block; uint8_t block;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_serial_cfgparm_dest_size { struct pef_serial_cfgparm_dest_size {
#define PEF_SERIAL_DEST_TABLE_SIZE_MASK 0x0f #define PEF_SERIAL_DEST_TABLE_SIZE_MASK 0x0f
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_serial_cfgparm_dest_info { struct pef_serial_cfgparm_dest_info {
#define PEF_SERIAL_DEST_MASK 0x0f #define PEF_SERIAL_DEST_MASK 0x0f
uint8_t dest; uint8_t dest;
@ -608,7 +747,10 @@ struct pef_serial_cfgparm_dest_info {
#define PEF_SERIAL_CALLBACK_IPADDR_ID_SHIFT 4 #define PEF_SERIAL_CALLBACK_IPADDR_ID_SHIFT 4
#define PEF_SERIAL_CALLBACK_ACCT_ID_MASK 0xf0 #define PEF_SERIAL_CALLBACK_ACCT_ID_MASK 0xf0
uint8_t data5; uint8_t data5;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
static struct bit_desc_map static struct bit_desc_map
pef_b2s_serial_desttype __attribute__((unused)) = { pef_b2s_serial_desttype __attribute__((unused)) = {
@ -623,31 +765,58 @@ BIT_DESC_MAP_LIST,
{NULL} {NULL}
} }; } };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_serial_cfgparm_dial_string_count { struct pef_serial_cfgparm_dial_string_count {
#define PEF_SERIAL_DIAL_STRING_COUNT_MASK 0x0f #define PEF_SERIAL_DIAL_STRING_COUNT_MASK 0x0f
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct pef_serial_cfgparm_dial_string { struct pef_serial_cfgparm_dial_string {
#define PEF_SERIAL_DIAL_STRING_MASK 0x0f #define PEF_SERIAL_DIAL_STRING_MASK 0x0f
uint8_t data1; uint8_t data1;
uint8_t data2; uint8_t data2;
uint8_t data3; uint8_t data3;
} __attribute__ ((packed)); } 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 { struct pef_serial_cfgparm_tap_acct_count {
#define PEF_SERIAL_TAP_ACCT_COUNT_MASK 0x0f #define PEF_SERIAL_TAP_ACCT_COUNT_MASK 0x0f
uint8_t data1; uint8_t data1;
} __attribute__ ((packed)); } 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 { struct pef_serial_cfgparm_tap_acct_info {
uint8_t data1; uint8_t data1;
#define PEF_SERIAL_TAP_ACCT_INFO_DIAL_STRING_ID_MASK 0xf0 #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_DIAL_STRING_ID_SHIFT 4
#define PEF_SERIAL_TAP_ACCT_INFO_SVC_SETTINGS_ID_MASK 0x0f #define PEF_SERIAL_TAP_ACCT_INFO_SVC_SETTINGS_ID_MASK 0x0f
uint8_t data2; uint8_t data2;
} __attribute__ ((packed)); } 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 { struct pef_serial_cfgparm_tap_svc_settings {
uint8_t data1; uint8_t data1;
#define PEF_SERIAL_TAP_CONFIRMATION_ACK_AFTER_ETX 0x0 #define PEF_SERIAL_TAP_CONFIRMATION_ACK_AFTER_ETX 0x0
@ -658,7 +827,10 @@ struct pef_serial_cfgparm_tap_svc_settings {
uint8_t escape_mask[4]; uint8_t escape_mask[4];
uint8_t timeout_parms[3]; uint8_t timeout_parms[3];
uint8_t retry_parms[2]; uint8_t retry_parms[2];
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
static struct bit_desc_map static struct bit_desc_map
pef_b2s_tap_svc_confirm __attribute__((unused)) = { pef_b2s_tap_svc_confirm __attribute__((unused)) = {
@ -685,7 +857,7 @@ BIT_DESC_MAP_LIST,
struct pef_cfgparm_alert_string_table_size; struct pef_cfgparm_alert_string_table_size;
struct pef_cfgparm_alert_string_keys; struct pef_cfgparm_alert_string_keys;
struct pef_cfgparm_alert_string_table_entry; struct pef_cfgparm_alert_string_table_entry;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
struct pef_lan_config_parms { /* LAN */ struct pef_lan_config_parms { /* LAN */
struct pef_lan_cfgparm_set_in_progress; struct pef_lan_cfgparm_set_in_progress;
@ -708,7 +880,7 @@ BIT_DESC_MAP_LIST,
struct pef_lan_cfgparm_destination_count; struct pef_lan_cfgparm_destination_count;
struct pef_lan_cfgparm_destination_type; struct pef_lan_cfgparm_destination_type;
struct pef_lan_cfgparm_destination_ipaddr; struct pef_lan_cfgparm_destination_ipaddr;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
struct pef_serial_config_parms { /* Serial/PPP */ struct pef_serial_config_parms { /* Serial/PPP */
struct pef_serial_cfgparm_set_in_progress; struct pef_serial_cfgparm_set_in_progress;
@ -760,7 +932,7 @@ BIT_DESC_MAP_LIST,
struct pef_serial_cfgparm_ppp_udp_proxy_xmit_bufsize; struct pef_serial_cfgparm_ppp_udp_proxy_xmit_bufsize;
struct pef_serial_cfgparm_ppp_udp_proxy_recv_bufsize; struct pef_serial_cfgparm_ppp_udp_proxy_recv_bufsize;
struct pef_serial_cfgparm_ppp_remote_console_ipaddr; struct pef_serial_cfgparm_ppp_remote_console_ipaddr;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#endif #endif
#define IPMI_CMD_GET_PEF_CAPABILITIES 0x10 #define IPMI_CMD_GET_PEF_CAPABILITIES 0x10

View File

@ -53,11 +53,17 @@
#define PICMG_PMC 0x08 #define PICMG_PMC 0x08
#define PICMG_RTM 0x09 #define PICMG_RTM 0x09
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct picmg_set_fru_activation_cmd { struct picmg_set_fru_activation_cmd {
unsigned char picmg_id; /* always 0*/ unsigned char picmg_id; /* always 0*/
unsigned char fru_id; /* threshold setting mask */ unsigned char fru_id; /* threshold setting mask */
unsigned char fru_state; /* fru activation/deactivation */ unsigned char fru_state; /* fru activation/deactivation */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
/* the LED color capabilities */ /* the LED color capabilities */
static const char* led_color_str[] __attribute__((unused)) = { static const char* led_color_str[] __attribute__((unused)) = {

View File

@ -105,6 +105,9 @@ enum {
#define GET_SENSOR_READING 0x2d #define GET_SENSOR_READING 0x2d
#define GET_SENSOR_TYPE 0x2f #define GET_SENSOR_TYPE 0x2f
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_repo_info_rs { struct sdr_repo_info_rs {
uint8_t version; /* SDR version (51h) */ uint8_t version; /* SDR version (51h) */
uint16_t count; /* number of records */ uint16_t count; /* number of records */
@ -112,20 +115,39 @@ struct sdr_repo_info_rs {
uint32_t add_stamp; /* last add timestamp */ uint32_t add_stamp; /* last add timestamp */
uint32_t erase_stamp; /* last del timestamp */ uint32_t erase_stamp; /* last del timestamp */
uint8_t op_support; /* supported operations */ uint8_t op_support; /* supported operations */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
/* builtin (device) sdrs support */ /* builtin (device) sdrs support */
struct sdr_device_info_rs { struct sdr_device_info_rs {
unsigned char count; /* number of records */ unsigned char count; /* number of records */
unsigned char flags; /* flags */ unsigned char flags; /* flags */
unsigned char popChangeInd[3]; /* free space in SDR */ unsigned char popChangeInd[3]; /* free space in SDR */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
#define GET_SDR_RESERVE_REPO 0x22 #define GET_SDR_RESERVE_REPO 0x22
struct sdr_reserve_repo_rs { struct sdr_reserve_repo_rs {
uint16_t reserve_id; /* reservation ID */ uint16_t reserve_id; /* reservation ID */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
#define GET_SDR 0x23 #define GET_SDR 0x23
struct sdr_get_rq { struct sdr_get_rq {
uint16_t reserve_id; /* reservation ID */ uint16_t reserve_id; /* reservation ID */
@ -133,8 +155,14 @@ struct sdr_get_rq {
uint8_t offset; /* offset into SDR */ uint8_t offset; /* offset into SDR */
#define GET_SDR_ENTIRE_RECORD 0xff #define GET_SDR_ENTIRE_RECORD 0xff
uint8_t length; /* length to read */ uint8_t length; /* length to read */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_get_rs { struct sdr_get_rs {
uint16_t next; /* next record id */ uint16_t next; /* next record id */
uint16_t id; /* record ID */ uint16_t id; /* record ID */
@ -152,8 +180,14 @@ struct sdr_get_rs {
#define SDR_RECORD_TYPE_OEM 0xc0 #define SDR_RECORD_TYPE_OEM 0xc0
uint8_t type; /* record type */ uint8_t type; /* record type */
uint8_t length; /* remaining record bytes */ uint8_t length; /* remaining record bytes */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_record_mask { struct sdr_record_mask {
union { union {
struct { struct {
@ -280,8 +314,14 @@ struct sdr_record_mask {
}; };
} threshold; } threshold;
} type; } type;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_record_compact_sensor { struct sdr_record_compact_sensor {
struct { struct {
uint8_t owner_id; uint8_t owner_id;
@ -391,8 +431,14 @@ struct sdr_record_compact_sensor {
uint8_t oem; /* reserved for OEM use */ uint8_t oem; /* reserved for OEM use */
uint8_t id_code; /* sensor ID string type/length code */ uint8_t id_code; /* sensor ID string type/length code */
uint8_t id_string[16]; /* sensor ID string bytes, only if id_code != 0 */ uint8_t id_string[16]; /* sensor ID string bytes, only if id_code != 0 */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_record_eventonly_sensor { struct sdr_record_eventonly_sensor {
struct { struct {
uint8_t owner_id; uint8_t owner_id;
@ -437,8 +483,14 @@ struct sdr_record_eventonly_sensor {
uint8_t id_code; /* sensor ID string type/length code */ uint8_t id_code; /* sensor ID string type/length code */
uint8_t id_string[16]; /* sensor ID string bytes, only if id_code != 0 */ uint8_t id_string[16]; /* sensor ID string bytes, only if id_code != 0 */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_record_full_sensor { struct sdr_record_full_sensor {
struct { struct {
uint8_t owner_id; uint8_t owner_id;
@ -576,8 +628,14 @@ struct sdr_record_full_sensor {
uint8_t oem; /* reserved for OEM use */ uint8_t oem; /* reserved for OEM use */
uint8_t id_code; /* sensor ID string type/length code */ uint8_t id_code; /* sensor ID string type/length code */
uint8_t id_string[16]; /* sensor ID string bytes, only if id_code != 0 */ uint8_t id_string[16]; /* sensor ID string bytes, only if id_code != 0 */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_record_mc_locator { struct sdr_record_mc_locator {
uint8_t dev_slave_addr; uint8_t dev_slave_addr;
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
@ -602,7 +660,10 @@ struct sdr_record_mc_locator {
uint8_t oem; uint8_t oem;
uint8_t id_code; uint8_t id_code;
uint8_t id_string[16]; uint8_t id_string[16];
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
struct sdr_record_fru_locator { struct sdr_record_fru_locator {
uint8_t dev_slave_addr; uint8_t dev_slave_addr;
@ -632,8 +693,14 @@ struct sdr_record_fru_locator {
uint8_t oem; uint8_t oem;
uint8_t id_code; uint8_t id_code;
uint8_t id_string[16]; uint8_t id_string[16];
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_record_generic_locator { struct sdr_record_generic_locator {
uint8_t dev_access_addr; uint8_t dev_access_addr;
uint8_t dev_slave_addr; uint8_t dev_slave_addr;
@ -660,8 +727,14 @@ struct sdr_record_generic_locator {
uint8_t oem; uint8_t oem;
uint8_t id_code; uint8_t id_code;
uint8_t id_string[16]; uint8_t id_string[16];
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_record_entity_assoc { struct sdr_record_entity_assoc {
struct entity_id entity; /* container entity ID and instance */ struct entity_id entity; /* container entity ID and instance */
struct { struct {
@ -685,7 +758,10 @@ struct sdr_record_entity_assoc {
uint8_t entity_inst_3; /* entity inst 3 | range 2 first instance */ uint8_t entity_inst_3; /* entity inst 3 | range 2 first instance */
uint8_t entity_id_4; /* entity ID 4 | range 2 entity */ uint8_t entity_id_4; /* entity ID 4 | range 2 entity */
uint8_t entity_inst_4; /* entity inst 4 | range 2 last instance */ uint8_t entity_inst_4; /* entity inst 4 | range 2 last instance */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
struct sdr_record_oem { struct sdr_record_oem {
uint8_t *data; uint8_t *data;
@ -696,6 +772,9 @@ struct sdr_record_oem {
* The Get SDR Repository Info response structure * The Get SDR Repository Info response structure
* From table 33-3 of the IPMI v2.0 spec * From table 33-3 of the IPMI v2.0 spec
*/ */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct get_sdr_repository_info_rsp { struct get_sdr_repository_info_rsp {
uint8_t sdr_version; uint8_t sdr_version;
uint8_t record_count_lsb; uint8_t record_count_lsb;
@ -720,7 +799,10 @@ struct get_sdr_repository_info_rsp {
uint8_t modal_update_support:2; uint8_t modal_update_support:2;
uint8_t overflow_flag:1; uint8_t overflow_flag:1;
#endif #endif
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
struct ipmi_sdr_iterator { struct ipmi_sdr_iterator {
uint16_t reservation; uint16_t reservation;

View File

@ -57,12 +57,18 @@ enum {
IPMI_EVENT_CLASS_OEM, IPMI_EVENT_CLASS_OEM,
}; };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sel_get_rq { struct sel_get_rq {
uint16_t reserve_id; uint16_t reserve_id;
uint16_t record_id; uint16_t record_id;
uint8_t offset; uint8_t offset;
uint8_t length; uint8_t length;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
struct standard_spec_sel_rec{ struct standard_spec_sel_rec{
uint32_t timestamp; uint32_t timestamp;
@ -95,6 +101,9 @@ struct oem_nots_spec_sel_rec{
uint8_t oem_defined[SEL_OEM_NOTS_DATA_LEN]; uint8_t oem_defined[SEL_OEM_NOTS_DATA_LEN];
}; };
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sel_event_record { struct sel_event_record {
uint16_t record_id; uint16_t record_id;
uint8_t record_type; uint8_t record_type;
@ -103,7 +112,10 @@ struct sel_event_record {
struct oem_ts_spec_sel_rec oem_ts_type; struct oem_ts_spec_sel_rec oem_ts_type;
struct oem_nots_spec_sel_rec oem_nots_type; struct oem_nots_spec_sel_rec oem_nots_type;
} sel_type; } sel_type;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
struct ipmi_event_sensor_types { struct ipmi_event_sensor_types {
uint8_t code; uint8_t code;

View File

@ -65,6 +65,9 @@
#define STATE_13_ASSERTED 0x20 #define STATE_13_ASSERTED 0x20
#define STATE_14_ASSERTED 0x40 #define STATE_14_ASSERTED 0x40
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sensor_set_thresh_rq { struct sensor_set_thresh_rq {
uint8_t sensor_num; /* sensor # */ uint8_t sensor_num; /* sensor # */
uint8_t set_mask; /* threshold setting mask */ uint8_t set_mask; /* threshold setting mask */
@ -74,7 +77,10 @@ struct sensor_set_thresh_rq {
uint8_t upper_non_crit; /* new upper non critical threshold*/ uint8_t upper_non_crit; /* new upper non critical threshold*/
uint8_t upper_crit; /* new upper critical threshold*/ uint8_t upper_crit; /* new upper critical threshold*/
uint8_t upper_non_recov; /* new upper non recoverable threshold*/ uint8_t upper_non_recov; /* new upper non recoverable threshold*/
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
int ipmi_sensor_main(struct ipmi_intf *, int, char **); int ipmi_sensor_main(struct ipmi_intf *, int, char **);

View File

@ -43,6 +43,9 @@
/* /*
* From table 22.25 of the IPMIv2 specification * From table 22.25 of the IPMIv2 specification
*/ */
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct get_session_info_rsp struct get_session_info_rsp
{ {
uint8_t session_handle; uint8_t session_handle;
@ -116,7 +119,10 @@ struct get_session_info_rsp
uint16_t console_port; /* LSBF */ uint16_t console_port; /* LSBF */
} modem_data; } modem_data;
} channel_data; } channel_data;
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif

View File

@ -67,6 +67,9 @@ struct user_access_rsp {
uint8_t __reserved3 : 2; uint8_t __reserved3 : 2;
#endif #endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
#if WORDS_BIGENDIAN #if WORDS_BIGENDIAN
uint8_t __reserved4 : 1; uint8_t __reserved4 : 1;
uint8_t no_callin_access : 1; uint8_t no_callin_access : 1;
@ -80,7 +83,10 @@ struct user_access_rsp {
uint8_t no_callin_access : 1; uint8_t no_callin_access : 1;
uint8_t __reserved4 : 1; uint8_t __reserved4 : 1;
#endif #endif
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif

View File

@ -1398,7 +1398,7 @@ fru_area_print_multirec(struct ipmi_intf * intf, struct fru_info * fru,
} }
/* FIXME: Add OEM record support here */ /* FIXME: Add OEM record support here */
else{ else{
printf(" OEM (0x%s) Record\n", val2str( iana, ipmi_oem_info)); printf(" OEM (%s) Record\n", val2str( iana, ipmi_oem_info));
} }
} }
break; break;

View File

@ -235,8 +235,8 @@ typedef enum eHpmfwupgComponentId
HPMFWUPG_COMPONENT_ID_MAX HPMFWUPG_COMPONENT_ID_MAX
} tHpmfwupgComponentId; } tHpmfwupgComponentId;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgComponentBitMask struct HpmfwupgComponentBitMask
{ {
@ -267,8 +267,8 @@ struct HpmfwupgComponentBitMask
}bitField; }bitField;
}ComponentBits; }ComponentBits;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
@ -283,19 +283,19 @@ static const int HPMFWUPG_UPLOAD_RETRY = 2;
* TARGET UPGRADE CAPABILITIES DEFINITIONS * TARGET UPGRADE CAPABILITIES DEFINITIONS
*/ */
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetTargetUpgCapabilitiesReq struct HpmfwupgGetTargetUpgCapabilitiesReq
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetTargetUpgCapabilitiesResp struct HpmfwupgGetTargetUpgCapabilitiesResp
{ {
@ -333,20 +333,20 @@ struct HpmfwupgGetTargetUpgCapabilitiesResp
unsigned char inaccessTimeout; unsigned char inaccessTimeout;
struct HpmfwupgComponentBitMask componentsPresent; struct HpmfwupgComponentBitMask componentsPresent;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetTargetUpgCapabilitiesCtx struct HpmfwupgGetTargetUpgCapabilitiesCtx
{ {
struct HpmfwupgGetTargetUpgCapabilitiesReq req; struct HpmfwupgGetTargetUpgCapabilitiesReq req;
struct HpmfwupgGetTargetUpgCapabilitiesResp resp; struct HpmfwupgGetTargetUpgCapabilitiesResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
@ -364,8 +364,8 @@ typedef enum eHpmfwupgCompPropertiesSelect
HPMFWUPG_COMP_OEM_PROPERTIES = 192 HPMFWUPG_COMP_OEM_PROPERTIES = 192
} tHpmfwupgCompPropertiesSelect; } tHpmfwupgCompPropertiesSelect;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetComponentPropertiesReq struct HpmfwupgGetComponentPropertiesReq
{ {
@ -373,12 +373,12 @@ struct HpmfwupgGetComponentPropertiesReq
unsigned char componentId; unsigned char componentId;
unsigned char selector; unsigned char selector;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetGeneralPropResp struct HpmfwupgGetGeneralPropResp
{ {
@ -406,76 +406,76 @@ struct HpmfwupgGetGeneralPropResp
}bitfield; }bitfield;
}GeneralCompProperties; }GeneralCompProperties;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetCurrentVersionResp struct HpmfwupgGetCurrentVersionResp
{ {
unsigned char picmgId; unsigned char picmgId;
unsigned char currentVersion[HPMFWUPG_VERSION_SIZE]; unsigned char currentVersion[HPMFWUPG_VERSION_SIZE];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetDescStringResp struct HpmfwupgGetDescStringResp
{ {
unsigned char picmgId; unsigned char picmgId;
char descString[HPMFWUPG_DESC_STRING_LENGTH]; char descString[HPMFWUPG_DESC_STRING_LENGTH];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetRollbackFwVersionResp struct HpmfwupgGetRollbackFwVersionResp
{ {
unsigned char picmgId; unsigned char picmgId;
unsigned char rollbackFwVersion[HPMFWUPG_VERSION_SIZE]; unsigned char rollbackFwVersion[HPMFWUPG_VERSION_SIZE];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetDeferredFwVersionResp struct HpmfwupgGetDeferredFwVersionResp
{ {
unsigned char picmgId; unsigned char picmgId;
unsigned char deferredFwVersion[HPMFWUPG_VERSION_SIZE]; unsigned char deferredFwVersion[HPMFWUPG_VERSION_SIZE];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* GetComponentProperties - OEM properties (192) * GetComponentProperties - OEM properties (192)
*/ */
#define HPMFWUPG_OEM_LENGTH 4 #define HPMFWUPG_OEM_LENGTH 4
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetOemProperties struct HpmfwupgGetOemProperties
{ {
unsigned char picmgId; unsigned char picmgId;
unsigned char oemRspData[HPMFWUPG_OEM_LENGTH]; unsigned char oemRspData[HPMFWUPG_OEM_LENGTH];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetComponentPropertiesResp struct HpmfwupgGetComponentPropertiesResp
{ {
@ -489,58 +489,58 @@ struct HpmfwupgGetComponentPropertiesResp
struct HpmfwupgGetOemProperties oemProperties; struct HpmfwupgGetOemProperties oemProperties;
}Response; }Response;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetComponentPropertiesCtx struct HpmfwupgGetComponentPropertiesCtx
{ {
struct HpmfwupgGetComponentPropertiesReq req; struct HpmfwupgGetComponentPropertiesReq req;
struct HpmfwupgGetComponentPropertiesResp resp; struct HpmfwupgGetComponentPropertiesResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* ABORT UPGRADE DEFINITIONS * ABORT UPGRADE DEFINITIONS
*/ */
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgAbortUpgradeReq struct HpmfwupgAbortUpgradeReq
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgAbortUpgradeResp struct HpmfwupgAbortUpgradeResp
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgAbortUpgradeCtx struct HpmfwupgAbortUpgradeCtx
{ {
struct HpmfwupgAbortUpgradeReq req; struct HpmfwupgAbortUpgradeReq req;
struct HpmfwupgAbortUpgradeResp resp; struct HpmfwupgAbortUpgradeResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
@ -555,8 +555,8 @@ typedef enum eHpmfwupgUpgradeAction
HPMFWUPG_UPGRADE_ACTION_INVALID = 0xff HPMFWUPG_UPGRADE_ACTION_INVALID = 0xff
} tHpmfwupgUpgradeAction; } tHpmfwupgUpgradeAction;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgInitiateUpgradeActionReq struct HpmfwupgInitiateUpgradeActionReq
{ {
@ -564,31 +564,31 @@ struct HpmfwupgInitiateUpgradeActionReq
struct HpmfwupgComponentBitMask componentsMask; struct HpmfwupgComponentBitMask componentsMask;
unsigned char upgradeAction; unsigned char upgradeAction;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgInitiateUpgradeActionResp struct HpmfwupgInitiateUpgradeActionResp
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgInitiateUpgradeActionCtx struct HpmfwupgInitiateUpgradeActionCtx
{ {
struct HpmfwupgInitiateUpgradeActionReq req; struct HpmfwupgInitiateUpgradeActionReq req;
struct HpmfwupgInitiateUpgradeActionResp resp; struct HpmfwupgInitiateUpgradeActionResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
@ -601,8 +601,8 @@ struct HpmfwupgInitiateUpgradeActionCtx
#define HPMFWUPG_SEND_DATA_COUNT_IPMB 26 #define HPMFWUPG_SEND_DATA_COUNT_IPMB 26
#define HPMFWUPG_SEND_DATA_COUNT_IPMBL 26 #define HPMFWUPG_SEND_DATA_COUNT_IPMBL 26
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgUploadFirmwareBlockReq struct HpmfwupgUploadFirmwareBlockReq
{ {
@ -610,32 +610,32 @@ struct HpmfwupgUploadFirmwareBlockReq
unsigned char blockNumber; unsigned char blockNumber;
unsigned char data[HPMFWUPG_SEND_DATA_COUNT_MAX]; unsigned char data[HPMFWUPG_SEND_DATA_COUNT_MAX];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgUploadFirmwareBlockResp struct HpmfwupgUploadFirmwareBlockResp
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgUploadFirmwareBlockCtx struct HpmfwupgUploadFirmwareBlockCtx
{ {
struct HpmfwupgUploadFirmwareBlockReq req; struct HpmfwupgUploadFirmwareBlockReq req;
struct HpmfwupgUploadFirmwareBlockResp resp; struct HpmfwupgUploadFirmwareBlockResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
@ -645,8 +645,8 @@ struct HpmfwupgUploadFirmwareBlockCtx
#define HPMFWUPG_IMAGE_SIZE_BYTE_COUNT 4 #define HPMFWUPG_IMAGE_SIZE_BYTE_COUNT 4
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgFinishFirmwareUploadReq struct HpmfwupgFinishFirmwareUploadReq
{ {
@ -654,88 +654,88 @@ struct HpmfwupgFinishFirmwareUploadReq
unsigned char componentId; unsigned char componentId;
unsigned char imageLength[HPMFWUPG_IMAGE_SIZE_BYTE_COUNT]; unsigned char imageLength[HPMFWUPG_IMAGE_SIZE_BYTE_COUNT];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgFinishFirmwareUploadResp struct HpmfwupgFinishFirmwareUploadResp
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgFinishFirmwareUploadCtx struct HpmfwupgFinishFirmwareUploadCtx
{ {
struct HpmfwupgFinishFirmwareUploadReq req; struct HpmfwupgFinishFirmwareUploadReq req;
struct HpmfwupgFinishFirmwareUploadResp resp; struct HpmfwupgFinishFirmwareUploadResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* ACTIVATE FW DEFINITIONS * ACTIVATE FW DEFINITIONS
*/ */
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgActivateFirmwareReq struct HpmfwupgActivateFirmwareReq
{ {
unsigned char picmgId; unsigned char picmgId;
unsigned char rollback_override; unsigned char rollback_override;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgActivateFirmwareResp struct HpmfwupgActivateFirmwareResp
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgActivateFirmwareCtx struct HpmfwupgActivateFirmwareCtx
{ {
struct HpmfwupgActivateFirmwareReq req; struct HpmfwupgActivateFirmwareReq req;
struct HpmfwupgActivateFirmwareResp resp; struct HpmfwupgActivateFirmwareResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* GET UPGRADE STATUS DEFINITIONS * GET UPGRADE STATUS DEFINITIONS
*/ */
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetUpgradeStatusReq struct HpmfwupgGetUpgradeStatusReq
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetUpgradeStatusResp struct HpmfwupgGetUpgradeStatusResp
{ {
@ -743,114 +743,114 @@ struct HpmfwupgGetUpgradeStatusResp
unsigned char cmdInProcess; unsigned char cmdInProcess;
unsigned char lastCmdCompCode; unsigned char lastCmdCompCode;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgGetUpgradeStatusCtx struct HpmfwupgGetUpgradeStatusCtx
{ {
struct HpmfwupgGetUpgradeStatusReq req; struct HpmfwupgGetUpgradeStatusReq req;
struct HpmfwupgGetUpgradeStatusResp resp; struct HpmfwupgGetUpgradeStatusResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* MANUAL FW ROLLBACK DEFINITIONS * MANUAL FW ROLLBACK DEFINITIONS
*/ */
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgManualFirmwareRollbackReq struct HpmfwupgManualFirmwareRollbackReq
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgManualFirmwareRollbackResp struct HpmfwupgManualFirmwareRollbackResp
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
struct HpmfwupgManualFirmwareRollbackCtx struct HpmfwupgManualFirmwareRollbackCtx
{ {
struct HpmfwupgManualFirmwareRollbackReq req; struct HpmfwupgManualFirmwareRollbackReq req;
struct HpmfwupgManualFirmwareRollbackResp resp; struct HpmfwupgManualFirmwareRollbackResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* QUERY ROLLBACK STATUS DEFINITIONS * QUERY ROLLBACK STATUS DEFINITIONS
*/ */
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgQueryRollbackStatusReq struct HpmfwupgQueryRollbackStatusReq
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgQueryRollbackStatusResp struct HpmfwupgQueryRollbackStatusResp
{ {
unsigned char picmgId; unsigned char picmgId;
struct HpmfwupgComponentBitMask rollbackComp; struct HpmfwupgComponentBitMask rollbackComp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgQueryRollbackStatusCtx struct HpmfwupgQueryRollbackStatusCtx
{ {
struct HpmfwupgQueryRollbackStatusReq req; struct HpmfwupgQueryRollbackStatusReq req;
struct HpmfwupgQueryRollbackStatusResp resp; struct HpmfwupgQueryRollbackStatusResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* QUERY SELF TEST RESULT DEFINITIONS * QUERY SELF TEST RESULT DEFINITIONS
*/ */
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgQuerySelftestResultReq struct HpmfwupgQuerySelftestResultReq
{ {
unsigned char picmgId; unsigned char picmgId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgQuerySelftestResultResp struct HpmfwupgQuerySelftestResultResp
{ {
@ -858,20 +858,20 @@ struct HpmfwupgQuerySelftestResultResp
unsigned char result1; unsigned char result1;
unsigned char result2; unsigned char result2;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgQuerySelftestResultCtx struct HpmfwupgQuerySelftestResultCtx
{ {
struct HpmfwupgQuerySelftestResultReq req; struct HpmfwupgQuerySelftestResultReq req;
struct HpmfwupgQuerySelftestResultResp resp; struct HpmfwupgQuerySelftestResultResp resp;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
/* /*
* HPM.1 IMAGE DEFINITIONS * HPM.1 IMAGE DEFINITIONS
@ -887,8 +887,8 @@ struct HpmfwupgQuerySelftestResultCtx
#define HPMFWUPG_IMAGE_HEADER_VERSION 0 #define HPMFWUPG_IMAGE_HEADER_VERSION 0
#define HPMFWUPG_IMAGE_SIGNATURE "PICMGFWU" #define HPMFWUPG_IMAGE_SIGNATURE "PICMGFWU"
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgImageHeader struct HpmfwupgImageHeader
{ {
@ -926,15 +926,15 @@ struct HpmfwupgImageHeader
unsigned char firmRevision[HPMFWUPG_FIRM_REVISION_LENGTH]; unsigned char firmRevision[HPMFWUPG_FIRM_REVISION_LENGTH];
unsigned short oemDataLength; unsigned short oemDataLength;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#define HPMFWUPG_DESCRIPTION_LENGTH 21 #define HPMFWUPG_DESCRIPTION_LENGTH 21
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgActionRecord struct HpmfwupgActionRecord
{ {
@ -942,14 +942,14 @@ struct HpmfwupgActionRecord
struct HpmfwupgComponentBitMask components; struct HpmfwupgComponentBitMask components;
unsigned char checksum; unsigned char checksum;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#define HPMFWUPG_FIRMWARE_SIZE_LENGTH 4 #define HPMFWUPG_FIRMWARE_SIZE_LENGTH 4
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgFirmwareImage struct HpmfwupgFirmwareImage
{ {
@ -957,12 +957,12 @@ struct HpmfwupgFirmwareImage
char desc[HPMFWUPG_DESCRIPTION_LENGTH]; char desc[HPMFWUPG_DESCRIPTION_LENGTH];
unsigned char length[HPMFWUPG_FIRMWARE_SIZE_LENGTH]; unsigned char length[HPMFWUPG_FIRMWARE_SIZE_LENGTH];
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(1) #pragma pack(1)
#endif #endif
struct HpmfwupgUpgradeCtx struct HpmfwupgUpgradeCtx
{ {
@ -974,8 +974,8 @@ struct HpmfwupgUpgradeCtx
struct HpmfwupgGetGeneralPropResp genCompProp[HPMFWUPG_COMPONENT_ID_MAX]; struct HpmfwupgGetGeneralPropResp genCompProp[HPMFWUPG_COMPONENT_ID_MAX];
struct ipm_devid_rsp devId; struct ipm_devid_rsp devId;
} ATTRIBUTE_PACKING; } ATTRIBUTE_PACKING;
#ifdef PRAGMA_PACK #ifdef HAVE_PRAGMA_PACK
#pramga pack(0) #pragma pack(0)
#endif #endif
typedef enum eHpmfwupgActionType typedef enum eHpmfwupgActionType

View File

@ -127,6 +127,9 @@ typedef enum tImeUpdateType
} tImeUpdateType; } tImeUpdateType;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
typedef struct sImeStatus { typedef struct sImeStatus {
uint8_t image_status; uint8_t image_status;
tImeStateEnum update_state; tImeStateEnum update_state;
@ -135,13 +138,21 @@ typedef struct sImeStatus {
uint8_t update_type; uint8_t update_type;
uint8_t dependent_flag; uint8_t dependent_flag;
uint8_t free_area_size[4]; uint8_t free_area_size[4];
} __attribute__ ((packed)) tImeStatus ; } ATTRIBUTE_PACKING tImeStatus ;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
typedef struct sImeCaps { typedef struct sImeCaps {
uint8_t area_supported; uint8_t area_supported;
uint8_t special_caps; uint8_t special_caps;
} __attribute__ ((packed)) tImeCaps ; } ATTRIBUTE_PACKING tImeCaps ;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
static void ImePrintUsage(void); static void ImePrintUsage(void);

View File

@ -52,6 +52,9 @@
#define ADD_PARTIAL_SDR 0x25 #define ADD_PARTIAL_SDR 0x25
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
struct sdr_add_rq { struct sdr_add_rq {
uint16_t reserve_id; /* reservation ID */ uint16_t reserve_id; /* reservation ID */
uint16_t id; /* record ID */ uint16_t id; /* record ID */
@ -60,7 +63,10 @@ struct sdr_add_rq {
#define PARTIAL_ADD (0) #define PARTIAL_ADD (0)
#define LAST_RECORD (1) #define LAST_RECORD (1)
uint8_t data[1]; /* SDR record data */ uint8_t data[1]; /* SDR record data */
} __attribute__ ((packed)); } ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
#endif
/* This was formerly initialized to 24, reduced this to 19 so the overall /* This was formerly initialized to 24, reduced this to 19 so the overall
message fits into the recommended 32-byte limit */ message fits into the recommended 32-byte limit */