Unraid-SlackPack/source/freeipmi/usr/include/freeipmi/cmds/ipmi-rmcpplus-support-and-payload-cmds.h
2016-03-24 14:02:30 -06:00

211 lines
9.1 KiB
C

/*
* Copyright (C) 2003-2015 FreeIPMI Core Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef IPMI_RMCPPLUS_SUPPORT_AND_PAYLOAD_CMDS_H
#define IPMI_RMCPPLUS_SUPPORT_AND_PAYLOAD_CMDS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <freeipmi/fiid/fiid.h>
/* achu: 4 bit field is 1 based
*
* note that Get Payload Activation Status returns instance status for
* 16 instances, which is not possible.
*/
#define IPMI_PAYLOAD_INSTANCE_MIN 1
#define IPMI_PAYLOAD_INSTANCE_MAX 15
#define IPMI_PAYLOAD_INSTANCE_VALID(__val) \
(((__val) >= IPMI_PAYLOAD_INSTANCE_MIN \
|| (__val) <= IPMI_PAYLOAD_INSTANCE_MAX) ? 1 : 0)
#define IPMI_SOL_STARTUP_HANDSHAKE_CTS_AND_DCD_SDR_ASSERTED 0x0
#define IPMI_SOL_STARTUP_HANDSHAKE_CTS_AND_DCD_SDR_DEASSERTED 0x1
#define IPMI_SOL_STARTUP_HANDSHAKE_CTS_AND_DCD_SDR_VALID(__val) \
(((__val) == IPMI_SOL_STARTUP_HANDSHAKE_CTS_AND_DCD_SDR_ASSERTED \
|| (__val) == IPMI_SOL_STARTUP_HANDSHAKE_CTS_AND_DCD_SDR_DEASSERTED) ? 1 : 0)
#define IPMI_SERIAL_MODEM_ALERTS_FAIL_WHILE_SOL_ACTIVE 0x0
#define IPMI_SERIAL_MODEM_ALERTS_DEFERRED_WHILE_SOL_ACTIVE 0x1
#define IPMI_SERIAL_MODEM_ALERTS_SUCCEED_WHILE_SOL_ACTIVE 0x2
#define IPMI_SERIAL_MODEM_ALERTS_RESERVED 0x3
#define IPMI_SERIAL_MODEM_ALERTS_VALID(__val) \
(((__val) == IPMI_SERIAL_MODEM_ALERTS_FAIL_WHILE_SOL_ACTIVE \
|| (__val) == IPMI_SERIAL_MODEM_ALERTS_DEFERRED_WHILE_SOL_ACTIVE \
|| (__val) == IPMI_SERIAL_MODEM_ALERTS_SUCCEED_WHILE_SOL_ACTIVE) ? 1 : 0)
#define IPMI_TEST_MODE_ACTIVATED 0x1
#define IPMI_TEST_MODE_DEACTIVATED 0x0
#define IPMI_TEST_MODE_VALID(__val) \
(((__val) == IPMI_TEST_MODE_ACTIVATED \
|| (__val) == IPMI_TEST_MODE_DEACTIVATED) ? 1 : 0)
#define IPMI_ACTIVATE_PAYLOAD_WITH_AUTHENTICATION 0x1
#define IPMI_ACTIVATE_PAYLOAD_WITHOUT_AUTHENTICATION 0x0
#define IPMI_AUTHENTICATION_ACTIVATION_VALID(__val) \
(((__val) == IPMI_ACTIVATE_PAYLOAD_WITH_AUTHENTICATION \
|| (__val) == IPMI_ACTIVATE_PAYLOAD_WITHOUT_AUTHENTICATION) ? 1 : 0)
#define IPMI_ACTIVATE_PAYLOAD_WITH_ENCRYPTION 0x1
#define IPMI_ACTIVATE_PAYLOAD_WITHOUT_ENCRYPTION 0x0
#define IPMI_ENCRYPTION_ACTIVATION_VALID(__val) \
(((__val) == IPMI_ACTIVATE_PAYLOAD_WITH_ENCRYPTION \
|| (__val) == IPMI_ACTIVATE_PAYLOAD_WITHOUT_ENCRYPTION) ? 1 : 0)
#define IPMI_TEST_MODE_NOT_SUPPORTED 0x0
#define IPMI_TEST_MODE_ENABLED 0x1
#define IPMI_SUSPEND_ENCRYPTION 0x0
#define IPMI_RESUME_ENCRYPTION 0x1
#define IPMI_REGENERATE_INITIALIZATION_VECTOR 0x2
#define IPMI_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_OPERATION_VALID(__val) \
(((__val) == IPMI_SUSPEND_ENCRYPTION \
|| (__val) == IPMI_RESUME_ENCRYPTION \
|| (__val) == IPMI_REGENERATE_INITIALIZATION_VECTOR) ? 1 : 0)
#define IPMI_SET_USER_PAYLOAD_OPERATION_ENABLE 0x00
#define IPMI_SET_USER_PAYLOAD_OPERATION_DISABLE 0x01
#define IPMI_SET_USER_PAYLOAD_OPERATION_VALID(__val) \
(((__val) == IPMI_SET_USER_PAYLOAD_OPERATION_ENABLE \
|| (__val) == IPMI_SET_USER_PAYLOAD_OPERATION_DISABLE) ? 1 : 0)
/* achu: See IPMI Spec Set User Payload Access command. Enable may be
* 0 or 1, and Disable may be 0 or 1 as well.
*/
#define IPMI_PAYLOAD_ACCESS_VALID(__val) \
(((__val) == 0 \
|| (__val) == 1) ? 1 : 0)
/*
* fill* functions return 0 on success, -1 on error.
*
* obj_cmd_rq must be for the fill function's respective fiid
* template request.
*
* see freeipmi/templates/ for template definitions
*/
extern fiid_template_t tmpl_cmd_activate_payload_rq;
extern fiid_template_t tmpl_cmd_activate_payload_sol_rq;
extern fiid_template_t tmpl_cmd_activate_payload_rs;
extern fiid_template_t tmpl_cmd_activate_payload_sol_rs;
extern fiid_template_t tmpl_cmd_deactivate_payload_rq;
extern fiid_template_t tmpl_cmd_deactivate_payload_rs;
extern fiid_template_t tmpl_cmd_suspend_resume_payload_encryption_rq;
extern fiid_template_t tmpl_cmd_suspend_resume_payload_encryption_rq;
extern fiid_template_t tmpl_cmd_get_payload_activation_status_rq;
extern fiid_template_t tmpl_cmd_get_payload_activation_status_rs;
extern fiid_template_t tmpl_cmd_get_payload_instance_info_rq;
extern fiid_template_t tmpl_cmd_get_payload_instance_info_rs;
extern fiid_template_t tmpl_cmd_set_user_payload_access_rq;
extern fiid_template_t tmpl_cmd_set_user_payload_access_rs;
extern fiid_template_t tmpl_cmd_get_user_payload_access_rq;
extern fiid_template_t tmpl_cmd_get_user_payload_access_rs;
extern fiid_template_t tmpl_cmd_get_channel_payload_support_rq;
extern fiid_template_t tmpl_cmd_get_channel_payload_support_rs;
extern fiid_template_t tmpl_cmd_get_channel_payload_version_rq;
extern fiid_template_t tmpl_cmd_get_channel_payload_version_rs;
extern fiid_template_t tmpl_cmd_get_channel_oem_payload_info_rq;
extern fiid_template_t tmpl_cmd_get_channel_oem_payload_info_rs;
int fill_cmd_activate_payload (uint8_t payload_type,
uint8_t payload_instance,
const void *auxiliary_request_data,
unsigned int auxiliary_request_data_len,
fiid_obj_t obj_cmd_rq);
int fill_cmd_activate_payload_sol (uint8_t payload_type,
uint8_t payload_instance,
uint8_t sol_startup_handshake,
uint8_t shared_serial_alert_behavior,
uint8_t test_mode,
uint8_t authentication_activation,
uint8_t encryption_activation,
fiid_obj_t obj_cmd_rq);
int fill_cmd_deactivate_payload (uint8_t payload_type,
uint8_t payload_instance,
uint32_t payload_auxiliary_data,
fiid_obj_t obj_cmd_rq);
int fill_cmd_suspend_resume_payload_encryption (uint8_t payload_type,
uint8_t payload_instance,
uint8_t operation,
fiid_obj_t obj_cmd_rq);
int fill_cmd_get_payload_activation_status (uint8_t payload_type,
fiid_obj_t obj_cmd_rq);
int fill_cmd_get_payload_instance_info (uint8_t payload_type,
uint8_t payload_instance,
fiid_obj_t obj_cmd_rq);
int fill_cmd_set_user_payload_access (uint8_t channel_number,
uint8_t user_id,
uint8_t operation,
uint8_t standard_payload_1,
uint8_t standard_payload_2,
uint8_t standard_payload_3,
uint8_t standard_payload_4,
uint8_t standard_payload_5,
uint8_t standard_payload_6,
uint8_t standard_payload_7,
uint8_t oem_payload_0,
uint8_t oem_payload_1,
uint8_t oem_payload_2,
uint8_t oem_payload_3,
uint8_t oem_payload_4,
uint8_t oem_payload_5,
uint8_t oem_payload_6,
uint8_t oem_payload_7,
fiid_obj_t obj_cmd_rq);
int fill_cmd_get_user_payload_access (uint8_t channel_number,
uint8_t user_id,
fiid_obj_t obj_cmd_rq);
int fill_cmd_get_channel_payload_support (uint8_t channel_number,
fiid_obj_t obj_cmd_rq);
int fill_cmd_get_channel_payload_version (uint8_t channel_number,
uint8_t payload_type,
fiid_obj_t obj_cmd_rq);
int fill_cmd_get_channel_oem_payload_info (uint8_t channel_number,
uint8_t payload_type,
uint32_t oem_iana,
uint16_t oem_payload_id,
fiid_obj_t obj_cmd_rq);
#ifdef __cplusplus
}
#endif
#endif /* IPMI_RMCPPLUS_SUPPORT_AND_PAYLOAD_CMDS_H */