# FSP (v1.02a)

# HMCX = 0x0005
#GET_PLATFORM_SRC = 0,B,0,2,UINT16+OFFSET,UINT16+COUNT,STRUCT_OPTIONAL_DATA+COUNT+CEC_SRC_STRUCT+CEC_SRC_LIST
GET_PLATFORM_SRC = 0,B,0,2,UINT16+OFFSET,UINT16+COUNT,\
                    IF+COUNT+!0+CONTINUE_GETTING_SRC
CONTINUE_GETTING_SRC = STRUCT_OPTIONAL_DATA+COUNT+CEC_SRC_STRUCT+CEC_SRC_LIST
CEC_SRC_STRUCT = UINT32+LENGTH,UINT8+SRC_VER,UINT8+SRC_FLAG,PAD+1,UINT8+WORD_COUNT,PAD+2,UINT16+SRC_STRUCT_LEN,\
                   UINT32+WORD2,UINT32+WORD3,UINT32+WORD4,UINT32+WORD5,\
                    UINT32+WORD6,UINT32+WORD7,UINT32+WORD8,UINT32+WORD9,FIXED_STRING+20+DATA


INTERFACE_CAPABILITIES = 0,5,0,4,UINT32+LENGTH,VARBIN+LENGTH+CAPABILITIES
GET_COMMAND_FAILED_LOG = 0,5,0,6,UINT32+LENGTH,VARBIN+LENGTH+ERROR_DATA
GET_HMC_POLLING_FREQUENCY = 0,5,0,8,UINT16+FREQUENCY,UINT8+TIMEOUTS,UINT8+STATUS
SET_HMC_POLLING_FREQUENCY = 0,5,0,9
GET_INTERFACE_IMPLEMENTATION_LIMITS = 0,5,0,A,UINT32+MAX_COMMAND_SIZE,UINT16+BROADCAST_EVENT_SIZE,\
                                UINT16+MAX_FSP_COMMANDS,UINT8+SUP_HMC_NUM,PAD+3,UINT16+LOCK_NUM,\
								UINT16+PERSIS_LOCK_NUM
GET_MASTER_HMC = 0,5,0,C,UINT8+STATUS,UINT8+MASTER_STATUS,PAD+2,UINT16+LENGTH,VARBIN+LENGTH+NAME
PASSTHRU_IPMI_CMD = 0,5,90,E1,PAD+2,UINT16+LENGTH,VARBIN+LENGTH+CMD_RESPONSE
QUERY_POWER_SAVING_MODE = 0,5,90,E2,UINT8+PLATFORM_SUPPORT_FLAG,UINT8+CUR_POWER_SAVING_MODE,UINT8+REQ_POWER_SAVING_MODE
SET_POWER_SAVING_MODE = 0,5,90,E3

# TODO: Remove parms, they are only returned on an error.  See MASTER_HMC_ALREADY_DEFINED below
SET_MASTER_HMC = 0,5,0,D,UINT16+LENGTH,VARBIN+LENGTH+NAME

GET_HMC_LOCK_STATUS_V3 = 0,5,0,13,UINT16+DATA_OFFSET,UINT16+LOCKS_REMAIN,UINT16+LOCK_NUM,UINT16+LOCK_REC_LEN,\
        STRUCT+LOCK_NUM+LOCK_REC+LOCK_REC_LIST
SET_HMC_LOCKS_V2 = 0,5,0,16,UINT16+HMC_ID_LEN,FIXED_STRING+HMC_ID_LEN+HMC_ID,PAD+2,UINT16+LOCD_REC_SIZE,UINT32+REQ_ID,UINT32+FLAG,FIXED_BIN+8+LOCK_RES
RESET_HMC_LOCKS_V2 = 0,5,0,18
RESET_HMC_LOCKS_V2_FAILED = 0,5,0,18,UINT16+HMC_ID_LEN,FIXED_STRING+HMC_ID_LEN+HMC_ID,PAD+2,UINT16+LOCD_REC_SIZE,UINT32+REQ_ID,UINT32+FLAG,FIXED_BIN+8+LOCK_RES
LOCK_REC = UINT32+REQ_ID,UINT32+FLAG,FIXED_BIN+8+LOCK_RES
LOCK_RET= FIXED_BIN+18+HEADER,UINT16+HMC_ID_LEN,FIXED_STRING+HMC_ID_LEN+HMC_ID,PAD+2,UINT16+LOCD_REC_SIZE,UINT32+REQ_ID,UINT32+FLAG,FIXED_BIN+8+LOCK_RES


GET_EVENT_NOTIFICATION_MASK = 0,5,1,2,PAD+2,UINT16+LENGTH,VARBIN+LENGTH+MASK
SET_EVENT_NOTIFICATION_MASK = 0,5,1,3
ACKNOWLEDGE_OUTSTANDING_EVENTS = 0,5,1,7
GET_PENDING_EVENTS = 0,5,1,8,PAD+2,UINT16+LENGTH,VARBIN+LENGTH+DATA
GET_OUTSTANDING_EVENTS = 0,5,1,8,PAD+2,UINT16+LENGTH,VARBIN+LENGTH+MASK
SET_NOTIFICATION_EVENT = 0,5,1,11
GET_HMC_BROADCAST_EVENT = 0,5,1,14,PAD+2,UINT16+LENGTH,VARBIN+LENGTH+EVENT
GET_CURRENT_HMC_BROADCAST_SEQUENCE_NUMBER = 0,5,1,16,UINT16+NUMBER
QUERY_FSP_COMMUNICATION_STATE = 0,5,1,1C,UINT8+COMMUNICATION_STATE
GET_SPCN_LOOP_STATUS = 0,5,81,1D,8,UINT32+STATUS

GET_CEC_TIME_OF_DAY = 0,11,4,2,UINT16+YEAR,UINT8+MONTH,UINT8+DAY,UINT8+HOUR,\
                                   UINT8+MINUTE,UINT8+SECOND,PAD+1,UINT32+MICRO_SECOND
SET_CEC_TIME_OF_DAY = 0,11,84,3

GET_CEC_NAME = 0,5,11,4,UINT16+LENGTH,VARBIN+LENGTH+CEC_NAME
SET_CEC_NAME = 0,5,11,5
GET_CEC_STATE = 0,5,11,6,UINT8+STATE,PAD+1,UINT16+MAX_HYP_COMMANDS
GET_CEC_STATE_V3 = 0,5,11,C,UINT16+CEC_STATE_SUMMARY,UINT8+CEC_POWER_STATE,UINT8+CEC_NEXT_POWER_STATE,UINT8+CEC_RUN_STATE,UINT8+CE_NEXT_RUN_STATE,UINT16+MAX_HYP_COMMANDS
SET_CEC_STATE = 0,5,11,7
GET_STORAGE_CLUSTER_VPD = 0,5,11,15,UINT16+TYPE_MODEL_LENGTH,VARBIN+TYPE_MODEL_LENGTH+TYPE_MODEL,\
                                    UINT16+SERIAL_LENGTH,VARBIN+SERIAL_LENGTH+SERIAL,\
                                    UINT16+WWNN_LENGTH,VARBIN+WWNN_LENGTH+WWNN,\
                                    UINT16+SYSTEM_ID_LENGTH,VARBIN+SYSTEM_ID_LENGTH+SYSTEM_ID,\
                                    UINT16+MFG_DATE_LENGTH,VARBIN+MFG_DATE_LENGTH+MFG_DATE
GET_PROCESSOR_FEATURE_CODE = 0,5,11,16,FIXED_STRING+4+FEATURE_CODE

GET_PLATFORM_IPL_PARAMETERS = 0,10,11,10,PAD+2,UINT8+CURR_KEYLOCK_POSITION,UINT8+NEXT_KEYLOCK_POSITION,\
                                            UINT8+CURR_IPL_SIDE,UINT8+NEXT_IPL_SIDE,\
                                            UINT8+CURR_FSPM_OS_IPL_MODE,UINT8+NEXT_FSPM_OS_IPL_MODE,\
                                            UINT8+CURR_IPL_SPEED,UINT8+CURR_IPL_SPEED_OVERRIDE,\
                                            UINT8+NEXT_IPL_SPEED,UINT8+NEXT_IPL_SPEED_OVERRIDE,\
                                            UINT16+CURR_CEC_IPL_ATTRIBUTES,UINT8+CURR_CEC_IPL_MAJOR_TYPE,\
                                            UINT8+CURR_CEC_IPL_MINOR_TYPE,UINT8+CURR_HYPERVISOR_IPL_STATE,\
                                            UINT8+NEXT_HYPERVISOR_IPL_STATE,UINT8+CURR_FSPM_LPAR_BOOT_MODE,\
                                            UINT8+NEXT_FSPM_LPAR_BOOT_MODE,UINT16+CURR_FSP_BOOT_ATTRIBUTES,\
                                            UINT8+CURR_FSP_BOOT_MAJOR_TYPE,UINT8+CURR_FSP_BOOT_MINOR_TYPE,\
                                            UINT8+CURR_CEC_LMB_SIZE,UINT8+NEXT_CEC_LMB_SIZE
SET_PLATFORM_IPL_PARAMETERS = 0,10,11,11
GET_ORIGINAL_PLATFORM_IPL_SIDE = 0,10,11,14,UINT8+FSP_SIDE
QUERY_PREFERRED_OS_TYPE =  0,10,1,17,UINT8+PRIMARY_OS

REBOOT_SERVICE_PROCESSOR = 0,D,12,1
BROADCAST_MESSAGE = 0,5,0,19
SET_HMC_LOCKS = 0,5,0,15
RESET_HMC_LOCKS = 0,5,0,17
GET_HMC_LOCK_STATUS = 0,5,0,1C,UINT16+NUM_FSP_SUPPORTED_LOCKSTAT_BYTES,UINT16+NUM_LOCKSTAT_BYTES,\
                               VARBIN+NUM_LOCKSTAT_BYTES+LOCKSTAT_BYTES
GET_HMC_INFORMATION = 0,5,0,1A,UINT32+RESPONSE_LENGTH,UINT16+HEADER_SIZE,UINT8+REPEATS,PAD+1,\
                               STRUCT+REPEATS+HMC_INFORMATION_STRUCT+HMC_INFO_LIST
HMC_INFORMATION_STRUCT = UINT16+STRUCT_LENGTH,UINT8+CONNECTION_STATUS,PAD+1,UINT32+TOOL_TYPE,\
                         UINT16+HMC_ID_LENGTH,VARBIN+HMC_ID_LENGTH+HMC_ID

ACKNOWLEDGE_PLATFORM_DUMP = 0,5,1D,5
ACKNOWLEDGE_PLATFORM_DUMP_V2 = 0,5,1D,5
GET_LOCATION_CODE_LIST = 0,5,80,6,UINT32+LIST_ID

GET_BPA_LOCATION_CODE_LIST = 0,1A,80,90,1,UINT32+TOTAL_LEN,UINT16+HEADER_SIZE,UINT16+FLAGS,\
                             UINT16+STATUS_ORIGIN,UINT16+STATUS_CODE,STRUCT_LEN+TOTAL_LEN+MINUS+16+BPA_LOC_CODE_STRUCT+LOC_CODE_LIST
BPA_LOC_CODE_STRUCT = UINT16+LOC_CODE_STRUCT_LEN,FIXED_STRING+4+CCIN,UINT8+RESOURCE_STATUS,\
                      UINT8+STATE,UINT8+RAW_LOC_CODE_LEN,UINT8+LOC_CODE_LEN,\
                      FIXED_STRING+LOC_CODE_LEN+LOC_CODE

TRANSITION_HYPERVISOR_STATE = 0,5,0,21
# FILE IO
OPEN_FILE = 0,5,2,4,UINT32+FILE_SIZE,UINT32+WRITE_SIZE_LIMIT
READ_FILE = 0,5,2,6,UINT32+LENGTH,VARBIN+LENGTH+DATA
WRITE_FILE = 0,5,2,7,UINT32+LENGTH_WRITTEN
CLOSE_FILE = 0,5,2,5
GET_FILE_INSTANCE_LIST_2 = 0,5,2,A,PAD+2,UINT16+REPEATS,PAD+4,STRUCT+REPEATS+FILE_TOKEN+FILE_LIST
GET_FILE_INSTANCE_LIST = 0,5,2,A,PAD+2,UINT16+REPEATS,STRUCT+REPEATS+FILE_TOKEN+FILE_INST_LIST
FILE_TOKEN = PAD+2,UINT16+FILE_ID,UINT32+SUB_FILE_ID,UINT32+FILE_SIZE

#POWR cmds
GET_CEC_CONFIG_ID = 0,5,80,4,UINT32+CONFIG_ID
SET_CEC_CONFIG_ID = 0,5,80,3
SET_CEC_CONFIG_ID_WITHOUT_RESET = 0,5,80,E
GET_IO_DRAWER_CONFIG_ID = 0,5,80,9,UINT16+OFFSET,UINT16+NUM_ENTRIES,UINT16+VERSION,\
                                STRUCT+NUM_ENTRIES+DRAWER_ENTRY_STRUCT+DRAWER_ENTRY_LIST
DRAWER_ENTRY_STRUCT = UINT16+LEN,UINT16+IO_CONFIG_ID,UINT16+RACK_ADD,UINT16+UNIT_ADD,FIXED_STRING+4+TYPE,\
                      FIXED_STRING+3+MODEL,UINT8+UNIT_STATUS,FIXED_STRING+2+PLANT_ID,PAD+2,FIXED_STRING+C+SERIAL_NUM,\
                      UINT8+RLEN,UINT8+ALEN,FIXED_STRING+ALEN+LOC_CODE

GET_IO_DRAWER_CONFIG_ID_2 = 0,5,80,9,UINT16+OFFSET,UINT16+NUM_ENTRIES,UINT16+VERSION,\
                                STRUCT+NUM_ENTRIES+DRAWER_ENTRY_STRUCT_2+DRAWER_ENTRY_LIST
DRAWER_ENTRY_STRUCT_2 = UINT16+LEN,UINT16+IO_CONFIG_ID,UINT16+RACK_ADD,UINT16+UNIT_ADD,FIXED_STRING+4+TYPE,\
                      FIXED_STRING+3+MODEL,UINT8+UNIT_STATUS,FIXED_STRING+2+PLANT_ID,PAD+2,FIXED_STRING+C+SERIAL_NUM,\
                      UINT8+RLEN,UINT8+ALEN,FIXED_STRING+ALEN+LOC_CODE,UINT8+MICRO_STATUS,UINT16+TDBC,UINT16+COUNT_OF_TRANS,\
                      FIXED_STRING+C+CURR_AROS_PN,FIXED_STRING+C+TARGET_AROS_PN,UINT16+YEAR,UINT8+MONTH,UINT8+DAY,\
                      UINT8+HOUR,UINT8+MINUTE,UINT8+SECOND

SET_IO_DRAWER_MTMS = 0,5,80,5
SET_IO_DRAWER_CONFIG_ID = 0,5,80,8
CLEAR_INACTIVE = 0,5,80,20

#Performance Policies cmds
QUERY_PERFORMANCE_POLICIES = 0,5,0,22,UINT32+PERF_POLICY_SUPPORT_MASK,UINT8+CURR_ADDR_BROADCAST_POLICY,\
                            UINT8+NEXT_ADDR_BROADCAST_POLICY
SET_PERFORMANCE_POLICIES = 0,5,90,23


# HMC_VTERM (VSER) = 0x0004
GET_MAX_HMC_VIRTUAL_SERIAL_CONNECTIONS = 0,4,21,2,UINT16+MAX_VSERIAL_PER_CEC,\
                                                       UINT8+MAX_VSERIAL_PER_LPAR
OPEN_VIRTUAL_SERIAL_CONNECTION = 0,4,21,6,UINT16+LPAR_ID,UINT16+CONNECTION_NUMBER,\
                                               UINT8+STATUS
CLOSE_VIRTUAL_SERIAL_CONNECTION = 0,4,21,7
SEND_VIRTUAL_SERIAL_DATA = 0,4,21,9
RECEIVE_VIRTUAL_SERIAL_DATA = 0,4,21,A,UINT16+LPAR_ID,UINT16+CONNECTION_NUMBER,\
                                            UINT16+LENGTH,VARBIN+LENGTH+DATA
SET_FLOW_CONTROL_ON_OFF = 0,4,21,B
GET_VIRTUAL_SERIAL_BUFFER_STATUS = 0,4,21,C,PAD+2,UINT16+AVAILABLE

# NETS = 0x0007
#GET_ENCLOSURE_TYPE_AND_INTERFACE_VERSION_NUMBER = 0,7,0,1,UINT8+FAMILY,UINT8+TYPE,UINT16+MAJOR_VERSION,\
#                                                       UINT16+MINOR_VERSION,UINT16+MASTER_SLAVE,\
#                                                       UINT16+MTM_LENGTH,VARBIN+MTM_LENGTH+TYPE_MODEL,\
#                                                       UINT16+SERIAL_LENGTH,VARBIN+SERIAL_LENGTH+SERIAL_NUMBER
PLATFORM_PASSWORD = 0,7,74,12,UINT8+STATUS
SET_PASSWORDS = 0,7,87,41
DISCONNECT_HMC=0,7,0,6

ASYNC_EVENT_NOTIFICATION = 0,7,0,1,UINT16+RESERVED,UINT16+MASK_LENGTH,VARBIN+MASK_LENGTH+DATA
OUTBOUND_BROADCAST_MSG = 0,7,B0,BF,BYTE+OFFSET_TO_DATA,UINT16+MSG_LEN,UINT32+TOOL_TYPE,UINT16+HMC_ID_LEN,VARBIN+HMC_ID_LEN+HMC_ID,VARBIN+MSG_LEN+DATA



# CODE_UPDATE (cupd) = 0x000C
START_CODE_UPDATE = 0,C,0,7,UINT32+MAX_WRITE_BLOCK_SIZE
START_CODE_UPDATE_LR = 0,C,80,7,UINT32+MAX_WRITE_BLOCK_SIZE
CODE_UPDATE_COMPLETE = 0,C,0,D
CODE_COMMIT = 0,C,80,F
DELETE_LID = 0,C,80,B
WRITE_LID = 0,C,80,9
WRITE_LID_PARTIAL = 0,C,80,15
SET_CODE_UPDATE_POLICY = 0,C,0,11
GET_CODE_UPDATE_STATUS = 0,C,0,12,UINT8+UPDATE_POLICY,UINT8+UPDATE_STATUS,UINT16+LENGTH,VARBIN+LENGTH+NAME
GET_CODE_UPDATE_STATUS2 = 0,C,0,12,UINT8+UPDATE_POLICY,UINT8+UPDATE_STATUS,UINT16+LENGTH,VARBIN+LENGTH+NAME,UINT32+CURRENT_LID_NUMBER,UINT32+CURRENT_LID_BYTES_TRANSFERRED
READ_LID = 0,C,0,8,UINT16+OFFSET_TO_DATA,UINT8+END_OF_FILE_FLAG,PAD+1,UINT32+LENGTH_READ,VARBIN+LENGTH_READ+DATA
READ_LID_PARTIAL = 0,C,0,14,UINT16+OFFSET_TO_DATA,UINT8+END_OF_FILE_FLAG,PAD+1,UINT32+LENGTH_READ,VARBIN+LENGTH_READ+DATA
READ_LID_SPECIAL = 0,C,0,16,UINT16+OFFSET_TO_DATA,UINT8+END_OF_FILE_FLAG,PAD+1,UINT32+LENGTH_READ,VARBIN+LENGTH_READ+DATA
REFRESH_PLCK_TIMER = 0,C,0,17

# ERROR_LOG (errl) = 0x000E
GET_CURRENT_FSP_LOG_ENTRY_ID = 0,E,0,2,UINT32+LOG_ENTRY_ID,UINT32+PLID
GET_LIST_OFPLATFORM_EVENTS_LOG_EVENTS = 0,E,0,4,UINT32+START_OFFSET,UINT16+ENTRY_COUNT,UINT16+EVENT_SIZE,STRUCT+ENTRY_COUNT+EVT_LOG_ID_STRUCT+EVT_LOG_ID_LIST
EVT_LOG_ID_STRUCT = UINT32+LOG_ENTRY_ID,UINT32+PLID
ACKNOWLEDGE_PLATFORM_EVENT_LOG_ENTRY = 0,E,0,5

#Virtual Operator Panel ( vpnl ) = 0x000D
GET_DUMP_PARAMETERS = 0,D,2A,6,UINT8+COLLECTION_POLICY,UINT8+HARDWARE_CONTENT_POLICY,UINT8+HYPERVISOR_CONTENT_POLICY
SET_DUMP_PARAMETERS = 0,D,2A,7
INITIAL_SYSTEM_DUMP = 0,D,AA,9
INITIAL_SYSTEM_DUMP_V2 = 0,D,AA,9
LAMP_TEST = 0,D,4,1,8
DUMP_SERVICE_PROCESSOR = 0,D,12,3
DUMP_SERVICE_PROCESSOR_V2 = 0,D,12,3
QUERY_DUMP_OWNERSHIP = 0,5,D,6,UINT16+OWNER_STRUCTURE_SIZE,UINT16+NUM_STRUCTURES,STRUCT+NUM_STRUCTURES+DUMP_OWNER_STRUCT+OWNER_LIST
DUMP_OWNER_STRUCT =  PAD+2,UINT16+FILE_ID,UINT32+SUB_ID,UINT32+QUERY_RETURN_CODE,UINT32+QUERY_PLID,UINT32+DUMP_STATUS,UINT64+DUMP_SIZE,FIXED_STRING+4+OWNER_TOOL_TYPE,UINT16+OWNER_CLIENT_ID_LEN,FIXED_STRING+OWNER_CLIENT_ID_LEN+OWNER_CLIENT_ID,UINT16+USER_ID_LEN,FIXED_STRING+USER_ID_LEN+USER_ID
INITIATE_NODE_CONTROLLER_DUMP = 0,5,92,10

QUERY_NODE_CONTROLLER_DUMP = 0,5,82,11,UINT32+VERSION,UINT16+NODE_CONTROLLER_DUMP_SUPPORT_FLAG,UINT16+NUM_STRUCTURES,UINT16+NODE_CONTROLLER_STRUCTURE_SIZE,UINT16+OFFSET_DATA_STRUCTURES,IF+OFFSET_DATA_STRUCTURES+!0+PAD+OFFSET_DATA_STRUCTURES,STRUCT+NUM_STRUCTURES+NODE_DATA_ATTR+NODE_DATA_STRUCTURE

NODE_DATA_ATTR = UINT16+LOCATION_CODE_LENGTH,FIXED_STRING+LOCATION_CODE_LENGTH+LOCATION_CODE,UINT16+STATUS,PAD+2

#LED COMMANDS (iled) = 0x000F
GET_SYSATTN_LED = 0,F,0,2,UINT8+LED
SET_SYSATTN_LED = 0,F,0,3
GET_FRU_IDENTIFY_LED = 0,F,80,4,UINT16+STATUS_ORIGIN,UINT16+STATUS_CODE,UINT8+FRU_LED
SET_FRU_IDENTIFY_LED =  0,F,80,5,UINT16+STATUS_ORIGIN,UINT16+STATUS_CODE

INITIATE_ADMINISTRATIVE_FAILOVER = 0,18,10,0
INITIATE_CODEUPDATE_FAILOVER = 0,18,10,7
SET_REDUNDANT_FSP_POLICIES = 0,18,90,1,
SET_REDUNDANT_FSP_POLICIES_V2 = 0,18,90,8,
GET_REDUNDANT_FSP_INFORMATION = 0,18,0,2,UINT16+CAPABILITY,PAD+2,UINT8+ENABLE,UINT8+RESTRICTION,PAD+1,UINT8+READINESS,UINT32+REASON

GET_REDUNDANT_FSP_INFO_V2 = 0,18,0,2,UINT16+CAPABILITY,PAD+2,UINT8+ENABLE,UINT8+RESTRICTION,PAD+1,UINT8+READINESS,UINT32+REASON,UINT8+SEC_FSP_PRESENCE,UINT8+SEC_FSP_FUNC,UINT8+SEC_FSP_CODE_LEVEL,PAD+1,UINT32+ETH0_IP,UINT32+ETH1_IP

GET_REDUNDANT_FSP_INFO_V3 = 0,18,0,2,UINT16+CAPABILITY,PAD+2,UINT8+ENABLE,UINT8+RESTRICTION,PAD+1,UINT8+READINESS,UINT32+REASON,UINT8+SEC_FSP_PRESENCE,UINT8+SEC_FSP_FUNC,UINT8+SEC_FSP_CODE_LEVEL,PAD+9,UINT16+REC_NUM,UINT16+OFFSET,PAD+OFFSET,STRUCT+REC_NUM+STRUCT_FSP_REC+FSP_REC_LIST

STRUCT_FSP_REC=UINT16+FSP_REC_LEN,EXPR_VAR_LEN+FSP_REC_LEN+FSP_REC_EXPR
FSP_REC_EXPR=UINT8+ORIG_FLAG,UINT8+FSP_POS,UINT8+FSP_ROLE,UINT8+IP_CAP,PAD+2,UINT16+LOC_CODE_LEN,FIXED_STRING+LOC_CODE_LEN+LOC_CODE,UINT16+DEV_FW_LVL_LEN,FIXED_STRING+DEV_FW_LVL_LEN+DEV_FW_LVL,UINT16+OFFICIAL_FW_LVL_LEN,FIXED_STRING+OFFICIAL_FW_LVL_LEN+OFFICIAL_FW_LVL,UINT16+NW_REC_NUM,UINT16+NW_RECS_OFFSET,PAD+NW_RECS_OFFSET,STRUCT+NW_REC_NUM+STRUCT_NW_REC+NW_REC_LIST

STRUCT_NW_REC=UINT16+NW_REC_LEN,EXPR_VAR_LEN+NW_REC_LEN+NW_REC_EXPR
NW_REC_EXPR=UINT8+INTF_NUM,UINT8+IP_TYPE,UINT8+DEF_CFG,PAD+3,UINT32+IP_ADDR,UINT32+SUBNET_MASK,UINT32+GW_ADDR,UINT32+BC_ADDR,UINT32+PRI_NS,UINT32+SEC_NS,UINT32+TRI_NS,UINT16+HOSTNAME_LEN,FIXED_STRING+HOSTNAME_LEN+HOSTNAME,UINT16+DOMAIN_NAME_LEN,FIXED_STRING+DOMAIN_NAME_LEN+DOMAIN_NAME

GET_REDUNDANT_FSP_INFO_V4 = 0,18,0,3,UINT16+CAPABILITY,PAD+2,UINT8+ENABLE,UINT8+RESTRICTION,PAD+1,UINT8+READINESS,UINT32+REASON,UINT8+SEC_FSP_PRESENCE,UINT8+SEC_FSP_FUNC,UINT8+SEC_FSP_CODE_LEVEL,PAD+9,UINT16+REC_NUM,UINT16+OFFSET,PAD+OFFSET,STRUCT+REC_NUM+STRUCT_FSP_REC_V4+FSP_REC_LIST

STRUCT_FSP_REC_V4=UINT16+FSP_REC_LEN,EXPR_VAR_LEN+FSP_REC_LEN+FSP_REC_EXPR_V4
FSP_REC_EXPR_V4=UINT8+ORIG_FLAG,UINT8+FSP_POS,UINT8+FSP_ROLE,UINT8+IP_CAP,PAD+2,UINT16+LOC_CODE_LEN,FIXED_STRING+LOC_CODE_LEN+LOC_CODE,UINT16+DEV_FW_LVL_LEN,FIXED_STRING+DEV_FW_LVL_LEN+DEV_FW_LVL,UINT16+OFFICIAL_FW_LVL_LEN,FIXED_STRING+OFFICIAL_FW_LVL_LEN+OFFICIAL_FW_LVL,UINT16+NW_REC_NUM,UINT16+NW_RECS_OFFSET,PAD+NW_RECS_OFFSET,STRUCT+NW_REC_NUM+STRUCT_NW_REC_V4+NW_REC_LIST

STRUCT_NW_REC_V4=UINT16+NW_REC_LEN,EXPR_VAR_LEN+NW_REC_LEN+NW_REC_EXPR_V4
NW_REC_EXPR_V4=UINT8+FSP_INTERFACE_NUMBER,UINT8+NETWORK_INTERFACE_LINK_STATUS,UINT8+SUPPORTED_NETWORK_STACKS,UINT8+ENABLED_NETWORK_STACKS,UINT8+IPV4_DHCP_POLICY,UINT8+IPV4_ADDR_DEF_CONFIG_FLAG,STRUCT+1+EXTENDED_IP_ADDRESS+IPV4_ADDRESS,UINT16+BROADCAST_ADDR_LEN,FIXED_STRING+BROADCAST_ADDR_LEN+BROADCAST_ADDR,UINT16+GATEWAY_ADDR_LEN,FIXED_STRING+GATEWAY_ADDR_LEN+GATEWAY_ADDR,UINT8+STATELESS_AUTO_CONFIG_POLICY,UINT8+IPV6_DHCP_POLICY,PAD+2,STRUCT+1+EXTENDED_IP_ADDRESS+STATELESS_LINK_LOCAL_IPV6_ADDR,STRUCT+1+EXTENDED_IP_ADDRESS+STATEFUL_DYNAMIC_IPV6_ADDR,PAD+3,UINT8+NUM_ROUTER_ASSIGNED_IPV6_ADDR,STRUCT+NUM_ROUTER_ASSIGNED_IPV6_ADDR+EXTENDED_IP_ADDRESS+STATELESS_IPV6_ADDR_LIST,PAD+3,UINT8+NUM_STATICALLY_ASSIGNED_IPV6_ADDR,STRUCT+NUM_STATICALLY_ASSIGNED_IPV6_ADDR+EXTENDED_IP_ADDRESS+STATEFUL_IPV6_ADDR_LIST,UINT16+PRIMARY_DNS_SERVER_LEN,FIXED_STRING+PRIMARY_DNS_SERVER_LEN+PRIMARY_DNS_SERVER,UINT16+SECONDARY_DNS_SERVER_LEN,FIXED_STRING+SECONDARY_DNS_SERVER_LEN+SECONDARY_DNS_SERVER,UINT16+TERTIARY_DNS_SERVER_LEN,FIXED_STRING+TERTIARY_DNS_SERVER_LEN+TERTIARY_DNS_SERVER,UINT16+HOST_NAME_LEN,FIXED_STRING+HOST_NAME_LEN+HOST_NAME,UINT16+DOMAIN_NAME_LEN,FIXED_STRING+DOMAIN_NAME_LEN+DOMAIN_NAME

EXTENDED_IP_ADDRESS=UINT8+ADDR_CONFIG_TYPE,PAD+3,UINT16+PREFIX_LEN,FIXED_STRING+PREFIX_LEN+PREFIX_LENGTH,UINT16+IP_ADDR_LEN,FIXED_STRING+IP_ADDR_LEN+IP_ADDRESS

#eClipz CCM Type 2 Async.
FSP_CCM_ASYNC_SRC_DATA_TYPE = 70,00,A0,22,UINT16+OFFSET,UINT16+EVENT_TYPE

FSP_CCM_ASYNC_SRC_DATA_ALL  = 70,00,A0,22,UINT16+OFFSET,UINT16+EVENT_TYPE,PAD+0,UINT8+SRC_TYPE,UINT8+PROGRESS_INDICATOR,PAD+2,UINT32+SRC_LEN,FIXED_STRING+SRC_LEN+SRC_DATA

FSP_CCM_ASYNC_COMP_DATA_ALL = 70,00,A0,22,UINT16+OFFSET,UINT16+EVENT_TYPE,PAD+0,UINT32+CORRELATION_TOK,UINT16+HMC_ID_LEN,FIXED_STRING+HMC_ID_LEN+HMC_ID,UINT16+LOC_COD_LEN,FIXED_STRING+LOC_COD_LEN+LOC_CODE,UINT16+STATUS,UINT16+RECOVERY_STATUS,UINT32+RESERVED,UINT32+FAILURE_PLID,UINT8+FRU_REMOVE_INST,UINT32+EXTENDED_PLID

FSP_CCM_ASYNC_SRC_DATA=FIXED_BIN+1C+HEADER,UINT8+SRC_TYPE,UINT8+PROGRESS_INDICATOR,PAD+2,UINT32+SRC_LEN,FIXED_STRING+SRC_LEN+SRC_DATA

FSP_CCM_ASYNC_COMP_DATA=FIXED_BIN+1C+HEADER,UINT32+CORRELATION_TOK,UINT16+HMC_ID_LEN,FIXED_STRING+HMC_ID_LEN+HMC_ID,UINT16+LOC_COD_LEN,FIXED_STRING+LOC_COD_LEN+LOC_CODE,UINT16+STATUS,UINT16+RECOVERY_STATUS,UINT32+RESERVED,UINT32+FAILURE_PLID,UINT8+FRU_REMOVE_INST

FSP_CCM_ASYNC_COMP_DATA_V2=FIXED_BIN+1C+HEADER,UINT32+CORRELATION_TOK,UINT16+HMC_ID_LEN,FIXED_STRING+HMC_ID_LEN+HMC_ID,UINT16+LOC_COD_LEN,FIXED_STRING+LOC_COD_LEN+LOC_CODE,UINT16+STATUS,UINT16+RECOVERY_STATUS,UINT32+RESERVED,UINT32+FAILURE_PLID,UINT8+FRU_REMOVE_INST,UINT32+EXTENDED_PLID

#BPA LED COMMANDS
GET_BPA_FRU_IDENTIFY_LED = 0,1A,90,4,UINT16+STATUS_ORIGIN,UINT16+STATUS_CODE,UINT8+STATE
SET_BPA_FRU_IDENTIFY_LED =  0,1A,90,5,UINT16+STATUS_ORIGIN,UINT16+STATUS_CODE
#1V2
GET_BPC_CAPABILITIES = 0,1A,90,6,UINT16+LENGTH,UINT64+BPC_CAPABILITIES

# PHYP (v3.0M)
# Cmd Router
#ROUTER_OPEN_SESSION = 80,0,0,1,UINT16+UP_BUFFER,UINT16+DOWN_BUFFER,UINT16+LENGTH,VARBIN+LENGTH+CAPABILITIES
GET_NUMBER_OF_HMC_INFO_SLOTS = 80,0,1,1,UINT16+NUMBER,UINT16+SLOT
GET_HMC_INFO = 80,0,1,2,UINT16+SLOT,UINT16+LENGTH,VARBIN+LENGTH+INFO
SET_HMC_INFO = 80,0,81,2
ECHO = 80,0,1,3,DATA+ERROR_DATA


# LPAR Commands
# Synchronous
#LPAR_OPEN_SESSION = 80,1,0,1,UINT16+UP_BUFFER,UINT16+DOWN_BUFFER,UINT16+LENGTH,VARBIN+LENGTH+CAPABILITIES
GET_NUMBER_OF_LPAR_SLOTS = 80,1,1,1,UINT16+NUM_LPAR_SLOTS
GET_HYPERVISOR_CAPABILITIES = 80,1,1,2,FIXED_BIN+4+CAPABILITIES
PHYP_EXCHANGE_CAPABILITIES = 80,1,1,A,UINT32+LENGTH,VARBIN+LENGTH+CAPABILITIES
GET_HYPERVISOR_CONFIG_STATE_AND_POWER_POLICY = 80,1,1,3,UINT8+STATE,UINT8+POWER_OFF_POLICY,UINT8+CONFIG_STATE
#SET_HYPERVISOR_CONFIG_STATE = 80,1,81,3
SET_HYPERVISOR_POWER_OFF_POLICY = 80,1,81,4
GET_HYPERVISOR_CAPABILITY_VALUES = 80,1,1,5,UINT16+REGION_SIZE,UINT16+HOST_IDS,\
                  UINT16+PROC_UNITS,UINT8+PROC_POOLS,UINT8+MAX_VSWITCHES,UINT16+MAX_IO_POOL_NUM,UINT16+MAX_VIR_PROC_PER_LPAR,\
                  UINT16+MAX_DEDI_PROC_PER_LPAR,UINT8+MIN_HPT_RATIO,UINT8+MAX_HPT_RATIO,\
                  UINT8+RECOMMANDED_HPT_RATIO,UINT8+MAX_VIR_OPTI,UINT8+MAX_HSL_OPTI

GET_HYPERVISOR_CAPABILITY_VALUES_V3 = 80,1,1,5,UINT16+REGION_SIZE,UINT16+HOST_IDS,\
                  UINT16+PROC_UNITS,UINT8+PROC_POOLS,UINT8+MAX_VSWITCHES,UINT16+MAX_IO_POOL_NUM,UINT16+MAX_VIR_PROC_PER_LPAR,\
                  UINT16+MAX_DEDI_PROC_PER_LPAR,UINT8+MIN_HPT_RATIO,UINT8+MAX_HPT_RATIO,\
                  UINT8+RECOMMANDED_HPT_RATIO,UINT8+MAX_VIR_OPTI,UINT8+MAX_HSL_OPTI, \
                  UINT8+MAX_MEM_POOLS, UINT16+MAX_VRM_VASI_STREAMS, UINT16+MIN_VRM_POOL_SIZE

GET_HYPERVISOR_CONFIGURABLE_PROCESSING_AND_MEMORY = 80,1,1,6,UINT32+MEMORY,UINT32+PROC_UNITS
GET_HYPERVISOR_AVAILABLE_PROCESSING_AND_MEMORY = 80,1,1,7,\
        UINT32+CURRENT_MEMORY,UINT32+PENDING_MEMORY,\
        UINT16+CURRENT_INTERACTIVE,UINT16+PENDING_INTERACTIVE
GET_HYPERVISOR_MEMORY_STATISTICS = 80,1,1,8,UINT64+BASE_HYP_MEM,UINT64+MEM_PER_LPAR,UINT64+MEM_PER_OS400_PART,UINT64+MEM_PER_RPA_PART,UINT64+MEM_PER_MM_PART,UINT64+MEM_PER_VSLOT,UINT64+MEM_PER_VETH,UINT64+MEM_PER_VSCSI,UINT64+MEM_PER_VSERIAL,UINT64+MEM_PER_VSMC,UINT64+MEM_PER_HMC
GET_HYPERVISOR_MEMORY_STATISTICS_V2 = 80,1,1,8,UINT64+BASE_HYP_MEM,UINT64+MEM_PER_LPAR,UINT64+MEM_PER_OS400_PART,UINT64+MEM_PER_RPA_PART,UINT64+MEM_PER_MM_PART,UINT64+MEM_PER_VSLOT,UINT64+MEM_PER_VETH,UINT64+MEM_PER_VSCSI,UINT64+MEM_PER_VSERIAL,UINT64+MEM_PER_VSMC,UINT64+MEM_PER_HMC,UINT64+MEM_PER_VSCSI_CLT,UINT64+MEM_PER_VFC,UINT64+MEM_PER_VFC_CLT,UINT64+MEM_PER_VASI
#GET_HYPERVISOR_GLOBAL_ATTRIBUTES = 80,1,1,8,UINT8+LID_UPDATE
#SET_HYPERVISOR_GLOBAL_ATTRIBUTES = 80,1,81,8
GET_MAXIMUM_SYSTEM_RESOURCE_CAPACITY = 80,1,1,E,UINT32+MAXIMUM_SYSTEM_MEMORY_CAPACITY,UINT16+MAXIMUM_SYSTEM_PROCESSOR_CAPACITY
GET_ALL_LPAR_SLOT_DEFINITION_STATES = 80,1,2,1,UINT16+REPEATS,STRUCT+REPEATS+SLOT_DEF_STRUCT+SLOT_DEF_LIST
GET_ALL_LPAR_SLOT_DEFINITION_STATES_V2 = 80,1,2,1,UINT16+REPEATS,STRUCT+REPEATS+SLOT_DEF_STRUCT+SLOT_DEF_LIST
SLOT_DEF_STRUCT = UINT8+DEFINITION_STATE

GET_LPAR_SLOT_DEFINITION_STATE = 80,1,2,2,UINT8+DEFINITION_STATE
GET_LPAR_SLOT_DEFINITION_STATE_V2 = 80,1,2,2,UINT8+DEFINITION_STATE
SET_LPAR_SLOT_DEFINITION_STATE = 80,1,82,2
SET_LPAR_SLOT_DEFINITION_STATE_V2 = 80,1,82,2
GET_LPAR_NAME = 80,1,2,3,UINT16+LENGTH,FIXED_STRING+LENGTH+LPAR_NAME
SET_LPAR_NAME = 80,1,82,3
GET_SERVICE_LPAR_ID = 80,1,2,4,UINT16+LPAR_ID
SET_SERVICE_LPAR_ID = 80,1,82,4

GET_LPAR_ATTRIBUTES = 80,1,2,10,UINT16+CLUSTER_LPAR_ID,UINT8+SHARED_POOL_UTIL_AUTH,\
                           UINT8+REPEATS,STRUCT+REPEATS+HOST_ID_STRUCT+HOST_LP_LIST

GET_LPAR_ATTRIBUTES_V2 = 80,1,2,10,UINT16+CLUSTER_LPAR_ID,UINT8+SHARED_POOL_UTIL_AUTH,\
                            UINT8+REPEATS,STRUCT+REPEATS+HOST_ID_STRUCT+HOST_LP_LIST,\
                            UINT16+LPAR_AVAIL_PRIORITY,UINT8+ELECT_ERR_REPORTING
 
HOST_ID_STRUCT = UINT16+HOST_ID

SET_LPAR_ATTRIBUTES = 80,1,82,10
SET_PARTITION_AVAILABILITY_PRIORITIES = 80,1,82,1D
#SET_LPAR_POWER_ON_WITH_HYPERVISOR = 80,1,82,10
SET_LPAR_HOSTING_PARTITION_ID = 80,1,82,12
SET_LPAR_CLUSTER_GROUP_ID = 80,1,82,13
SET_LPAR_SHARED_POOL_UTIL_AUTH = 80,1,82,14

GET_LPAR_CONFIG_VPD = 80,1,2,15,FIXED_BIN+8+VERSION,PAD+2,UINT16+LEN,FIXED_STRING+LEN+SERIAL_NUMBER,
#GET_LPAR_TCPIP_INFO = 80,1,2,17,TODO
GET_LPAR_REDUNDANT_ERROR_PATH = 80,1,2,18,UINT8+REDUNDANT_ERROR_PATH_FLAG
SET_LPAR_REDUNDANT_ERROR_PATH = 80,1,82,18

#VIRTUAL_ETHERNET_SWITCH Configuration
GET_DEFINED_VSWITCH_INFO = 80,1,B,C,UINT8+REPEATS,STRUCT+REPEATS+VIRTUAL_ETHERNET_SWITCH_STRUCT+VIRTUAL_ETHERNET_SWITCH_LIST
VIRTUAL_ETHERNET_SWITCH_STRUCT = UINT8+VSWITCH_ID,UINT8+LENGTH,FIXED_STRING+LENGTH+VSWITCH_NAME
SET_VIRTUAL_SWITCH_INFO = 80,1,8B,C
CLEAR_VIRTUAL_SWITCH_INFO = 80,1,8B,D
DELETE_ALL_GHOST_PARTITIONS = 80,1,82,20,UINT16+GOST_LPAR_NUM


# Processing
# Apply the correct template according to IS_SHARED
GET_CURRENT_LPAR_PROCESSING = 80,1,3,1,UINT8+IS_SHARED,UINT8+IS_UNCAPPED,\
                                       IF+IS_SHARED+FF+LPAR_DEDICATED_PROC_FORMAT,\
                                       IF+IS_SHARED+!FF+LPAR_SHARED_PROC_FORMAT
GET_PENDING_LPAR_PROCESSING = 80,1,3,2,UINT8+IS_SHARED,UINT8+IS_UNCAPPED,\
                                       IF+IS_SHARED+FF+LPAR_DEDICATED_PROC_FORMAT,\
                                       IF+IS_SHARED+!FF+LPAR_SHARED_PROC_FORMAT
LPAR_DEDICATED_PROC_FORMAT = UINT16+MIN_DEDICATED_PROCS,UINT16+DEDICATED_PROCS,UINT16+MAX_DEDICATED_PROCS
LPAR_SHARED_PROC_FORMAT = UINT16+MIN_VIRTUAL_PROCS,UINT16+VIRTUAL_PROCS,UINT16+MAX_VIRTUAL_PROCS,\
                          UINT32+MIN_SHARED_PROCS,UINT32+SHARED_PROCS,UINT32+MAX_SHARED_PROCS,\
                          UINT8+UNCAPPED_WEIGHT

#80,1,83,2 has two formats. We need two command here
SET_PENDING_LPAR_SHARED_PROCESSING = 80,1,83,2
SET_PENDING_LPAR_DED_PROCESSING = 80,1,83,2
SET_PENDING_LPAR_PROCESSING_MODE = 80,1,83,3

#New commands to support shared dedicated proc mode
LPAR_DEDICATED_PROC_WITH_DONOR_MODE_FORMAT = UINT16+MIN_DEDICATED_PROCS,UINT16+DEDICATED_PROCS,\
                                              UINT16+MAX_DEDICATED_PROCS,UINT8+DONOR_MODE
RUNTIME_LPAR_DEDICATED_PROCS_WITH_DONOR_MODE_FORMAT = UINT16+DEDICATED_PROCS,UINT8+DONOR_MODE
GET_CURRENT_DEDICATED_LPAR_PROCESSING = 80,1,3,1,UINT8+IS_SHARED,UINT8+IS_UNCAPPED,\
                                       IF+IS_SHARED+FF+LPAR_DEDICATED_PROC_WITH_DONOR_MODE_FORMAT,\
                                       IF+IS_SHARED+!FF+LPAR_SHARED_PROC_FORMAT
GET_PENDING_DEDICATED_LPAR_PROCESSING = 80,1,3,1,UINT8+IS_SHARED,UINT8+IS_UNCAPPED,\
                                       IF+IS_SHARED+FF+LPAR_DEDICATED_PROC_WITH_DONOR_MODE_FORMAT,\
                                       IF+IS_SHARED+!FF+LPAR_SHARED_PROC_FORMAT
GET_RUNTIME_DEDICATED_LPAR_PROCESSING = 80,1,3,4,UINT8+IS_SHARED,UINT8+IS_UNCAPPED,\
                                       IF+IS_SHARED+FF+RUNTIME_LPAR_DEDICATED_PROCS_WITH_DONOR_MODE_FORMAT,\
                                       IF+IS_SHARED+!FF+RUNTIME_LPAR_SHARED_PROCS_FORMAT
SET_PENDING_DEDICATED_LPAR_PROCESSING = 80,1,83,2
SET_PENDING_DEDICATED_LPAR_PROCESSING_MODE = 80,1,83,3


GET_RUNTIME_LPAR_PROCESSING = 80,1,3,4,UINT8+IS_SHARED,UINT8+IS_UNCAPPED,\
                                       IF+IS_SHARED+FF+RUNTIME_LPAR_DEDICATED_PROCS_FORMAT,\
                                       IF+IS_SHARED+!FF+RUNTIME_LPAR_SHARED_PROCS_FORMAT

RUNTIME_LPAR_DEDICATED_PROCS_FORMAT = UINT16+DEDICATED_PROCS
RUNTIME_LPAR_SHARED_PROCS_FORMAT = UINT16+VIRTUAL_PROCS,UINT32+PROC_UNITS,UINT8+UNCAPPED_WEIGHT

GET_CURRENT_AND_PENDING_SHARED_PROCESSING_RESOURCES = 80,1,3,6,UINT16+CURRENT_PROCS,\
                                                               PAD+2,UINT32+CURRENT_PROC_UNITS,\
                                                               UINT16+PENDING_PROCS,\
                                                               PAD+2,UINT32+PENDING_PROC_UNITS
#SET_PENDING_SHARED_PROCESSING_RESOURCES = 80,1,83,6

GET_PROC_POOL_UTILIZATION = 80,1,0,7,UINT32+CYCLE_PER_SND,UINT32+TOT_SIZE_IN_PROC_UNIT,\
                        UINT32+CFG_SIZE_IN_PROC_UNIT,PAD+4,UINT64+TOT_CYCLES,UINT64+UTILIZED_CYCLES,\
                        UINT64+CUR_CYCLES

#SHARED_PROC_POOL Configuration
GET_SHARED_PROC_POOL_INFO = 80,1,3,9,UINT16+NEXT_OFFSET_TOKEN,PAD+1,UINT8+REPEATS,STRUCT+REPEATS+SHARED_POOL_STRUCT+SHARED_PROC_POOL_LIST
SHARED_POOL_STRUCT = UINT8+SHARED_PROC_POOL_ID,PAD+3,UINT32+PEND_RESERVED_PROC_UNITS,UINT32+CURR_RESERVED_PROC_UNITS,UINT32+MAX_PROC_UNITS
SET_SHARED_PROC_POOL_INFO = 80,1,83,9

# Memory
GET_CURRENT_AND_PENDING_LPAR_MEMORY = 80,1,4,1,UINT32+CURRENT_MIN_MEMORY,UINT32+CURRENT_MEMORY,\
                                           UINT32+CURRENT_MAX_MEMORY,UINT32+PENDING_MIN_MEMORY,\
                                           UINT32+PENDING_MEMORY,UINT32+PENDING_MAX_MEMORY, \
                                                                                        UINT8+CUR_HPT_RATIO,UINT8+PENDING_HPT_RATIO
SET_PENDING_LPAR_MEMORY = 80,1,84,1
GET_RUNTIME_LPAR_MEMORY = 80,1,4,3,UINT32+MEMORY,UINT32+RUNTIME_MIN_MEMORY
GET_REQUIRED_MINIMUM_MEMORY_FOR_MAXIMUM = 80,1,4,4,UINT32+MIN_MEMORY,UINT32+MEM_REG
MM_SET_PEND_LPAR_MEM = 80,1,84,2
MM_GET_CURR_PEND_LPAR_MEM = 80,1,4,2,UINT32+RESER1_CUR_MIN_MEM,UINT32+RESER1_CUR_MEM,UINT32+RESER1_CUR_MAX_MEM,\
                            UINT32+RESER1_PEND_MIN_MEM,UINT32+RESER1_PEND_MEM,UINT32+RESER1_PEND_MAX_MEM,\
                            UINT32+RESER2_CUR_MIN_MEM,UINT32+RESER2_CUR_MEM,UINT32+RESER2_CUR_MAX_MEM,\
                            UINT32+RESER2_PEND_MIN_MEM,UINT32+RESER2_PEND_MEM,UINT32+RESER2_PEND_MAX_MEM



# Huge Page Memory Regions
GET_CURRENT_PENDING_RUNTIME_HUGE_PAGE_MEMORY = 80,1,4,5,UINT16+CURRENT_MIN_HUGE_PAGE,UINT16+CURRENT_HUGE_PAGE,\
                                           UINT16+CURRENT_MAX_HUGE_PAGE,UINT16+PENDING_MIN_HUGE_PAGE,\
                                           UINT16+PENDING_HUGE_PAGE,UINT16+PENDING_MAX_HUGE_PAGE, \
                                           UINT16+RUNTIME_HUGE_PAGE

SET_PENDING_HUGE_PAGE_MEMORY = 80,1,84,5
GET_HYPERVISOR_CONFIGURABLE_HUGE_PAGE_MEMORY = 80,1,1,9,UINT16+CONFIGURABLE_MEM_REGIONS,UINT16+CURRENT_AVAIL_MEM_REGIONS,UINT16+PENDING_AVAIL_MEM_REGIONS
EXCHANGE_CAPABILITIES = 80,1,1,A,UNIT32+CAPABILITY_BYTES
QUERY_SYSTEM_MEMORY_INFORMATION = 0,5,1,17,UINT8+HUGE_PAGE_SUPPORT_FLAG,UINT8+HUGE_PAGE_SIZE,UINT16+MAX_NUMBER_HUGE_PAGES,UINT16+NUMBER_HUGE_PAGE_REQUESTED
REQUEST_HUGE_PAGES = 0,5,11,18


#BSR
GET_BSR_CAPABILITIES = 80,1,1,D,UINT32+TOTAL_NUMBER_OF_BSR_ARRAYS,UINT32+NUMBER_OF_BYTES_IN_BSR_ARRAY,UINT32+NUMBER_OF_BSR_REGISTERS_CURR_AVAILABLE
GET_LPAR_BSR_ASSIGNMENT = 80,1,3,8,UINT32+NUMBER_OF_BSR_ARRAYS
SET_LPAR_BSR_ASSIGNMENT = 80,1,83,8

# Physical I/O

CLEAR_STALE_IO_SLOT = 80,1,85,9
GET_ALL_IO_UNIT_IDS_OLD = 80,1,5,1,UINT16+REPEATS,STRUCT+REPEATS+IO_UNIT_ID_STRUCT_OLD+IO_UNIT_ID_LIST
IO_UNIT_ID_STRUCT_OLD = UINT16+IO_UNIT_ID
GET_ALL_IO_UNIT_IDS = 80,1,5,1,UINT16+REPEATS,UINT16+REMAINING,UINT16+OFFSET_TOKEN,PAD+2,STRUCT+REPEATS+IO_UNIT_ID_STRUCT+IO_UNIT_ID_LIST
IO_UNIT_ID_STRUCT = UINT16+LENGTH,PAD+2,FIXED_STRING+LENGTH+IO_LOCATION_CODE

GET_IO_UNIT_INFO = 80,1,5,2,FIXED_STRING+4+TYPE,FIXED_STRING+4+MODEL,FIXED_STRING+8+SERIAL_NUMBER,\
                            UINT16+REPEATS,STRUCT+REPEATS+IO_BUS_ID_STRUCT+IO_BUS_ID_LIST
GET_IO_INFO = 80,1,5,2,UINT16+NUM_BRIDGETS,PAD+2,STRUCT+NUM_BRIDGETS+IO_BRIDGET_STRUCT+IO_BRIDGET_LIST
IO_BRIDGET_STRUCT = UINT32+DRC_INDEX,UINT8+SWITCHABLE,PAD+1,UINT16+NUM_BUSES,STRUCT+NUM_BUSES+IO_BUS_ID_STRUCT+IO_BUS_ID_LIST,BUS_PAD+NUM_BUSES

#GET_ALL_IO_UNIT_IDS = 80,1,5,1,UINT16+REPEATS,STRUCT+REPEATS+IO_UNIT_ID_STRUCT+IO_UNIT_MTMS_LIST
#IO_UNIT_ID_STRUCT = FIXED_STRING+4+TYPE,FIXED_STRING+4+MODEL,FIXED_STRING+8+SERIAL_NUMBER


IO_BUS_ID_STRUCT = UINT16+IO_BUS_ID

GET_ALL_IO_BUS_INFO = 80,1,5,9,UINT16+CUR_BUS_NUM,UINT16+REMAIN_BUS_NUM,STRUCT+CUR_BUS_NUM+IO_BUS_ID_STRUCT+BUS_ID_LIST
GET_COMMON_IO_SLOT_INFO = 80,1,5,A,UINT16+RTN_SLOT_NUM,UINT16+REMAIN_SLOT_NUM,STRUCT+RTN_SLOT_NUM+COMMON_SLOT_INFO_STRUCT+COMMON_SLOT_INFO_LIST
COMMON_SLOT_INFO_STRUCT = UINT32+DRC_NDX,UINT16+PAR_ID,UINT16+POOL_ID,UINT8+PRIORITY_FLAG,\
                                                UINT8+LOCK_OWNER_CLS,UINT16+LOCK_OWNER_ID,UINT8+RSRVD_SLOT_ATTR,UINT8+PEND_LOCK_OWNER_CLS,\
                                                UINT16+PEND_LOCK_OWNER_ID

GET_IO_BUS_INFO = 80,1,5,3,PAD+2,UINT16+NUM_SLOTS,UINT16+LOC_CODE_LEN,FIXED_STRING+LOC_CODE_LEN+LOCATION_CODE,UINT32+DRC_NDX,\
                                        UINT16+DRC_NAME_LEN,FIXED_STRING+DRC_NAME_LEN+DRC_NAME
GET_IO_SLOT_INFO = 80,1,5,4,UINT16+REPEATS,UINT16+REMAIN_SLOT_NUM,STRUCT+REPEATS+IO_SLOT_STRUCT+IO_SLOT_LIST
#remove this after PHYP 360
GET_IO_SLOT_INFO_OLD = 80,1,5,4,UINT16+REPEATS,UINT16+REMAIN_SLOT_NUM,STRUCT+REPEATS+OLD_IO_SLOT_STRUCT+IO_SLOT_LIST
IO_SLOT_STRUCT = UINT32+DRC_INDEX,UINT8+FLD_FORMAT,PAD+3,UINT16+VENDOR_ID,UINT16+DEVICE_ID,UINT16+SUB_VENDOR_ID,UINT16+SUB_DEVICE_ID,\
                     UINT16+PCI_CLS_CODE,UINT8+PCI_REV_ID,UINT8+BUS_GROUPING,UINT16+IOP_INFO,UINT8+HAS_VPD,PAD+1,\
                                 UINT32+CAND_IOP_DRC_NDX,UINT8+MISC_FLAGS,PAD+1,UINT16+LOC_CODE_LEN,FIXED_STRING+LOC_CODE_LEN+LOC_CODE,\
                                 PAD+2,UINT16+DRC_NAME_LEN,FIXED_STRING+DRC_NAME_LEN+DRC_NAME
#remove this after PHYP 360
OLD_IO_SLOT_STRUCT = UINT32+DRC_INDEX,UINT8+FLD_FORMAT,PAD+1,UINT16+VENDOR_ID,UINT16+DEVICE_ID,UINT16+SUB_VENDOR_ID,UINT16+SUB_DEVICE_ID,\
                     UINT16+PCI_CLS_CODE,UINT8+PCI_REV_ID,UINT8+BUS_GROUPING,UINT16+IOP_INFO,UINT8+HAS_VPD,PAD+3,\
                                 UINT32+CAND_IOP_DRC_NDX,PAD+2,UINT16+LOC_CODE_LEN,FIXED_STRING+LOC_CODE_LEN+LOC_CODE,PAD+2,UINT16+DRC_NAME_LEN,\
                                 FIXED_STRING+DRC_NAME_LEN+DRC_NAME
SET_IO_SLOT_OWNER_AND_POOL_ID = 80,1,85,4
GET_TAGGED_IO_FOR_OS400_LPAR = 80,1,5,5,UINT32+LS_INDEX,UINT32+ALT_LS_INDEX,UINT32+CONSOLE_INDEX,\
                                        UINT32+ALT_CONSOLE_INDEX,UINT32+ECS_INDEX,UINT32+OLD_ALT_LS_INDEX
SET_TAGGED_IO_FOR_OS400_LPAR = 80,1,85,5
GET_LPAR_IO_POOL_CONFIGURATION = 80,1,5,6,UINT16+REPEATS,STRUCT+REPEATS+IO_POOL_STRUCT+IO_POOL_LIST
IO_POOL_STRUCT = UINT16+IO_POOL_ID

SET_LPAR_IO_POOL_CONFIGURATION = 80,1,85,6
GET_IO_SLOT_VPD = 80,1,5,7,UINT16+REPEATS,UINT16+REMAIN_SLOT,\
                                        STRUCT+REPEATS+IO_SLOT_VPD_STRUCT+IO_SLOT_VPD_LIST
IO_SLOT_VPD_STRUCT = UINT32+DRC_INDEX,PAD+2,UINT16+TYPE_LEN,UINT16+MODEL_LEN,UINT16+SERIAL_LEN,\
                                        FIXED_STRING+TYPE_LEN+TYPE,FIXED_STRING+MODEL_LEN+MODEL,FIXED_STRING+SERIAL_LEN+SERIAL_NUMBER

CLEAR_NON_REPORTING_BUS = 80,1,85,8
GET_NODE_CCM_BUS_LIST = 80,1,5,C,UINT16+BUS_ID_MASK_LEN,VARBIN+BUS_ID_MASK_LEN+BUS_ID_MASK


# Interactive and Database capacity
GET_CURRENT_AND_PENDING_LPAR_INTERACTIVE_PERFORMANCE = 80,1,A,1,\
                UINT16+CURRENT_MIN_INTERACTIVE,UINT16+CURRENT_INTERACTIVE,UINT16+CURRENT_MAX_INTERACTIVE,\
                UINT16+PENDING_MIN_INTERACTIVE,UINT16+PENDING_INTERACTIVE,UINT16+PENDING_MAX_INTERACTIVE
SET_CURRENT_AND_PENDING_LPAR_INTERACTIVE_PERFORMANCE = 80,1,8A,2
GET_VALID_INTERACTIVE_RANGE = 80,1,A,3,UINT16+MIN_INTERACTIVE,UINT16+MAX_INTERACTIVE
GET_RUNTIME_INTERACTIVE_PERFORMANCE = 80,1,A,4,UINT16+INTERACTIVE


# Virtual I/O
GET_VIRTUAL_IO_CAPABILITIES = 80,1,B,1,UINT16+MAX_VETH_IDS
GET_VIRTUAL_IO_SLOT_STATE = 80,1,B,2,UINT16+CURRENT_MAX_SLOTS,UINT16+PENDING_MAX_SLOTS,UINT16+REMAIN_SLOT,\
                                     UINT16+REPEATS,STRUCT+REPEATS+VSLOT_STATE_STRUCT+VSLOT_LIST_ID
VSLOT_STATE_STRUCT = UINT16+SLOT_NUMBER,UINT8+CUR_OWNER_CLS,UINT16+CUR_LOCK_OWNER,UINT8+CONFIG_STATE,\
                                        UINT8+PEND_OWNER_CLS,UINT16+PEND_LOCK_OWNER,PAD+1

SET_LPAR_PENDING_MAXIMUM_NUMBER_OF_VIRTUAL_SLOTS = 80,1,8B,2
CLEAR_VIRTUAL_IO_SLOT_CONFIGURATION_STATE = 80,1,8B,3

GET_VIRTUAL_ETHERNET_SLOT_CONFIGURATION = 80,1,B,4,PAD+2,UINT8+IS_IEEE,UINT8+PRIORITY,UINT16+PVID,\
                                                   UINT8+IS_TRUNK,UINT8+TRUNK_PRIORITY,FIXED_BIN+6+MAC_ADDRESS,UINT16+REPEATS,\
                                                   STRUCT+REPEATS+VID_STRUCT+VID_LIST,UINT32+DRC_INDEX,PAD+2,\
                                                   UINT16+NAME_LENGTH,VARBIN+NAME_LENGTH+DRC_NAME
GET_VIRTUAL_ETHERNET_SLOT_CONFIGURATION_V2 = 80,1,B,4,PAD+1,UINT8+VIRTUAL_SWITCH,UINT8+IS_IEEE,UINT8+PRIORITY,UINT16+PVID,\
                                                   UINT8+IS_TRUNK,UINT8+TRUNK_PRIORITY,FIXED_BIN+6+MAC_ADDRESS,UINT16+REPEATS,\
                                                   STRUCT+REPEATS+VID_STRUCT+VID_LIST,UINT32+DRC_INDEX,PAD+2,\
                                                   UINT16+NAME_LENGTH,VARBIN+NAME_LENGTH+DRC_NAME
VID_STRUCT = UINT16+VID

SET_VIRTUAL_ETHERNET_SLOT_CONFIGURATION = 80,1,8B,4
SET_VIRTUAL_ETHERNET_SLOT_CONFIGURATION_V2 = 80,1,8B,4
SET_VIRTUAL_ETHERNET_SLOT_CONFIGURATION_V3 = 80,1,8B,4

GET_DEFINED_VSWITCH_INFO = 80,1,0B,0C,UINT8+REPEATS,STRUCT+REPEATS+VIRTUAL_SWITCH_STRUCT+VIRTUAL_ETHERNET_SWITCH_LIST
VIRTUAL_SWITCH_STRUCT = UINT8+VSWITCH_ID,UINT8+NAME_LENGTH,FIXED_STRING+NAME_LENGTH+VSWITCH_NAME

SET_VIRTUAL_SWITCH_INFO = 80,1,8B,0C
CLEAR_VIRTUAL_SWITCH_INFO = 80,1,8B,0D


GET_LPAR_VIRTUAL_OPTICONNECT_INFORMATION = 80,1,B,5,UINT8+USING_OPTICONNECT,UINT8+USING_HSL
SET_LPAR_VIRTUAL_OPTICONNECT_INFORMATION = 80,1,8B,5
GET_LPAR_VIRTUAL_SERIAL_SCSI_CONFIGURATION = 80,1,B,6,UINT8+CLASS,UINT8+ATTRIBUTES,UINT8+SUPPORTS_HMC,\
                                                                                        UINT8+PRIORITY_FLAG,UINT16+SERVER_LPAR_ID,UINT16+SLOT_NUMBER,\
                                                                                        UINT32+DRC_INDEX,PAD+2,UINT16+DRC_NAME_LEN,FIXED_STRING+DRC_NAME_LEN+DRC_NAME
SET_LPAR_VIRTUAL_SERIAL_SCSI_CONFIGURATION = 80,1,8B,6
GET_VIRTUAL_SERIAL_SERVER_CONNECTION_STATUS = 80,1,B,7,UINT16+REPEATS,UINT16+MATCH_NUMBER,\
                                                       STRUCT+REPEATS+VSERIAL_STRUCT+VSERIAL_ID_LIST
VSERIAL_STRUCT = UINT16+SERVER_LPAR_ID,UINT16+SERVER_VSLOT_NUMBER,UINT8+TYPE,PAD+1,UINT16+HMC_SLOT_ID

GET_SHARED_MEMORY_CLUSTER_IO     = 80,1,B,8,UINT32+HUB_DRC_INDEX,UINT16+RIO_BUS_NUM,UINT16+REMOTE_LPAR_ID,\
                                                        UINT16+REMOTE_VSLOT_NUM,UINT8+PRIORITY_FLAG,PAD+3,UINT16+DRC_NAME_LEN,\
                                                        FIXED_STRING+DRC_NAME_LEN+DRC_NAME
SET_SHARED_MEMORY_CLUSTER_IO = 80,1,8B,8
GET_VIRTUAL_IO_SLOT_DRC_INDEX_AND_NAME = 80,1,B,9,UINT32+DRC_INDEX,PAD+2,UINT16+NAME_LENGTH,FIXED_STRING+NAME_LENGTH+DRC_NAME

# Virtual Fibre Channel 
GET_VIRTUAL_FIBRE_CHANNEL_CONFIGURATION = 80,1,B,E,UINT8+ATTRIBUTES,UINT8+PRIORITY_FLAG,UINT16+REMOTE_LPAR_ID,\
										  UINT16+REMOTE_SLOT_NUMBER,UINT64+WWPN1,UINT64+WWPN2,UINT32+DRC_INDEX,\
										  PAD+2,UINT16+DRC_NAME_LEN,FIXED_STRING+DRC_NAME_LEN+DRC_NAME

SET_VIRTUAL_FIBRE_CHANNEL_CONFIGURATION = 80,1,8B,E
ALLOCATE_WWPN_PAIR = 80,1,8B,F,UINT64+WWPN1,UINT64+WWPN2
QUERY_WWPN_INFO = 80,1,B,10,UINT32+REMAINING_WWPNS,UINT64+WWPN_PREFIX

# get vio connection status
# Apply the correct template according to VIO_TYPE
GET_VIO_CONNECTION_STATUS = 80,1,B,A,UINT16+REPEATS,UINT16+OFFSET,STRUCT+REPEATS+VIO_SLOT_STRUCT+VIO_SLOT_LIST
VIO_SLOT_STRUCT = UINT8+VIO_TYPE,\
                  IF+VIO_TYPE+1+VLAN_FORMAT,\
		  IF+VIO_TYPE+2+VSCSI_FORMAT,\
		  IF+VIO_TYPE+3+VSERIAL_FORMAT,\
		  IF+VIO_TYPE+7+VFC_FORMAT
VLAN_FORMAT = UINT8+STATUS,UINT16+VIRTUAL_SLOT_NUM
VSCSI_FORMAT = UINT8+STATUS,UINT16+VIRTUAL_SLOT_NUM,UINT16+REMOTE_LPAR_ID,UINT16+REMOTE_VIRTUAL_SLOT_NUM
VSERIAL_FORMAT = UINT8+STATUS,UINT16+VIRTUAL_SLOT_NUM,UINT16+REMOTE_LPAR_ID,UINT16+REMOTE_VIRTUAL_SLOT_NUM
VFC_FORMAT = UINT8+STATUS,UINT16+VIRTUAL_SLOT_NUM,UINT16+REMOTE_LPAR_ID,UINT16+REMOTE_VIRTUAL_SLOT_NUM

# Shared I/O (SMA)
GET_CEC_SMA_INFO = 80,1,C,1,UINT16+REPEATS,STRUCT+REPEATS+SMA_ATTRIBUTES+SMA_LIST
SMA_ATTRIBUTES = UINT16+MAX_PARTITIONS,UINT16+WINDOWS,UINT16+GRANULARITY,\
                 UINT32+DRC_INDEX,UINT16+LENGTH,FIXED_STRING+LENGTH+LOCATION_CODE

GET_SMA_ASSIGNMENT_INFO = 80,1,C,2,UINT16+REPEATS,STRUCT+REPEATS+SMA_ASSIGNMENT+SMA_ASSIGNMENT_LIST
SMA_ASSIGNMENT = UINT16+LPAR_ID,UINT16+WINDOWS

SET_SMA_ASSIGNMENT_INFO = 80,1,8C,2

GET_MESSAGE_PASSING_STATE = 0,5,F,6,UINT8+MESSAGE_PASSING_STATE
GET_SMA_TOPOLOGY_INFO = 0,6,8F,0,UINT16+OFFSET,UINT16+RECORD_NUM,STRUCT+RECORD_NUM+SMA_TOPOLOGY_RECORD+SMA_TOPOLOGY_LIST
SMA_TOPOLOGY_RECORD = UINT16+RECORD_SIZE,PAD+2,UINT32+SMA_HANDLE,UINT32+MASK,UINT32+PARTNER_HANDLE,\
                      UINT16+CCIN,UINT16+LOC_CODE_LEN,FIXED_STRING+LOC_CODE_LEN+LOC_CODE,\
                      UINT16+GROUP_LOC_CODE_LEN,FIXED_STRING+GROUP_LOC_CODE_LEN+GROUP_LOC_CODE

GET_SMA_LINK_INFO = 0,6,8F,2,UINT16+OFFSET,UINT16+RECORD_SIZE,UINT16+RECORD_NUM,UINT16+MAX_NUM_SMA,STRUCT+RECORD_NUM+SMA_LINK_INFO+SMA_LINK_LIST
SMA_LINK_INFO = UINT32+SMA_HANDLE,UINT32+MASK,\
                UINT64+MAC_0_CONFIG_A_REGISTER,UINT64+MAC_0_CONFIG_B_REGISTER,UINT64+MAC_0_STATUS_REGISTER,\
                UINT64+MAC_1_CONFIG_A_REGISTER,UINT64+MAC_1_CONFIG_B_REGISTER,UINT64+MAC_1_STATUS_REGISTER,\
                UINT32+MAC_0_INT_STATUS_REGISTER,UINT32+MAC_1_INT_STATUS_REGISTER,UINT32+PHISYCAL_ID_REGISTER,UINT32+RESERVED

# IB Adapter (HCA)
GET_HCA_INFO = 80,1,C,3,UINT16+TOTAL_NUM_ADAPTERS,UINT16+REPEATS,UINT16+NEXT_OFFSET_TOKEN,\
               PAD+2,STRUCT+REPEATS+HCA_ATTRIBUTES+HCA_LIST
HCA_ATTRIBUTES = UINT8+INTERFACE_TYPE,UINT8+PORT1_CONN_STATE,UINT8+PORT2_CONN_STATE,\
                 UINT8+HMC_ALLOCATION_ALLOWED,UINT8+ADAPTER_STATE,PAD+3,UINT32+DRC_INDEX,\
                 UINT16+LOC_CODE_LENGTH,PAD+2,FIXED_STRING+LOC_CODE_LENGTH+LOCATION_CODE

GET_HCA_CAPABILITIES_INFO = 80,1,C,5,UINT16+MAX_NUM_INT_EQS,UINT16+MAX_NUM_NONINT_EQS,\
                UINT32+MAX_NUM_QPS,UINT32+MAX_NUM_CQS,UINT32+MAX_NUM_HPMRS,\
                UINT32+MAX_NUM_MRMWS,UINT16+AVAIL_NUM_INT_EQS,UINT16+AVAIL_NUM_NONINT_EQS,\
                UINT32+AVAIL_NUM_QPS,UINT32+AVAIL_NUM_CQS,UINT32+AVAIL_NUM_HPMRS,\
                UINT32+AVAIL_NUM_MRMWS,UINT16+NUM_UNASSIGN_GUIDS,UINT8+GUID_ORDER_SCHEME,\
                PAD+5,STRUCT+NUM_UNASSIGN_GUIDS+HCA_UNASSIGNMENT+HCA_UNASSIGNMENT_LIST,\
                UINT16+NUM_ASSIGN_GUIDS,PAD+6,\
                STRUCT+NUM_ASSIGN_GUIDS+HCA_ASSIGNMENT+HCA_ASSIGNMENT_LIST
HCA_UNASSIGNMENT = UINT64+UNASSIGNED_GUID
HCA_ASSIGNMENT = UINT64+ASSIGNED_GUID,UINT16+ASSIGNED_LPARID,PAD+6

GET_HCA_ASSIGNMENT_INFO = 80,1,C,6,UINT32+DRC_INDEX,UINT16+NUM_INT_EQS,UINT16+NUM_NONINT_EQS,\
            UINT32+NUM_QPS,UINT32+NUM_CQS,UINT32+NUM_HPMRS,UINT32+NUM_MRMWS,UINT64+ASSIGNED_GUID

GET_HCA_NONCONFIG_LIST = 80,1,C,B,UINT32+REPEATS,UINT16+OFFSET_TOKEN,PAD+2,\
                STRUCT+REPEATS+NONCONFIG_GUID+NONCONFIG_GUID_LIST
NONCONFIG_GUID=UINT32+DRC_INDEX,UINT16+LPARID,PAD+2,UINT64+ASSIGNED_GUID

SET_HCA_ASSIGNMENT_INFO = 80,1,8C,6

GET_MAX_LPARS_PER_HCA = 80,1,C,C,UINT16+CURRENT,UINT16+PENDING
SET_MAX_LPARS_PER_HCA = 80,1,8C,C

#HEA
GET_ALL_PHYSICAL_HEA_INFO = 80,1,C,11,UINT16+TOTAL_NUM_ADAPTERS,UINT16+REPEATS,UINT16+NEXT_OFFSET_TOKEN,\
                            PAD+2,STRUCT+REPEATS+HEA_ATTRIBUTES+HEA_LIST

HEA_ATTRIBUTES = UINT32+DRC_INDEX,UINT8+ADAPTER_STATE,UINT8+DAUGHTER_CARD_TYPE,UINT16+LOC_CODE_LENGTH,\
                 FIXED_STRING+LOC_CODE_LENGTH+LOCATION_CODE

GET_PHYSICAL_HEA_CAPABILITIES_INFO = 80,1,C,12,UINT16+MAX_NUM_INT_EQS,UINT16+MAX_NUM_NONINT_EQS,\
                                     UINT32+MAX_NUM_QPS,UINT32+MAX_NUM_CQS,UINT32+MAX_NUM_MRS,\
                                     UINT16+AVAIL_NUM_INT_EQS,UINT16+AVAIL_NUM_NONINT_EQS,\
                                     UINT32+AVAIL_NUM_MRS,UINT32+AVAIL_NUM_QPS,UINT32+AVAIL_NUM_CQS,\
                                     PAD+2,UINT16+NUM_PORT_GROUPS,STRUCT+NUM_PORT_GROUPS+PORT_GROUP_ATTRIBUTES+PORT_GROUP_LIST

PORT_GROUP_ATTRIBUTES = PAD+3,UINT8+PORT_GROUP_ID,UINT8+PHYSICAL_PORT_TYPE,UINT8+NUM_PHYSICAL_PORT,\
                        UINT16+NUM_LOGICAL_PORT


GET_HEA_PHYSICAL_PORT_CONFIG_INFO = 80,1,C,17,UINT16+MAX_RCV_PKT_SIZE,UINT16+PROMISC_LPAR_ID,UINT8+CONFIG_SPEED,\
                                                UINT8+CONFIG_DUPLEX,UINT8+CONFIG_FLOW_CONTROL


GET_HEA_PHYSICAL_PORT_STATUS = 80,1,C,18,UINT8+PORT_STATE,UINT8+CONNECTION_STATE,UINT8+ACTUAL_SPEED,UINT8+ACTUAL_DUPLEX,\
                                                UINT8+TRANSMIT_FLOW_CONTROL,UINT8+RECIEVE_FLOW_CONTROL

GET_HEA_PORT_GROUP_INFO = 80,1,C,1A,UINT16+CURR_MCS_VAL,UINT16+PEND_MCS_VAL,PAD+3,UINT8+REPEATS,STRUCT+REPEATS+MCS_ATTR+MCS_LIST

MCS_ATTR = UINT16+VALID_MCS_QUEUE_PAIR_COUNT,UINT16+NUM_LOGICAL_PORT,UINT32+MIN_QUEUE_PAIRS,\
           UINT32+MIN_COMPL_QUEUE,UINT16+MIN_INT_QUEUE,UINT16+MIN_NONINT_QUEUE,UINT32+MIN_MRS

SET_LOGICAL_HEA_ASSIGNMENT_INFO = 80,1,8C,13

SET_LOGICAL_PORT_ASSIGNMENT_INFO = 80,1,8C,14

GET_HEA_PHYSICAL_PORT_COUNTERS = 80,1,C,19,UINT64+R1,UINT64+R2,UINT64+R3,UINT64+R4,UINT64+R5,UINT64+R6,UINT64+R7,UINT64+R8,\
                                 UINT64+R9,UINT64+R10,UINT64+R11,UINT64+R12,UINT64+R13,UINT64+R14,UINT64+R15,UINT64+R16,\
                                 UINT64+R17,UINT64+R18,UINT64+R19,UINT64+R20,UINT64+R21,UINT64+R22,UINT64+R23,PAD+8,\
				UINT64+R24,\
                                 UINT64+R25,UINT64+R26,UINT64+R27,UINT64+R28,UINT64+R29,UINT64+R30,UINT64+R31,UINT64+R32,\
				 UINT64+R33,UINT64+R34,UINT64+R35,UINT64+R36,UINT64+R37,UINT64+R38,UINT64+R39,UINT64+R40,\
                                 UINT64+R41, UINT64+R42,UINT64+R43,UINT64+R44,UINT64+R45,UINT64+R46

SET_HEA_PHYSICAL_PORT_CONFIG = 80,1,8C,17

SET_HEA_PORT_GROUP_CONFIG = 80,1,8C,1B

GET_HEA_LOGICAL_PORT_INFO_PER_PORT_GROUP = 80,1,C,1C,UINT16+TOTAL_LOGICAL_PORTS,UINT16+REPEATS,UINT16+NEXT_OFFSET_TOKEN,\
                                           PAD+2,STRUCT+REPEATS+LOGICAL_PORT_ATTRIBUTES_+LOGICAL_PORT_LIST_

LOGICAL_PORT_ATTRIBUTES_ = FIXED_BIN+6+BURNED_MAC_ADDR,FIXED_BIN+6+USER_DEFINED_MAC_ADDR,UINT32+DRC_INDEX,\
                          UINT16+LPAR_ID,UINT8+PHYSICAL_PORT_ID,PAD+1,UINT16+LEN_DRC_NAME,FIXED_STRING+LEN_DRC_NAME+DRC_NAME

GET_LOGICAL_HEA_ASSIGNMENT_INFO = 80,1,C,13,UINT16+DRC_NAME_LEN,FIXED_STRING+DRC_NAME_LEN+DRC_NAME,\
                                 UINT32+DRC_INDEX,UINT16+NUM_INT_EQS,UINT16+NUM_NONINT_EQS,UINT32+NUM_QPS,\
                                 UINT32+NUM_CQS,UINT32+NUM_MRS,UINT16+NUM_LOGICAL_PORTS

GET_LOGICAL_PORT_ASSIGNMENT_INFO = 80,1,C,1D,UINT16+_NUM_LOGICAL_PORTS,UINT16+REPEATS,\
                                   UINT16+NEXT_OFFSET_TOKEN,PAD+2,STRUCT+REPEATS+LOGICAL_PORT_ATTRIBUTES+LOGICAL_PORT_LIST

LOGICAL_PORT_ATTRIBUTES = UINT32+LP_DRC_INDEX,UINT16+LP_DRC_NAME_LEN,FIXED_STRING+LP_DRC_NAME_LEN+LP_DRC_NAME,\
                           UINT8+PPID,PAD+1, UINT16+NUM_ALLOW_VLAN_IDS,IF+NUM_ALLOW_VLAN_IDS+!FFFF+CONT_GETTING_STRUCT

CONT_GETTING_STRUCT = STRUCT+NUM_ALLOW_VLAN_IDS+VLAN_ATTRIBUTES+VLAN_LIST

VLAN_ATTRIBUTES = UINT16+VLAN_ID,PAD+2

GET_IO_SLOT_LOCK_OWNERS = 80,2,3,4,PAD+1,UINT8+CURR_OWNER_CLASS,UINT16+CURR_OWNER_ID,PAD+1,UINT8+PENDING_OWNER_CLASS,\
                          UINT16+PENDING_OWNER_ID

GET_NONFUNCTIONAL_HEA_CONFIG_INFO = 80,1,C,1E,UINT16+NEXT_OFFSET_TOKEN,UINT16+NUM_NON_FUNC_HEA,\
                                             STRUCT+NUM_NON_FUNC_HEA+NON_FUNC_HEA_STRUCT+NON_FUNC_HEA_LIST

NON_FUNC_HEA_STRUCT = UINT8+CONFIG_TYPE,PAD+1,UINT16+LPAR_ID,UINT32+NON_FUNCTIONAL_DRC_INDEX

DELETE_HEA_LOGICAL_PORT_ASSIGNMENT = 80,1,8C,16
DELETE_LOGICAL_HEA = 80,1,8C,15

GET_HEA_LOGICAL_PORT_SLOT_LOCK_INFO = 80,2,3,E,UINT16+NUM_LOGICAL_PORTS,PAD+2,\
                                                STRUCT+NUM_LOGICAL_PORTS+LOGICAL_PORT_LOCK_STRUCT+LOGICAL_PORT_LOCK_LIST
LOGICAL_PORT_LOCK_STRUCT = UINT32+LOGICAL_PORT_DRC_INDEX,PAD+1,UINT8+CURR_OWNER_CLASS,UINT16+CURR_OWNER_ID,\
                                PAD+1,UINT8+PENDING_OWNER_CLASS,UINT16+PENDING_OWNER_ID

GET_PHYSICAL_HEA_CAPABILITIES_INFO_V2 = 80,1,C,12,UINT16+MAX_NUM_INT_EQS,UINT16+MAX_NUM_NONINT_EQS,\
                                     UINT32+MAX_NUM_QPS,UINT32+MAX_NUM_CQS,UINT32+MAX_NUM_MRS,\
                                     UINT16+AVAIL_NUM_INT_EQS,UINT16+AVAIL_NUM_NONINT_EQS,\
                                     UINT32+AVAIL_NUM_MRS,UINT32+AVAIL_NUM_QPS,UINT32+AVAIL_NUM_CQS,\
                                PAD+2,UINT16+NUM_PORT_GROUPS,STRUCT+NUM_PORT_GROUPS+PORT_GROUP_ATTRIBUTES+PORT_GROUP_LIST,\                                     UINT16+GRANULAR_MR_VALUE,UINT16+NUM_LEVELS,STRUCT+NUM_LEVELS+LEVELS_STRUCT+LEVELS_LIST

PORT_GROUP_ATTRIBUTES = PAD+3,UINT8+PORT_GROUP_ID,UINT8+PHYSICAL_PORT_TYPE,UINT8+NUM_PHYSICAL_PORT,\
                        UINT16+NUM_LOGICAL_PORT
LEVELS_STRUCT = UINT8+RESOURCE_LEVEL,PAD+3,UINT16+NUM_INT_EQS,UINT16+NUM_NONINT_EQS,\
                   UINT32+NUM_INT_MRS,UINT32+NUM_INT_QPS,UINT32+NUM_INT_CQS


GET_LOGICAL_HEA_ASSIGNMENT_INFO_V2 = 80,1,C,13,UINT16+DRC_NAME_LEN,FIXED_STRING+DRC_NAME_LEN+DRC_NAME,\
                                                UINT32+DRC_INDEX,UINT16+NUM_INT_EQS,UINT16+NUM_NONINT_EQS,UINT32+NUM_QPS,\
                                                 UINT32+NUM_CQS,UINT32+NUM_MRS,UINT16+NUM_LOGICAL_PORTS,\
                                                UINT8+RESOURCE_LEVEL


SET_LOGICAL_HEA_ASSIGNMENT_INFO_V2 = 80,1,8C,13
GET_HEA_PHYSICAL_PORT_LOC_CODE = 80,1,C,1F,UINT8+LEN_PHY_PORT_LOC_CODE,FIXED_STRING+LEN_PHY_PORT_LOC_CODE+PHYSICAL_PORT_LOCATION_CODE


#LPAR Misc
LIST_PHYP_IP_CONFIG_INTF = 80,1,D,1,UINT32+REPEATS,STRUCT+REPEATS+PHYP_IP_CFG_STRUCT+PHYP_IP_CFG_LIST
PHYP_IP_CFG_STRUCT = UINT32+DRC_INDEX,FIXED_BIN+4+IP,FIXED_BIN+4+MASK,FIXED_BIN+4+GATEWAY1,FIXED_BIN+4+GATEWAY2,\
                                        UINT8+SPEED,UINT8+DUPLEX,UINT8+STATE,PAD+1
ADD_PHYP_IP_CONFIG_INTF = 80,1,8D,2
REMOVE_PHYP_IP_CONFIG_INTF = 80,1,8D,3
SET_PHYP_IP_INTF_ACT_STATE = 80,1,8D,4
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  The Get Partition Info Command is a macro command that summarizes
#  multiple micro Phyp commands into a single command.
# Get Partition State 0x0202
# Get Redundant Error Path 0x0218
# Get Partition Attributes V2 0x0210
# Get Msp Attributes 0x0219
# Get BSR Arrays  0x0308
# Get Lpar Config VPD  0x0215
# Get Partition Name  0x0203
# Get Time Reference Attribute  0x021B
# Get Current Lpar Processing 0x0301
# Get Pending Lpar Processing 0x0302
# Get Runtime Lpar Processing 0x0304
# Get Cur/Pend Mem 0x0401
# Get Runtime Mem 0x0403 Modes  0x021A
# Get Tagged IO  0x0505
GET_PARTITION_INFO = 80,1,D,5, UINT16+VERSION, UINT16+LENGTH, \
        UINT16+START_OFFSET, UINT16+DATA_LENGTH, \
		  IF+VERSION+1+GET_PARTITION_INFO_FORMAT1, \
		  IF+VERSION+2+GET_PARTITION_INFO_FORMAT2, \
		  IF+VERSION+3+GET_PARTITION_INFO_FORMAT3
GET_PARTITION_INFO_FORMAT1 = UINT8+LPAR_STATE, PAD+3, \
        UINT8+REDUNDANT_ERROR_PATH, PAD+3, \
\
        UINT16+CLUSTER_LPAR_ID, \
        UINT8+SHARED_POOL_UTIL_AUTH, UINT8+NUM_POWER_CNTL_PARTITIONS, \
        UINT16+LPAR_AVAIL_PRIORITY, UINT16+POWER_CNTL_PARTITION, \
        UINT8+ELECT_ERR_REPORTING, PAD+3, \
\
        UINT8+MSP_ATTR, PAD+3, \
        UINT32+NUMBER_OF_BSR_ARRAYS, PAD+4, \
\
        FIXED_STRING+30+LPAR_NAME, \
\
        FIXED_BIN+8+VPD_VERSION, UINT8+LONG_SERIAL_NUMBER, PAD+7, \
        FIXED_STRING+30+SERIAL_NUMBER, \
\
        UINT8+TIME_REF_ATTR, PAD+7, \
\
        UINT64+PROC_MODE, \
        UINT64+FIRMWARE_MODE, UINT64+VIOS_MODE, \
        UINT64+EFFECT_PROC_MODE, UINT64+EFFECT_FIRMWARE_MODE, \
\
        UINT8+CURR_VIRT_POOL_ID, \
        UINT8+CURR_MODE, \
        UINT16+CURR_MIN_PROCS, UINT16+CURR_PROCS, UINT16+CURR_MAX_PROCS, \
        IF+CURR_VIRT_POOL_ID+FF+CURR_DEDICATED_PROCS, \
        IF+CURR_VIRT_POOL_ID+!FF+CURR_SHARED_PROCS, \
\
        UINT8+PEND_VIRT_POOL_ID, \
        UINT8+PEND_MODE, \
        UINT16+PEND_MIN_PROCS, UINT16+PEND_PROCS, UINT16+PEND_MAX_PROCS, \
        IF+PEND_VIRT_POOL_ID+FF+PEND_DEDICATED_PROCS, \
        IF+PEND_VIRT_POOL_ID+!FF+PEND_SHARED_PROCS, \
\
        UINT8+RUN_VIRT_POOL_ID, \
        UINT8+RUN_MODE, \
        IF+RUN_VIRT_POOL_ID+FF+RUN_DEDICATED_PROCS, \
        IF+RUN_VIRT_POOL_ID+!FF+RUN_SHARED_PROCS, \
        PAD+7, \
\
        UINT32+CURR_MIN_MEMORY, UINT32+CURR_MEMORY,\
        UINT32+CURR_MAX_MEMORY, UINT32+PEND_MIN_MEMORY,\
        UINT32+PEND_MEMORY, UINT32+PEND_MAX_MEMORY, \
        UINT8+CURR_HPT_RATIO, UINT8+PEND_HPT_RATIO, PAD+6, \
\
        UINT16+CURR_MIN_HUGE_PAGE, UINT16+CURR_HUGE_PAGE,\
        UINT16+CURR_MAX_HUGE_PAGE, UINT16+PEND_MIN_HUGE_PAGE,\
        UINT16+PEND_HUGE_PAGE, UINT16+PEND_MAX_HUGE_PAGE, \
        UINT16+RUN_HUGE_PAGE, PAD+2, \
\
        UINT32+RUN_MEMORY, UINT32+RUN_MIN_MEMORY, \
        PAD+8, \
        UINT32+LS_DRC, UINT32+ALT_LS_DRC, \
        UINT32+CONSOLE_DRC, UINT32+ALT_CONSOLE_DRC, \
        UINT32+ECS_DRC, UINT32+OLD_ALT_LS_DRC

GET_PARTITION_INFO_FORMAT2 = UINT8+LPAR_STATE, PAD+3, \
        UINT8+REDUNDANT_ERROR_PATH, PAD+3, \
\
        UINT16+CLUSTER_LPAR_ID, \
        UINT8+SHARED_POOL_UTIL_AUTH, UINT8+NUM_POWER_CNTL_PARTITIONS, \
        UINT16+LPAR_AVAIL_PRIORITY, UINT16+POWER_CNTL_PARTITION, \
        UINT8+ELECT_ERR_REPORTING, PAD+3, \
\
        UINT8+MSP_ATTR, PAD+3, \
        UINT32+NUMBER_OF_BSR_ARRAYS, PAD+4, \
\
        FIXED_STRING+30+LPAR_NAME, \
\
        FIXED_BIN+8+VPD_VERSION, UINT8+LONG_SERIAL_NUMBER, PAD+7, \
        FIXED_STRING+30+SERIAL_NUMBER, \
\
        UINT8+TIME_REF_ATTR, PAD+7, \
\
        UINT64+PROC_MODE, \
        UINT64+FIRMWARE_MODE, UINT64+VIOS_MODE, \
        UINT64+EFFECT_PROC_MODE, UINT64+EFFECT_FIRMWARE_MODE, \
\
        UINT8+CURR_VIRT_POOL_ID, \
        UINT8+CURR_MODE, \
        UINT16+CURR_MIN_PROCS, UINT16+CURR_PROCS, UINT16+CURR_MAX_PROCS, \
        IF+CURR_VIRT_POOL_ID+FF+CURR_DEDICATED_PROCS, \
        IF+CURR_VIRT_POOL_ID+!FF+CURR_SHARED_PROCS, \
\
        UINT8+PEND_VIRT_POOL_ID, \
        UINT8+PEND_MODE, \
        UINT16+PEND_MIN_PROCS, UINT16+PEND_PROCS, UINT16+PEND_MAX_PROCS, \
        IF+PEND_VIRT_POOL_ID+FF+PEND_DEDICATED_PROCS, \
        IF+PEND_VIRT_POOL_ID+!FF+PEND_SHARED_PROCS, \
\
        UINT8+RUN_VIRT_POOL_ID, \
        UINT8+RUN_MODE, \
        IF+RUN_VIRT_POOL_ID+FF+RUN_DEDICATED_PROCS, \
        IF+RUN_VIRT_POOL_ID+!FF+RUN_SHARED_PROCS, \
        PAD+7, \
\
        UINT32+CURR_MIN_MEMORY, UINT32+CURR_MEMORY,\
        UINT32+CURR_MAX_MEMORY, UINT32+PEND_MIN_MEMORY,\
        UINT32+PEND_MEMORY, UINT32+PEND_MAX_MEMORY, \
        UINT8+CURR_HPT_RATIO, UINT8+PEND_HPT_RATIO, PAD+6, \
\
        UINT16+CURR_MIN_HUGE_PAGE, UINT16+CURR_HUGE_PAGE,\
        UINT16+CURR_MAX_HUGE_PAGE, UINT16+PEND_MIN_HUGE_PAGE,\
        UINT16+PEND_HUGE_PAGE, UINT16+PEND_MAX_HUGE_PAGE, \
        UINT16+RUN_HUGE_PAGE, PAD+2, \
\
        UINT32+RUN_MEMORY, UINT32+RUN_MIN_MEMORY, \
        PAD+8, \
        UINT32+LS_DRC, UINT32+ALT_LS_DRC, \
        UINT32+CONSOLE_DRC, UINT32+ALT_CONSOLE_DRC, \
        UINT32+ECS_DRC, UINT32+OLD_ALT_LS_DRC

GET_PARTITION_INFO_FORMAT3 = UINT8+LPAR_STATE, PAD+3, \
        UINT8+REDUNDANT_ERROR_PATH, PAD+3, \
\
        UINT16+CLUSTER_LPAR_ID, \
        UINT8+SHARED_POOL_UTIL_AUTH, UINT8+NUM_POWER_CNTL_PARTITIONS, \
        UINT16+LPAR_AVAIL_PRIORITY, UINT16+POWER_CNTL_PARTITION, \
        UINT8+ELECT_ERR_REPORTING, PAD+3, \
\
        UINT8+MSP_ATTR, PAD+3, \
        UINT32+NUMBER_OF_BSR_ARRAYS, PAD+4, \
\
        FIXED_STRING+30+LPAR_NAME, \
\
        FIXED_BIN+8+VPD_VERSION, UINT8+LONG_SERIAL_NUMBER, PAD+7, \
        FIXED_STRING+30+SERIAL_NUMBER, \
\
        UINT8+TIME_REF_ATTR, PAD+7, \
\
        UINT64+PROC_MODE, \
        UINT64+FIRMWARE_MODE, UINT64+VIOS_MODE, \
        UINT64+EFFECT_PROC_MODE, UINT64+EFFECT_FIRMWARE_MODE, \
\
        UINT8+CURR_VIRT_POOL_ID, \
        UINT8+CURR_MODE, \
        UINT16+CURR_MIN_PROCS, UINT16+CURR_PROCS, UINT16+CURR_MAX_PROCS, \
        IF+CURR_VIRT_POOL_ID+FF+CURR_DEDICATED_PROCS, \
        IF+CURR_VIRT_POOL_ID+!FF+CURR_SHARED_PROCS, \
\
        UINT8+PEND_VIRT_POOL_ID, \
        UINT8+PEND_MODE, \
        UINT16+PEND_MIN_PROCS, UINT16+PEND_PROCS, UINT16+PEND_MAX_PROCS, \
        IF+PEND_VIRT_POOL_ID+FF+PEND_DEDICATED_PROCS, \
        IF+PEND_VIRT_POOL_ID+!FF+PEND_SHARED_PROCS, \
\
        UINT8+RUN_VIRT_POOL_ID, \
        UINT8+RUN_MODE, \
        IF+RUN_VIRT_POOL_ID+FF+RUN_DEDICATED_PROCS, \
        IF+RUN_VIRT_POOL_ID+!FF+RUN_SHARED_PROCS, \
        PAD+7, \
\
        UINT32+CURR_MIN_MEMORY, UINT32+CURR_MEMORY,\
        UINT32+CURR_MAX_MEMORY, UINT32+PEND_MIN_MEMORY,\
        UINT32+PEND_MEMORY, UINT32+PEND_MAX_MEMORY, \
        UINT8+CURR_HPT_RATIO, UINT8+PEND_HPT_RATIO, UINT8+VRM_POOL_ID, PAD+5, \
\
        UINT16+CURR_MIN_HUGE_PAGE, UINT16+CURR_HUGE_PAGE,\
        UINT16+CURR_MAX_HUGE_PAGE, UINT16+PEND_MIN_HUGE_PAGE,\
        UINT16+PEND_HUGE_PAGE, UINT16+PEND_MAX_HUGE_PAGE, \
        UINT16+RUN_HUGE_PAGE, PAD+2, \
\
        UINT32+RUN_MEMORY, UINT32+RUN_MIN_MEMORY, \
		  UINT32+RUN_ENTITLED_MEMORY,UINT8+RUN_VRM_WEIGHT, UINT8+ENT_USAGE_SCHEME, \
        PAD+2, \
        UINT32+LS_DRC, UINT32+ALT_LS_DRC, \
        UINT32+CONSOLE_DRC, UINT32+ALT_CONSOLE_DRC, \
        UINT32+ECS_DRC, UINT32+OLD_ALT_LS_DRC, \
		  UINT32+CURR_ENTITLED_MEMORY, UINT32+PEND_ENTITLED_MEMORY, \
		  UINT64+PRIMARY_STREAM_ID, UINT64+SECONDARY_STREAM_ID, UINT8+PSP_USAGE_SCHEME, \
		  UINT8+CURR_VRM_WEIGHT, UINT8+PEND_VRM_WEIGHT, UINT8+CURR_PSP_SERVING_PARTITION, \
		  UINT8+PRIMARY_STREAM_STATE, UINT8+SECONDARY_STREAM_STATE
        
#  format for current dedicated mode processors
CURR_DEDICATED_PROCS = UINT8+CURR_DONOR_MODE, PAD+3, PAD+4, PAD+4, PAD+4
#  defines the format for shared processors for the GET_PARTITION_INFO command
CURR_SHARED_PROCS = UINT32+CURR_MIN_PROC_UNITS, UINT32+CURR_PROC_UNITS, \
        UINT32+CURR_MAX_PROC_UNITS, UINT8+CURR_UNCAPPED_WEIGHT, PAD+3

#  format for dedicated mode processors
PEND_DEDICATED_PROCS = UINT8+PEND_DONOR_MODE, PAD+3, PAD+4, PAD+4, PAD+4
#  defines the format for pending shared processors
PEND_SHARED_PROCS = UINT32+PEND_MIN_PROC_UNITS, UINT32+PEND_PROC_UNITS, \
        UINT32+PEND_MAX_PROC_UNITS, UINT8+PEND_UNCAPPED_WEIGHT, PAD+3

#  format for runtime procs
RUN_DEDICATED_PROCS = UINT16+RUN_DEDICATED_PROCS, UINT8+RUN_DONOR_MODE, \
        PAD+3, PAD+1
RUN_SHARED_PROCS = UINT16+RUN_SHARED_PROCS, UINT32+RUN_SHARED_PROC_UNITS, \
        UINT8+RUN_UNCAPPED_WEIGHT

#
#  end of GET_PARTITION_INFO
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++



# Backup/Recovery
GET_LPAR_CONFIGURATION_IMAGE_SIZE = 80,1,FE,1,UINT64+HANDLE,UINT16+BLOCK_SIZE,UINT16+NUM_BLOCKS
GET_LPAR_CONFIGURATION_IMAGE_BLOCK = 80,1,FE,2,DATA+BLOCK
SET_LPAR_CONFIGURATION_IMAGE_BLOCK = 80,1,FE,3
CLEAR_LPAR_CONFIGURATION = 80,1,FE,4


# Batch
START_LPAR_BATCH_MODE = 80,1,FF,1,UINT16+SIZE
COMMIT_LPAR_BATCH = 80,1,FF,2

# Asynchronous LPAR
LPAR_ASYNC_STATE_CHANGE = 80,1,0,3,UINT32+CHG_FLG_LEN,VARBIN+CHG_FLG_LEN+GBL_CHG_FLG,\
        UINT16+LPAR_NUM,STRUCT+LPAR_NUM+LPAR_CHANGE_STRUCT+LPAR_CHG_LIST,\
        UINT16+BUSSES,VARBIN+BUSSES+DATA
LPAR_CHANGE_STRUCT = UINT16+LPAR_ID,UINT16+LPAR_CHG_FLG

SMA_HCA_CHANGE_ASYNC = 80,1,0,4,UINT16+SMAS,STRUCT+SMAS+SMA_ASYNC_STRUCT+SMA_ASYNC_LIST,\
        UINT16+NUM_HCA_ASSIGN_CHNGS,\
	STRUCT+NUM_HCA_ASSIGN_CHNGS+HCA_ASYNC_STRUCT+HCA_ASYNC_LIST,\
	UINT8+HCA_ADAPTER_CHNG_FLAG,PAD+1,UINT16+NUM_HCA_TOPO_CHNGS,\
	STRUCT+NUM_HCA_TOPO_CHNGS+HCA_TOPO_ASYNC_STRUCT+HCA_TOPO_ASYNC_LIST
SMA_ASYNC_STRUCT=UINT32+SMA_DRC_NDX,UINT16+SMA_CHG_FLAG
HCA_ASYNC_STRUCT=UINT32+HCA_DRC_INDEX,UINT16+HCA_LPAR_ID,PAD+2
HCA_TOPO_ASYNC_STRUCT=UINT32+HCA_TOPO_DRC_INDEX
#SMA_ASYNC_LIST=UINT32+SMA_DRC_NDX,UINT16+SMA_CHG_FLAG
#HCA_ASYNC_LIST=UINT32+HCA_DRC_INDEX,UINT16+HCA_LPAR_ID

HEA_CHANGE_ASYNC = 80,1,0,5,PAD+2,UINT16+NUM_HEA_CHNG,STRUCT+NUM_HEA_CHNG+HEA_INDEX_STRUCT+HEA_LIST,\
                PAD+2,UINT16+NUM_LHEA_CHNG,STRUCT+NUM_LHEA_CHNG+LHEA_STRUCT+LHEA_LIST,\
                PAD+2,UINT16+NUM_LHEA_LOGICAL_PORT_CHNG,STRUCT+NUM_LHEA_LOGICAL_PORT_CHNG+LHEA_STRUCT+LP_LIST,\
                PAD+2,UINT16+NUM_PHY_PORT_CONFIG_CHNG,\
                                STRUCT+NUM_PHY_PORT_CONFIG_CHNG+PHY_PORT_STRUCT+PHY_PORT_CONFIG_LIST,\
                PAD+2,UINT16+NUM_PHY_PORT_STATE_CHNG,STRUCT+NUM_PHY_PORT_STATE_CHNG+PHY_PORT_STRUCT+PHY_PORT_STATE_LIST,\                   PAD+2,UINT16+NUM_IO_LOCK_CHNG,STRUCT+NUM_IO_LOCK_CHNG+HEA_IO_LOCK_STRUCT+HEA_IO_LOCK_LIST 

HEA_INDEX_STRUCT = UINT32+HEA_DRC_INDEX
LHEA_STRUCT = UINT32+HEA_DRC_INDEX,UINT16+HEA_LPAR_ID,PAD+2
PHY_PORT_STRUCT = UINT32+HEA_DRC_INDEX,UINT8+HEA_PORT_GROUP_ID,UINT8+HEA_PHY_PORT_ID,PAD+2
HEA_IO_LOCK_STRUCT = UINT32+HEA_DRC_INDEX

# iSeries DLPAR
#DLPAR_OPEN_SESSION = 80,2,0,1,UINT16+UP_BUFFER,UINT16+DOWN_BUFFER,PAD+2
#DLPAR_CLOSE_SESSION = 80,2,0,2
VARY_ON_OFF_PROCESSING = 80,2,80,4
VARY_ON_OFF_MEMORY = 80,2,80,2
VARY_ON_OFF_IO_SLOT = 80,2,80,3
QUERY_OUTSTANDING_DLPAR_COMMANDS = 80,2,3,5
SET_PEND_SLOT_LOCK_OWNER = 80,2,83,4

# VSP Commands
# Synchronous
#VSP_OPEN_SESSION = 80,3,0,1,UINT16+UP_BUFFER,UINT16+DOWN_BUFFER,UINT16+LENGTH,VARBIN+LENGTH+REGISTRATION
#VSP_CLOSE_SESSION = 80,3,0,2
POWER_ON = 80,3,81,1
POWER_ON_V2 = 80,3,81,1
POWER_ON_ALL = 80,3,81,B
POWER_OFF = 80,3,81,2
INIT_FIRE_HOSE_DUMP = 80,3,80,3
#version 2
GET_PARTITION_VSP_ATTRIBUTES_2 = 80,3,1,3,UINT8+KEYLOCK,UINT8+IPL_SOURCE,UINT8+AUTO_IPL,\
                                             UINT8+ATT_LED,UINT8+POWER_STATE,UINT8+BOOT_MODE,UINT8+POWERON_MODE
#new format
GET_PARTITION_VSP_ATTRIBUTES = 80,3,1,3,UINT8+KEYLOCK,UINT8+IPL_SOURCE,UINT8+AUTO_IPL,\
                                             UINT8+ATT_LED,UINT8+POWER_STATE,UINT8+BOOT_MODE
#old format: remove this after we stop support PHYP 360
GET_PARTITION_VSP_ATTRIBUTES_OLD = 80,3,1,3,UINT8+BOOT_MODE,UINT8+IPL_SOURCE,UINT8+AUTO_IPL,\
                                             UINT8+ATT_LED,UINT8+POWER_STATE
SET_PARTITION_VSP_ATTRIBUTES = 80,3,81,3
#remove this after we stop PHYP 360
SET_PARTITION_VSP_ATTRIBUTES_OLD = 80,3,81,3
GET_SUPPORTED_VIRTUAL_PANEL_FUNCTIONS = 80,3,1,5,FIXED_BIN+20+FUNCTIONS
PUSH_VIRTUAL_PANEL_FUNCTION = 80,3,81,5

GET_PARTITION_CURR_SRC_AND_SEQUENCE_NUMBER = 80,3,1,6,UINT32+SEQ_NUMBER,\
                        STRUCT_OPTIONAL_DATA+PARTITION_SRC_FORMAT+LPAR_SRC_LIST
GET_PARTITION_SRC_FROM_SEQUENCE_NUMBER = 80,3,1,7,UINT32+SEQ_NUMBER,STRUCT_OPTIONAL_DATA+PARTITION_SRC_FORMAT+LPAR_SRC_LIST
PARTITION_SRC_FORMAT = UINT16+YEAR,UINT8+MONTH,UINT8+DAY,UINT8+HOUR,UINT8+MINUTE,UINT8+SECOND,PAD+1,\
                        UINT8+SRC_VER,UINT8+SRC_FLAG,PAD+1,UINT8+WORD_COUNT,PAD+2,UINT16+SRC_STRUCT_LEN,\
                        UINT32+WORD2,UINT32+WORD3,UINT32+WORD4,UINT32+WORD5,\
                        UINT32+WORD6,UINT32+WORD7,UINT32+WORD8,UINT32+WORD9,FIXED_STRING+20+DATA
GET_VSP_CAPABILITIES = 80,3,1,8,UINT16+MASK_LEN,UINT32+CAP_MASK
GET_PARTITION_TPO = 80,3,1,B,UINT32+TIME_TO_PENDING
GET_ALL_VSP_DATA = 80,3,1,E,UINT16+NUM_LPAR,UINT32+OFFSET,UINT16+LPAR_LEN,PAD+2,STRUCT_REC_LEN+LPAR_LEN+NUM_LPAR+VSP_DATA_FORMAT+LPAR_VSP_LIST
VSP_DATA_FORMAT = UINT16+LPAR_ID,UINT8+KEYLOCK,UINT8+IPL_SOURCE,UINT8+AUTO_IPL,\
                  UINT8+ATT_LED,UINT8+POWER_STATE,UINT8+BOOT_MODE,UINT8+POWERON_MODE,PAD+1,\
                  FIXED_BIN+20+FUNCTIONS,FIXED_STRING+20+SRC_DATA,\
                  UINT32+UPTIME,UINT32+TIME_TO_PENDING

# VPNL = 0x000D
CEC_POWER_TRANSITION = 0,D,0,1,8
CEC_RE_IPL = 0,D,3,1,8

# Asynchronous
VSP_ASYNC_STATE_CHANGE = 80,3,0,3,UINT16+LENGTH,VARBIN+LENGTH+MASK
VSP_SRC_ASYNC_STATE_CHANGE = 80,3,2,3,UINT16+LENGTH,VARBIN+LENGTH+MASK

# CoD Commands
COD_AND_AP_OPEN_SESSION = 80,4,0,1,UINT16+UP_BUFFER,UINT16+DOWN_BUFFER,UINT16+LENGTH,\
                                   VARBIN+LENGTH+ASYNC_REG_PARMS
COD_AND_AP_CLOSE_SESSION = 80,4,0,2
EXCHANGE_AP_CAPABILITIES = 80,4,1,1B,UINT32+LENGTH,VARBIN+LENGTH+AP_CAPABILITIES
GET_SYSTEM_CPW = 80,4,1,1,UINT32+TOTAL_CPW,UINT32+INTERACTIVE_CPW,UINT8+ALLOW_HMC_ASSIGN_INTERACTIVE
GET_COD_STATE = 80,4,1,2,UINT8+COD_STATE
GET_COD_CTA_VALUE = 80,4,1,3,UINT8+CTA_VALUE
SET_COD_CTA_VALUE = 80,4,81,3
SET_COD_RECOVERY_COMPLETE = 80,4,81,4
GET_COD_CAPABILITIES = 80,4,1,5,FIXED_BIN+4+COD_CAPABILITIES
SET_COD_KEY = 80,4,81,6,UINT32+NUM_PROCS,UINT32+AMT_MEM,UINT16+NUM_DAYS_ACTIVATED_ENABLED,\
                        UINT8+COD_TYPE,UINT8+COD_RESOURCE_TYPE,UINT8+ENABLED,\
                        UINT8+CONFIRMATION_REQ,UINT16+CONFIRMATION_ID
SET_COD_KEY_V2 = 80,4,81,6,UINT32+NUM_PROCS,UINT32+AMT_MEM,UINT16+NUM_DAYS_ACTIVATED_ENABLED,\
                        UINT8+COD_TYPE,UINT8+COD_RESOURCE_TYPE,UINT8+ENABLED,\
                        UINT8+CONFIRMATION_REQ,UINT16+CONFIRMATION_ID,\
                        UINT8+MSG_PARM_LIST_LENGTH,PAD+1,\
                        STRUCT+MSG_PARM_LIST_LENGTH+MSG_PARM_STRUCT+PARM_LIST
MANAGE_ONOFF_PROCESSORS = 80,4,81,9
MANAGE_ONOFF_MEMORY = 80,4,81,F
GET_ACTIVATION_INCREMENTS = 80,4,1,8,UINT16+ONOFF_PROC_INCREMENT,UINT16+METERED_PROC_INCREMENT,\
                                     UINT16+ONOFF_MEMORY_INCREMENT,UINT16+UTILITY_PROC_INCREMENT
MANAGE_METERED_PROCESSORS = 80,4,81,A
DISABLE_TRIAL_RESOURCES = 80,4,81,D
MANAGE_UTILITY_PROCESSORS = 80,4,81,18
SET_UTILITY_USAGE_LIMIT = 80,4,81,19

#CoD Async
COD_ASYNC_STATE_CHANGE = 80,4,0,3,FIXED_BIN+4+COD_EVT_MASK,UINT8+MSG_LIST_LENGTH,PAD+1,\
                              STRUCT+MSG_LIST_LENGTH+COD_MSG_STRUCT+COD_MSG_LIST
COD_MSG_STRUCT = UINT16+MSG_DESTINATION,UINT16+MSG_ID,UINT8+MSG_PARM_LIST_LENGTH,\
                 PAD+1,STRUCT+MSG_PARM_LIST_LENGTH+MSG_PARM_STRUCT+PARM_LIST
MSG_PARM_STRUCT = UINT16+MSG_PARM

#CoD Processor Info
GET_COD_PROCESSOR_INFO = 80,4,1,7,UINT32+TOT_INSTALLED_PROCS,UINT32+PERM_LICENSED_PROCS,\
                                  UINT32+DECONFIGURED_PROCS
GET_ONOFF_COD_PROCESSOR_INFO = 80,4,1,9,UINT32+CURR_ONOFF_PROCS_IN_USE,\
                                        UINT32+UNLICENSED_ONOFF_PROCS_CURR_AVAIL,\
                                        UINT32+NUM_UNRETURNED_ONOFF_PROCS_INUSE,\
                                        UINT16+ENABLED_ONOFF_PROCDAYS_LEFT,\
                                        UINT16+ACTIVATED_ONOFF_PROCDAYS_LEFT,\
                                        UINT8+ONOFF_PROCDAY_HOURS_LEFT,UINT8+ONOFF_PROC_STATE
GET_METERED_COD_PROCESSOR_INFO = 80,4,1,A,UINT32+CURR_METERED_PROCS_IN_USE,\
                                          UINT32+UNLICENSED_METERED_PROCS_AVAIL,\
                                          UINT16+ENABLED_METERED_PROCDAYS_LEFT,\
                                          UINT8+METERED_PROC_STATE,UINT8+RESERVED,\
                                          STRUCT_DIV+100+CURR_METERED_PROCS_IN_USE+PROCDAY_HOURS_LEFT_STRUCT+HOURS_LEFT_LIST
PROCDAY_HOURS_LEFT_STRUCT = UINT16+HOURS_LEFT
GET_SHARED_PROCESSOR_POOL_UTILIZATION = 80,4,1,B,UINT32+BASE_PROCS,UINT32+METERED_PROCS,\
                                                 UINT16+BASE_PROCS_UTILIZATION,UINT16+METERED_PROCS_UTILIZATION,\
                                                 UINT16+SAMPLE_RATE,UINT16+YEAR,UINT8+MONTH,UINT8+DAY,\
                                                 UINT8+HOUR,UINT8+MINUTE,UINT8+SECONDS
GET_TRIAL_COD_PROCESSOR_INFO = 80,4,1,C,UINT32+CURR_TRIAL_PROCS_IN_USE,UINT32+UNRETURNED_TRIAL_PROCS,\
                                        UINT16+TRIAL_HOURS_LEFT,UINT8+TRIAL_PROC_STATE
GET_UTILITY_PROCESSOR_INFO = 80,4,1,18,UINT32+NUM_UTILITY_PROCS_IN_SHARED_POOL,\
                                       UINT32+NUM_UNLICENSED_PROCS_USED_FOR_UTILITY,\
				       UINT16+NUM_OF_DAYS_REMAIN_CURR_ENABLEMENT,\
				       UINT8+UTILITY_PROCESSOR_STATE,\
				       UINT8+EXT_UTILITY_PROC_STATE_INFO,\
				       UINT8+REPORTING_REQUIRED_STATE,\
				       UINT8+DAYS_REMAINING_TO_REPORT,\
				       UINT16+REPORTING_THRESHOLD,\
				       UINT16+REPORTING_LIMIT,\
				       PAD+2,UINT16+PROC_MINUTE_USAGE_LIMIT,\
				       UINT16+PROC_MINS_REM_UNTIL_USAGE_LIMIT_REACHED,\
				       UINT32+TOTAL_PROC_MINUTES_USED,\
				       UINT16+UNREPORTED_PROC_MINUTES,\
				       UINT16+PROC_MINS_IN_MOST_RECENT_REPORTING_CODE,\
				       UINT16+YEAR_MOST_RECENT_REPORTING_CODE_ENT,\
				       UINT8+MONTH_MOST_RECENT_REPORTING_CODE_ENT,\
				       UINT8+DAY_MOST_RECENT_REPORTING_CODE_ENT,\
				       UINT8+HOUR_MOST_RECENT_REPORTING_CODE_ENT,\
				       UINT8+MIN_MOST_RECENT_REPORTING_CODE_ENT,\
				       UINT8+SECOND_MOST_RECENT_REPORTING_CODE_ENT,PAD+1
GET_UTILITY_DAILY_USAGE_INFO = 80,4,1,1A,UINT16+CURRENT_YEAR,UINT8+CURRENT_MONTH,\
                                         UINT8+CURRENT_DAY,UINT8+CURRENT_HOUR,\
					 UINT8+CURRENT_MINUTE,UINT8+CURRENT_SECOND,\
					 PAD+1,UINT16+REPEATS,PAD+2,\
					 STRUCT+REPEATS+DAILY_USAGE_STRUCT+DAILY_USAGE_LIST
DAILY_USAGE_STRUCT = UINT32+DAILY_USAGE_VALUE

#CoD Memory Info
GET_COD_MEMORY_INFO = 80,4,1,E,UINT32+TOT_INSTALLED_MEM,UINT32+PERM_LICENSED_MEM,\
                               UINT32+DECONFIGURED_MEM
GET_ONOFF_COD_MEMORY_INFO = 80,4,1,F,UINT32+CURR_ONOFF_MEM_IN_USE,UINT32+UNLICENSED_ONOFF_MEM_CURR_AVAIL,\
                                     UINT32+AMT_UNRETURNED_ONOFF_MEM_INUSE,\
                                     UINT16+ENABLED_ONOFF_MEMUNITDAYS_LEFT,\
                                     UINT16+ACTIVATED_ONOFF_MEMUNITDAYS_LEFT,\
                                     UINT8+ONOFF_MEMUNITDAY_HOURS_LEFT,UINT8+ONOFF_MEM_STATE,\
                                     UINT16+ONOFF_MEMUNIT
GET_TRIAL_COD_MEMORY_INFO = 80,4,1,10,UINT32+CURR_TRIAL_MEM_IN_USE,UINT32+CURR_UNRETURNED_TRIAL_MEM,\
                                      UINT16+TRIAL_HOURS_LEFT,UINT8+TRIAL_MEM_STATE
#CoD Billing Info
GET_ONOFF_COD_PROC_BILLING_INFO = 80,4,1,12,UINT8+FORMAT,FIXED_STRING+4+SYS_TYPE,FIXED_STRING+A+SYS_SERIAL,\
                                            FIXED_STRING+4+CAP_CARD_CCIN,FIXED_STRING+A+CAP_CARD_SERIAL,\
                                            FIXED_STRING+10+CAP_CARD_ID,FIXED_STRING+1+ENABLED,FIXED_STRING+1+ACTIVE,\
                                            FIXED_STRING+4+FEATURE_CODE,FIXED_STRING+4+HIST_ENABLED_UNITS,\
                                            FIXED_STRING+4+SEQUENCE_NUM,FIXED_STRING+2+ENTRY_CHECKSUM,\
                                            FIXED_STRING+4+REQUESTED_UNITS,\
                                            FIXED_STRING+4+REQUESTED_DAYS,FIXED_STRING+4+UNIT_DAYS_EXPIRED,\
                                            FIXED_STRING+4+UNIT_DAYS_LEFT,FIXED_STRING+4+UNIT_DAYS_COUNTER,\
                                            FIXED_STRING+4+STANDBY_UNITS_AVAIL,FIXED_STRING+1+RESERVED1,\
                                            FIXED_STRING+4+HIST_REQUESTED_UNIT_DAYS,\
                                            FIXED_STRING+1+RESERVED2,FIXED_STRING+4+HIST_UNRETURNED_UNIT_DAYS,\
                                            FIXED_STRING+10+CURR_DATE_TIME,\
                                            FIXED_STRING+6+RUNTIME_COUNTER,FIXED_STRING+10+SIGNATURE,\
                                            FIXED_STRING+2+SIGNATURE_CHECKSUM,FIXED_STRING+2+STATUS,\
                                            FIXED_STRING+10+RESERVED3,FIXED_STRING+A+CURR_DATE,\
                                            FIXED_STRING+8+CURR_TIME
GET_ONOFF_COD_MEM_BILLING_INFO = 80,4,1,13,UINT8+FORMAT,FIXED_STRING+4+SYS_TYPE,FIXED_STRING+A+SYS_SERIAL,\
                                           FIXED_STRING+4+CAP_CARD_CCIN,\
                                           FIXED_STRING+A+CAP_CARD_SERIAL,FIXED_STRING+10+CAP_CARD_ID,\
                                           FIXED_STRING+1+ENABLED,FIXED_STRING+1+ACTIVE,FIXED_STRING+4+FEATURE_CODE,\
                                           FIXED_STRING+4+HIST_ENABLED_UNITS,FIXED_STRING+4+SEQUENCE_NUM,\
                                           FIXED_STRING+2+ENTRY_CHECKSUM,FIXED_STRING+4+REQUESTED_UNITS,\
                                           FIXED_STRING+4+REQUESTED_DAYS,FIXED_STRING+4+UNIT_DAYS_EXPIRED,\
                                           FIXED_STRING+4+UNIT_DAYS_LEFT,FIXED_STRING+4+UNIT_DAYS_COUNTER,\
                                           FIXED_STRING+4+STANDBY_UNITS_AVAIL,FIXED_STRING+1+RESERVED1,\
                                           FIXED_STRING+4+HIST_REQUESTED_UNIT_DAYS,\
                                           FIXED_STRING+1+RESERVED2,FIXED_STRING+4+HIST_UNRETURNED_UNIT_DAYS,\
                                           FIXED_STRING+10+CURR_DATE_TIME,\
                                           FIXED_STRING+6+RUNTIME_COUNTER,FIXED_STRING+10+SIGNATURE,\
                                           FIXED_STRING+2+SIGNATURE_CHECKSUM,FIXED_STRING+2+STATUS,\
                                           FIXED_STRING+10+RESERVED3,FIXED_STRING+1+GRANULARITY,\
                                           FIXED_STRING+A+CURR_DATE,FIXED_STRING+8+CURR_TIME
#CoD Order Info
GET_COD_ORDER_INFO = 80,4,1,11,UINT8+FORMAT,FIXED_STRING+4+SYS_TYPE,FIXED_STRING+A+SYS_SERIAL,\
                               FIXED_STRING+4+CAP_CARD_CCIN,FIXED_STRING+A+CAP_CARD_SERIAL,\
                               FIXED_STRING+10+CAP_CARD_ID,FIXED_STRING+4+RESOURCE_ID,\
                               FIXED_STRING+4+COD_RESOURCES_ACTIVATED,FIXED_STRING+4+COD_SEQUENCE_NUM,\
                               FIXED_STRING+2+COD_CHECKSUM
#CoD History Log
GET_COD_HISTORY_LOG = 80,4,1,14,UINT8+FORMAT,UINT8+LOG_WRAPPED,UINT16+NUM_ENTRIES_THIS_REQ,\
                                UINT16+NUM_ENTRIES_LEFT,UINT16+OFFSET_TOKEN,UINT64+HIST_LOG_ID,\
                                STRUCT+NUM_ENTRIES_THIS_REQ+COD_LOG_ENTRY_STRUCT+LOG_ENTRY_LIST
COD_LOG_ENTRY_STRUCT = UINT16+COD_MSG_ID,UINT8+COD_TYPE,UINT8+COD_RESOURCE_TYPE,UINT16+PARM1,\
                   UINT16+PARM2,UINT16+TIMESTAMP_YEAR,UINT8+TIMESTAMP_MONTH,\
                   UINT8+TIMESTAMP_DAY,UINT8+TIMESTAMP_HOUR,UINT8+TIMESTAMP_MINUTE,\
                   UINT8+TIMESTAMP_SECOND,PAD+1
#Get Max OS/400 processors
GET_OS400_CAPACITY = 80,4,1,15,UINT16+MAX_OS400_PROCUNITS
#Mobile CoD
GET_MOBILE_COD_REMOVAL_SIGNATURE = 80,4,1,16,UINT16+SIGNATURE_LENGTH,VARBIN+SIGNATURE_LENGTH+REMOVAL_SIGNATURE
#Enhanced Manage On/Off CoD
GET_ONOFF_COD_BILLING_CHARGES = 80,4,1,17,UINT16+NUM_DAYS_BILLED

# FoD Commands
#Set Fod Key
SET_FOD_KEY = 80,4,82,6,UINT32+FOD_TYPE,UINT8+ADDL_CAPS,UINT8+CONFIRMATION_REQ,UINT16+CONFIRMATION_ID
#Get FoD Order Info
GET_FOD_ORDER_INFO = 80,4,2,11,UINT8+FORMAT,FIXED_STRING+4+SYS_TYPE,FIXED_STRING+A+SYS_SERIAL,\
                               FIXED_STRING+4+CAP_CARD_CCIN,FIXED_STRING+A+CAP_CARD_SERIAL,\
                               FIXED_STRING+10+CAP_CARD_ID,FIXED_STRING+4+RESOURCE_ID,\
                               FIXED_STRING+4+RESOURCES_ACTIVATED,FIXED_STRING+4+FOD_SEQUENCE_NUM,\
                               FIXED_STRING+2+FOD_CHECKSUM
#FoD History Log
GET_FOD_HISTORY_LOG = 80,4,2,14,UINT8+FORMAT,UINT8+LOG_WRAPPED,UINT16+NUM_ENTRIES_THIS_REQ,\
                                UINT16+NUM_ENTRIES_LEFT,UINT16+OFFSET_TOKEN,UINT64+HIST_LOG_ID,\
                                STRUCT+NUM_ENTRIES_THIS_REQ+FOD_LOG_ENTRY_STRUCT+LOG_ENTRY_LIST
FOD_LOG_ENTRY_STRUCT = UINT16+FOD_MSG_ID,FIXED_STRING+4+PARM1,FIXED_STRING+4+PARM2,FIXED_STRING+2+PARM3,UINT16+TIMESTAMP_YEAR,\
                   UINT8+TIMESTAMP_MONTH,UINT8+TIMESTAMP_DAY,UINT8+TIMESTAMP_HOUR,UINT8+TIMESTAMP_MINUTE,\
                   UINT8+TIMESTAMP_SECOND,PAD+1

FOD_EXT_ERR_DATA = UINT32+FOD_TYPE,UINT8+ADDL_CAPS,UINT8+CONFIRMATION_REQ,UINT16+CONFIRMATION_ID 
# IO Concurrent
IO_MAINT_OPEN_SESSION = 80,5,0,1,UINT16+INBOUND_MSGS,UINT16+OUTBOUND_MSGS,UINT16+LENGTH,PAD+2,UINT64+CAPABILITIES

GET_POWER_DOMAIN = 80,5,1,1,UINT16+RETURN_CODE,PAD+6,UINT16+LENGHT,VARBIN+LENGHT+LOCATION_CODE,UINT16+LENGHT1,VARBIN+LENGHT1+RETURN_CODE_DATA

GET_POWER_DOMAIN_POWER_STATE = 80,5,1,9,UINT16+RETURN_CODE,UINT8+POWER_STATE,PAD+1,UINT16+LENGHT1,VARBIN+LENGHT1+RETURN_CODE_DATA

GET_POWER_FAULT_STATUS_REQUEST = 80,5,1,A,UINT16+RETURN_CODE,PAD+2,UINT32+TOTAL_LENGTH,UINT32+PKG_LENGTH,UINT32+REMAIN_LENGTH,UINT32+RESP_DATA_KEY,UINT8+FAULT_STATUS,PAD+1,UINT16+ENTRY_NUM,VARBIN+PKG_LENGTH+RESP_DATA,UINT16+ADDT_DATA_LEN,VARBIN+ADDT_DATA_LEN+ADDT_DATA

POWER_FAULT_STATUS_COMPONENTS = UINT16+REC_NUM,STRUCT+REC_NUM+POWER_FAULT_STATUS_COMPONENT+POWER_FAULT_STATUS_COMPONENT_LIST
POWER_FAULT_STATUS_COMPONENT = UINT8+STATUS,PAD+1,UINT16+LOC_CODE_SIZE,FIXED_STRING+LOC_CODE_SIZE+LOC_CODE

COMPONENT_ENTRIES = UINT16+REPEATS,STRUCT+REPEATS+COMPONENT_ENTRY_STRUCT+COMPONENT_ENTRY_LIST
COMPONENT_ENTRY_STRUCT = UINT8+STATUS,PAD+1,UINT16+LOC_CODE_SIZE,FIXED_STRING+LOC_CODE_SIZE+LOC_CODE

ACQUIRE_POWER_DOMAIN_SERVICE_LOCK = 80,5,1,5,UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST

RELEASE_POWER_DOMAIN_SERVICE_LOCK = 80,5,1,6,UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST

POWER_ON_POWER_DOMAIN = 80,5,1,8,UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST
POWER_OFF_POWER_DOMAIN = 80,5,1,7,UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST
CAN_VARY_OFF_POWER_DOMAIN = 80,5,1,2,UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST
VARY_OFF_POWER_DOMAIN = 80,5,1,3,UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST
VARY_ON_POWER_DOMAIN = 80,5,1,4,UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST
HYP_PIPE_REQUEST = 80,5,3,1,UINT16+RETURN_CODE,UINT16+LENGHT,VARBIN+LENGHT+RETURN_CODE_DATA
HYP_PIPE_REQ_EXCH_CAPS = 80,5,3,1,UINT16+RETURN_CODE,UINT16+LENGHT,VARBIN+LENGHT+RETURN_CODE_DATA

HYPER_PIPE_RESP_ASYNC = 80,5,3,2,UINT16+RETURN_CODE,PAD+6,UINT64+REQUEST_ID,UINT32+LENGTH1,UINT32+LENGTH2,UINT32+LENGTH3,UINT32+KEY_ID,VARBIN+LENGTH2+RESPONSE_DATA,UINT16+LENGTH4,VARBIN+LENGTH4+RET_CODE_DATA

HYPER_PIPE_RESP_ASYNC_EXCH_CAPS = 80,5,3,2,UINT16+RETURN_CODE,PAD+6,UINT64+REQUEST_ID,UINT32+LENGTH1,UINT32+LENGTH2,UINT32+LENGTH3,UINT32+KEY_ID,VARBIN+LENGTH2+RESPONSE_DATA,UINT16+LENGTH4,VARBIN+LENGTH4+RET_CODE_DATA

GET_REMAINING_RESP_DATA = 80,5,4,1,UINT16+RETURN_CODE,PAD+2,UINT32+LENGTH1,UINT32+LENGTH2,UINT32+LENGTH3,UINT32+KEY_ID,PAD+4,VARBIN+LENGTH2+RESPONSE_DATA,UINT16+LENGTH4,VARBIN+LENGTH4+RET_CODE_DATA

DISCARD_REMAINING_RESP_DATA = 80,5,4,2,UINT16+RETURN_CODE,UINT16+LENGTH,VARBIN+LENGTH+RETURN_CODE_DATA

HYP_PIPE_CANCEL_REQUEST = 80,5,3,3,UINT16+RETURN_CODE,UINT16+LENGHT,VARBIN+LENGHT+RETURN_CODE_DATA

RESP_DATA_STRUCT = UINT16+REPEATS,STRUCT+REPEATS+IO_CONC_RET_CODE_STRUCT+IO_CONC_RET_CODE_LIST

RESP_DATA_EXCH_CAPS_STRUCT = UINT16+RET_CODE,PAD+6,UINT64+PART_CAPABILITY

IO_CONC_RET_CODE_STRUCT = UINT16+LENGTH,UINT16+RETURN_CODE,UINT16+LENGHT1,VARBIN+LENGHT1+RETURN_CODE_DATA

OPEN_PHYP_FILE = 80,5,6,1,UINT16+RETURN_CODE,PAD+2,UINT32+TOTAL_FILE_SIZE,UINT32+WRITE_SIZE_LIMIT

WRITE_PHYP_FILE = 80,5,6,2,UINT16+RETURN_CODE,PAD+2,UINT32+LENGTH_WRITTEN
CLOSE_PHYP_FILE = 80,5,6,4,UINT16+RETURN_CODE,PAD+2
GET_FIRMWARE_UPDATE_STATUS = 80,5,6,5,UINT16+RETURN_CODE,UINT8+UPDATE_STATUS,UINT8+LAST_UPDATE_TYPE,FIXED_BIN+C+TIME_STAMP,FIXED_STRING+28+MI_KEYWORD,UINT64+VRM,UINT8+ERROR_CODE,UINT16+TIME_LIMIT
START_FIRMWARE_UPDATE = 80,5,6,6,UINT16+RETURN_CODE

#Utilization Data Collection
EXCHANGE_UTILIZATION_CAPABILITIES = 80,6,1,4,UINT32+LENGTH,VARBIN+LENGTH+CAPABILITIES
GET_SUPPORTED_UTILIZATION_ATTRIBUTES = 80,6,1,1,UINT32+LENGTH,STRUCT+LENGTH+CLASS_ATTRIBUTE_STRUCT+CLASS_ATTRIBUTE_LIST
CLASS_ATTRIBUTE_STRUCT = UINT16+CLASS_ID,UINT16+ATTRIBUTE_ID
RETRIEVE_UTILIZATION_DATA = 80,6,1,2,UINT64+QUERY_START_TIME,UINT64+QUERY_END_TIME, \
                            PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                            PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                                  STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                            PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                                  STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA+LPAR_UTIL_DATA_LIST
POOL_UTIL_DATA = UINT32+CONFIG_POOL_SIZE,UINT32+BORROWED_POOL_PROC_UNITS,UINT64+TOTAL_POOL_CYCLES,UINT64+UTILIZED_POOL_CYCLES
LPAR_UTIL_DATA = UINT64+ENTITLED_CYCLES,UINT64+CAPPED_CYCLES,UINT64+UNCAPPED_CYCLES

RETRIEVE_UTILIZATION_DATA_V2 = 80,6,1,2,UINT64+QUERY_START_TIME,UINT64+QUERY_END_TIME, \
                               PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                               PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                                     STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                               PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                                     STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA_V2+LPAR_UTIL_DATA_LIST
LPAR_UTIL_DATA_V2 = UINT64+ENTITLED_CYCLES,UINT64+CAPPED_CYCLES,UINT64+UNCAPPED_CYCLES,UINT64+SHARED_CYCLES_WHILE_ACTIVE
LPAR_UTIL_DATA_V3 = UINT64+ENTITLED_CYCLES,UINT64+CAPPED_CYCLES,UINT64+UNCAPPED_CYCLES,UINT64+SHARED_CYCLES_WHILE_ACTIVE , \
					UINT64+ENTITILED_PARTITION_MEMORY_SIZE,UINT64+MAPPED_PARTITION_MEMORY_SIZE, \
					UINT64+VARIABLE_MEMORY_WEIGHT,UINT64+PARTITION_MEMORY_POOL_SIZE, \
					UINT64+OVERAGE_ALLOTMENT_DIFF_SIZE,UINT64+ACTUAL_PARTITION_SPACE_MEMORY
					
RETRIEVE_UTILIZATION_DATA_V3 = 80,6,1,2,UINT64+QUERY_START_TIME,UINT64+QUERY_END_TIME, \
                               PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                               PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                                     STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                               PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                                     STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA_V2+LPAR_UTIL_DATA_LIST, \
                               PAD+6,UINT16+MSVPP_KEY_LEN,VARBIN+MSVPP_KEY_LEN+MSVPP_KEY_DATA, \
                                     STRUCT_PER_BIT+MSVPP_KEY_DATA+MSVPP_UTIL_DATA+MSVPP_UTIL_DATA_LIST
MSVPP_UTIL_DATA = UINT64+TOTAL_POOL_CYCLES,UINT64+UTILIZED_POOL_CYCLES

RETRIEVE_UTILIZATION_DATA_V4 = 80,6,1,2,UINT64+QUERY_START_TIME,UINT64+QUERY_END_TIME, \
                               PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                               PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                                     STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                               PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                                     STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA+LPAR_UTIL_DATA_LIST, \
                               PAD+6,UINT16+MSVPP_KEY_LEN,VARBIN+MSVPP_KEY_LEN+MSVPP_KEY_DATA, \
                                     STRUCT_PER_BIT+MSVPP_KEY_DATA+MSVPP_UTIL_DATA+MSVPP_UTIL_DATA_LIST
                                     
MEM_POOL_UTIL_DATA = UINT64+MEM_POOL_PAGE_FAULTS,UINT64+MEM_POOL_PAGE_IN_DELAY,UINT64+MEM_POOL_SIZE, \
					 UINT64+MEM_POOL_PARTITION_ENTITLED_MEMORY,UINT64+MEM_POOL_PARTITION_MAPPED_MEMORY, \
					 UINT64+MEM_POOL_PARTITION_PHYSICAL_MEMORY
					 
RETRIEVE_UTILIZATION_DATA_V5 = 80,6,1,2,UINT64+QUERY_START_TIME,UINT64+QUERY_END_TIME, \
                               PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                               PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                                     STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                               PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                                     STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA_V3+LPAR_UTIL_DATA_LIST, \
                               PAD+6,UINT16+MSVPP_KEY_LEN,VARBIN+MSVPP_KEY_LEN+MSVPP_KEY_DATA, \
                                     STRUCT_PER_BIT+MSVPP_KEY_DATA+MSVPP_UTIL_DATA+MSVPP_UTIL_DATA_LIST, \
			                   PAD+6,UINT16+MEM_POOL_KEY_LEN,VARBIN+MEM_POOL_KEY_LEN+MEM_POOL_KEY_DATA, \
            				         STRUCT_PER_BIT+MEM_POOL_KEY_DATA+MEM_POOL_UTIL_DATA+MEM_POOL_UTIL_DATA_LIST                                     
                                                                          
# Long Utilization Data Support
RETRIEVE_UTILIZATION_DATA_LONG = 80,6,1,2,UINT64+QUERY_START_TIME,UINT64+QUERY_END_TIME, \
                                 UINT32+TOTAL_LENGTH, UINT32+REMAIN_LENGTH, \
                                 DATA+PART_UTILIZATION_DATA                                 

UTILIZATION_DATA = PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                   PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                      STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                   PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                      STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA+LPAR_UTIL_DATA_LIST

UTILIZATION_DATA_V2 = PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                   PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                      STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                   PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                      STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA_V2+LPAR_UTIL_DATA_LIST

UTILIZATION_DATA_V3 = PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                   PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                      STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                   PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                      STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA_V2+LPAR_UTIL_DATA_LIST, \
                   PAD+6,UINT16+MSVPP_KEY_LEN,VARBIN+MSVPP_KEY_LEN+MSVPP_KEY_DATA, \
                      STRUCT_PER_BIT+MSVPP_KEY_DATA+MSVPP_UTIL_DATA+MSVPP_UTIL_DATA_LIST

                      
UTILIZATION_DATA_V4 = PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                   PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                      STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                   PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                      STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA+LPAR_UTIL_DATA_LIST, \
                   PAD+6,UINT16+MSVPP_KEY_LEN,VARBIN+MSVPP_KEY_LEN+MSVPP_KEY_DATA, \
                      STRUCT_PER_BIT+MSVPP_KEY_DATA+MSVPP_UTIL_DATA+MSVPP_UTIL_DATA_LIST

UTILIZATION_DATA_V5 = PAD+8,UINT64+CYCLES_PER_SECOND,UINT64+PHYP_TIME, \
                   PAD+6,UINT16+POOL_KEY_LEN,VARBIN+POOL_KEY_LEN+POOL_KEY_DATA, \
                      STRUCT_PER_BIT+POOL_KEY_DATA+POOL_UTIL_DATA+POOL_UTIL_DATA_LIST, \
                   PAD+6,UINT16+LPAR_KEY_LEN,VARBIN+LPAR_KEY_LEN+LPAR_KEY_DATA, \
                      STRUCT_PER_BIT+LPAR_KEY_DATA+LPAR_UTIL_DATA_V3+LPAR_UTIL_DATA_LIST, \
                   PAD+6,UINT16+MSVPP_KEY_LEN,VARBIN+MSVPP_KEY_LEN+MSVPP_KEY_DATA, \
                      STRUCT_PER_BIT+MSVPP_KEY_DATA+MSVPP_UTIL_DATA+MSVPP_UTIL_DATA_LIST, \
                   PAD+6,UINT16+MEM_POOL_KEY_LEN,VARBIN+MEM_POOL_KEY_LEN+MEM_POOL_KEY_DATA, \
                      STRUCT_PER_BIT+MEM_POOL_KEY_DATA+MEM_POOL_UTIL_DATA+MEM_POOL_UTIL_DATA_LIST
                                            
GET_REMAINING_UTILIZATION_DATA = 80,6,1,3,UINT64+QUERY_START_TIME,UINT64+QUERY_END_TIME, \
                                 UINT32+REMAIN_LENGTH, \
                                 DATA+PART_UTILIZATION_DATA     
                                                       
#eClipz CM Responses
// XXX: Change PAD+0 to PAD-OFFSET when parser is ready.
GET_NODE_CONFIG =   0,1C,81,1,UINT16+OFFSET,UINT16+NUM_CONFIG_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONFIG_STRUCTS+NODE_CONFIG_ATTRS+NODE_CONFIG_ATTRS_LIST

NODE_CONFIG_ATTRS = UINT16+LENGTH,UINT16+NODE_ID,PAD+1,UINT8+LOC_CODE_TYPE,PAD+2,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE,FIXED_BIN+4+STATUS_BITMASK,UINT16+REPAIR_AVAIL_MOD,UINT16+ADD_AVAIL_MOD,UINT16+REMOVE_AVAIL_MOD

GET_NODE_CONFIG_V3 = 0,1C,81,16,UINT16+OFFSET,UINT16+NUM_CONFIG_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONFIG_STRUCTS+NODE_CONFIG_ATTRS_V3+NODE_CONFIG_ATTRS_LIST

NODE_CONFIG_ATTRS_V3 = UINT16+LENGTH,UINT16+NODE_ID,PAD+1,UINT8+LOC_CODE_TYPE,PAD+2,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE,FIXED_BIN+4+STATUS_BITMASK,UINT16+REPAIR_AVAIL_MOD,UINT16+ADD_AVAIL_MOD,UINT16+REMOVE_AVAIL_MOD,UINT16+HOT_UPGRADE_AVAIL_MOD,FIXED_BIN+4+HOT_NODE_UPGRADE_SUPPORT_BITMASK

// XXX: Change PAD+0 to PAD-OFFSET when parser is ready.

GET_NODE_CONTROLLER_CONFIG = 0,1C,81,13,UINT16+OFFSET,UINT16+NUM_CONFIG_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONFIG_STRUCTS+NC_CONFIG_ATTRS+NC_CONFIG_ATTRS_LIST

NC_CONFIG_ATTRS = UINT16+LENGTH,PAD+4,PAD+2,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE,FIXED_BIN+4+STATUS_BITMASK,UINT16+REPAIR_AVAIL_MOD,PAD+2,PAD+2,PAD+2,UINT32+PSI_LINK_ROLE,UINT8+NODE_CONTROLLER_ROLE,PAD+3

GET_GXPLUS_CONFIG = 0,1C,81,2,UINT16+OFFSET,UINT16+NUM_CONFIG_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONFIG_STRUCTS+GXPLUS_CONFIG_ATTRS+GXPLUS_CONFIG_ATTRS_LIST

GXPLUS_CONFIG_ATTRS = UINT16+LENGTH,PAD+2,PAD+2,PAD+2,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE,FIXED_BIN+4+STATUS_BITMASK,UINT16+REPAIR_AVAIL_MOD,UINT16+ADD_AVAIL_MOD,UINT16+REMOVE_AVAIL_MOD,UINT8+POP_ADAPTER_TYPE,UINT8+RESERV_STATUS,UINT8+SHARED_VOLUME_FLAG,PAD+3,FIXED_BIN+4+SUP_ADAPTER_TYPE_BITMASK,PAD+4

QUERY_SERVACT_READINESS = 0,1C,81,12,UINT16+READINESS_REASON_CODE

// XXX: Change PAD+0 to PAD-OFFSET when parser is ready.
QUERY_SERVACT_FRU_DEPENDENCIES = 0,1C,81,14,UINT16+OFFSET,UINT16+NUM_DEPEND_STRUCTS,PAD+0,STRUCT+NUM_DEPEND_STRUCTS+DEPEND_ATTRS+DEPEND_ATTRS_LIST
DEPEND_ATTRS = UINT16+LEN,PAD+2,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE

SET_ANCHOR_CARD_STATUS = 0,1C,91,15

#Platform CM Responses
QUERY_PLATFORM_CM_SUPPORT = 0,1C,0,F,UINT32+LENGTH,VARBIN+LENGTH+PLATFORM_CM_SUPPORT_BITMASK
QUERY_PLATFORM_SERV_ACT_SUPPORT = 0,1C,81,F,UINT32+LENGTH,VARBIN+LENGTH+FIRMWARE_INTERFACE_SUP_BITMASK,\
            UINT32+LENGTH1,VARBIN+LENGTH1+CONC_ADD_FRU_SUP_BITMASK,VARBIN+LENGTH1+NONCONC_ADD_FRU_SUP_BITMASK,\
            VARBIN+LENGTH1+CONC_REPAIR_FRU_SUP_BITMASK,VARBIN+LENGTH1+NONCONC_REPAIR_FRU_SUP_BITMASK,\
            VARBIN+LENGTH1+CONC_REMOVE_FRU_SUP_BITMASK,VARBIN+LENGTH1+NONCONC_REMOVE_FRU_SUP_BITMASK

GET_FSP_CONFIG = 0,1C,80,3,UINT16+OFFSET,UINT16+NUM_CONF_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONF_STRUCTS+FSP_CONFIG_ATTRS+FSP_CONFIG_ATTRS_LIST
FSP_CONFIG_ATTRS = UINT16+LENGTH,UINT8+FSP_ROLE,PAD+1,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE,FIXED_BIN+4+FSP_STATUS_BIT_MASK,UINT16+CONC_REPAIR_AVAIL_MOD,PAD+2
GET_COLD_REPAIR_FSP_CONFIG = 0,1C,0,10,UINT16+OFFSET,UINT16+NUM_CONF_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONF_STRUCTS+COLD_REPAIR_FSP_CONFIG_ATTRS+COLD_REPAIR_FSP_CONFIG_ATTRS_LIST
COLD_REPAIR_FSP_CONFIG_ATTRS = UINT16+LENGTH,UINT8+FSP_ROLE,PAD+1,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE
GET_CLOCKCARD_CONFIG = 0,1C,80,4,UINT16+OFFSET,UINT16+NUM_CONF_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONF_STRUCTS+CLOCKCARD_CONFIG_ATTRS+CLOCKCARD_CONFIG_ATTRS_LIST
CLOCKCARD_CONFIG_ATTRS = UINT16+LENGTH,PAD+2,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE,FIXED_BIN+4+CLOCKCARD_STATUS_BIT_MASK,UINT16+CONC_REPAIR_AVAIL_MOD,PAD+2
GET_OPPANEL_CONFIG = 0,1C,80,5,UINT16+OFFSET,UINT16+NUM_CONF_STRUCTS,PAD+4,PAD+0,STRUCT+NUM_CONF_STRUCTS+OPPANEL_CONFIG_ATTRS+OPPANEL_CONFIG_ATTRS_LIST
OPPANEL_CONFIG_ATTRS = UINT16+LENGTH,PAD+2,UINT16+LOC_CODE_LEN,VARBIN+LOC_CODE_LEN+LOC_CODE,FIXED_BIN+4+OPPANEL_STATUS_BIT_MASK,UINT16+CONC_REPAIR_AVAIL_MOD,UINT16+CONC_ADD_AVAIL_MOD,UINT16+CONC_REMOVE_AVAIL_MOD,PAD+2

QUERY_FSP_CM_SERVICE_LOCK = 0,1C,0,9,UINT32+FSP_LOCK_OWNER_TOOL_TYPE,UINT16+FSP_LOCK_OWNER_CL_ID_LEN,VARBIN+FSP_LOCK_OWNER_CL_ID_LEN+FSP_LOCK_OWNER_ID,UINT32+FSP_FRU_TYPE,UINT16+FSP_LOC_CODE_LEN,VARBIN+FSP_LOC_CODE_LEN+FSP_LOC_CODE
QUERY_FSP_CM_SERVICE_LOCK_V2 = 0,1C,81,9,UINT32+FSP_LOCK_OWNER_TOOL_TYPE,\
                 UINT16+FSP_LOCK_OWNER_CL_ID_LEN,FIXED_STRING+FSP_LOCK_OWNER_CL_ID_LEN+FSP_LOCK_OWNER_ID,\
                 PAD+2,UINT8+SERVICE_ACTION,UINT8+SERVICE_ACTION_TYPE,\
                                 UINT32+FSP_FRU_TYPE,UINT16+FSP_LOC_CODE_LEN,FIXED_STRING+FSP_LOC_CODE_LEN+FSP_LOC_CODE

ACQUIRE_FSP_CM_SERVICE_LOCK = 0,1C,90,A
FSP_CM_SERVICE_LOCK_ERR_DATA = UINT32+FSP_LOCK_OWNER_TOOL_TYPE,UINT16+FSP_LOCK_OWNER_CL_ID_LEN,VARBIN+FSP_LOCK_OWNER_CL_ID_LEN+FSP_LOCK_OWNER_ID,UINT32+FSP_FRU_TYPE,UINT16+FSP_LOC_CODE_LEN,VARBIN+FSP_LOC_CODE_LEN+FSP_LOC_CODE
ACQUIRE_FSP_CM_SERVICE_LOCK_V2 = 0,1C,91,A
FSP_CM_SERVICE_LOCK_ERR_DATA_V2 = FIXED_BIN+18+HEADER,UINT32+FSP_LOCK_OWNER_TOOL_TYPE,UINT16+FSP_LOCK_OWNER_CL_ID_LEN,\
                                 FIXED_STRING+FSP_LOCK_OWNER_CL_ID_LEN+FSP_LOCK_OWNER_ID,\
                 PAD+2,UINT8+SERVICE_ACTION,UINT8+SERVICE_ACTION_TYPE,\
                 UINT32+FSP_FRU_TYPE,UINT16+FSP_LOC_CODE_LEN,FIXED_STRING+FSP_LOC_CODE_LEN+FSP_LOC_CODE

RELOCATE_BACKUP_PSI_LINK = 0,1C,91,17
UPDATE_SERVICE_ACTION_STATUS = 0,1C,91,18

RELEASE_FSP_CM_SERVICE_LOCK = 0,1C,90,B
RELEASE_FSP_CM_SERVICE_LOCK_V2 = 0,1C,91,B

GET_NODES_WITH_CM_ELIGIBLE_DCAS = 0,5,80,24,UINT8+SUPPORT_FLAG,UINT8+RESERVED, \
                   UINT16+NUMBER_OF_DCAS,UINT16+OFFSET, FIXED_STRING+OFFSET+RESERVED, \
                   STRUCT+NUMBER_OF_DCAS+DCA_LOCATION_CODE_STRUCT+DCA_LOCATION_CODE_LIST
DCA_LOCATION_CODE_STRUCT = UINT16+LOC_CODE_STRUCT_LEN,UINT16+RESERVED,UINT16+LOC_CODE_LEN,\
                      FIXED_STRING+LOC_CODE_LEN+LOC_CODE


ACTIVATE_POWER_DOMAIN = 0,1C,90,D,UINT32+NUM_PROGRESS_CODES
ACTIVATE_POWER_DOMAIN_V2 = 0,1C,90,11,UINT32+NUM_PROGRESS_CODES
ACTIVATE_POWER_DOMAIN_V3 = 0,1C,91,11
DEACTIVATE_POWER_DOMAIN = 0,1C,10,E,UINT8+FRU_REMOVAL_INST
DEACTIVATE_POWER_DOMAIN_V2 = 0,1C,91,E

ACTIVATE_FSP = 0,18,10,3
DEACTIVATE_FSP = 0,18,10,4
CLEANUP_FSP = 0,18,10,5

SERVICE_PROC_BEGIN = 80,5,5,1,UINT16+PHYP_NUM_RCS,STRUCT+PHYP_NUM_RCS+CM_RET_CODE_STRUCT+CM_RET_CODE_LIST
CM_RET_CODE_STRUCT = UINT16+LENGTH,UINT16+PHYP_RCS,UINT16+ADDL_RC_LEN,VARBIN+ADDL_RC_LEN+PHYP_RCS_ADDL_DATA
SERVICE_PROC_START = 80,5,5,1,UINT16+PHYP_NUM_RCS,STRUCT+PHYP_NUM_RCS+CM_RET_CODE_STRUCT+CM_RET_CODE_LIST
SERVICE_PROC_END = 80,5,5,2,UINT16+PHYP_NUM_RCS,STRUCT+PHYP_NUM_RCS+CM_RET_CODE_STRUCT+CM_RET_CODE_LIST
SERVICE_PROC_STOP = 80,5,5,2,UINT16+PHYP_NUM_RCS,STRUCT+PHYP_NUM_RCS+CM_RET_CODE_STRUCT+CM_RET_CODE_LIST
SERVICE_PROC_UPDATE = 80,5,5,4,UINT16+PHYP_NUM_RCS,STRUCT+PHYP_NUM_RCS+CM_RET_CODE_STRUCT+CM_RET_CODE_LIST
CM_PHYP_EXCHANGE_CAPABILITIES = 80,5,0,3,UINT16+LENGTH,VARBIN+LENGTH+CM_PHYP_CAPABILITIES
PHYP_REPORT_CMD_STATUS_DATA=FIXED_BIN+18+HEADER,UINT16+RETURN_CODE,UINT8+PERCENTAGE,PAD+1,UINT32+PROGRESS_CODE,UINT64+TOKEN,UINT16+ADDL_RC_LEN,VARBIN+ADDL_RC_LEN+ADDL_RETURN_CODE_DATA

#MegaMouth commands
MM_GET_IO_HUBS = 80,5,7,1,UINT16+RETURN_CODE,PAD+2,UINT32+REPEATS_LENGTH,\
                 STRUCT_DIV+5+REPEATS_LENGTH+MM_IO_HUB_STRUCT+MM_IO_HUB_LIST,\
                 UINT16+ADDT_RTN_CODE_LEN,VARBIN+ADDT_RTN_CODE_LEN+ADDT_RTN_CODE_DATA
MM_IO_HUB_STRUCT = UINT32+HUB_DRC_INDEX,UINT8+HUB_TYPE
MM_GET_RIO_BUSES = 80,5,7,2,UINT16+RETURN_CODE,PAD+2,UINT32+REPEATS_LENGTH,\
                   STRUCT_DIV+5+REPEATS_LENGTH+MM_RIO_BUS_STRUCT+MM_RIO_BUS_LIST,\
                   UINT16+ADDT_RTN_CODE_LEN,VARBIN+ADDT_RTN_CODE_LEN+ADDT_RTN_CODE_DATA
MM_RIO_BUS_STRUCT = UINT32+BUS_NUMBER,UINT8+BUS_TYPE
MM_GET_RIO_TOPOLOGY = 80,5,7,3,UINT16+RETURN_CODE,PAD+2,UINT32+TOTAL_LENGTH,UINT32+LENGTH,\
                      UINT32+REMAINING_LENGTH,UINT32+RESPONSE_DATA_KEY,UINT16+REPEATS,\
                      PAD+2,STRUCT_PADDING_HACK+REPEATS+MM_RIO_NODE_STRUCT+MM_RIO_NODE_LIST
MM_RIO_NODE_STRUCT = UINT16+NODE_LENGTH,UINT16+NODE_VERSION,UINT8+NODE_TYPE,UINT8+NODE_FLAG,\
                     PAD+2,UINT8+LEADING_PORT_TYPE,UINT8+LEADING_PORT_SPEED,UINT8+LEADING_PORT_CABLE_ID,\
                     UINT8+LEADING_PORT_FLAG,UINT32+DRC_INDEX,FIXED_STRING+4+POWER_CONTROL_SYSTEM_TYPE,\
                     FIXED_STRING+C+POWER_CONTROL_SYSTEM_SERIAL,FIXED_STRING+4+FUNCTION_CONTROL_SYSTEM_TYPE,\
                     FIXED_STRING+C+FUNCTION_CONTROL_SYSTEM_SERIAL,PAD+1,UINT8+ENCLOSURE_LOC_SIZE,\
                     UINT16+ENCLOSURE_LOC_OFFSET,UINT8+LEADING_PORT_STATUS,UINT8+LEADING_PORT_LOC_SIZE,\
                     UINT16+LEADING_PORT_LOC_OFFSET,UINT8+TRAILING_PORT_STATUS,UINT8+TRAILING_PORT_LOC_SIZE,\
                     UINT16+TRAILING_PORT_LOC_OFFSET,VARBIN+ENCLOSURE_LOC_SIZE+ENCLOSURE_LOC_CODE,\
                     VARBIN+LEADING_PORT_LOC_SIZE+LEADING_PORT_LOC_CODE,VARBIN+TRAILING_PORT_LOC_SIZE+TRAILING_LOC_CODE
MM_GET_REMAINING_DATA = 80,5,4,1,UINT16+RETURN_CODE,PAD+2,UINT32+TOTALL_ENGTH,UINT32+LENGTH,\
                        UINT32+REMAINING_LENGTH,UINT32+RESPONSE_DATA_KEY,PAD+4,UINT16+REPEATS,\
                        STRUCT+REPEATS+MM_RIO_NODE_STRUCT+MM_RIO_NODE_LIST
MM_SET_MULTI_HUB_MODE = 80,5,87,4,UINT16+RETURN_CODE,UINT16+LENGTH1,VARBIN+LENGTH1+ADD_RETURN_CODE_DATA
MM_GET_MULTI_HUB_MODE = 80,5,7,4,UINT16+RETURN_CODE,UINT8+HUB_MODE,PAD+1,UINT16+LENGTH1,VARBIN+LENGTH1+ADD_RETURN_CODE_DATA
MM_SET_RESERVED_SLOT = 80,1,85,D

#Lpar migration commands
GET_PAR_MIG_COMPATIBILITY_DATA = 80,7,1,1,UINT32+LEN,VARBIN+LEN+COMPATIBILITY_DATA
CHK_PAR_MIG_COMPATIBILITY_DATA = 80,7,1,2
SET_SUSPENSION_ENABLED_MODE = 80,7,81,3
CLEAR_SUSPENSION_ENABLED_MODE = 80,7,81,5
SET_FINAL_PAR_MIG_MODE = 80,7,81,4
EXTRACT_INACT_MIG_STATE = 80,7,1,6,UINT8+COMPLETE,PAD+3,UINT16+TOTAL_REIGON_NUM,UINT16+REIGON_NUM_IN_PACKET,UINT32+DATA_LEN,VARBIN+DATA_LEN+STATE_DATA
INSERT_INACT_MIG_STATE = 80,7,81,6
GET_PAR_MIG_STATE = 80,7,1,7,UINT8+STATE,UINT8+HMC_LOST_CONN
GET_MIG_CORRELATION_DATA = 80,7,1,8,UINT8+STATUS,FIXED_BIN+7+SERIAL_NUM,UINT64+STREAM_ID,UINT16+LPAR_ID,UINT16+MSP_ID,FIXED_BIN+C+OTHER
SET_MIG_CORRELATION_DATA = 80,7,81,8
CLEAR_MIG_CORRELATION_DATA = 80,7,81,9
GET_MIG_PARTITIONS_INFO = 80,7,1,A,UINT16+BYTES_NUM,VARBIN+BYTES_NUM+ID_MASK

GET_PHYP_MIG_CAPABILITIES = 80,1,1,B,UINT32+SUP_INACT_MIG,UINT32+CUR_INACT_MIG,UINT32+SUP_ACT_MIG,UINT32+CUR_ACT_MIG,UINT64+PROC_MODE,UINT64+FIRMWARE_MODE
GET_PHYP_MIG_CAPABILITIES_V2 = 80,1,1,B,UINT32+SUP_INACT_MIG,UINT32+CUR_INACT_MIG,UINT32+SUP_ACT_MIG,UINT32+CUR_ACT_MIG,UINT64+PROC_MODE,\
                                        UINT64+FIRMWARE_MODE,UINT16+MAX_STREAMS_PER_VASI
GET_MSP_ATTRIBUTE = 80,1,2,19,UINT8+MSP_ATTR
SET_MSP_ATTRIBUTE = 80,1,82,19
GET_PAR_COMPATIBILITY_MODES = 80,1,2,1A,UINT64+PROC_MODE,UINT64+FIRMWARE_MODE,UINT64+VIOS_MODE,UINT64+EFFECT_PROC_MODE,UINT64+EFFECT_FIRMWARE_MODE
SET_PAR_COMPATIBILITY_MODES = 80,1,82,1A
GET_TIME_REFERENCE_ATTRIBUTE = 80,1,2,1B,UINT8+TIME_REF_ATTR
SET_TIME_REFERENCE_ATTRIBUTE = 80,1,82,1B
SET_VASI_ADAPTER_INFO = 80,1,8B,B
SET_VASI_ADAPTER_INFO_V2 = 80,1,8B,B
GET_VASI_ADAPTER_INFO = 80,1,B,B,UINT16+NUM_OF_STREAMS,UINT8+STREAM_TYPE
MIG_ASYNC_STATE_CHANGE = 80,7,0,3,UINT32+CHG_FLG_LEN,VARBIN+CHG_FLG_LEN+GBL_CHG_FLG,\
        UINT16+LPAR_NUM,STRUCT+LPAR_NUM+LPAR_CHANGE_STRUCT+LPAR_CHG_LIST

#VRM Command Responses (LI FFG)
SET_LPAR_PSP_ATTRIBUTE = 80,1,82,1F
GET_VRM_POOL_INFO = 80,1,4,7,UINT8+NUM_VRM_POOLS,UINT8+NUM_VRM_POOLS_IN_RESP,\
                             UINT8+NUM_POOLS_LEFT,PAD+1,\
           STRUCT+NUM_VRM_POOLS_IN_RESP+VRM_POOL_INFO_STRUCT+VRM_POOL_LIST
VRM_POOL_INFO_STRUCT = UINT8+POOL_ID,PAD+3,UINT32+CURR_SIZE,UINT32+MAX_SIZE, \
                       UINT32+PENDING_SIZE,UINT32+PENDING_MAX_SIZE,UINT16+PSP1,UINT16+PSP2, \
                       UINT32+HIDDEN_ENTITLEMENT
SET_VRM_POOL_INFO = 80,1,84,7
FIND_VRM_STRM_LPAR = 80,1,4,8,UINT16+CLIENT_LPAR_ID
LIST_VRM_PARTITIONS_IN_POOL = 80,1,4,9,UINT16+TOTAL_LPARS_IN_POOL,UINT16+LEN_LPAR_BITMAP,\
                              VARBIN+LEN_LPAR_BITMAP+LPAR_BITMAP
SET_PENDING_LPAR_MEMORY_V2_VRM = 80,1,84,1                              
SET_PENDING_LPAR_MEMORY_V2_NON_VRM = 80,1,84,1                              
FORCE_VRM_FAILOVER = 80,1,84,A                      


# Status error codes
INVALID_DATA = DATA+ERROR_DATA
EXTENDED_ERROR = DATA+ERROR_DATA
MASTER_HMC_ALREADY_DEFINED = UINT16+LENGTH,VARBIN+LENGTH+NAME


#hardware server command
FSP_QUERY_DATA = UINT16+LEN_BEF_MTMS,LUINT16+INTF_VER_FAMILY,LUINT16+FSP_TYPE,LUINT16+MAJOR_VER,LUINT16+MINOR_VER,\
                                  LUINT16+CONN_STATE,LUINT32+SS_VPORT_NUM,LUINT16+SS_CONN_STATE,LUINT16+PEND_PW_CHG_BITFLD,\
                                  UINT16+BRAND,LUINT16+IP_LEN,STRING+IP_ADDR,LUINT16+MTMS_LEN,STRING+MTMS,\
                                  LUINT64+LST_FAIL_TIME,LUINT16+EXT_REASON,LUINT16+INT_REASON_CAT,LUINT32+INT_REASON_CODE,\
                                  LUINT64+SS_LST_FAIL_TIME,LUINT16+SS_EXT_REASON,LUINT16+SS_INT_REASON_CAT,\
                                  LUINT32+SS_INT_REASON_CODE,LUINT16+FSP_ROLE,LUINT16+FSP_PRIMARY_COUNTER,\
								  LUINT16+IP1_LEN,FIXED_STRING+IP1_LEN+IP1,LUINT16+IP2_LEN,FIXED_STRING+IP2_LEN+IP2,UINT8+SIDE

HARDWARE_SERVER_VERSION_MTMS_QUERY = UINT8+MAJOR_VER,UINT8+MINOR_VER,UINT8+BLD_YEAR,UINT8+BLD_WEEK,LUINT16+MTMS_LEN,\
								  STRING+MTMS


#BPA Command
BPA_GET_ENV_INFO = 00,1A,82,60,UINT8+RETURN_CODE,PAD+1,UINT16+VOLT_AB,UINT16+VOLT_BC,UINT16+VOLT_CA,UINT16+AMPS_A,UINT16+AMPS_B,UINT16+AMPS_C
BPA_GET_ENV_INFO_V2 = 00,1A,82,60,UINT8+RETURN_CODE,PAD+1,UINT16+VOLT_AB_LINE_1,UINT16+VOLT_BC_LINE_1,\
                                                          UINT16+VOLT_CA_LINE_1,UINT16+AMPS_A_LINE_1,\
                                                          UINT16+AMPS_B_LINE_1,UINT16+AMPS_C_LINE_1,\
                                                          UINT16+VOLT_AB_LINE_2,UINT16+VOLT_BC_LINE_2,\
                                                          UINT16+VOLT_CA_LINE_2,UINT16+AMPS_A_LINE_2,\
                                                          UINT16+AMPS_B_LINE_2,UINT16+AMPS_C_LINE_2

BPA_GET_CEC_ENV_INFO = 00,1A,82,60,UINT8+RETURN_CODE,PAD+1,UINT8+SYS_AMP_TEMP,UINT8+CAGE_0_AMP_TEMP,UINT8+CAGE_1_AMP_TEMP,\
                       UINT8+CAGE_2_AMP_TEMP,UINT8+CAGE_3_AMP_TEMP,UINT8+CAGE_4_AMP_TEMP,UINT8+CAGE_5_AMP_TEMP,UINT8+CAGE_6_AMP_TEMP,\
                       UINT8+CAGE_7_AMP_TEMP,UINT8+CAGE_8_AMP_TEMP,UINT8+CAGE_9_AMP_TEMP,UINT8+CAGE_10_AMP_TEMP,UINT8+CAGE_11_AMP_TEMP,\
                       UINT8+CAGE_12_AMP_TEMP,UINT8+CAGE_13_AMP_TEMP,UINT8+CAGE_14_AMP_TEMP,UINT8+CAGE_15_AMP_TEMP


BPA_SET_FRAME_NUM = 00,1A,86,30,UINT8+RETURN_CODE,PAD+1
BPA_GET_FRAME_NUM = 00,1A,86,40,UINT8+RETURN_CODE,PAD+1,UINT16+FRAME_NUM
BPA_GET_FRAME_INFO = 00,1A,89,C0,UINT8+RETURN_CODE,PAD+1,UINT16+TOTAL_LEN,STRUCT_LEN+TOTAL_LEN+CAGE_STRUCT+CAGE_LIST
CAGE_STRUCT = UINT8+TOTAL_CAGE_LEN,UINT8+CAGE_TYPE,UINT16+CAGE_STATUS,UINT8+CAGE_ID,UINT8+TAR_LOC_CODE_LEN,\
	FIXED_STRING+TAR_LOC_CODE_LEN+TAR_LOC_CODE,UINT8+CAGE_LOC_CODE_LEN,FIXED_STRING+CAGE_LOC_CODE_LEN+CAGE_LOC_CODE,\
	UINT8+OWN_LOC_CODE_LEN,FIXED_STRING+OWN_LOC_CODE_LEN+OWN_LOC_CODE
BPA_ACDL = 00,1A,8A,00,UINT8+RETURN_CODE,PAD+1
BPA_GET_BPC_STATE = 00,1A,89,D0,UINT8+RETURN_CODE,PAD+1,UINT8+BPC_STATE
BPA_LOCK = 00,1A,81,30,UINT8+RETURN_CODE,PAD+1
BPA_REMOVE_DRAWER = 00,1A,84,00,UINT8+RETURN_CODE,PAD+1
BPA_ADD_DRAWER = 00,1A,84,10,UINT8+RETURN_CODE,PAD+1
# BPA Guided Maint commands	
BPA_SET_LOCK = 00,1A,81,30,UINT8+RETURN_CODE,PAD+1
BPA_CLEAR_LOCK = 00,1A,81,30,UINT8+RETURN_CODE,PAD+1
BPA_QUERY_LOCK = 00,1A,81,30,UINT8+RETURN_CODE,PAD+1,UINT8+LOCK_OWNER,IF+LOCK_OWNER+1+OWNER_MTMS
OWNER_MTMS = UINT16+MTMS_LEN,FIXED_STRING+MTMS_LEN+OWNING_MTMS
BPA_RESET_LOCVISOR_CAPABILITY_VALUES = 80,1,1,5,UINT16+REGION_SIZE,UINT16+HOST_IDS,\
                  UINT16+PROC_UNITS,UINT8+PROC_POOLS,UINT8+MAX_VSWITCHES,UINT16+MAX_IO_POOL_NUM,UINT16+MAX_VIR_PROC_PER_LPAR,\
                                  UINT16+MAX_DEDI_PROC_PER_LPAR,UINT8+MIN_HPT_RATIO,UINT8+MAX_HPT_RATIO,\
                                        UINT8+RECOMMANDED_HPT_RATIO,UINT8+MAX_VIR_OPTI,UINT8+MAX_HSL_OPTI

BPA_RESET_LOCK = 00,1A,81,30,UINT8+RETURN_CODE,PAD+1
BPA_QUERY_FRU_REDUNDANCY = 00,1A,89,B0,UINT8+RETURN_CODE,PAD+1 
BPA_DEACTIVATE_FRU = 00,1A,81,00,UINT8+RETURN_CODE,PAD+1
BPA_ACTIVATE_FRU = 00,1A,81,10,UINT8+RETURN_CODE,PAD+1
BPA_LOCK_ERR = FIXED_BIN+18+HEADER,UINT8+RETURN_CODE,PAD+1,UINT8+ERROR_DATA
BPA_SET_LOCK_ERR =FIXED_BIN+18+HEADER,UINT8+RETURN_CODE,PAD+1,UINT16+MTMS_LEN,FIXED_STRING+MTMS_LEN+OWNING_MTMS
BPA_GEN_ERR = FIXED_BIN+18+HEADER,UINT8+RETURN_CODE,PAD+1,UINT8+ERROR_DATA
BPA_START_ACDL = 00,1A,8A,00,UINT8+RETURN_CODE,PAD+1
BPA_GET_ACDL_STATUS = 00,1A,8A,00,UINT8+RETURN_CODE,PAD+1,UINT8+BPA_SIDE,UINT8+SYSTEM_STATUS_MODE,UINT8+SYSTEM_STATUS_PROGRESS,UINT8+FRU_COMPLETED,UINT8+FRU_TO_LOAD,UINT8+REPEATS,STRUCT+REPEATS+CODE_LEVEL_STRUCT+CODE_LEVEL_LIST
BPA_GET_BPC_LOC_CODE = 00,1A,83,80,UINT8+RETURN_CODE,PAD+1,STRING+LOCATION_CODE
BPA_SEND_OFFLINE_MESSAGE = 00,1A,8D,E0,UINT8+RETURN_CODE,PAD+1
BPA_SEND_OFFLINE_MESSAGE_DDV30 = 00,1A,8D,D0,UINT8+RETURN_CODE,PAD+1
BPA_SET_SERVICE_POWER_SAVE = 00,1A,88,70,UINT8+RETURN_CODE,PAD+1

BPA_GET_ACDL_STATUS_V2 = 00,1A,8A,00,UINT8+RETURN_CODE,PAD+1,UINT8+BPA_SIDE,UINT8+SYSTEM_STATUS_MODE,UINT8+SYSTEM_STATUS_PROGRESS,UINT8+FRU_COMPLETED,UINT8+FRU_TO_LOAD,UINT8+REPEATS,STRUCT+REPEATS+CODE_LEVEL_STRUCT_V2+CODE_LEVEL_LIST_V2

BPA_CHECK_FRAME_HEALTH = 00,1A,89,A0,UINT8+RETURN_CODE,PAD+1,UINT8+RETURN_DATA

BPA_QUERY_FRU_REDUNDANCY_V2 = 00,1A,89,B0,UINT8+RETURN_CODE,PAD+1,UINT8+RETURN_DATA

CODE_LEVEL_STRUCT = UINT8+LEN,EXPR_VAR_LEN+LEN+CODE_LEVEL_EXPR

CODE_LEVEL_STRUCT_V2 = UINT8+LEN,EXPR_VAR_LEN+LEN+CODE_LEVEL_EXPR_V2

CODE_LEVEL_EXPR = UINT8+LEN,FIXED_STRING+LEN+LOC_CODE,UINT8+FRU_STATUS,UINT16+ACT_CODE_LEVEL,UINT16+EXPECTED_CODE_LEVEL,UINT16+ACT_CODE_LEVEL1,UINT16+EXPECTED_CODE_LEVEL1

CODE_LEVEL_EXPR_V2 = UINT8+LEN,FIXED_STRING+LEN+LOC_CODE,UINT8+FRU_STATUS,UINT32+ACT_CODE_LEVEL_V2,UINT32+EXPECTED_CODE_LEVEL_V2

BPA_POWERON_CAGE = 00,1A,88,20,UINT8+RETURN_CODE,PAD+1
BPA_POWERON_UNOWNEDCAGE = 00,1A,88,20,UINT8+RETURN_CODE,PAD+1
ASYNC_ACDL_STATUS = 70,00,A0,1E,UINT8+ASYNC_SIDE,UINT8+ASYNC_CODE,UINT8+ASYNC_SEQ,UINT8+BPA_SIDE,UINT8+SYSTEM_STATUS_MODE,UINT8+SYSTEM_STATUS_PROGRESS,UINT8+FRU_COMPLETED,UINT8+FRU_TO_LOAD,UINT8+REPEATS,STRUCT+REPEATS+CODE_LEVEL_STRUCT+CODE_LEVEL_LIST

ASYNC_ACDL_STATUS_V2 = 70,00,A0,1E,UINT8+ASYNC_SIDE,UINT8+ASYNC_CODE,UINT8+ASYNC_SEQ,UINT8+BPA_SIDE,UINT8+SYSTEM_STATUS_MODE,UINT8+SYSTEM_STATUS_PROGRESS,UINT8+FRU_COMPLETED,UINT8+FRU_TO_LOAD,UINT8+REPEATS,STRUCT+REPEATS+CODE_LEVEL_STRUCT_V2+CODE_LEVEL_LIST_V2

BPA_SET_BPC_NAME=0,5,91,5
BPA_POWER_ON_CAGE_LC = 00,1A,88,20,UINT8+RETURN_CODE,PAD+1
BPA_POWEROFF_CAGE = 00,1A,88,10,UINT8+RETURN_CODE,PAD+1
BPA_FRAME_INFO_CHANGE_ASYNC = FIXED_BIN+18+HEADER,UINT8+SIDE,UINT8+EVT_TYPE,UINT8+SEQ,UINT16+TOTAL_LEN,STRUCT_LEN+TOTAL_LEN+CAGE_STRUCT+CAGE_LIST
BPA_READ_POWER_STATUS = 00,1A,89,70,UINT8+RETURN_CODE,PAD+1,UINT8+SYS_STATUS,UINT8+BPA_STATUS,UINT8+BPC_DCVP,UINT16+BPD1_DCVP,UINT16+BPD2_DCVP,UINT16+BPD3_DCVP

#FDT 
BPA_FDT_CONTROL = 00,1A,82,D0,UINT8+RETURN_CODE,PAD+1,FIXED_BIN+20+STATUS
BPA_FDT_CONTROL_NO_DATA = 00,1A,82,D0,UINT8+RETURN_CODE,PAD+1
BPA_MWU_CONTROL = 00,1A,82,C0,UINT8+RETURN_CODE,PAD+1,FIXED_BIN+C+STATUS
BPA_MWU_PUMP_CONTROL = 00,1A,82,C0,UINT8+RETURN_CODE,PAD+1
BPA_MWU_CONTROL_NO_DATA = 00,1A,82,C0,UINT8+RETURN_CODE,PAD+1
BPA_ASYNC_MWU_FDT_DATA = FIXED_BIN+18+HEADER,UINT8+SIDE,UINT8+EVT_TYPE,UINT8+SEQ,FIXED_BIN+20+ASYNC_DATA
QUERY_SYSTEM_PROP = 00,05,80,25,UINT16+NUM_TDS,UINT16+TDS_SIZE,PAD+2,UINT16+OFFSET,STRUCT+NUM_TDS+TDS_STRUCT+TDS_LIST
TDS_STRUCT = UINT16+TAG,UINT16+TAG_LENGTH,UINT8+COOLING_TYPE,PAD+3,UINT32+PEL_ID

#ANN command to SPCN
ANN_ADD_REMOVE_CMD = 0,8,80,1,UINT16+RACK_ADD,UINT16+UNIT_ADD,UINT8+ANN_STATUS,UINT8+ACK,UINT16+LEN,VARBIN+LEN+RETURN_DATA
CLEAR_IO_TABLE = 0,8,80,1,UINT16+RACK_ADD,UINT16+UNIT_ADD,UINT8+ANN_STATUS,UINT8+ACK,UINT16+LEN,VARBIN+LEN+RETURN_DATA

#PSN(Private Service Network) Response Commands

COLLECT_PSN_DATA =  0,20,80,01,UINT16+VERSION,UINT16+NUM_NDS,UINT16+NDS_SIZE,UINT16+OFFSET,STRUCT+NUM_NDS+NDS_STRUCT+NDS_LIST                              
NDS_STRUCT =  UINT16+VLAN_LOCATION_LENGTH,FIXED_STRING+VLAN_LOCATION_LENGTH+VLAN_SWITCH_LOC_CODE,UINT32+VLANMAP_CONFIG_FLAG,\
              UINT32+VLANENABLED_CONFIG_FLAG,UINT32+PORTVID_CONFIG_FLAG,UINT64+NET_SWITCH_BIST_STATUS,UINT64+VLAN_MAP,UINT32+MAC_ADDR,\
              PAD+2,UINT8+VLAN_ENABLE,UINT8+NUM_OF_PDS,UINT16+PDS_SIZE,UINT16+OFFSET,STRUCT+NUM_OF_PDS+PDS_STRUCT+PDS_LISTS
PDS_STRUCT = UINT32+VLAN_PORT_NO,UINT16+EXP_IP_ADDRESS_LENGTH,FIXED_STRING+EXP_IP_ADDRESS_LENGTH+EXP_IP_ADDRESS,UINT16+BPC_A_IP_LENGTH,\
             FIXED_STRING+BPC_A_IP_LENGTH+IP_ADD_OF_DEVICE_BY_BPCA,UINT16+BPC_B_IP_LENGTH,FIXED_STRING+BPC_B_IP_LENGTH+IP_ADD_OF_DEVICE_BY_BPCB,\
             UINT16+MAC_LENGTH,FIXED_STRING+MAC_LENGTH+MAC_ADD_OF_DEVICE,UINT32+LINK_STATUS,UINT32+LINK_SPEED,UINT32+PORT_DUPLEX_MODE,\
             UINT16+PORT_VID,UINT16+MIB_STRUCT_SIZE,STRUCT+1+MIB_STRUCT+MIB_LISTS
MIB_STRUCT = UINT32+TX_DROPPED_PAC,UINT32+TX_BROADCAST_PAC,UINT32+TX_COLLISON,UINT32+TX_EXCESS_COLLISION,UINT32+RX_PAUSE_PAC,UINT32+RX_JABBERS,\
             UINT32+RX_ALIGNMENT_ERR,UINT32+RX_FCS_ERR,UINT32+RX_BROADCAST_PAC,UINT32+RX_FRAG,UINT32+TX_RX_P64,UINT32+TX_RX_P65_P127,\
             UINT32+TX_RX_P128_P255,UINT32+TX_RX_P256_P511,UINT32+TX_RX_P512_P1023,UINT32+TX_RX_P1024_P1522

COLLECT_PSN_DATA2 =  0,20,80,01,UINT16+VERSION,UINT16+NUM_NDS,UINT16+NDS_SIZE,UINT16+OFFSET,STRUCT+NUM_NDS+NDS_STRUCT2+NDS_LIST                              
NDS_STRUCT2 =  UINT16+VLAN_LOCATION_LENGTH,FIXED_STRING+VLAN_LOCATION_LENGTH+VLAN_SWITCH_LOC_CODE,UINT32+VLANMAP_CONFIG_FLAG,\
              UINT32+VLANENABLED_CONFIG_FLAG,UINT32+PORTVID_CONFIG_FLAG,UINT64+NET_SWITCH_BIST_STATUS,UINT64+VLAN_MAP,UINT32+MAC_ADDR,\
              PAD+2,UINT8+VLAN_ENABLE,UINT8+NUM_OF_PDS,UINT16+PDS_SIZE,UINT16+OFFSET,STRUCT+NUM_OF_PDS+PDS_STRUCT2+PDS_LISTS
PDS_STRUCT2 = UINT32+VLAN_PORT_NO,UINT16+EXP_IP_ADDRESS_LENGTH,FIXED_STRING+EXP_IP_ADDRESS_LENGTH+EXP_IP_ADDRESS,UINT16+BPC_A_IP_LENGTH,\
             FIXED_STRING+BPC_A_IP_LENGTH+IP_ADD_OF_DEVICE_BY_BPCA,UINT16+BPC_B_IP_LENGTH,FIXED_STRING+BPC_B_IP_LENGTH+IP_ADD_OF_DEVICE_BY_BPCB,\
             UINT16+MAC_LENGTH,FIXED_STRING+MAC_LENGTH+MAC_ADD_OF_DEVICE,UINT32+LINK_STATUS,UINT32+LINK_SPEED,UINT32+PORT_DUPLEX_MODE,\
             UINT16+PORT_VID,UINT16+MIB_STRUCT_SIZE,STRUCT+1+MIB_STRUCT2+MIB_LISTS
MIB_STRUCT2 = UINT32+TX_DROPPED_PAC,UINT32+TX_BROADCAST_PAC,UINT32+TX_COLLISON,UINT32+TX_EXCESS_COLLISION,UINT32+RX_PAUSE_PAC,UINT32+RX_JABBERS,\
             UINT32+RX_ALIGNMENT_ERR,UINT32+RX_FCS_ERR,UINT32+RX_BROADCAST_PAC,UINT32+RX_FRAG,UINT32+TX_RX_P64,UINT32+TX_RX_P65_P127,\
             UINT32+TX_RX_P128_P255,UINT32+TX_RX_P256_P511,UINT32+TX_RX_P512_P1023,UINT32+TX_RX_P1024_P1522,UINT64+RX_Good_Bytes,UINT64+TX_Good_Bytes,\
             UINT32+TX_Unicast_Packets,UINT32+RX_Unicast_Packets,UINT32+RX_Dropped_Packets,UINT32+TX_Pause_Packets


VALIDATE_PSN_DATA =  0,20,90,02,UINT16+VERSION,UINT16+NUM_NDIS,UINT16+NDIS_SIZE,UINT16+OFFSET,STRUCT+NUM_NDIS+NDIS_STRUCT+NDIS_LIST                        
NDIS_STRUCT =  UINT16+VLAN_LOCATION_LENGTH, FIXED_STRING+VLAN_LOCATION_LENGTH+VLAN_SWITCH_LOC_CODE,UINT32+VLAN_SWITCH_STATUS,\
               UINT32+VLAN_SWITCH_VAL_PLID,PAD+2,UINT16+NUM_OF_PDIS,UINT16+PDIS_SIZE,UINT16+OFFSET_PDIS,STRUCT+NUM_OF_PDIS+PDIS_STRUCT+PDIS_LISTS
PDIS_STRUCT = UINT32+VLAN_PORT_NO,UINT32+PORT_STATUS,UINT16+IP_ADD_LENGTH,FIXED_STRING+IP_ADD_LENGTH+IP_ADD,UINT32+PORT_VAL_PLID
SUSPEND_AUTO_VALIDATION=0,20,90,03

# get all virtual io information for a given lpar
# Apply the correct template according to VIO_TYPE
GET_ALL_VIRTUAL_IO_INFO = 80,1,B,1A,UINT16+CURRENT_MAX_SLOTS,UINT16+PENDING_MAX_SLOTS,UINT32+OFFSET,UINT16+REPEATS,PAD+2,STRUCT+REPEATS+VIO_SLOT_INFO_STRUCT+VIO_SLOT_LIST
VIO_SLOT_INFO_STRUCT = UINT16+LENGTH,UINT8+MAJOR_TYPE,UINT8+VIO_TYPE,UINT16+VIRTUAL_SLOT_NUM,\
                       UINT8+CUR_OWNER_CLS,UINT16+CUR_LOCK_OWNER,PAD+1,\
                       UINT8+PEND_OWNER_CLS,UINT16+PEND_LOCK_OWNER,PAD+1,\
                       UINT32+DRC_INDEX,UINT16+NAME_LENGTH,FIXED_STRING+NAME_LENGTH+DRC_NAME,\
                       VARBIN+LENGTH-20-NAME_LENGTH+UNKNOW_DATA,\
                       IF+VIO_TYPE+1+VLAN_INFO_FORMAT,\
                       IF+VIO_TYPE+2+VSCSI_INFO_FORMAT,\
                       IF+VIO_TYPE+3+VSERIAL_INFO_FORMAT,\
	               IF+VIO_TYPE+4+VSMC_INFO_FORMAT,\
	               IF+VIO_TYPE+5+VMC_INFO_FORMAT,\
                       IF+VIO_TYPE+6+VASI_INFO_FORMAT,\
                       IF+VIO_TYPE+7+VFC_INFO_FORMAT,\
                       IF+VIO_TYPE+>7+UNKNOW_INFO_FORMAT
VLAN_INFO_FORMAT = UINT16+LENGTH,UINT8+STATUS,UINT8+VIRTUAL_SWITCH,UINT8+IS_IEEE,UINT8+PRIORITY,UINT16+PVID,\
                   UINT8+IS_TRUNK,UINT8+TRUNK_PRIORITY,FIXED_BIN+6+MAC_ADDRESS,UINT16+REPEATS,\
                   STRUCT+REPEATS+VID_STRUCT+VID_LIST,\
                   VARBIN+LENGTH-18-REPEATS*2+UNKNOW_DATA
VSCSI_INFO_FORMAT = UINT16+LENGTH,UINT8+STATUS,PAD+1,UINT16+REMOTE_LPAR_ID,UINT16+REMOTE_VIRTUAL_SLOT_NUM,UINT8+ATTRIBUTES,\
                    UINT8+PRIORITY_FLAG,UINT16+SERVER_LPAR_ID,UINT16+SLOT_NUMBER,\
                    VARBIN+LENGTH-14+UNKNOWN_DATA
VSERIAL_INFO_FORMAT = UINT16+LENGTH,UINT8+STATUS,PAD+1,UINT16+REMOTE_LPAR_ID,UINT16+REMOTE_VIRTUAL_SLOT_NUM,UINT8+ATTRIBUTES,\
                      UINT8+PRIORITY_FLAG,UINT16+SERVER_LPAR_ID,UINT16+SLOT_NUMBER,UINT8+SUPPORTS_HMC,PAD+1,\
                      VARBIN+LENGTH-16+UNKNOWN_DATA
VSMC_INFO_FORMAT = UINT16+LENGTH,UINT16+RIO_BUS_NUM,UINT16+REMOTE_LPAR_ID,\
                   UINT16+REMOTE_VIRTUAL_SLOT_NUM,UINT8+PRIORITY_FLAG,PAD+1,\
                   VARBIN+LENGTH-10+UNKNOWN_DATA
VMC_INFO_FORMAT = UINT16+LENGTH,VARBIN+LENGTH-2+UNKNOWN_DATA
VASI_INFO_FORMAT = UINT16+LENGTH,UINT16+NUM_OF_STREAMS,UINT8+STREAM_TYPE,PAD+1,UINT16+PEND_NUM_OF_STREAM,\
                   VARBIN+LENGTH-8+UNKNOWN_DATA
VFC_INFO_FORMAT = UINT16+LENGTH,UINT8+STATUS,PAD+1,UINT16+REMOTE_LPAR_ID,UINT16+REMOTE_VIRTUAL_SLOT_NUM,UINT8+ATTRIBUTES,\
                  UINT8+PRIORITY_FLAG,UINT16+SERVER_LPAR_ID,UINT16+SLOT_NUMBER,\
                  UINT64+WWPN_A,UINT64+WWPN_B,\
                  VARBIN+LENGTH-30+UNKNOWN_DATA
UNKNOW_INFO_FORMAT = UINT16+LENGTH,VARBIN+LENGTH-2+UNKNOWN_DATA

#LPAR Hypervisor Pipe Commands
LPAR_HYP_PIPE_OPEN_SESSION = 80,8,0,1,UINT16+INBOUND_MSGS,UINT16+OUTBOUND_MSGS,UINT16+LENGTH,UINT64+CAPABILITIES
LPAR_HYP_PIPE_VARYON_OFF = 80,8,1,1,UINT16+RETURN_CODE,UINT16+LENGHT,VARBIN+LENGHT+RETURN_CODE_DATA
LPAR_HYP_PIPE_GETVRM_OPTIMAL = 80,8,1,1,UINT16+RETURN_CODE,UINT16+LENGHT,VARBIN+LENGHT+RETURN_CODE_DATA
LPAR_HYP_PIPE_REQUEST = 80,8,1,1,UINT16+RETURN_CODE,UINT16+LENGHT,VARBIN+LENGHT+RETURN_CODE_DATA
LPAR_HYP_PIPE_REQ_EXCH_CAPS = 80,8,1,1,UINT16+RETURN_CODE,UINT16+LENGHT,VARBIN+LENGHT+RETURN_CODE_DATA
LPAR_HYP_PIPE_VARYON_OFF_ASYNC = 80,8,1,1,UINT32+TARGET,PAD+10,UINT16+LENGTH,UINT16+CLASS,UINT16+CODE,UINT16+RETURN_CODE,PAD+2,UINT64+REQUEST_ID,PAD+32,UINT64+MEMORY_AMOUNT,UINT16+MEMORY_WEIGHT
LPAR_HYP_PIPE_GETVRM_OPTIMAL_ASYNC = 80,8,1,1,UINT32+TARGET,PAD+10,UINT16+LENGTH,UINT16+CLASS,UINT16+CODE,UINT16+RETURN_CODE,PAD+2,UINT64+REQUEST_ID,PAD+32,UINT64+HIGHWATER_MARK,UINT64+MIN_ENTITLED_CAP,UINT64+OPTIMAL_ENTITLED_CAP,UINT64+FREE_ENTITLED_CAP
LPAR_HYP_PIPE_RESP_ASYNC = 80,8,1,2,UINT16+RETURN_CODE,PAD+6,UINT64+REQUEST_ID,UINT32+LENGTH1,UINT32+LENGTH2,UINT32+LENGTH3,UINT32+KEY_ID,VARBIN+LENGTH2+RESPONSE_DATA,UINT16+LENGTH4,VARBIN+LENGTH4+RET_CODE_DATA
LPAR_HYP_PIPE_RESP_ASYNC_EXCH_CAPS = 80,8,1,1,UINT32+TARGET,PAD+10,UINT16+LENGTH,UINT16+CLASS,UINT16+CODE,UINT16+RETURN_CODE,PAD+2,UINT64+REQUEST_ID,UINT16+IN_EVENTS,UINT16+OUT_EVENTS,PAD+4,UINT16+CAP_LEN,UINT64+CAPABILITIES
LPAR_HYP_PIPE_GET_REMAINING_RESP_DATA = 80,8,4,1,UINT16+RETURN_CODE,PAD+2,UINT32+LENGTH1,UINT32+LENGTH2,UINT32+LENGTH3,UINT32+KEY_ID,PAD+4,VARBIN+LENGTH2+RESPONSE_DATA,UINT16+LENGTH4,VARBIN+LENGTH4+RET_CODE_DATA
LPAR_HYP_PIPE_EXCHANGE_CAPABILITIES = 80,8,0,3,UINT16+LENGTH,VARBIN+LENGTH+PIPE_PHYP_CAPABILITIES

