add freeipmi source
This commit is contained in:
parent
46d0c3615e
commit
bc10199d49
50
source/freeipmi/install/doinst.sh
Normal file
50
source/freeipmi/install/doinst.sh
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
# Update the /usr/info/dir info-database, so that we will see the new
|
||||||
|
# "gmp" item in info root structure, if we type "info".
|
||||||
|
ErrCount=0
|
||||||
|
|
||||||
|
function echo_exit {
|
||||||
|
((ErrCount += $1))
|
||||||
|
if [ $1 -eq 0 ]; then
|
||||||
|
echo -n "$2 "
|
||||||
|
else
|
||||||
|
echo -n $3
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -x /usr/bin/install-info ] ; then
|
||||||
|
echo -n "Installing info page... "
|
||||||
|
install-info --info-dir=/usr/info /usr/info/freeipmi-faq.info.gz 2>/dev/null
|
||||||
|
echo_exit $ErrCount "DONE" "FAILURE"
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
echo "WARNING: Info pages cannot be installed!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
( cd usr/sbin ; rm -rf rmcp-ping )
|
||||||
|
( cd usr/sbin ; ln -sf /usr/sbin/rmcpping rmcp-ping )
|
||||||
|
( cd usr/sbin ; rm -rf ipmi-power )
|
||||||
|
( cd usr/sbin ; ln -sf /usr/sbin/ipmipower ipmi-power )
|
||||||
|
( cd usr/sbin ; rm -rf ipmi-ping )
|
||||||
|
( cd usr/sbin ; ln -sf /usr/sbin/ipmiping ipmi-ping )
|
||||||
|
( cd usr/sbin ; rm -rf ipmi-detect )
|
||||||
|
( cd usr/sbin ; ln -sf /usr/sbin/ipmidetect ipmi-detect )
|
||||||
|
( cd usr/sbin ; rm -rf ipmi-console )
|
||||||
|
( cd usr/sbin ; ln -sf /usr/sbin/ipmiconsole ipmi-console )
|
||||||
|
( cd usr/sbin ; rm -rf pef-config )
|
||||||
|
( cd usr/sbin ; ln -sf /usr/sbin/ipmi-pef-config pef-config )
|
||||||
|
( cd usr/lib ; rm -rf libipmidetect.so )
|
||||||
|
( cd usr/lib ; ln -sf libipmidetect.so.0.0.0 libipmidetect.so )
|
||||||
|
( cd usr/lib ; rm -rf libipmidetect.so.0 )
|
||||||
|
( cd usr/lib ; ln -sf libipmidetect.so.0.0.0 libipmidetect.so.0 )
|
||||||
|
( cd usr/lib ; rm -rf libipmimonitoring.so )
|
||||||
|
( cd usr/lib ; ln -sf libipmimonitoring.so.5.0.6 libipmimonitoring.so )
|
||||||
|
( cd usr/lib ; rm -rf libipmimonitoring.so.5 )
|
||||||
|
( cd usr/lib ; ln -sf libipmimonitoring.so.5.0.6 libipmimonitoring.so.5 )
|
||||||
|
( cd usr/lib ; rm -rf libipmiconsole.so )
|
||||||
|
( cd usr/lib ; ln -sf libipmiconsole.so.2.3.2 libipmiconsole.so )
|
||||||
|
( cd usr/lib ; rm -rf libipmiconsole.so.2 )
|
||||||
|
( cd usr/lib ; ln -sf libipmiconsole.so.2.3.2 libipmiconsole.so.2 )
|
||||||
|
( cd usr/lib ; rm -rf libfreeipmi.so )
|
||||||
|
( cd usr/lib ; ln -sf libfreeipmi.so.17.0.0 libfreeipmi.so )
|
||||||
|
( cd usr/lib ; rm -rf libfreeipmi.so.17 )
|
||||||
|
( cd usr/lib ; ln -sf libfreeipmi.so.17.0.0 libfreeipmi.so.17 )
|
14
source/freeipmi/install/slack-desc
Normal file
14
source/freeipmi/install/slack-desc
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
freeipmi: FreeIPMI (GNU implementation of the IPMI protocol)
|
||||||
|
freeipmi:
|
||||||
|
freeipmi: FreeIPMI provides in-band and out-of-band IPMI software based on
|
||||||
|
freeipmi: the IPMI v1.5/2.0 specification. The IPMI specification defines a
|
||||||
|
freeipmi: set of interfaces for platform management and is implemented by a
|
||||||
|
freeipmi: number vendors for system management. The features of IPMI that
|
||||||
|
freeipmi: most users will be interested in are sensor monitoring, system event
|
||||||
|
freeipmi: monitoring, power control, and serial-over-LAN (SOL). The FreeIPMI
|
||||||
|
freeipmi: tools and libraries provide users with the ability to access and
|
||||||
|
freeipmi: utilize these and many other features. A number of useful features
|
||||||
|
freeipmi: for large HPC or cluster environments have also been implemented
|
||||||
|
freeipmi: into FreeIPMI.
|
||||||
|
freeipmi:
|
||||||
|
freeipmi: Packaged by Derek Macias
|
3
source/freeipmi/install/slack-required
Normal file
3
source/freeipmi/install/slack-required
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
glibc-solibs >= 2.17
|
||||||
|
libgcrypt >= 1.6.5
|
||||||
|
libgpg-error >= 1.21
|
375
source/freeipmi/usr/include/freeipmi/api/ipmi-api.h
Normal file
375
source/freeipmi/usr/include/freeipmi/api/ipmi-api.h
Normal file
|
@ -0,0 +1,375 @@
|
||||||
|
/*
|
||||||
|
* 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_API_H
|
||||||
|
#define IPMI_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/* ERROR CODE NOTES
|
||||||
|
*
|
||||||
|
* IPMI_ERR_BMC_BUSY vs IPMI_ERR_DRIVER_BUSY
|
||||||
|
*
|
||||||
|
* BMC_BUSY indicates the BMC cannot handle more requests, it is an
|
||||||
|
* error typically from a completion code returned from the BMC. The
|
||||||
|
* DRIVER_BUSY error indicates a driver is too busy to handle
|
||||||
|
* additional requests, the error does not come from the BMC.
|
||||||
|
*
|
||||||
|
* IPMI_ERR_MESSAGE_TIMEOUT
|
||||||
|
*
|
||||||
|
* message timeout is typical of bridging commands. The
|
||||||
|
* session/connection has not timed out and is fine, but a
|
||||||
|
* bridging command could not get its bridged response back in a
|
||||||
|
* reasonable timeframe.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI COMPLETION CODE / RMCPPLUS CODE MAPPING
|
||||||
|
*
|
||||||
|
* For most users, the high level error codes listed below will
|
||||||
|
* suffice. However, for those who want/need to see deeper IPMI
|
||||||
|
* completion code or RMCPPlus errors, the following are mappings of
|
||||||
|
* IPMI completion codes and RMCPPlus codes to their respective error
|
||||||
|
* codes.
|
||||||
|
*
|
||||||
|
* Not that other factors outside of completion codes/RMCPPlus codes
|
||||||
|
* could also lead to these IPMI errors. For example, depending on
|
||||||
|
* motherboard support of username types, a IPMI_ERR_USERNAME_INVALID
|
||||||
|
* could be returned even though no IPMI error occurred. In addition,
|
||||||
|
* completion codes/RMCPPlus codes could map to different error codes,
|
||||||
|
* depending on when the error occurred (such as during session
|
||||||
|
* authentication vs. after authentication).
|
||||||
|
*
|
||||||
|
* (*) - Completion code is specific to an IPMI command
|
||||||
|
*
|
||||||
|
* IPMI_ERR_USERNAME_INVALID
|
||||||
|
* - IPMI_COMP_CODE_GET_SESSION_CHALLENGE_INVALID_USERNAME (*)
|
||||||
|
* - IPMI_COMP_CODE_GET_SESSION_CHALLENGE_NULL_USERNAME_NOT_ENABLED (*)
|
||||||
|
*
|
||||||
|
* IPMI_ERR_PASSWORD_INVALID
|
||||||
|
* - RMCPPLUS_STATUS_INVALID_INTEGRITY_CHECK_VALUE
|
||||||
|
*
|
||||||
|
* IPMI_ERR_PRIVILEGE_LEVEL_INSUFFICIENT
|
||||||
|
* - IPMI_COMP_CODE_INSUFFICIENT_PRIVILEGE_LEVEL
|
||||||
|
*
|
||||||
|
* IPMI_ERR_PRIVILEGE_LEVEL_CANNOT_BE_OBTAINED
|
||||||
|
* - IPMI_COMP_CODE_ACTIVATE_SESSION_EXCEEDS_PRIVILEGE_LEVEL (*)
|
||||||
|
* - IPMI_COMP_CODE_INSUFFICIENT_PRIVILEGE_LEVEL
|
||||||
|
* - IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_REQUESTED_LEVEL_NOT_AVAILABLE_FOR_USER (*)
|
||||||
|
* - IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_REQUESTED_LEVEL_EXCEEDS_USER_PRIVILEGE_LIMIT (*)
|
||||||
|
* - RMCPPLUS_STATUS_INVALID_ROLE
|
||||||
|
* - RMCPPLUS_STATUS_UNAUTHORIZED_ROLE_OR_PRIVILEGE_LEVEL_REQUESTED
|
||||||
|
*
|
||||||
|
* IPMI_ERR_CIPHER_SUITE_ID_UNAVAILABLE
|
||||||
|
* - RMCPPLUS_STATUS_NO_CIPHER_SUITE_MATCH_WITH_PROPOSED_SECURITY_ALGORITHMS
|
||||||
|
*
|
||||||
|
* IPMI_ERR_MESSAGE_TIMEOUT
|
||||||
|
* - IPMI_COMP_CODE_COMMAND_TIMEOUT
|
||||||
|
*
|
||||||
|
* IPMI_ERR_COMMAND_INVALID_OR_UNSUPPORTED
|
||||||
|
* - IPMI_COMP_CODE_INVALID_COMMAND
|
||||||
|
* - IPMI_COMP_CODE_COMMAND_INVALID_FOR_LUN
|
||||||
|
* - IPMI_COMP_CODE_REQUEST_DATA_LENGTH_INVALID
|
||||||
|
* - IPMI_COMP_CODE_REQUEST_DATA_LENGTH_LIMIT_EXCEEDED
|
||||||
|
* - IPMI_COMP_CODE_PARAMETER_OUT_OF_RANGE
|
||||||
|
* - IPMI_COMP_CODE_INVALID_DATA_FIELD_IN_REQUEST
|
||||||
|
*
|
||||||
|
* IPMI_ERR_BMC_BUSY
|
||||||
|
* - IPMI_COMP_CODE_NODE_BUSY
|
||||||
|
* - IPMI_COMP_CODE_OUT_OF_SPACE
|
||||||
|
* - IPMI_COMP_CODE_SDR_REPOSITORY_IN_UPDATE_MODE
|
||||||
|
* - IPMI_COMP_CODE_DEVICE_IN_FIRMWARE_UPDATE_MODE
|
||||||
|
* - IPMI_COMP_CODE_BMC_INITIALIZATION_IN_PROGRESS
|
||||||
|
*
|
||||||
|
* All other IPMI completion codes will map to IPMI_ERR_BAD_COMPLETION_CODE.
|
||||||
|
* All other RMCPPlus codes will map to IPMI_ERR_BAD_RMCPPLUS_STATUS_CODE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
enum ipmi_errnum
|
||||||
|
{
|
||||||
|
IPMI_ERR_SUCCESS = 0,
|
||||||
|
IPMI_ERR_CTX_NULL = 1,
|
||||||
|
IPMI_ERR_CTX_INVALID = 2,
|
||||||
|
IPMI_ERR_PERMISSION = 3,
|
||||||
|
IPMI_ERR_USERNAME_INVALID = 4,
|
||||||
|
IPMI_ERR_PASSWORD_INVALID = 5,
|
||||||
|
IPMI_ERR_K_G_INVALID = 6,
|
||||||
|
IPMI_ERR_PRIVILEGE_LEVEL_INSUFFICIENT = 7,
|
||||||
|
IPMI_ERR_PRIVILEGE_LEVEL_CANNOT_BE_OBTAINED = 8,
|
||||||
|
IPMI_ERR_AUTHENTICATION_TYPE_UNAVAILABLE = 9,
|
||||||
|
IPMI_ERR_CIPHER_SUITE_ID_UNAVAILABLE = 10,
|
||||||
|
IPMI_ERR_PASSWORD_VERIFICATION_TIMEOUT = 11,
|
||||||
|
IPMI_ERR_IPMI_2_0_UNAVAILABLE = 12,
|
||||||
|
IPMI_ERR_CONNECTION_TIMEOUT = 13,
|
||||||
|
IPMI_ERR_SESSION_TIMEOUT = 14,
|
||||||
|
IPMI_ERR_DEVICE_ALREADY_OPEN = 15,
|
||||||
|
IPMI_ERR_DEVICE_NOT_OPEN = 16,
|
||||||
|
IPMI_ERR_DEVICE_NOT_SUPPORTED = 17,
|
||||||
|
IPMI_ERR_DEVICE_NOT_FOUND = 18,
|
||||||
|
IPMI_ERR_DRIVER_BUSY = 19,
|
||||||
|
IPMI_ERR_DRIVER_TIMEOUT = 20,
|
||||||
|
IPMI_ERR_MESSAGE_TIMEOUT = 21,
|
||||||
|
IPMI_ERR_COMMAND_INVALID_FOR_SELECTED_INTERFACE = 22,
|
||||||
|
IPMI_ERR_COMMAND_INVALID_OR_UNSUPPORTED = 23,
|
||||||
|
IPMI_ERR_BAD_COMPLETION_CODE = 24,
|
||||||
|
IPMI_ERR_BAD_RMCPPLUS_STATUS_CODE = 25,
|
||||||
|
IPMI_ERR_NOT_FOUND = 26,
|
||||||
|
IPMI_ERR_BMC_BUSY = 27,
|
||||||
|
IPMI_ERR_OUT_OF_MEMORY = 28,
|
||||||
|
IPMI_ERR_HOSTNAME_INVALID = 29,
|
||||||
|
IPMI_ERR_PARAMETERS = 30,
|
||||||
|
IPMI_ERR_DRIVER_PATH_REQUIRED = 31,
|
||||||
|
IPMI_ERR_IPMI_ERROR = 32,
|
||||||
|
IPMI_ERR_SYSTEM_ERROR = 33,
|
||||||
|
IPMI_ERR_INTERNAL_ERROR = 34,
|
||||||
|
IPMI_ERR_ERRNUMRANGE = 35,
|
||||||
|
};
|
||||||
|
typedef enum ipmi_errnum ipmi_errnum_type_t;
|
||||||
|
|
||||||
|
enum ipmi_driver_type
|
||||||
|
{
|
||||||
|
IPMI_DEVICE_UNKNOWN = 0,
|
||||||
|
IPMI_DEVICE_LAN = 1,
|
||||||
|
IPMI_DEVICE_LAN_2_0 = 2,
|
||||||
|
IPMI_DEVICE_KCS = 3,
|
||||||
|
IPMI_DEVICE_SMIC = 4,
|
||||||
|
IPMI_DEVICE_BT = 5,
|
||||||
|
IPMI_DEVICE_SSIF = 6,
|
||||||
|
IPMI_DEVICE_OPENIPMI = 7,
|
||||||
|
IPMI_DEVICE_SUNBMC = 8,
|
||||||
|
IPMI_DEVICE_INTELDCMI = 9,
|
||||||
|
};
|
||||||
|
typedef enum ipmi_driver_type ipmi_driver_type_t;
|
||||||
|
|
||||||
|
#define IPMI_SESSION_TIMEOUT_DEFAULT 20000
|
||||||
|
#define IPMI_RETRANSMISSION_TIMEOUT_DEFAULT 1000
|
||||||
|
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_DEFAULT 0x00000000
|
||||||
|
|
||||||
|
/* For use w/ ipmi_ctx_open_outofband() */
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_AUTHENTICATION_CAPABILITIES 0x00000001
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_ACCEPT_SESSION_ID_ZERO 0x00000002
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_FORCE_PERMSG_AUTHENTICATION 0x00000004
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_CHECK_UNEXPECTED_AUTHCODE 0x00000008
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_BIG_ENDIAN_SEQUENCE_NUMBER 0x00000010
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_NO_AUTH_CODE_CHECK 0x00000020
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_NO_CHECKSUM_CHECK 0x00000040
|
||||||
|
|
||||||
|
/* For use w/ ipmi_ctx_open_outofband_2_0() */
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_2_0_AUTHENTICATION_CAPABILITIES 0x00000001
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_2_0_INTEL_2_0_SESSION 0x00000002
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_2_0_SUPERMICRO_2_0_SESSION 0x00000004
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_2_0_SUN_2_0_SESSION 0x00000008
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_2_0_OPEN_SESSION_PRIVILEGE 0x00000010
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_2_0_NON_EMPTY_INTEGRITY_CHECK_VALUE 0x00000020
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_OUTOFBAND_2_0_NO_CHECKSUM_CHECK 0x00000040
|
||||||
|
|
||||||
|
/* For use w/ ipmi_ctx_open_inband() or ipmi_ctx_find_inband() */
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_INBAND_ASSUME_IO_BASE_ADDRESS 0x00000001
|
||||||
|
#define IPMI_WORKAROUND_FLAGS_INBAND_SPIN_POLL 0x00000002
|
||||||
|
|
||||||
|
/* NONBLOCKING - for inband only, do no block if device busy.
|
||||||
|
*
|
||||||
|
* NOSESSION - for outofband only, do not create an IPMI session.
|
||||||
|
* Useful for the few IPMI payloads that do not require a session for
|
||||||
|
* an IPMI command to be sent (e.g. Get Channel Authentication
|
||||||
|
* Capabilities, Get System GUID, PET Acknowledge). Can only be set
|
||||||
|
* during opening, not later using ipmi_ctx_set_flags(). If set, you
|
||||||
|
* cannot call most IPMI payload functions, only those few that send
|
||||||
|
* data without a session.
|
||||||
|
*
|
||||||
|
* DEBUG_DUMP - for all interfaces
|
||||||
|
*
|
||||||
|
* NO_VALID_CHECK - do not check if IPMI response payloads are valid
|
||||||
|
* (i.e. all required fields set). Useful to workaround non-compliant
|
||||||
|
* motherboards. For example, if an IPMI payload did not return a
|
||||||
|
* required flag in the payload, an error would be returned. The
|
||||||
|
* error might possibly be a session timeout, as no valid response
|
||||||
|
* packet was ever received. This flag would skip the checks for
|
||||||
|
* valid fields and return the packet to the user.
|
||||||
|
*
|
||||||
|
* NO_LEGAL_CHECK - do no check if IPMI response payloads have
|
||||||
|
* sufficient data (i.e. completion code fields) to be legal. Useful
|
||||||
|
* to work around non-compliant motherboards. This flag is ignores
|
||||||
|
* the legality of IPMI payloads greater than the NO_VALID_CHECK
|
||||||
|
* option. For example, NO_VALID_CHECK would still return an error if
|
||||||
|
* an IPMI payload did not return a completion code in an IPMI
|
||||||
|
* response. The NO_LEGAL_CHECK would return such a packet to the
|
||||||
|
* user without an error. If the payload did not return a completion
|
||||||
|
* code, the completion code will not be checked for.
|
||||||
|
*
|
||||||
|
* IGNORE_AUTHENTICATION_CODE - for IPMI 1.5 packets, do not check the
|
||||||
|
* authentication code on response packets. Useful to workaround
|
||||||
|
* around non-compliant motherboards implementing invalid code/hashes.
|
||||||
|
* Note that this is different than
|
||||||
|
* IPMI_WORKAROUND_FLAGS_OUTOFBAND_NO_AUTH_CODE_CHECK above. With the
|
||||||
|
* workaround flag, all authentication codes will be ignored during
|
||||||
|
* the entire IPMI session. With this flag, specific packets can have
|
||||||
|
* their authentication codes ignored.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_FLAGS_DEFAULT 0x00000000
|
||||||
|
#define IPMI_FLAGS_NONBLOCKING 0x00000001
|
||||||
|
#define IPMI_FLAGS_NOSESSION 0x00000002
|
||||||
|
#define IPMI_FLAGS_DEBUG_DUMP 0x00000010
|
||||||
|
#define IPMI_FLAGS_NO_VALID_CHECK 0x00000100
|
||||||
|
#define IPMI_FLAGS_NO_LEGAL_CHECK 0x00000200
|
||||||
|
#define IPMI_FLAGS_IGNORE_AUTHENTICATION_CODE 0x00000400
|
||||||
|
|
||||||
|
typedef struct ipmi_ctx *ipmi_ctx_t;
|
||||||
|
|
||||||
|
ipmi_ctx_t ipmi_ctx_create (void);
|
||||||
|
|
||||||
|
int ipmi_ctx_errnum (ipmi_ctx_t ctx);
|
||||||
|
|
||||||
|
char *ipmi_ctx_strerror (int errnum);
|
||||||
|
|
||||||
|
char *ipmi_ctx_errormsg (ipmi_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_ctx_get_flags (ipmi_ctx_t ctx, unsigned int *flags);
|
||||||
|
|
||||||
|
/* for changing flags mid-operation for corner cases */
|
||||||
|
int ipmi_ctx_set_flags (ipmi_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
/* For IPMI 1.5 sessions */
|
||||||
|
/* For session_timeout and retransmission_timeout, specify 0 for default */
|
||||||
|
int ipmi_ctx_open_outofband (ipmi_ctx_t ctx,
|
||||||
|
const char *hostname,
|
||||||
|
const char *username,
|
||||||
|
const char *password,
|
||||||
|
uint8_t authentication_type,
|
||||||
|
uint8_t privilege_level,
|
||||||
|
unsigned int session_timeout,
|
||||||
|
unsigned int retransmission_timeout,
|
||||||
|
unsigned int workaround_flags,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* For IPMI 2.0 sessions */
|
||||||
|
/* For session_timeout and retransmission_timeout, specify 0 for default */
|
||||||
|
int ipmi_ctx_open_outofband_2_0 (ipmi_ctx_t ctx,
|
||||||
|
const char *hostname,
|
||||||
|
const char *username,
|
||||||
|
const char *password,
|
||||||
|
const unsigned char *k_g,
|
||||||
|
unsigned int k_g_len,
|
||||||
|
uint8_t privilege_level,
|
||||||
|
uint8_t cipher_suite_id,
|
||||||
|
unsigned int session_timeout,
|
||||||
|
unsigned int retransmission_timeout,
|
||||||
|
unsigned int workaround_flags,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* For inband sessions */
|
||||||
|
int ipmi_ctx_open_inband (ipmi_ctx_t ctx,
|
||||||
|
ipmi_driver_type_t driver_type,
|
||||||
|
int disable_auto_probe,
|
||||||
|
uint16_t driver_address,
|
||||||
|
uint8_t register_spacing,
|
||||||
|
const char *driver_device,
|
||||||
|
unsigned int workaround_flags,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* like ipmi_ctx_open_inband, but finds probes/discovers an inband device */
|
||||||
|
/* returns 1 on driver found, 0 on not found, -1 on error */
|
||||||
|
/* if specified, driver type returned in 'driver_type' */
|
||||||
|
int ipmi_ctx_find_inband (ipmi_ctx_t ctx,
|
||||||
|
ipmi_driver_type_t *driver_type,
|
||||||
|
int disable_auto_probe,
|
||||||
|
uint16_t driver_address,
|
||||||
|
uint8_t register_spacing,
|
||||||
|
const char *driver_device,
|
||||||
|
unsigned int workaround_flags,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* Set target channel and slave address so all ipmi_cmd() calls and
|
||||||
|
* library API calls use ipmb.
|
||||||
|
*
|
||||||
|
* To set only one parameter, pass in NULL for the other parameter.
|
||||||
|
* When only one parameter is passed, the other will be the default
|
||||||
|
* target channel of IPMI_CHANNEL_NUMBER_PRIMARY_IPMB (0x0) or the
|
||||||
|
* default rs_addr of IPMI_SLAVE_ADDRESS_BMC (0x20).
|
||||||
|
*
|
||||||
|
* To reset to defaults, pass in NULL for both parameters.
|
||||||
|
*
|
||||||
|
* Can only be called after device opened.
|
||||||
|
*/
|
||||||
|
int ipmi_ctx_set_target (ipmi_ctx_t ctx,
|
||||||
|
uint8_t *channel_number,
|
||||||
|
uint8_t *rs_addr);
|
||||||
|
|
||||||
|
int ipmi_ctx_get_target (ipmi_ctx_t ctx,
|
||||||
|
uint8_t *channel_number,
|
||||||
|
uint8_t *rs_addr);
|
||||||
|
|
||||||
|
int ipmi_cmd (ipmi_ctx_t ctx,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
/* convenience function to perform a single bridged IPMI command.
|
||||||
|
* Will effectively call ipmi_ctx_set_target(), then ipmi_cmd(), then
|
||||||
|
* will set targets back to prior originals.
|
||||||
|
*/
|
||||||
|
int ipmi_cmd_ipmb (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t rs_addr,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
/* for request/response, byte #1 = cmd */
|
||||||
|
/* for response, byte #2 (typically) = completion code */
|
||||||
|
/* returns length written into buf_fs on success, -1 on error */
|
||||||
|
int ipmi_cmd_raw (ipmi_ctx_t ctx,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
const void *buf_rq,
|
||||||
|
unsigned int buf_rq_len,
|
||||||
|
void *buf_rs,
|
||||||
|
unsigned int buf_rs_len);
|
||||||
|
|
||||||
|
/* convenience function to perform a single bridged IPMI raw command.
|
||||||
|
* Will effectively call ipmi_ctx_set_target(), then ipmi_cmd_raw(),
|
||||||
|
* then will set targets back to prior originals.
|
||||||
|
*/
|
||||||
|
int ipmi_cmd_raw_ipmb (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t rs_addr,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
const void *buf_rq,
|
||||||
|
unsigned int buf_rq_len,
|
||||||
|
void *buf_rs,
|
||||||
|
unsigned int buf_rs_len);
|
||||||
|
|
||||||
|
int ipmi_ctx_close (ipmi_ctx_t ctx);
|
||||||
|
|
||||||
|
void ipmi_ctx_destroy (ipmi_ctx_t ctx);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_API_H */
|
189
source/freeipmi/usr/include/freeipmi/api/ipmi-chassis-cmds-api.h
Normal file
189
source/freeipmi/usr/include/freeipmi/api/ipmi-chassis-cmds-api.h
Normal file
|
@ -0,0 +1,189 @@
|
||||||
|
/*
|
||||||
|
* 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_CHASSIS_CMDS_API_H
|
||||||
|
#define IPMI_CHASSIS_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_chassis_capabilities (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_chassis_status (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_chassis_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t chassis_control,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_chassis_identify (ipmi_ctx_t ctx,
|
||||||
|
const uint8_t *identify_interval,
|
||||||
|
const uint8_t *force_identify,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_front_panel_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t disable_power_off_button_for_power_off_only,
|
||||||
|
uint8_t disable_reset_button,
|
||||||
|
uint8_t disable_diagnostic_interrupt_button,
|
||||||
|
uint8_t disable_standby_button_for_entering_standby,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_power_restore_policy (ipmi_ctx_t ctx,
|
||||||
|
uint8_t power_restore_policy,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_power_cycle_interval (ipmi_ctx_t ctx,
|
||||||
|
uint8_t interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_restart_cause (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_boot_options (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_boot_options_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_boot_options_BMC_boot_flag_valid_bit_clearing (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
uint8_t dont_clear_on_power_up,
|
||||||
|
uint8_t dont_clear_on_pushbutton_reset_soft_reset,
|
||||||
|
uint8_t dont_clear_on_watchdog_timeout,
|
||||||
|
uint8_t dont_clear_on_chassis_control,
|
||||||
|
uint8_t dont_clear_on_PEF,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_boot_options_boot_info_acknowledge (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
const uint8_t *bios_or_post_handled_boot_info,
|
||||||
|
const uint8_t *os_loader_handled_boot_info,
|
||||||
|
const uint8_t *os_or_service_partition_handled_boot_info,
|
||||||
|
const uint8_t *sms_handled_boot_info,
|
||||||
|
const uint8_t *oem_handled_boot_info,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_boot_options_boot_flags (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
uint8_t bios_boot_type,
|
||||||
|
uint8_t boot_flags_persistent,
|
||||||
|
uint8_t boot_flags_valid,
|
||||||
|
uint8_t lock_out_reset_button,
|
||||||
|
uint8_t screen_blank,
|
||||||
|
uint8_t boot_device,
|
||||||
|
uint8_t lock_keyboard,
|
||||||
|
uint8_t cmos_clear,
|
||||||
|
uint8_t console_redirection,
|
||||||
|
uint8_t lock_out_sleep_button,
|
||||||
|
uint8_t user_password_bypass,
|
||||||
|
uint8_t force_progress_event_traps,
|
||||||
|
uint8_t firmware_bios_verbosity,
|
||||||
|
uint8_t lock_out_via_power_button,
|
||||||
|
uint8_t bios_mux_control_override,
|
||||||
|
uint8_t bios_shared_mode_override,
|
||||||
|
uint8_t device_instance_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_boot_options_boot_initiator_info (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
uint8_t boot_source_channel_number,
|
||||||
|
uint32_t session_id,
|
||||||
|
uint32_t boot_info_timestamp,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_boot_options_boot_initiator_mailbox (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *block_data,
|
||||||
|
unsigned int block_data_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_service_partition_selector (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_service_partition_scan (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_BMC_boot_flag_valid_bit_clearing (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_boot_info_acknowledge (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_boot_flags (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_boot_initiator_info (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_boot_options_boot_initiator_mailbox (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_power_on_hours_counter (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_CHASSIS_CMDS_API_H */
|
210
source/freeipmi/usr/include/freeipmi/api/ipmi-dcmi-cmds-api.h
Normal file
210
source/freeipmi/usr/include/freeipmi/api/ipmi-dcmi-cmds-api.h
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2009-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* LLNL-CODE-413270
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-Dcmi, tools and libraries to support the
|
||||||
|
* data center manageability interface (DCMI). For details, see
|
||||||
|
* http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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 Ipmi-Dcmi. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_DCMI_CMDS_API_H
|
||||||
|
#define IPMI_DCMI_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_capability_info (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_capability_info_supported_dcmi_capabilities (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_capability_info_mandatory_platform_attributes (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_capability_info_optional_platform_attributes (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_capability_info_manageability_access_attributes (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_capability_info_enhanced_system_power_statistics_attributes (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters_activate_dhcp (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t activate,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters_discovery_configuration (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t option_12,
|
||||||
|
uint8_t option_60_with_option_43,
|
||||||
|
uint8_t random_back_off,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_1 (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t initial_timeout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_2 (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint16_t server_contact_timeout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_3 (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint16_t server_contact_retry_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_configuration_parameters_discovery_configuration (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_1 (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_2 (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_3 (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_asset_tag (ipmi_ctx_t ctx,
|
||||||
|
uint8_t offset_to_read,
|
||||||
|
uint8_t number_of_bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_asset_tag (ipmi_ctx_t ctx,
|
||||||
|
uint8_t offset_to_write,
|
||||||
|
uint8_t number_of_bytes_to_write,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_management_controller_identifier_string (ipmi_ctx_t ctx,
|
||||||
|
uint8_t offset_to_read,
|
||||||
|
uint8_t number_of_bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_management_controller_identifier_string (ipmi_ctx_t ctx,
|
||||||
|
uint8_t offset_to_write,
|
||||||
|
uint8_t number_of_bytes_to_write,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_dcmi_sensor_info (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_type,
|
||||||
|
uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
uint8_t entity_instance_start,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_power_reading (ipmi_ctx_t ctx,
|
||||||
|
uint8_t mode,
|
||||||
|
uint8_t mode_attributes,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_power_limit (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_power_limit (ipmi_ctx_t ctx,
|
||||||
|
uint8_t exception_actions,
|
||||||
|
uint16_t power_limit_requested,
|
||||||
|
uint32_t correction_time_limit,
|
||||||
|
uint16_t management_application_statistics_sampling_period,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_activate_deactivate_power_limit (ipmi_ctx_t ctx,
|
||||||
|
uint8_t power_limit_activation,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_thermal_limit (ipmi_ctx_t ctx,
|
||||||
|
uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_set_thermal_limit (ipmi_ctx_t ctx,
|
||||||
|
uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
uint8_t temperature_limit,
|
||||||
|
uint8_t exception_actions_log_event_to_sel_only,
|
||||||
|
uint8_t exception_actions_hard_power_off_system_and_log_event,
|
||||||
|
uint16_t exception_time,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_dcmi_get_temperature_reading (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_type,
|
||||||
|
uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
uint8_t entity_instance_start,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DCMI_CMDS_API_H */
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* 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_DEVICE_GLOBAL_CMDS_API_H
|
||||||
|
#define IPMI_DEVICE_GLOBAL_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_device_id (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_cold_reset (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_warm_reset (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_acpi_power_state (ipmi_ctx_t ctx,
|
||||||
|
uint8_t system_power_state_enumeration,
|
||||||
|
uint8_t set_system_power_state,
|
||||||
|
uint8_t device_power_state_enumeration,
|
||||||
|
uint8_t set_device_power_state,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_acpi_power_state (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_self_test_results (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_device_guid (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DEVICE_GLOBAL_CMDS_API_H */
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* 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_EVENT_CMDS_API_H
|
||||||
|
#define IPMI_EVENT_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_set_event_receiver (ipmi_ctx_t ctx,
|
||||||
|
uint8_t event_receiver_slave_address,
|
||||||
|
uint8_t event_receiver_lun,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_event_receiver_ipmb (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t slave_address,
|
||||||
|
uint8_t event_receiver_slave_address,
|
||||||
|
uint8_t event_receiver_lun,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_event_receiver (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
/* generator_id is optional */
|
||||||
|
int ipmi_cmd_platform_event (ipmi_ctx_t ctx,
|
||||||
|
uint8_t *generator_id,
|
||||||
|
uint8_t event_message_format_version,
|
||||||
|
uint8_t sensor_type,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t event_type_code,
|
||||||
|
uint8_t event_dir,
|
||||||
|
uint8_t event_data1,
|
||||||
|
uint8_t event_data2,
|
||||||
|
uint8_t event_data3,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_EVENT_CMDS_API_H */
|
|
@ -0,0 +1,139 @@
|
||||||
|
/*
|
||||||
|
* 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_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_CMDS_API_H
|
||||||
|
#define IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_netfn_support (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_command_support (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_command_sub_function_support (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_configurable_commands (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_configurable_command_sub_functions (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_command_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t *enable_disable_bitmask,
|
||||||
|
unsigned int enable_disable_bitmask_len,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_command_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_command_sub_function_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t sub_function_enables1,
|
||||||
|
uint32_t *sub_function_enables2,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_command_sub_function_enables_defining_body_code (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint8_t defining_body_code,
|
||||||
|
uint32_t sub_function_enables1,
|
||||||
|
uint32_t *sub_function_enables2,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_command_sub_function_enables_oem_iana (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t oem_iana,
|
||||||
|
uint32_t sub_function_enables1,
|
||||||
|
uint32_t *sub_function_enables2,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_command_sub_function_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_oem_netfn_iana_support (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t list_index,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_CMDS_API_H */
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Copyright (C) 2007 The Regents of the University of California.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* UCRL-CODE-232183
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-fru, a tool used for retrieving
|
||||||
|
* motherboard field replaceable unit (FRU) information. For details,
|
||||||
|
* see http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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 Ipmi-fru. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_FRU_INVENTORY_DEVICE_CMDS_API_H
|
||||||
|
#define IPMI_FRU_INVENTORY_DEVICE_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_fru_inventory_area_info (ipmi_ctx_t ctx,
|
||||||
|
uint8_t fru_device_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_read_fru_data (ipmi_ctx_t ctx,
|
||||||
|
uint8_t fru_device_id,
|
||||||
|
uint16_t fru_inventory_offset_to_read,
|
||||||
|
uint8_t count_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_INVENTORY_DEVICE_CMDS_API_H */
|
415
source/freeipmi/usr/include/freeipmi/api/ipmi-lan-cmds-api.h
Normal file
415
source/freeipmi/usr/include/freeipmi/api/ipmi-lan-cmds-api.h
Normal file
|
@ -0,0 +1,415 @@
|
||||||
|
/*
|
||||||
|
* 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_LAN_CMDS_API_H
|
||||||
|
#define IPMI_LAN_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_authentication_type_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t callback_level_none,
|
||||||
|
uint8_t callback_level_md2,
|
||||||
|
uint8_t callback_level_md5,
|
||||||
|
uint8_t callback_level_straight_password,
|
||||||
|
uint8_t callback_level_oem_proprietary,
|
||||||
|
uint8_t user_level_none,
|
||||||
|
uint8_t user_level_md2,
|
||||||
|
uint8_t user_level_md5,
|
||||||
|
uint8_t user_level_straight_password,
|
||||||
|
uint8_t user_level_oem_proprietary,
|
||||||
|
uint8_t operator_level_none,
|
||||||
|
uint8_t operator_level_md2,
|
||||||
|
uint8_t operator_level_md5,
|
||||||
|
uint8_t operator_level_straight_password,
|
||||||
|
uint8_t operator_level_oem_proprietary,
|
||||||
|
uint8_t admin_level_none,
|
||||||
|
uint8_t admin_level_md2,
|
||||||
|
uint8_t admin_level_md5,
|
||||||
|
uint8_t admin_level_straight_password,
|
||||||
|
uint8_t admin_level_oem_proprietary,
|
||||||
|
uint8_t oem_level_none,
|
||||||
|
uint8_t oem_level_md2,
|
||||||
|
uint8_t oem_level_md5,
|
||||||
|
uint8_t oem_level_straight_password,
|
||||||
|
uint8_t oem_level_oem_proprietary,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_ip_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint32_t ip_address,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_ip_address_source (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t ip_address_source,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_subnet_mask (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint32_t subnet_mask,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_ipv4_header_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t time_to_live,
|
||||||
|
uint8_t flags,
|
||||||
|
uint8_t type_of_service,
|
||||||
|
uint8_t precedence,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_primary_rmcp_port_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint16_t primary_rmcp_port_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_secondary_rmcp_port_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint16_t secondary_rmcp_port_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_mac_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint64_t mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_default_gateway_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint32_t ip_address,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_default_gateway_mac_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint64_t mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_backup_gateway_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint32_t ip_address,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_backup_gateway_mac_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint64_t mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_bmc_generated_arp_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t bmc_generated_gratuitous_arps,
|
||||||
|
uint8_t bmc_generated_arp_responses,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_gratuitous_arp_interval (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t gratuitous_arp_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_community_string (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
const char *community_string,
|
||||||
|
unsigned int community_string_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_destination_type (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t destination_type,
|
||||||
|
uint8_t alert_acknowledge,
|
||||||
|
uint8_t alert_acknowledge_timeout,
|
||||||
|
uint8_t retries,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_destination_addresses (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t gateway_selector,
|
||||||
|
uint32_t alerting_ip_address,
|
||||||
|
uint64_t alerting_mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_vlan_id (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint16_t vlan_id,
|
||||||
|
uint8_t vlan_id_enable,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_vlan_priority (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint32_t vlan_priority,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_privilege_levels (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_1,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_2,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_3,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_4,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_5,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_6,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_7,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_8,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_9,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_10,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_11,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_12,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_13,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_14,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_15,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_16,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_lan_configuration_parameters_bad_password_threshold (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t user_disabled_event_message,
|
||||||
|
uint8_t bad_password_threshold_number,
|
||||||
|
uint16_t attempt_count_reset_interval,
|
||||||
|
uint16_t user_lockout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_authentication_type_support (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_authentication_type_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_ip_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_ip_address_source (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_mac_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_subnet_mask (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_ipv4_header_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_primary_rmcp_port_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_secondary_rmcp_port_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_bmc_generated_arp_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_gratuitous_arp_interval (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_default_gateway_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_default_gateway_mac_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_backup_gateway_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_backup_gateway_mac_address (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_community_string (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_number_of_destinations (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_destination_type (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_destination_addresses (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_vlan_id (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_vlan_priority (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_entry_support (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_entries (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_privilege_levels (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_lan_configuration_parameters_bad_password_threshold (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_suspend_bmc_arps (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t gratuitous_arp_suspend,
|
||||||
|
uint8_t arp_response_suspend,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_ip_udp_rmcp_statistics (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t clear_all_statistics,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_LAN_CMDS_API_H */
|
|
@ -0,0 +1,408 @@
|
||||||
|
/*
|
||||||
|
* 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_MESSAGING_SUPPORT_CMDS_API_H
|
||||||
|
#define IPMI_MESSAGING_SUPPORT_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_set_bmc_global_enables (ipmi_ctx_t ctx,
|
||||||
|
uint8_t receive_message_queue_interrupt,
|
||||||
|
uint8_t event_message_buffer_full_interrupt,
|
||||||
|
uint8_t event_message_buffer,
|
||||||
|
uint8_t system_event_logging,
|
||||||
|
uint8_t oem_0,
|
||||||
|
uint8_t oem_1,
|
||||||
|
uint8_t oem_2,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_bmc_global_enables (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_clear_message_flags (ipmi_ctx_t ctx,
|
||||||
|
uint8_t receive_message_queue,
|
||||||
|
uint8_t event_message_buffer,
|
||||||
|
uint8_t watchdog_pre_timeout_interrupt_flag,
|
||||||
|
uint8_t oem_0,
|
||||||
|
uint8_t oem_1,
|
||||||
|
uint8_t oem_2,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_message_flags (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_enable_message_channel_receive (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t channel_operation,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_message (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_send_message (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t message_authentication,
|
||||||
|
uint8_t message_encryption,
|
||||||
|
uint8_t tracking_operation,
|
||||||
|
const void *message_data,
|
||||||
|
unsigned int message_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_read_event_message_buffer (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_interface_capabilities (ipmi_ctx_t ctx,
|
||||||
|
uint8_t system_interface,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_interface_capabilities_ssif (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_interface_capabilities_kcs (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_bt_interface_capabilities (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_master_write_read (ipmi_ctx_t ctx,
|
||||||
|
uint8_t bus_type,
|
||||||
|
uint8_t bus_id,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t slave_address,
|
||||||
|
uint8_t read_count,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_channel_authentication_capabilities (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t maximum_privilege_level,
|
||||||
|
uint8_t get_ipmi_v20_extended_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_guid (ipmi_ctx_t ctx, fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_system_firmware_version_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_system_firmware_version (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_system_name_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_system_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_primary_operating_system_name_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_primary_operating_system_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_operating_system_name_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_operating_system_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_present_os_version_number_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_present_os_version_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_bmc_url_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_bmc_url (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_base_os_hypervisor_url_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_system_info_parameters_base_os_hypervisor_url (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_system_firmware_version_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_system_firmware_version (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_system_name_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_system_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_primary_operating_system_name_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_primary_operating_system_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_operating_system_name_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_operating_system_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_present_os_version_number_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_present_os_version_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_bmc_url_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_bmc_url (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_base_os_hypervisor_url_first_set (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_system_info_parameters_base_os_hypervisor_url (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_session_challenge (ipmi_ctx_t ctx,
|
||||||
|
uint8_t authentication_type,
|
||||||
|
const char *user_name,
|
||||||
|
unsigned int user_name_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_activate_session (ipmi_ctx_t ctx,
|
||||||
|
uint8_t authentication_type,
|
||||||
|
uint8_t maximum_privilege_level,
|
||||||
|
const void *challenge_string,
|
||||||
|
unsigned int challenge_string_len,
|
||||||
|
uint32_t initial_outbound_sequence_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_session_privilege_level (ipmi_ctx_t ctx,
|
||||||
|
uint8_t privilege_level,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_close_session (ipmi_ctx_t ctx,
|
||||||
|
uint32_t session_id,
|
||||||
|
uint8_t *session_handle,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_channel_access (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t ipmi_messaging_access_mode,
|
||||||
|
uint8_t user_level_authentication,
|
||||||
|
uint8_t per_message_authentication,
|
||||||
|
uint8_t pef_alerting,
|
||||||
|
uint8_t channel_access_set,
|
||||||
|
uint8_t channel_privilege_level_limit,
|
||||||
|
uint8_t channel_privilege_level_limit_set,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_channel_access (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t channel_access_get,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_channel_info (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_channel_security_keys (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t key_id,
|
||||||
|
const void *key_value,
|
||||||
|
unsigned int key_value_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_user_access (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t user_ipmi_messaging,
|
||||||
|
uint8_t user_link_authentication,
|
||||||
|
uint8_t user_restricted_to_callback,
|
||||||
|
uint8_t change_bits_in_byte,
|
||||||
|
uint8_t user_id,
|
||||||
|
uint8_t user_privilege_level_limit,
|
||||||
|
uint8_t user_session_number_limit,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_user_access (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t user_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_user_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t user_id,
|
||||||
|
const char *user_name,
|
||||||
|
unsigned int user_name_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_user_name (ipmi_ctx_t ctx,
|
||||||
|
uint8_t user_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_user_password (ipmi_ctx_t ctx,
|
||||||
|
uint8_t user_id,
|
||||||
|
uint8_t password_size,
|
||||||
|
uint8_t operation,
|
||||||
|
const char *password,
|
||||||
|
unsigned int password_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_MESSAGING_SUPPORT_CMDS_API_H */
|
|
@ -0,0 +1,306 @@
|
||||||
|
/*
|
||||||
|
* 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_OEM_INTEL_NODE_MANAGER_CMDS_API_H
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*******************************************
|
||||||
|
* Intel *
|
||||||
|
*******************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel Node Manager
|
||||||
|
*
|
||||||
|
* For Intel Chips, not just Intel Motherboards. Confirmed for:
|
||||||
|
*
|
||||||
|
* Intel S5500WB/Penguin Computing Relion 700
|
||||||
|
* Intel S2600JF/Appro 512X
|
||||||
|
* Intel S2600KP
|
||||||
|
* Intel S2600WT2
|
||||||
|
* Intel S2600WTT
|
||||||
|
* Inventec 5441/Dell Xanadu II
|
||||||
|
* Inventec 5442/Dell Xanadu III
|
||||||
|
* Quanta S99Q/Dell FS12-TY
|
||||||
|
* Quanta QSSC-S4R/Appro GB812X-CN
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_enable_disable_node_manager_policy_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t policy_enable_disable,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_policy (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_enabled,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint8_t policy_trigger_type,
|
||||||
|
uint8_t policy_configuration_action,
|
||||||
|
uint8_t aggressive_cpu_power_correction,
|
||||||
|
uint8_t policy_storage_option,
|
||||||
|
uint8_t policy_exception_actions_send_alert,
|
||||||
|
uint8_t policy_exception_actions_shutdown_system,
|
||||||
|
uint8_t policy_power_domain,
|
||||||
|
uint16_t policy_target_limit,
|
||||||
|
uint32_t correction_time_limit,
|
||||||
|
uint16_t policy_trigger_limit,
|
||||||
|
uint16_t statistics_reporting_period,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_policy_boot_time_policy (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_enabled,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint8_t policy_trigger_type,
|
||||||
|
uint8_t policy_configuration_action,
|
||||||
|
uint8_t aggressive_cpu_power_correction,
|
||||||
|
uint8_t policy_storage_option,
|
||||||
|
uint8_t policy_exception_actions_send_alert,
|
||||||
|
uint8_t policy_exception_actions_shutdown_system,
|
||||||
|
uint8_t policy_power_domain,
|
||||||
|
uint8_t platform_booting_mode,
|
||||||
|
uint8_t cores_disabled,
|
||||||
|
uint32_t correction_time_limit,
|
||||||
|
uint16_t policy_trigger_limit,
|
||||||
|
uint16_t statistics_reporting_period,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_node_manager_policy (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_policy_alert_thresholds (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint16_t *alert_threshold1,
|
||||||
|
uint16_t *alert_threshold2,
|
||||||
|
uint16_t *alert_threshold3,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_node_manager_policy_alert_thresholds (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_policy_suspend_periods (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint8_t *policy1_suspend_start_time,
|
||||||
|
uint8_t *policy1_suspend_stop_time,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy2_suspend_start_time,
|
||||||
|
uint8_t *policy2_suspend_stop_time,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy3_suspend_start_time,
|
||||||
|
uint8_t *policy3_suspend_stop_time,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy4_suspend_start_time,
|
||||||
|
uint8_t *policy4_suspend_stop_time,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy5_suspend_start_time,
|
||||||
|
uint8_t *policy5_suspend_stop_time,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_sunday,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_node_manager_policy_suspend_periods (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_reset_node_manager_statistics (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t mode,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_node_manager_statistics (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t mode,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_node_manager_capabilities (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_trigger_type,
|
||||||
|
uint8_t policy_type,
|
||||||
|
uint8_t policy_power_domain,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_node_manager_version (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_power_draw_range (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint16_t minimum_power_draw,
|
||||||
|
uint16_t maximum_power_draw,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_alert_destination (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t alert_receiver_deactivation,
|
||||||
|
uint8_t destination_information,
|
||||||
|
uint8_t alert_string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_alert_destination_ipmb (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t alert_receiver_deactivation,
|
||||||
|
uint8_t slave_address,
|
||||||
|
uint8_t alert_string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_node_manager_alert_destination_lan (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t alert_receiver_deactivation,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t alert_string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_node_manager_alert_destination (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_set_turbo_synchronization_ratio (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t cpu_socket_number,
|
||||||
|
uint8_t active_cores_configuration,
|
||||||
|
uint8_t turbo_ratio_limit,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_turbo_synchronization_ratio (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t cpu_socket_number,
|
||||||
|
uint8_t active_cores_configuration,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_oem_intel_node_manager_get_limiting_policy_id (ipmi_ctx_t ctx,
|
||||||
|
uint8_t target_channel_number,
|
||||||
|
uint8_t target_slave_address,
|
||||||
|
uint8_t target_lun,
|
||||||
|
uint8_t domain_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_OEM_INTEL_NODE_MANAGER_CMDS_API_H */
|
|
@ -0,0 +1,254 @@
|
||||||
|
/*
|
||||||
|
* 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_PEF_AND_ALERTING_CMDS_API_H
|
||||||
|
#define IPMI_PEF_AND_ALERTING_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_capabilities (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_arm_pef_postpone_timer (ipmi_ctx_t ctx,
|
||||||
|
uint8_t pef_postpone_timeout,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_pef_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t pef,
|
||||||
|
uint8_t pef_event_messages,
|
||||||
|
uint8_t pef_startup_delay,
|
||||||
|
uint8_t pef_alert_startup_delay,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_pef_action_global_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t alert_action,
|
||||||
|
uint8_t power_down_action,
|
||||||
|
uint8_t reset_action,
|
||||||
|
uint8_t power_cycle_action,
|
||||||
|
uint8_t oem_action,
|
||||||
|
uint8_t diagnostic_interrupt,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_pef_startup_delay (ipmi_ctx_t ctx,
|
||||||
|
uint8_t pef_startup_delay,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_pef_alert_startup_delay (ipmi_ctx_t ctx,
|
||||||
|
uint8_t pef_alert_startup_delay,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_event_filter_table (ipmi_ctx_t ctx,
|
||||||
|
uint8_t filter_number,
|
||||||
|
uint8_t filter_configuration_type,
|
||||||
|
uint8_t filter_configuration_filter,
|
||||||
|
uint8_t event_filter_action_alert,
|
||||||
|
uint8_t event_filter_action_power_off,
|
||||||
|
uint8_t event_filter_action_reset,
|
||||||
|
uint8_t event_filter_action_power_cycle,
|
||||||
|
uint8_t event_filter_action_oem,
|
||||||
|
uint8_t event_filter_action_diagnostic_interrupt,
|
||||||
|
uint8_t event_filter_action_group_control_operation,
|
||||||
|
uint8_t alert_policy_number_policy_number,
|
||||||
|
uint8_t alert_policy_number_group_control_selector,
|
||||||
|
uint8_t event_severity,
|
||||||
|
uint8_t generator_id_byte1,
|
||||||
|
uint8_t generator_id_byte2,
|
||||||
|
uint8_t sensor_type,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t event_trigger,
|
||||||
|
uint16_t event_data1_offset_mask,
|
||||||
|
uint8_t event_data1_AND_mask,
|
||||||
|
uint8_t event_data1_compare1,
|
||||||
|
uint8_t event_data1_compare2,
|
||||||
|
uint8_t event_data2_AND_mask,
|
||||||
|
uint8_t event_data2_compare1,
|
||||||
|
uint8_t event_data2_compare2,
|
||||||
|
uint8_t event_data3_AND_mask,
|
||||||
|
uint8_t event_data3_compare1,
|
||||||
|
uint8_t event_data3_compare2,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_event_filter_table_data1_ (ipmi_ctx_t ctx,
|
||||||
|
uint8_t filter_number,
|
||||||
|
uint8_t filter_configuration_type,
|
||||||
|
uint8_t filter_configuration_filter,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_alert_policy_table (ipmi_ctx_t ctx,
|
||||||
|
uint8_t alert_policy_entry_number,
|
||||||
|
uint8_t policy_type,
|
||||||
|
uint8_t policy_enabled,
|
||||||
|
uint8_t policy_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t alert_string_set_selector,
|
||||||
|
uint8_t event_specific_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_alert_string_keys (ipmi_ctx_t ctx,
|
||||||
|
uint8_t string_selector,
|
||||||
|
uint8_t filter_number,
|
||||||
|
uint8_t set_number_for_string,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_pef_configuration_parameters_alert_strings (ipmi_ctx_t ctx,
|
||||||
|
uint8_t string_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
const uint8_t *string_data,
|
||||||
|
unsigned int string_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_pef_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_pef_action_global_control (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_pef_startup_delay (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_pef_alert_startup_delay (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_number_of_event_filters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_event_filter_table (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_event_filter_table_data1_ (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_number_of_alert_policy_entries (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_number_of_alert_strings (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_alert_string_keys (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_alert_string (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_pef_configuration_parameters_alert_policy_table (ipmi_ctx_t ctx,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_last_processed_event_id (ipmi_ctx_t ctx,
|
||||||
|
uint8_t set_record_id_for_last_record,
|
||||||
|
uint16_t record_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_last_processed_event_id (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_alert_immediate (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_pet_acknowledge (ipmi_ctx_t ctx,
|
||||||
|
uint16_t sequence_number,
|
||||||
|
uint32_t local_timestamp,
|
||||||
|
uint8_t event_source_type,
|
||||||
|
uint8_t sensor_device,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint32_t event_data,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_PEF_AND_ALERTING_CMDS_API_H */
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* 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_API_H
|
||||||
|
#define IPMI_RMCPPLUS_SUPPORT_AND_PAYLOAD_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_set_user_payload_access (ipmi_ctx_t ctx,
|
||||||
|
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_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_user_payload_access (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t user_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_RMCPPLUS_SUPPORT_AND_PAYLOAD_CMDS_API_H */
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_REPOSITORY_CMDS_API_H
|
||||||
|
#define IPMI_SDR_REPOSITORY_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sdr_repository_info (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sdr_repository_allocation_info (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_reserve_sdr_repository (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sdr (ipmi_ctx_t ctx,
|
||||||
|
uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
uint8_t offset_into_record,
|
||||||
|
uint8_t bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sdr_repository_time (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sdr_repository_time (ipmi_ctx_t ctx,
|
||||||
|
uint32_t time,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_REPOSITORY_CMDS_API_H */
|
92
source/freeipmi/usr/include/freeipmi/api/ipmi-sel-cmds-api.h
Normal file
92
source/freeipmi/usr/include/freeipmi/api/ipmi-sel-cmds-api.h
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
* 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_SEL_CMDS_API_H
|
||||||
|
#define IPMI_SEL_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sel_info (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sel_allocation_info (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_reserve_sel (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sel_entry (ipmi_ctx_t ctx,
|
||||||
|
uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
uint8_t offset_into_record,
|
||||||
|
uint8_t bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_delete_sel_entry (ipmi_ctx_t ctx,
|
||||||
|
uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_clear_sel (ipmi_ctx_t ctx,
|
||||||
|
uint16_t reservation_id,
|
||||||
|
uint8_t operation,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sel_time (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sel_time (ipmi_ctx_t ctx,
|
||||||
|
uint32_t time,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sel_time_utc_offset (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sel_time_utc_offset (ipmi_ctx_t ctx,
|
||||||
|
int16_t offset,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_auxiliary_log_status (ipmi_ctx_t ctx,
|
||||||
|
uint8_t log_type,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_auxiliary_log_status (ipmi_ctx_t ctx,
|
||||||
|
uint8_t log_type,
|
||||||
|
const void *log_data,
|
||||||
|
unsigned int log_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SEL_CMDS_API_H */
|
223
source/freeipmi/usr/include/freeipmi/api/ipmi-sensor-cmds-api.h
Normal file
223
source/freeipmi/usr/include/freeipmi/api/ipmi-sensor-cmds-api.h
Normal file
|
@ -0,0 +1,223 @@
|
||||||
|
/*
|
||||||
|
* 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_SENSOR_CMDS_API_H
|
||||||
|
#define IPMI_SENSOR_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_get_device_sdr_info (ipmi_ctx_t ctx,
|
||||||
|
uint8_t operation,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_device_sdr (ipmi_ctx_t ctx,
|
||||||
|
uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
uint8_t offset_into_record,
|
||||||
|
uint8_t bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_reserve_device_sdr_repository (ipmi_ctx_t ctx,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
/* achu: as of IPMI 2.0 hysteresis_mask reserved for future - write as 0xFF */
|
||||||
|
int ipmi_cmd_set_sensor_hysteresis (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t hysteresis_mask,
|
||||||
|
uint8_t positive_going_threshold_hysteresis_value,
|
||||||
|
uint8_t negative_going_threshold_hysteresis_value,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
/* achu: as of IPMI 2.0 hysteresis_mask reserved for future - write as 0xFF */
|
||||||
|
int ipmi_cmd_get_sensor_hysteresis (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t hysteresis_mask,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sensor_thresholds (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
const uint8_t *lower_non_critical_threshold,
|
||||||
|
const uint8_t *lower_critical_threshold,
|
||||||
|
const uint8_t *lower_non_recoverable_threshold,
|
||||||
|
const uint8_t *upper_non_critical_threshold,
|
||||||
|
const uint8_t *upper_critical_threshold,
|
||||||
|
const uint8_t *upper_non_recoverable_threshold,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_thresholds (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sensor_event_enable (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t event_message_action,
|
||||||
|
uint8_t scanning_on_this_sensor,
|
||||||
|
uint8_t all_event_messages,
|
||||||
|
uint16_t assertion_event_bitmask,
|
||||||
|
uint16_t deassertion_event_bitmask,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sensor_event_enable_threshold (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t event_message_action,
|
||||||
|
uint8_t scanning_on_this_sensor,
|
||||||
|
uint8_t all_event_messages,
|
||||||
|
uint8_t assertion_event_lower_non_critical_going_low,
|
||||||
|
uint8_t assertion_event_lower_non_critical_going_high,
|
||||||
|
uint8_t assertion_event_lower_critical_going_low,
|
||||||
|
uint8_t assertion_event_lower_critical_going_high,
|
||||||
|
uint8_t assertion_event_lower_non_recoverable_going_low,
|
||||||
|
uint8_t assertion_event_lower_non_recoverable_going_high,
|
||||||
|
uint8_t assertion_event_upper_non_critical_going_low,
|
||||||
|
uint8_t assertion_event_upper_non_critical_going_high,
|
||||||
|
uint8_t assertion_event_upper_critical_going_low,
|
||||||
|
uint8_t assertion_event_upper_critical_going_high,
|
||||||
|
uint8_t assertion_event_upper_non_recoverable_going_low,
|
||||||
|
uint8_t assertion_event_upper_non_recoverable_going_high,
|
||||||
|
uint8_t deassertion_event_lower_non_critical_going_low,
|
||||||
|
uint8_t deassertion_event_lower_non_critical_going_high,
|
||||||
|
uint8_t deassertion_event_lower_critical_going_low,
|
||||||
|
uint8_t deassertion_event_lower_critical_going_high,
|
||||||
|
uint8_t deassertion_event_lower_non_recoverable_going_low,
|
||||||
|
uint8_t deassertion_event_lower_non_recoverable_going_high,
|
||||||
|
uint8_t deassertion_event_upper_non_critical_going_low,
|
||||||
|
uint8_t deassertion_event_upper_non_critical_going_high,
|
||||||
|
uint8_t deassertion_event_upper_critical_going_low,
|
||||||
|
uint8_t deassertion_event_upper_critical_going_high,
|
||||||
|
uint8_t deassertion_event_upper_non_recoverable_going_low,
|
||||||
|
uint8_t deassertion_event_upper_non_recoverable_going_high,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sensor_event_enable_discrete (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t event_message_action,
|
||||||
|
uint8_t scanning_on_this_sensor,
|
||||||
|
uint8_t all_event_messages,
|
||||||
|
uint8_t assertion_event_state_bit_0,
|
||||||
|
uint8_t assertion_event_state_bit_1,
|
||||||
|
uint8_t assertion_event_state_bit_2,
|
||||||
|
uint8_t assertion_event_state_bit_3,
|
||||||
|
uint8_t assertion_event_state_bit_4,
|
||||||
|
uint8_t assertion_event_state_bit_5,
|
||||||
|
uint8_t assertion_event_state_bit_6,
|
||||||
|
uint8_t assertion_event_state_bit_7,
|
||||||
|
uint8_t assertion_event_state_bit_8,
|
||||||
|
uint8_t assertion_event_state_bit_9,
|
||||||
|
uint8_t assertion_event_state_bit_10,
|
||||||
|
uint8_t assertion_event_state_bit_11,
|
||||||
|
uint8_t assertion_event_state_bit_12,
|
||||||
|
uint8_t assertion_event_state_bit_13,
|
||||||
|
uint8_t assertion_event_state_bit_14,
|
||||||
|
uint8_t deassertion_event_state_bit_0,
|
||||||
|
uint8_t deassertion_event_state_bit_1,
|
||||||
|
uint8_t deassertion_event_state_bit_2,
|
||||||
|
uint8_t deassertion_event_state_bit_3,
|
||||||
|
uint8_t deassertion_event_state_bit_4,
|
||||||
|
uint8_t deassertion_event_state_bit_5,
|
||||||
|
uint8_t deassertion_event_state_bit_6,
|
||||||
|
uint8_t deassertion_event_state_bit_7,
|
||||||
|
uint8_t deassertion_event_state_bit_8,
|
||||||
|
uint8_t deassertion_event_state_bit_9,
|
||||||
|
uint8_t deassertion_event_state_bit_10,
|
||||||
|
uint8_t deassertion_event_state_bit_11,
|
||||||
|
uint8_t deassertion_event_state_bit_12,
|
||||||
|
uint8_t deassertion_event_state_bit_13,
|
||||||
|
uint8_t deassertion_event_state_bit_14,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_event_enable (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_event_enable_threshold (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_event_enable_discrete (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_re_arm_sensor_events (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t re_arm_all_event_status_from_this_sensor,
|
||||||
|
uint16_t *re_arm_assertion_event,
|
||||||
|
uint16_t *re_arm_deassertion_event,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_re_arm_sensor_events_ipmb (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t slave_address,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t re_arm_all_event_status_from_this_sensor,
|
||||||
|
uint16_t *re_arm_assertion_event,
|
||||||
|
uint16_t *re_arm_deassertion_event,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_reading (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_reading_ipmb (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t slave_address,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_reading_threshold (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sensor_reading_discrete (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sensor_reading_and_event_status (ipmi_ctx_t ctx,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t sensor_reading_operation,
|
||||||
|
uint8_t deassertion_bits_operation,
|
||||||
|
uint8_t assertion_bits_operation,
|
||||||
|
uint8_t event_data_bytes_operation,
|
||||||
|
uint8_t sensor_reading,
|
||||||
|
uint16_t assertion_event_bitmask,
|
||||||
|
uint16_t deassertion_event_bitmask,
|
||||||
|
uint8_t event_data1,
|
||||||
|
uint8_t event_data2,
|
||||||
|
uint8_t event_data3,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SENSOR_CMDS_API_H */
|
|
@ -0,0 +1,123 @@
|
||||||
|
/*
|
||||||
|
* 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_SERIAL_MODEM_CMDS_API_H
|
||||||
|
#define IPMI_SERIAL_MODEM_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_set_serial_modem_configuration (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_serial_modem_configuration_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_serial_modem_configuration_connection_mode (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t basic_mode,
|
||||||
|
uint8_t ppp_mode,
|
||||||
|
uint8_t terminal_mode,
|
||||||
|
uint8_t connect_mode,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_serial_modem_configuration_ipmi_messaging_comm_settings (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t dtr_hangup,
|
||||||
|
uint8_t flow_control,
|
||||||
|
uint8_t bit_rate,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_serial_modem_configuration_page_blackout_interval (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t page_blackout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_serial_modem_configuration_call_retry_interval (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t call_retry_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_serial_modem_configuration (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
|
||||||
|
int ipmi_cmd_get_serial_modem_configuration_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_serial_modem_configuration_connection_mode (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_serial_modem_configuration_ipmi_messaging_comm_settings (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_serial_modem_configuration_page_blackout_interval (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_serial_modem_configuration_call_retry_interval (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SERIAL_MODEM_CMDS_API_H */
|
164
source/freeipmi/usr/include/freeipmi/api/ipmi-sol-cmds-api.h
Normal file
164
source/freeipmi/usr/include/freeipmi/api/ipmi-sol-cmds-api.h
Normal file
|
@ -0,0 +1,164 @@
|
||||||
|
/*
|
||||||
|
* 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_SOL_CMDS_API_H
|
||||||
|
#define IPMI_SOL_CMDS_API_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ipmi_cmd* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_cmd_rs must be for the function's respective fiid template
|
||||||
|
* response.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_sol_enable (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t sol_enable,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_sol_authentication (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t sol_privilege_level,
|
||||||
|
uint8_t force_sol_payload_authentication,
|
||||||
|
uint8_t force_sol_payload_encryption,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_character_accumulate_interval_and_send_threshold (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t character_accumulate_interval,
|
||||||
|
uint8_t character_send_threshold,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_sol_retry (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t retry_count,
|
||||||
|
uint8_t retry_interval,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_sol_non_volatile_bit_rate (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t bit_rate,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_sol_volatile_bit_rate (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t bit_rate,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_set_sol_configuration_parameters_sol_payload_port_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint16_t port_number,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_set_in_progress (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_sol_enable (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_sol_authentication (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_character_accumulate_interval_and_send_threshold (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_sol_retry (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_sol_non_volatile_bit_rate (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_sol_volatile_bit_rate (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_sol_payload_channel (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_cmd_get_sol_configuration_parameters_sol_payload_port_number (ipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SOL_CMDS_API_H */
|
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
* 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_BMC_WATCHDOG_TIMER_CMDS_H
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_BIOS_FRB2 0x1
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_BIOS_POST 0x2
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_OS_LOAD 0x3
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_SMS_OS 0x4
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_OEM 0x5
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_VALID(__x) \
|
||||||
|
(((__x) == IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_BIOS_FRB2 \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_BIOS_POST \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_OS_LOAD \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_SMS_OS \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_OEM) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_STOP_TIMER_ENABLE 0x0
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_STOP_TIMER_DISABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_STOP_TIMER_VALID(__x) \
|
||||||
|
(((__x) == IPMI_BMC_WATCHDOG_TIMER_STOP_TIMER_ENABLE \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_STOP_TIMER_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_LOG_ENABLE 0x0
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_LOG_DISABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_LOG_VALID(__x) \
|
||||||
|
(((__x) == IPMI_BMC_WATCHDOG_TIMER_LOG_ENABLE \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_LOG_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_NO_ACTION 0x0
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_HARD_RESET 0x1
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_POWER_DOWN 0x2
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_POWER_CYCLE 0x3
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_VALID(__x) \
|
||||||
|
(((__x) == IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_NO_ACTION \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_HARD_RESET \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_POWER_DOWN \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMEOUT_ACTION_POWER_CYCLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_NONE 0x0
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_SMI 0x1
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_NMI 0x2
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_MESSAGING_INTERRUPT 0x3
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_VALID(__x) \
|
||||||
|
(((__x) == IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_NONE \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_SMI \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_NMI \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERRUPT_MESSAGING_INTERRUPT) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_EXPIRATION_CLEAR_TIMER_EXPIRATION_BIT 0x1
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_EXPIRATION_LEAVE_ALONE 0x0
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_EXPIRATION_VALID(__x) \
|
||||||
|
(((__x) == IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_EXPIRATION_CLEAR_TIMER_EXPIRATION_BIT \
|
||||||
|
|| (__x) == IPMI_BMC_WATCHDOG_TIMER_TIMER_USE_EXPIRATION_LEAVE_ALONE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_STATE_RUNNING 0x1
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_TIMER_STATE_STOPPED 0x0
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERVAL_MIN 0x00
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_PRE_TIMEOUT_INTERVAL_MAX 0xFF
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_INITIAL_COUNTDOWN_MIN 0x0000
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_INITIAL_COUNTDOWN_MAX 0xFFFF
|
||||||
|
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_INITIAL_COUNTDOWN_MIN_SECONDS IPMI_BMC_WATCHDOG_TIMER_INITIAL_COUNTDOWN_MIN
|
||||||
|
#define IPMI_BMC_WATCHDOG_TIMER_INITIAL_COUNTDOWN_MAX_SECONDS (IPMI_BMC_WATCHDOG_TIMER_INITIAL_COUNTDOWN_MAX/10)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_reset_watchdog_timer_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_reset_watchdog_timer_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_watchdog_timer_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_watchdog_timer_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_watchdog_timer_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_watchdog_timer_rs;
|
||||||
|
|
||||||
|
int fill_cmd_reset_watchdog_timer (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_watchdog_timer (uint8_t timer_use,
|
||||||
|
uint8_t stop_timer,
|
||||||
|
uint8_t log,
|
||||||
|
uint8_t timeout_action,
|
||||||
|
uint8_t pre_timeout_interrupt,
|
||||||
|
uint8_t pre_timeout_interval,
|
||||||
|
uint8_t timer_use_expiration_flag_bios_frb2,
|
||||||
|
uint8_t timer_use_expiration_flag_bios_post,
|
||||||
|
uint8_t timer_use_expiration_flag_os_load,
|
||||||
|
uint8_t timer_use_expiration_flag_sms_os,
|
||||||
|
uint8_t timer_use_expiration_flag_oem,
|
||||||
|
uint16_t initial_countdown_value,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_watchdog_timer (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_BMC_WATCHDOG_TIMER_CMDS_H */
|
410
source/freeipmi/usr/include/freeipmi/cmds/ipmi-chassis-cmds.h
Normal file
410
source/freeipmi/usr/include/freeipmi/cmds/ipmi-chassis-cmds.h
Normal file
|
@ -0,0 +1,410 @@
|
||||||
|
/*
|
||||||
|
* 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_CHASSIS_CMDS_H
|
||||||
|
#define IPMI_CHASSIS_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_POWERED_OFF_AFTER_AC_RETURNS 0x00
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_POWER_RESTORED_TO_STATE 0x01
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_POWERS_UP_AFTER_AC_RETURNS 0x02
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_UNKNOWN 0x03
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_POWER_IS_ON 1
|
||||||
|
#define IPMI_SYSTEM_POWER_IS_OFF 0
|
||||||
|
|
||||||
|
#define IPMI_LAST_POWER_EVENT_AC_FAILED 0x00
|
||||||
|
#define IPMI_LAST_POWER_EVENT_POWER_DOWN_POWER_OVERLOAD 0x01
|
||||||
|
#define IPMI_LAST_POWER_EVENT_POWER_DOWN_INTERLOCK_ACTIVATED 0x02
|
||||||
|
#define IPMI_LAST_POWER_EVENT_POWER_DOWN_POWER_FAULT 0x03
|
||||||
|
#define IPMI_LAST_POWER_EVENT_POWER_ON_VIA_IPMI 0x04
|
||||||
|
#define IPMI_LAST_POWER_EVENT_UNKNOWN 0x05
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_CONTROL_POWER_DOWN 0x00
|
||||||
|
#define IPMI_CHASSIS_CONTROL_POWER_UP 0x01
|
||||||
|
#define IPMI_CHASSIS_CONTROL_POWER_CYCLE 0x02
|
||||||
|
#define IPMI_CHASSIS_CONTROL_HARD_RESET 0x03
|
||||||
|
#define IPMI_CHASSIS_CONTROL_PULSE_DIAGNOSTIC_INTERRUPT 0x04
|
||||||
|
#define IPMI_CHASSIS_CONTROL_INITIATE_SOFT_SHUTDOWN 0x05
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_CONTROL_VALID(__chassis_control) \
|
||||||
|
(((__chassis_control) == IPMI_CHASSIS_CONTROL_POWER_DOWN \
|
||||||
|
|| (__chassis_control) == IPMI_CHASSIS_CONTROL_POWER_UP \
|
||||||
|
|| (__chassis_control) == IPMI_CHASSIS_CONTROL_POWER_CYCLE \
|
||||||
|
|| (__chassis_control) == IPMI_CHASSIS_CONTROL_HARD_RESET \
|
||||||
|
|| (__chassis_control) == IPMI_CHASSIS_CONTROL_PULSE_DIAGNOSTIC_INTERRUPT \
|
||||||
|
|| (__chassis_control) == IPMI_CHASSIS_CONTROL_INITIATE_SOFT_SHUTDOWN) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_FORCE_IDENTIFY_OFF 0x00
|
||||||
|
#define IPMI_CHASSIS_FORCE_IDENTIFY_ON 0x01
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_FORCE_IDENTIFY_VALID(__force_identify) \
|
||||||
|
(((__force_identify) == IPMI_CHASSIS_FORCE_IDENTIFY_OFF \
|
||||||
|
|| (__force_identify) == IPMI_CHASSIS_FORCE_IDENTIFY_ON) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_IDENTIFY_STATE_OFF 0x00
|
||||||
|
#define IPMI_CHASSIS_IDENTIFY_STATE_TEMPORARY_ON 0x01
|
||||||
|
#define IPMI_CHASSIS_IDENTIFY_STATE_INDEFINITE_ON 0x02
|
||||||
|
|
||||||
|
/* min is degenerate "off" case */
|
||||||
|
#define IPMI_CHASSIS_IDENTIFY_INTERVAL_MIN 0x00
|
||||||
|
#define IPMI_CHASSIS_IDENTIFY_INTERVAL_MAX 0xFF
|
||||||
|
|
||||||
|
/* min is degenerate "no delay" case */
|
||||||
|
#define IPMI_CHASSIS_POWER_CYCLE_INTERVAL_MIN 0x00
|
||||||
|
#define IPMI_CHASSIS_POWER_CYCLE_INTERVAL_MAX 0xFF
|
||||||
|
|
||||||
|
/* achu: it's backwards on buttons, I don't know why */
|
||||||
|
#define IPMI_CHASSIS_BUTTON_ENABLE 0x00
|
||||||
|
#define IPMI_CHASSIS_BUTTON_DISABLE 0x01
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_BUTTON_VALID(__button) \
|
||||||
|
(((__button) == IPMI_CHASSIS_BUTTON_ENABLE \
|
||||||
|
|| (__button) == IPMI_CHASSIS_BUTTON_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_BUTTON_DISABLE_ALLOWED 0x1
|
||||||
|
#define IPMI_CHASSIS_BUTTON_DISABLE_NOT_ALLOWED 0x0
|
||||||
|
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_ALWAYS_STAY_POWERED_OFF 0x00
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_RESTORE_POWER_TO_STATE_WHEN_AC_WAS_LOST 0x01
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_ALWAYS_POWER_UP_AFTER_AC_IS_LOST 0x02
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_NO_CHANGE 0x03
|
||||||
|
|
||||||
|
#define IPMI_POWER_RESTORE_POLICY_VALID(__policy) \
|
||||||
|
(((__policy) == IPMI_POWER_RESTORE_POLICY_NO_CHANGE \
|
||||||
|
|| (__policy) == IPMI_POWER_RESTORE_POLICY_ALWAYS_POWER_UP_AFTER_AC_IS_LOST \
|
||||||
|
|| (__policy) == IPMI_POWER_RESTORE_POLICY_RESTORE_POWER_TO_STATE_WHEN_AC_WAS_LOST \
|
||||||
|
|| (__policy) == IPMI_POWER_RESTORE_POLICY_ALWAYS_STAY_POWERED_OFF) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_UNKNOWN 0x00
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_CHASSIS_CONTROL_COMMAND 0x01
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_RESET_VIA_PUSHBUTTON 0x02
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_POWER_UP_VIA_POWER_PUSHBUTTON 0x03
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_WATCHDOG_EXPIRATION 0x04
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_OEM 0x05
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_AUTOMATIC_POWER_UP_ALWAYS_RESTORE 0x06
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_AUTOMATIC_POWER_UP_RESTORE_PREVIOUS 0x07
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_RESET_VIA_PEF 0x08
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_POWER_CYCLE_VIA_PEF 0x09
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_SOFT_RESET 0x0A
|
||||||
|
#define IPMI_CHASSIS_SYSTEM_RESTART_CAUSE_POWER_UP_VIA_RTC 0x0B
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTIONS_PARAMETER_VALID_UNLOCKED 0x0
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTIONS_PARAMETER_INVALID_LOCKED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTIONS_PARAMETER_VALID_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SYSTEM_BOOT_OPTIONS_PARAMETER_VALID_UNLOCKED \
|
||||||
|
|| (__value) == IPMI_SYSTEM_BOOT_OPTIONS_PARAMETER_INVALID_LOCKED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTIONS_NO_SET_SELECTOR 0x0
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTIONS_NO_BLOCK_SELECTOR 0x0
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SET_COMPLETE 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SET_IN_PROGRESS 0x01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SET_COMMIT_WRITE 0x02
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SET_IN_PROGRESS_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SYSTEM_BOOT_OPTION_SET_COMPLETE \
|
||||||
|
|| (__value) == IPMI_SYSTEM_BOOT_OPTION_SET_IN_PROGRESS \
|
||||||
|
|| (__value) == IPMI_SYSTEM_BOOT_OPTION_SET_COMMIT_WRITE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_INVALID 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_VALID 0x01
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_VALID_FOR_NEXT_BOOT 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_VALID_PERSISTENTLY 0x01
|
||||||
|
|
||||||
|
/* achu: below is not a typo, IPMI spec orders it 0x09, 0x08, 0x0B, 0x0F */
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_NO_OVERRIDE 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_PXE 0x01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_HARD_DRIVE 0x02
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_HARD_DRIVE_SAFE_MODE 0x03
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_DIAGNOSTIC_PARTITION 0x04
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_CD_DVD 0x05
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_BIOS_SETUP 0x06
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_REMOTELY_CONNECTED_FLOPPY_PRIMARY_REMOVEABLE_MEDIA 0x07
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_PRIMARY_REMOTE_MEDIA 0x09
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_REMOTELY_CONNECTED_CD_DVD 0x08
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_REMOTELY_CONNECTED_HARD_DRIVE 0x0B
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_FLOPPY_REMOVEABLE_MEDIA 0x0F
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_VALID(__boot_device) \
|
||||||
|
(((__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_NO_OVERRIDE \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_PXE \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_HARD_DRIVE \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_HARD_DRIVE_SAFE_MODE \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_DIAGNOSTIC_PARTITION \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_CD_DVD \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_BIOS_SETUP \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_REMOTELY_CONNECTED_FLOPPY_PRIMARY_REMOVEABLE_MEDIA \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_PRIMARY_REMOTE_MEDIA \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_REMOTELY_CONNECTED_CD_DVD \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_REMOTELY_CONNECTED_HARD_DRIVE \
|
||||||
|
|| (__boot_device) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_DEVICE_FORCE_FLOPPY_REMOVEABLE_MEDIA) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_DEFAULT 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_BIOS_SETTING IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_DEFAULT
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_SUPPRESS 0x01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_ENABLE 0x02
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_VALID(__console_redirection) \
|
||||||
|
(((__console_redirection) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_DEFAULT \
|
||||||
|
|| (__console_redirection) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_SUPPRESS \
|
||||||
|
|| (__console_redirection) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_CONSOLE_REDIRECTION_ENABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_NO 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_YES 0x01
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DISABLE 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_ENABLE 0x01
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_ENABLE_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SYSTEM_BOOT_OPTION_ENABLE \
|
||||||
|
|| (__value) == IPMI_SYSTEM_BOOT_OPTION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_TYPE_PC_COMPATIBLE 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_TYPE_EFI 0x01
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BIOS_BOOT_TYPE_VALID(__boot_type) \
|
||||||
|
(((__boot_type) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_TYPE_PC_COMPATIBLE \
|
||||||
|
|| (__boot_type) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_BOOT_TYPE_EFI) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_FIRMWARE_BIOS_VERBOSITY_DEFAULT 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_FIRMWARE_BIOS_VERBOSITY_QUIET 0x01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_FIRMWARE_BIOS_VERBOSITY_VERBOSE 0x02
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_FIRMWARE_BIOS_VERBOSITY_VALID(__verbosity) \
|
||||||
|
(((__verbosity) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_FIRMWARE_BIOS_VERBOSITY_DEFAULT \
|
||||||
|
|| (__verbosity) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_FIRMWARE_BIOS_VERBOSITY_QUIET \
|
||||||
|
|| (__verbosity) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAG_FIRMWARE_BIOS_VERBOSITY_VERBOSE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_DISCOVERED 0X01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_UNDISCOVERED 0X00
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_DISCOVERED_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_DISCOVERED \
|
||||||
|
|| (__value) == IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_UNDISCOVERED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_SCAN 0X01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_DO_NOT_SCAN 0X00
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_SCAN_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_SCAN \
|
||||||
|
|| (__value) == IPMI_SYSTEM_BOOT_OPTION_SERVICE_PARTITION_DO_NOT_SCAN) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_INFO_ACKNOWLEDGE 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_INFO_UNACKNOWLEDGE 0x01
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DONT_CLEAR_VALID_BIT 0x01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_CLEAR_VALID_BIT 0x00
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_CLEAR_VALID_BIT_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SYSTEM_BOOT_OPTION_DONT_CLEAR_VALID_BIT \
|
||||||
|
|| (__value) == IPMI_SYSTEM_BOOT_OPTION_CLEAR_VALID_BIT) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAGS_SET_MUX_TO_RECOMENDED_AT_END_OF_POST 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAGS_SET_MUX_TO_BMC 0x01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAGS_SET_MUX_TO_SYSTEM 0x02
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAGS_BIOS_MUX_CONTROL_OVERRIDE_VALID(__bios_mux_control) \
|
||||||
|
(((__bios_mux_control) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAGS_SET_MUX_TO_RECOMENDED_AT_END_OF_POST \
|
||||||
|
|| (__bios_mux_control) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAGS_SET_MUX_TO_BMC \
|
||||||
|
|| (__bios_mux_control) == IPMI_SYSTEM_BOOT_OPTION_BOOT_FLAGS_SET_MUX_TO_SYSTEM) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_MIN 0x00
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_MAX 0x31
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_RANGE_MIN 0x01
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_RANGE_MAX 0x15
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_VALID(__value) \
|
||||||
|
((((__value) + 1) >= (IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_MIN + 1) \
|
||||||
|
&& (__value) <= IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_RANGE_VALID(__value) \
|
||||||
|
(((__value) >= IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_RANGE_MIN \
|
||||||
|
&& (__value) <= IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_RANGE_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_DEVICE_INSTANCE_SELECTOR_INTERNAL_BITMASK 0x10
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_BOOT_OPTION_BLOCK_DATA_LEN_MAX 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_get_chassis_capabilities_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_chassis_capabilities_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_chassis_status_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_chassis_status_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_chassis_control_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_chassis_control_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_chassis_identify_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_chassis_identify_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_front_panel_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_front_panel_enables_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_power_restore_policy_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_power_restore_policy_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_power_cycle_interval_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_power_cycle_interval_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_restart_cause_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_restart_cause_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_set_in_progress_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_service_partition_selector_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_service_partition_scan_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_BMC_boot_flag_valid_bit_clearing_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_boot_info_acknowledge_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_boot_flags_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_boot_initiator_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_boot_options_boot_initiator_mailbox_rq;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_set_in_progress_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_service_partition_selector_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_service_partition_scan_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_BMC_boot_flag_valid_bit_clearing_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_boot_info_acknowledge_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_boot_flags_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_boot_initiator_info_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_boot_options_boot_initiator_mailbox_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_power_on_hours_counter_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_power_on_hours_counter_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_chassis_capabilities (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_chassis_status (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_chassis_control (uint8_t chassis_control,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_chassis_identify (const uint8_t *identify_interval,
|
||||||
|
const uint8_t *force_identify,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_front_panel_enables (uint8_t disable_power_off_button_for_power_off_only,
|
||||||
|
uint8_t disable_reset_button,
|
||||||
|
uint8_t disable_diagnostic_interrupt_button,
|
||||||
|
uint8_t disable_standby_button_for_entering_standby,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_power_restore_policy (uint8_t power_restore_policy,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_power_cycle_interval (uint8_t interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_system_restart_cause (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options (uint8_t parameter_selector,
|
||||||
|
uint8_t parameter_valid,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_set_in_progress (uint8_t parameter_valid,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_service_partition_selector (uint8_t parameter_valid,
|
||||||
|
uint8_t service_partition_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_service_partition_scan (uint8_t parameter_valid,
|
||||||
|
uint8_t service_partition_discovered,
|
||||||
|
uint8_t service_partition_scan,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_BMC_boot_flag_valid_bit_clearing (uint8_t parameter_valid,
|
||||||
|
uint8_t dont_clear_on_power_up,
|
||||||
|
uint8_t dont_clear_on_pushbutton_or_soft_reset,
|
||||||
|
uint8_t dont_clear_on_watchdog_timeout,
|
||||||
|
uint8_t dont_clear_on_chassis_control,
|
||||||
|
uint8_t dont_clear_on_PEF,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_boot_info_acknowledge (uint8_t parameter_valid,
|
||||||
|
const uint8_t *bios_or_post_handled_boot_info,
|
||||||
|
const uint8_t *os_loader_handled_boot_info,
|
||||||
|
const uint8_t *os_or_service_partition_handled_boot_info,
|
||||||
|
const uint8_t *sms_handled_boot_info,
|
||||||
|
const uint8_t *oem_handled_boot_info,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_boot_flags (uint8_t parameter_valid,
|
||||||
|
uint8_t bios_boot_type,
|
||||||
|
uint8_t boot_flags_persistent,
|
||||||
|
uint8_t boot_flags_valid,
|
||||||
|
uint8_t lock_out_reset_button,
|
||||||
|
uint8_t screen_blank,
|
||||||
|
uint8_t boot_device,
|
||||||
|
uint8_t lock_keyboard,
|
||||||
|
uint8_t clear_cmos,
|
||||||
|
uint8_t console_redirection,
|
||||||
|
uint8_t lock_out_sleep_button,
|
||||||
|
uint8_t user_password_bypass,
|
||||||
|
uint8_t force_progress_event_traps,
|
||||||
|
uint8_t firmware_bios_verbosity,
|
||||||
|
uint8_t lock_out_via_power_button,
|
||||||
|
uint8_t bios_mux_control_override,
|
||||||
|
uint8_t bios_shared_mode_override,
|
||||||
|
uint8_t device_instance_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_boot_initiator_info (uint8_t parameter_valid,
|
||||||
|
uint8_t boot_source_channel_number,
|
||||||
|
uint32_t session_id,
|
||||||
|
uint32_t boot_info_timestamp,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_boot_options_boot_initiator_mailbox (uint8_t parameter_valid,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *block_data,
|
||||||
|
unsigned int block_data_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_system_boot_options (uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_power_on_hours_counter (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_CHASSIS_CMDS_H */
|
342
source/freeipmi/usr/include/freeipmi/cmds/ipmi-dcmi-cmds.h
Normal file
342
source/freeipmi/usr/include/freeipmi/cmds/ipmi-dcmi-cmds.h
Normal file
|
@ -0,0 +1,342 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2009-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* LLNL-CODE-413270
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-Dcmi, tools and libraries to support the
|
||||||
|
* data center manageability interface (DCMI). For details, see
|
||||||
|
* http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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 Ipmi-Dcmi. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_DCMI_CMDS_H
|
||||||
|
#define IPMI_DCMI_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_SUPPORTED_DCMI_CAPABILITIES 0x01
|
||||||
|
#define IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_MANDATORY_PLATFORM_ATTRIBUTES 0x02
|
||||||
|
#define IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_OPTIONAL_PLATFORM_ATTRIBUTES 0x03
|
||||||
|
#define IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_MANAGEABILITY_ACCESS_ATTRIBUTES 0x04
|
||||||
|
#define IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_ENHANCED_SYSTEM_POWER_STATISTICS_ATTRIBUTES 0x05
|
||||||
|
|
||||||
|
#define IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_SELECTOR_VALID(__parameter_selector) \
|
||||||
|
((((__parameter_selector)) >= (IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_SUPPORTED_DCMI_CAPABILITIES) && \
|
||||||
|
((__parameter_selector)) <= (IPMI_DCMI_CAPABILITIES_INFO_PARAMETER_ENHANCED_SYSTEM_POWER_STATISTICS_ATTRIBUTES)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DCMI_AVAILABLE 0x1
|
||||||
|
#define IPMI_DCMI_NOT_PRESENT 0x0
|
||||||
|
|
||||||
|
#define IPMI_DCMI_AVAILABLE 0x1
|
||||||
|
#define IPMI_DCMI_AT_LEAST_1_PRESENT 0x1
|
||||||
|
#define IPMI_DCMI_NOT_PRESENT 0x0
|
||||||
|
|
||||||
|
#define IPMI_DCMI_CHANNEL_NOT_SUPPORTED 0xFF
|
||||||
|
|
||||||
|
#define IPMI_DCMI_TIME_DURATION_UNITS_SECONDS 0x00
|
||||||
|
#define IPMI_DCMI_TIME_DURATION_UNITS_MINUTES 0x01
|
||||||
|
#define IPMI_DCMI_TIME_DURATION_UNITS_HOURS 0x02
|
||||||
|
#define IPMI_DCMI_TIME_DURATION_UNITS_DAYS 0x03
|
||||||
|
|
||||||
|
#define IPMI_DCMI_CONFIGURATION_PARAMETER_ACTIVATE_DHCP 0x01
|
||||||
|
#define IPMI_DCMI_CONFIGURATION_PARAMETER_DISCOVERY_CONFIGURATION 0x02
|
||||||
|
#define IPMI_DCMI_CONFIGURATION_PARAMETER_DHCP_TIMING_1 0x03
|
||||||
|
#define IPMI_DCMI_CONFIGURATION_PARAMETER_DHCP_TIMING_2 0x04
|
||||||
|
#define IPMI_DCMI_CONFIGURATION_PARAMETER_DHCP_TIMING_3 0x05
|
||||||
|
|
||||||
|
#define IPMI_DCMI_CONFIGURATION_PARAMETER_SELECTOR_VALID(__parameter_selector) \
|
||||||
|
((((__parameter_selector)) >= (IPMI_DCMI_CONFIGURATION_PARAMETER_ACTIVATE_DHCP) && \
|
||||||
|
((__parameter_selector)) <= (IPMI_DCMI_CONFIGURATION_PARAMETER_DHCP_TIMING_3)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DCMI_DHCP_ACTIVATE 0x01
|
||||||
|
|
||||||
|
#define IPMI_DCMI_DHCP_INCLUDE_OPTION 0x01
|
||||||
|
#define IPMI_DCMI_DHCP_DO_NOT_INCLUDE_OPTION 0x00
|
||||||
|
|
||||||
|
#define IPMI_DCMI_DHCP_INCLUDE_OPTION_VALID(__val) \
|
||||||
|
((((__val)) == IPMI_DCMI_DHCP_INCLUDE_OPTION && \
|
||||||
|
((__val)) == IPMI_DCMI_DHCP_DO_NOT_INCLUDE_OPTION) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DCMI_DHCP_RANDOM_BACK_OFF_ENABLE 0x01
|
||||||
|
#define IPMI_DCMI_DHCP_RANDOM_BACK_OFF_DISABLE 0x00
|
||||||
|
|
||||||
|
#define IPMI_DCMI_DHCP_RANDOM_BACK_OFF_VALID(__val) \
|
||||||
|
((((__val)) == IPMI_DCMI_DHCP_RANDOM_BACK_OFF_ENABLE && \
|
||||||
|
((__val)) == IPMI_DCMI_DHCP_RANDOM_BACK_OFF_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DCMI_ASSET_TAG_NUMBER_OF_BYTES_TO_READ_MAX 16
|
||||||
|
#define IPMI_DCMI_ASSET_TAG_NUMBER_OF_BYTES_TO_WRITE_MAX 16
|
||||||
|
|
||||||
|
#define IPMI_DCMI_MAX_ASSET_TAG_LENGTH 63
|
||||||
|
|
||||||
|
#define IPMI_DCMI_ASSET_TAG_UTF8_BOM_BYTE0 0xEF
|
||||||
|
#define IPMI_DCMI_ASSET_TAG_UTF8_BOM_BYTE1 0xBB
|
||||||
|
#define IPMI_DCMI_ASSET_TAG_UTF8_BOM_BYTE2 0xBF
|
||||||
|
|
||||||
|
#define IPMI_DCMI_MANAGEMENT_CONTROLLER_IDENTIFIER_STRING_NUMBER_OF_BYTES_TO_READ_MAX 16
|
||||||
|
#define IPMI_DCMI_MANAGEMENT_CONTROLLER_IDENTIFIER_STRING_NUMBER_OF_BYTES_TO_WRITE_MAX 16
|
||||||
|
|
||||||
|
/* length includes NUL byte */
|
||||||
|
#define IPMI_DCMI_MAX_MANAGEMENT_CONTROLLER_IDENTIFIER_STRING_LENGTH 64
|
||||||
|
|
||||||
|
#define IPMI_DCMI_ENTITY_ID_INLET_TEMPERATURE 0x40
|
||||||
|
#define IPMI_DCMI_ENTITY_ID_CPU_TEMPERATURE 0x41
|
||||||
|
#define IPMI_DCMI_ENTITY_ID_BASEBOARD_TEMPERATURE 0x42
|
||||||
|
|
||||||
|
#define IPMI_DCMI_ENTITY_ID_INLET_TEMPERATURE_STR "Inlet Temperature"
|
||||||
|
#define IPMI_DCMI_ENTITY_ID_CPU_TEMPERATURE_STR "CPU Temperature"
|
||||||
|
#define IPMI_DCMI_ENTITY_ID_BASEBOARD_TEMPERATURE_STR "Baseboard temperature"
|
||||||
|
|
||||||
|
#define IPMI_DCMI_ENTITY_ID_VALID(__entity_id) \
|
||||||
|
(((__entity_id) == IPMI_DCMI_ENTITY_ID_INLET_TEMPERATURE \
|
||||||
|
|| (__entity_id) == IPMI_DCMI_ENTITY_ID_CPU_TEMPERATURE \
|
||||||
|
|| (__entity_id) == IPMI_DCMI_ENTITY_ID_BASEBOARD_TEMPERATURE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DCMI_ENTITY_INSTANCE_ALL 0x00
|
||||||
|
|
||||||
|
#define IPMI_DCMI_POWER_READING_MODE_SYSTEM_POWER_STATISTICS 0x01
|
||||||
|
#define IPMI_DCMI_POWER_READING_MODE_POWER_STATISTICS IPMI_DCMI_POWER_READING_MODE_SYSTEM_POWER_STATISTICS
|
||||||
|
#define IPMI_DCMI_POWER_READING_MODE_ENHANCED_SYSTEM_POWER_STATISTICS 0x02
|
||||||
|
|
||||||
|
/* spec only lists one mode right now, assume there can/will be more in the future */
|
||||||
|
#define IPMI_DCMI_POWER_READING_MODE_VALID(__mode) \
|
||||||
|
(((__mode) == IPMI_DCMI_POWER_READING_MODE_POWER_STATISTICS \
|
||||||
|
|| (__mode) == IPMI_DCMI_POWER_READING_MODE_ENHANCED_SYSTEM_POWER_STATISTICS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DCMI_POWER_READING_STATE_POWER_MEASUREMENT_ACTIVE 0x1
|
||||||
|
#define IPMI_DCMI_POWER_READING_STATE_NO_POWER_MEASUREMENT_AVAILABLE 0x0
|
||||||
|
|
||||||
|
/* HLiebig: specific value, not a bitmask */
|
||||||
|
/* With power limit commands */
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_NO_ACTION 0x00
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_HARD_POWER_OFF_SYSTEM 0x01
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_OEM_MIN 0x02
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_OEM_MAX 0x10
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_LOG_EVENT_TO_SEL_ONLY 0x11
|
||||||
|
|
||||||
|
/* With thermal limit commands */
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_BIT_ON 1
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_BIT_OFF 0
|
||||||
|
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_BIT_VALID(__bit) \
|
||||||
|
(((__bit) == IPMI_DCMI_EXCEPTION_ACTION_BIT_ON \
|
||||||
|
|| (__bit) == IPMI_DCMI_EXCEPTION_ACTION_BIT_OFF) ? 1 : 0)
|
||||||
|
|
||||||
|
/* achu: it's an 8 bit field, why not allow all 8 bitmasks? Beats
|
||||||
|
* me, that's what's in the spec
|
||||||
|
*/
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTIONS_MIN 0x00
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTIONS_MAX 0x1F
|
||||||
|
|
||||||
|
#define IPMI_DCMI_POWER_LIMIT_REQUESTED_MIN 0x0000
|
||||||
|
#define IPMI_DCMI_POWER_LIMIT_REQUESTED_MAX 0xFFFF
|
||||||
|
|
||||||
|
#define IPMI_DCMI_CORRECTION_TIME_LIMIT_MIN 0x00000000
|
||||||
|
#define IPMI_DCMI_CORRECTION_TIME_LIMIT_MAX 0xFFFFFFFF
|
||||||
|
|
||||||
|
#define IPMI_DCMI_MANAGEMENT_APPLICATION_STATISTICS_SAMPLING_PERIOD_MIN 0x0000
|
||||||
|
#define IPMI_DCMI_MANAGEMENT_APPLICATION_STATISTICS_SAMPLING_PERIOD_MAX 0xFFFF
|
||||||
|
|
||||||
|
#define IPMI_DCMI_EXCEPTION_ACTION_VALID(__exception_action) \
|
||||||
|
(((__exception_action) == IPMI_DCMI_EXCEPTION_ACTION_NO_ACTION \
|
||||||
|
|| (__exception_action) == IPMI_DCMI_EXCEPTION_ACTION_HARD_POWER_OFF_SYSTEM \
|
||||||
|
|| (__exception_action) == IPMI_DCMI_EXCEPTION_ACTION_LOG_EVENT_TO_SEL_ONLY \
|
||||||
|
|| ((__exception_action) >= IPMI_DCMI_EXCEPTION_ACTION_OEM_MIN && (__exception_action) <= IPMI_DCMI_EXCEPTION_ACTION_OEM_MAX)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DCMI_POWER_LIMIT_ACTIVATION_DEACTIVATE_POWER_LIMIT 0x0
|
||||||
|
#define IPMI_DCMI_POWER_LIMIT_ACTIVATION_ACTIVATE_POWER_LIMIT 0x1
|
||||||
|
|
||||||
|
#define IPMI_DCMI_POWER_LIMIT_ACTIVATION_VALID(__power_limit_activation) \
|
||||||
|
(((__power_limit_activation) == IPMI_DCMI_POWER_LIMIT_ACTIVATION_DEACTIVATE_POWER_LIMIT \
|
||||||
|
|| (__power_limit_activation) == IPMI_DCMI_POWER_LIMIT_ACTIVATION_ACTIVATE_POWER_LIMIT) ? 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_dcmi_rolling_average_time_period;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_capability_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_capability_info_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_capability_info_supported_dcmi_capabilities_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_capability_info_mandatory_platform_attributes_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_capability_info_optional_platform_attributes_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_capability_info_manageability_access_attributes_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_capability_info_enhanced_system_power_statistics_attributes_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_dcmi_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_dcmi_configuration_parameters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_dcmi_configuration_parameters_activate_dhcp_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_dcmi_configuration_parameters_discovery_configuration_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_1_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_2_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_3_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_configuration_parameters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_configuration_parameters_discovery_configuration_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_1_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_2_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_configuration_parameters_dhcp_timing_3_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_asset_tag_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_asset_tag_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_asset_tag_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_asset_tag_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_management_controller_identifier_string_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_management_controller_identifier_string_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_management_controller_identifier_string_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_management_controller_identifier_string_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_sensor_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_dcmi_sensor_info_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_power_reading_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_power_reading_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_power_limit_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_power_limit_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_power_limit_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_power_limit_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_activate_deactivate_power_limit_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_activate_deactivate_power_limit_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_thermal_limit_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_thermal_limit_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_thermal_limit_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_set_thermal_limit_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_temperature_reading_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_dcmi_get_temperature_reading_rs;
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_dcmi_capability_info (uint8_t parameter_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_dcmi_configuration_parameters (uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_dcmi_configuration_parameters_activate_dhcp (uint8_t set_selector,
|
||||||
|
uint8_t activate,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_dcmi_configuration_parameters_discovery_configuration (uint8_t set_selector,
|
||||||
|
uint8_t option_12,
|
||||||
|
uint8_t option_60_with_option_43,
|
||||||
|
uint8_t random_back_off,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_1 (uint8_t set_selector,
|
||||||
|
uint8_t initial_timeout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_2 (uint8_t set_selector,
|
||||||
|
uint16_t server_contact_timeout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_dcmi_configuration_parameters_dhcp_timing_3 (uint8_t set_selector,
|
||||||
|
uint16_t server_contact_retry_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_dcmi_configuration_parameters (uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_asset_tag (uint8_t offset_to_read,
|
||||||
|
uint8_t number_of_bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_asset_tag (uint8_t offset_to_write,
|
||||||
|
uint8_t number_of_bytes_to_write,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_management_controller_identifier_string (uint8_t offset_to_read,
|
||||||
|
uint8_t number_of_bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_management_controller_identifier_string (uint8_t offset_to_write,
|
||||||
|
uint8_t number_of_bytes_to_write,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_dcmi_sensor_info (uint8_t sensor_type,
|
||||||
|
uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
uint8_t entity_instance_start,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_power_reading (uint8_t mode,
|
||||||
|
uint8_t mode_attributes,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_power_limit (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_power_limit (uint8_t exception_actions,
|
||||||
|
uint16_t power_limit_requested,
|
||||||
|
uint32_t correction_time_limit,
|
||||||
|
uint16_t management_application_statistics_sampling_period,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_activate_deactivate_power_limit (uint8_t power_limit_activation,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_thermal_limit (uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_set_thermal_limit (uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
uint8_t temperature_limit,
|
||||||
|
uint8_t exception_actions_log_event_to_sel_only,
|
||||||
|
uint8_t exception_actions_hard_power_off_system_and_log_event,
|
||||||
|
uint16_t exception_time,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_dcmi_get_temperature_reading (uint8_t sensor_type,
|
||||||
|
uint8_t entity_id,
|
||||||
|
uint8_t entity_instance,
|
||||||
|
uint8_t entity_instance_start,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DCMI_CMDS_H */
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* 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_DCMI_OEM_CMDS_H
|
||||||
|
#define IPMI_DCMI_OEM_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DCMI_OEM_CMDS_H */
|
|
@ -0,0 +1,155 @@
|
||||||
|
/*
|
||||||
|
* 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_DEVICE_GLOBAL_CMDS_H
|
||||||
|
#define IPMI_DEVICE_GLOBAL_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_ID_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_MANUFACTURER_ID_UNSPECIFIED 0x000000
|
||||||
|
#define IPMI_MANUFACTURER_ID_RESERVED 0x0FFFFF
|
||||||
|
|
||||||
|
#define IPMI_1_5_MAJOR_VERSION 1
|
||||||
|
#define IPMI_1_5_MINOR_VERSION 5
|
||||||
|
|
||||||
|
#define IPMI_2_0_MAJOR_VERSION 2
|
||||||
|
#define IPMI_2_0_MINOR_VERSION 0
|
||||||
|
|
||||||
|
#define IPMI_SELF_TEST_RESULT_NO_ERROR 0x55
|
||||||
|
#define IPMI_SELF_TEST_RESULT_SELF_TEST_FUNCTION_NOT_IMPLEMENTED_IN_THIS_CONTROLLER 0x56
|
||||||
|
#define IPMI_SELF_TEST_RESULT_CORRUPTED_OR_INACCESSIBLE_DATA_OR_DEVICES 0x57
|
||||||
|
#define IPMI_SELF_TEST_RESULT_FATAL_HARDWARE_ERROR 0x58
|
||||||
|
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_S0_G0 0x00
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_S1 0x01
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_S2 0x02
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_S3 0x03
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_S4 0x04
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_S5_G2 0x05
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_S4_S5 0x06
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_G3 0x07
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_SLEEPING 0x08
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_G1_SLEEPING 0x09
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_OVERRIDE 0x0A
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_LEGACY_ON 0x20
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_LEGACY_OFF 0x21
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_UNKNOWN 0x2A
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_NO_CHANGE 0x7F
|
||||||
|
|
||||||
|
#define IPMI_ACPI_SYSTEM_POWER_STATE_VALID(__acpi_system_power_state) \
|
||||||
|
(((__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_S0_G0 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_S1 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_S2 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_S3 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_S4 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_S5_G2 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_S4_S5 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_G3 \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_SLEEPING \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_G1_SLEEPING \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_OVERRIDE \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_LEGACY_ON \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_LEGACY_OFF \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_UNKNOWN \
|
||||||
|
|| (__acpi_system_power_state) == IPMI_ACPI_SYSTEM_POWER_STATE_NO_CHANGE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ACPI_SET_SYSTEM_POWER_STATE_SET_SYSTEM_POWER_STATE 0x1
|
||||||
|
#define IPMI_ACPI_SET_SYSTEM_POWER_STATE_DONT_SET_SYSTEM_POWER_STATE 0x0
|
||||||
|
|
||||||
|
#define IPMI_ACPI_SET_SYSTEM_POWER_STATE_VALID(__set_system_power_state) \
|
||||||
|
(((__set_system_power_state) == IPMI_ACPI_SET_SYSTEM_POWER_STATE_SET_SYSTEM_POWER_STATE \
|
||||||
|
|| (__set_system_power_state) == IPMI_ACPI_SET_SYSTEM_POWER_STATE_DONT_SET_SYSTEM_POWER_STATE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ACPI_DEVICE_POWER_STATE_D0 0x00
|
||||||
|
#define IPMI_ACPI_DEVICE_POWER_STATE_D1 0x01
|
||||||
|
#define IPMI_ACPI_DEVICE_POWER_STATE_D2 0x02
|
||||||
|
#define IPMI_ACPI_DEVICE_POWER_STATE_D3 0x03
|
||||||
|
#define IPMI_ACPI_DEVICE_POWER_STATE_UNKNOWN 0x2A
|
||||||
|
#define IPMI_ACPI_DEVICE_POWER_STATE_NO_CHANGE 0x7F
|
||||||
|
|
||||||
|
#define IPMI_ACPI_DEVICE_POWER_STATE_VALID(__acpi_device_power_state) \
|
||||||
|
(((__acpi_device_power_state) == IPMI_ACPI_DEVICE_POWER_STATE_D0 \
|
||||||
|
|| (__acpi_device_power_state) == IPMI_ACPI_DEVICE_POWER_STATE_D1 \
|
||||||
|
|| (__acpi_device_power_state) == IPMI_ACPI_DEVICE_POWER_STATE_D2 \
|
||||||
|
|| (__acpi_device_power_state) == IPMI_ACPI_DEVICE_POWER_STATE_D3 \
|
||||||
|
|| (__acpi_device_power_state) == IPMI_ACPI_DEVICE_POWER_STATE_UNKNOWN \
|
||||||
|
|| (__acpi_device_power_state) == IPMI_ACPI_DEVICE_POWER_STATE_NO_CHANGE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ACPI_SET_DEVICE_POWER_STATE_SET_DEVICE_POWER_STATE 0x1
|
||||||
|
#define IPMI_ACPI_SET_DEVICE_POWER_STATE_DONT_SET_DEVICE_POWER_STATE 0x0
|
||||||
|
|
||||||
|
#define IPMI_ACPI_SET_DEVICE_POWER_STATE_VALID(__set_device_power_state) \
|
||||||
|
(((__set_device_power_state) == IPMI_ACPI_SET_DEVICE_POWER_STATE_SET_DEVICE_POWER_STATE \
|
||||||
|
|| (__set_device_power_state) == IPMI_ACPI_SET_DEVICE_POWER_STATE_DONT_SET_DEVICE_POWER_STATE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_GUID_LENGTH 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_get_device_id_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_id_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_cold_reset_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_cold_reset_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_warm_reset_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_warm_reset_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_self_test_results_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_self_test_results_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_acpi_power_state_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_acpi_power_state_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_acpi_power_state_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_acpi_power_state_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_guid_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_guid_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_guid_format_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_device_id (fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_cold_reset (fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_warm_reset (fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_set_acpi_power_state (uint8_t system_power_state_enumeration,
|
||||||
|
uint8_t set_system_power_state,
|
||||||
|
uint8_t device_power_state_enumeration,
|
||||||
|
uint8_t set_device_power_state,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_get_acpi_power_state (fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_get_self_test_results (fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_get_device_guid (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DEVICE_GLOBAL_CMDS_H */
|
69
source/freeipmi/usr/include/freeipmi/cmds/ipmi-event-cmds.h
Normal file
69
source/freeipmi/usr/include/freeipmi/cmds/ipmi-event-cmds.h
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* 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_EVENT_CMDS_H
|
||||||
|
#define IPMI_EVENT_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_set_event_receiver_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_event_receiver_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_event_receiver_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_event_receiver_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_platform_event_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_platform_event_rs;
|
||||||
|
|
||||||
|
int fill_cmd_set_event_receiver (uint8_t event_receiver_slave_address,
|
||||||
|
uint8_t event_receiver_lun,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_event_receiver (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
/* generator_id is optional */
|
||||||
|
int fill_cmd_platform_event (uint8_t *generator_id,
|
||||||
|
uint8_t event_message_format_version,
|
||||||
|
uint8_t sensor_type,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t event_type_code,
|
||||||
|
uint8_t event_dir,
|
||||||
|
uint8_t event_data1,
|
||||||
|
uint8_t event_data2,
|
||||||
|
uint8_t event_data3,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_EVENT_CMDS_H */
|
|
@ -0,0 +1,197 @@
|
||||||
|
/*
|
||||||
|
* 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_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_CMDS_H
|
||||||
|
#define IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_NETFN_LUN_SUPPORT_NO_COMMANDS_SUPPORTED 0x0
|
||||||
|
#define IPMI_NETFN_LUN_SUPPORT_COMMANDS_FOLLOW_BASE_IPMI_SPECIFICATION 0x1
|
||||||
|
#define IPMI_NETFN_LUN_SUPPORT_COMMANDS_EXIST_ON_LUN 0x2
|
||||||
|
|
||||||
|
#define IPMI_NETFN_PAIR_IS_NOT_USED 0x0
|
||||||
|
#define IPMI_NETFN_PAIR_IS_USED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_OPERATION_00H_TO_7FH 0x0
|
||||||
|
#define IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_OPERATION_80H_TO_FFH 0x1
|
||||||
|
|
||||||
|
#define IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_OPERATION_00H_TO_7FH \
|
||||||
|
|| (__val) == IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_OPERATION_80H_TO_FFH) ? 1 : 0)
|
||||||
|
|
||||||
|
/* achu: Yes, this one is backwards. I don't know why */
|
||||||
|
#define IPMI_COMMAND_AVAILABLE 0x0
|
||||||
|
#define IPMI_COMMAND_UNAVAILABLE 0x1
|
||||||
|
|
||||||
|
/* achu: Yes, this one is backwards. I don't know why */
|
||||||
|
#define IPMI_SUB_FUNCTION_AVAILABLE 0x0
|
||||||
|
#define IPMI_SUB_FUNCTION_UNAVAILABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_COMMAND_NOT_CONFIGURABLE 0x0
|
||||||
|
#define IPMI_COMMAND_CAN_BE_ENABLED_DISABLED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SUB_FUNCTION_NOT_CONFIGURABLE 0x0
|
||||||
|
#define IPMI_SUB_FUNCTION_CAN_BE_ENABLED_DISABLED 0x1
|
||||||
|
|
||||||
|
#define IPMI_COMMAND_DISABLED_OR_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_COMMAND_ENABLED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SUB_FUNCTION_DISABLED_OR_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_SUB_FUNCTION_ENABLED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SPECIFICATION_TYPE_IPMI 0x0
|
||||||
|
#define IPMI_SPECIFICATION_TYPE_IPMB 0x1
|
||||||
|
#define IPMI_SPECIFICATION_TYPE_ICMB 0x2
|
||||||
|
|
||||||
|
#define IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_ENABLE_DISABLE_BITMASK_LEN 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_get_netfn_support_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_netfn_support_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_support_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_support_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_sub_function_support_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_sub_function_support_specification_errata_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_sub_function_support_extension_errata_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_configurable_commands_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_configurable_commands_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_configurable_command_sub_functions_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_configurable_command_sub_functions_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_command_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_command_enables_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_enables_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_command_sub_function_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_command_sub_function_enables_defining_body_code_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_command_sub_function_enables_oem_iana_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_command_sub_function_enables_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_sub_function_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_command_sub_function_enables_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_oem_netfn_iana_support_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_oem_netfn_iana_support_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_netfn_support (uint8_t channel_number,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_command_support (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_command_sub_function_support (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_configurable_commands (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_configurable_command_sub_functions (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_command_enables (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t *enable_disable_bitmask,
|
||||||
|
unsigned int enable_disable_bitmask_len,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_command_enables (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t lun,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_command_sub_function_enables (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t sub_function_enables1,
|
||||||
|
uint32_t *sub_function_enables2,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_command_sub_function_enables_defining_body_code (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint8_t defining_body_code,
|
||||||
|
uint32_t sub_function_enables1,
|
||||||
|
uint32_t *sub_function_enables2,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_command_sub_function_enables_oem_iana (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t oem_iana,
|
||||||
|
uint32_t sub_function_enables1,
|
||||||
|
uint32_t *sub_function_enables2,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_command_sub_function_enables (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t command,
|
||||||
|
uint32_t net_fn_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_oem_netfn_iana_support (uint8_t channel_number,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t list_index,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FIRMWARE_FIREWALL_COMMAND_DISCOVERY_CMDS_H */
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Copyright (C) 2007 The Regents of the University of California.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* UCRL-CODE-232183
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-fru, a tool used for retrieving
|
||||||
|
* motherboard field replaceable unit (FRU) information. For details,
|
||||||
|
* see http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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 Ipmi-fru. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_FRU_INVENTORY_DEVICE_CMDS_H
|
||||||
|
#define IPMI_FRU_INVENTORY_DEVICE_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_FRU_DEVICE_ID_DEFAULT 0x00 /* FRU for Management Controller - Chap 38 */
|
||||||
|
#define IPMI_FRU_DEVICE_ID_RESERVED 0xFF
|
||||||
|
#define IPMI_FRU_DEVICE_ID_MIN 0x00
|
||||||
|
#define IPMI_FRU_DEVICE_ID_MAX 0xFE
|
||||||
|
#define IPMI_FRU_INVENTORY_AREA_SIZE_MAX 65536 /* 16 bit field for length */
|
||||||
|
#define IPMI_FRU_DATA_MAX 255
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_get_fru_inventory_area_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_fru_inventory_area_info_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_read_fru_data_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_read_fru_data_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_write_fru_data_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_write_fru_data_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_fru_inventory_area_info (uint8_t fru_device_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_read_fru_data (uint8_t fru_device_id,
|
||||||
|
uint16_t fru_inventory_offset_to_read,
|
||||||
|
uint8_t count_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_write_fru_data (uint8_t fru_device_id,
|
||||||
|
uint16_t fru_inventory_offset_to_write,
|
||||||
|
const void *data_to_write,
|
||||||
|
unsigned int data_to_write_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_INVENTORY_DEVICE_CMDS_H */
|
399
source/freeipmi/usr/include/freeipmi/cmds/ipmi-lan-cmds.h
Normal file
399
source/freeipmi/usr/include/freeipmi/cmds/ipmi-lan-cmds.h
Normal file
|
@ -0,0 +1,399 @@
|
||||||
|
/*
|
||||||
|
* 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_LAN_CMDS_H
|
||||||
|
#define IPMI_LAN_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_NO_SET_SELECTOR 0x0
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_NO_BLOCK_SELECTOR 0x0
|
||||||
|
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_SET_COMPLETE 0x00
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS 0x01
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE 0x02
|
||||||
|
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS_VALID(__value) \
|
||||||
|
(((__value) == IPMI_LAN_CONFIGURATION_PARAMETERS_SET_COMPLETE \
|
||||||
|
|| (__value) == IPMI_LAN_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS \
|
||||||
|
|| (__value) == IPMI_LAN_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_SUPPORTED 0x1
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_UNSUPPORTED 0x0
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_ENABLE 0x1
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_ENABLE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_AUTHENTICATION_TYPE_ENABLE \
|
||||||
|
|| (__val) == IPMI_AUTHENTICATION_TYPE_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_IP_ADDRESS_SOURCE_UNSPECIFIED 0x0
|
||||||
|
#define IPMI_IP_ADDRESS_SOURCE_STATIC 0x1
|
||||||
|
#define IPMI_IP_ADDRESS_SOURCE_DHCP 0x2
|
||||||
|
#define IPMI_IP_ADDRESS_SOURCE_BIOS 0x3
|
||||||
|
#define IPMI_IP_ADDRESS_SOURCE_OTHER 0x4
|
||||||
|
|
||||||
|
#define IPMI_IP_ADDRESS_SOURCE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_IP_ADDRESS_SOURCE_UNSPECIFIED \
|
||||||
|
|| (__val) == IPMI_IP_ADDRESS_SOURCE_STATIC \
|
||||||
|
|| (__val) == IPMI_IP_ADDRESS_SOURCE_DHCP \
|
||||||
|
|| (__val) == IPMI_IP_ADDRESS_SOURCE_BIOS \
|
||||||
|
|| (__val) == IPMI_IP_ADDRESS_SOURCE_OTHER) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_GRATUITOUS_ARPS_ENABLE 0x1
|
||||||
|
#define IPMI_BMC_GENERATED_GRATUITOUS_ARPS_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_GRATUITOUS_ARPS_VALID(__val) \
|
||||||
|
(((__val) == IPMI_BMC_GENERATED_GRATUITOUS_ARPS_ENABLE \
|
||||||
|
|| (__val) == IPMI_BMC_GENERATED_GRATUITOUS_ARPS_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_ARP_RESPONSES_ENABLE 0x1
|
||||||
|
#define IPMI_BMC_GENERATED_ARP_RESPONSES_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_ARP_RESPONSES_VALID(__val) \
|
||||||
|
(((__val) == IPMI_BMC_GENERATED_ARP_RESPONSES_ENABLE \
|
||||||
|
|| (__val) == IPMI_BMC_GENERATED_ARP_RESPONSES_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_MAX_COMMUNITY_STRING_LENGTH 18
|
||||||
|
|
||||||
|
#define IPMI_DESTINATION_SELECTOR_MIN 0
|
||||||
|
#define IPMI_DESTINATION_SELECTOR_MAX 15
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_DESTINATION_SELECTOR_VALID(__val) \
|
||||||
|
(((__val + 1) >= (IPMI_DESTINATION_SELECTOR_MIN + 1) \
|
||||||
|
|| (__val) <= IPMI_DESTINATION_SELECTOR_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
|
||||||
|
#define IPMI_DESTINATION_TYPE_PET_TRAP_DESTINATION 0x0
|
||||||
|
#define IPMI_DESTINATION_TYPE_OEM1 0x6
|
||||||
|
#define IPMI_DESTINATION_TYPE_OEM2 0x7
|
||||||
|
|
||||||
|
#define IPMI_DESTINATION_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_DESTINATION_TYPE_PET_TRAP_DESTINATION \
|
||||||
|
|| (__val) == IPMI_DESTINATION_TYPE_OEM1 \
|
||||||
|
|| (__val) == IPMI_DESTINATION_TYPE_OEM2) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ALERT_UNACKNOWLEDGED 0
|
||||||
|
#define IPMI_ALERT_ACKNOWLEDGED 1
|
||||||
|
|
||||||
|
#define IPMI_ALERT_VALID(__val) \
|
||||||
|
(((__val) == IPMI_ALERT_UNACKNOWLEDGED \
|
||||||
|
|| (__val) == IPMI_ALERT_ACKNOWLEDGED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ADDRESS_FORMAT_IPV4 0
|
||||||
|
|
||||||
|
#define IPMI_GATEWAY_SELECTOR_DEFAULT 0
|
||||||
|
#define IPMI_GATEWAY_SELECTOR_BACKUP 1
|
||||||
|
|
||||||
|
#define IPMI_GATEWAY_SELECTOR_VALID(__val) \
|
||||||
|
(((__val) == IPMI_GATEWAY_SELECTOR_DEFAULT \
|
||||||
|
|| (__val) == IPMI_GATEWAY_SELECTOR_BACKUP) ? 1 : 0)
|
||||||
|
|
||||||
|
/* 3 bit number */
|
||||||
|
#define IPMI_ALERT_RETRIES_MAX 7
|
||||||
|
|
||||||
|
#define IPMI_VLAN_ID_ENABLE 0x1
|
||||||
|
#define IPMI_VLAN_ID_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_VLAN_ID_ENABLE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_VLAN_ID_ENABLE \
|
||||||
|
|| (__val) == IPMI_VLAN_ID_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_GRATUITOUS_ARP_DO_NOT_SUSPEND 0x0
|
||||||
|
#define IPMI_BMC_GENERATED_GRATUITOUS_ARP_SUSPEND 0x1
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_GRATUITOUS_ARP_VALID(__val) \
|
||||||
|
(((__val) == IPMI_BMC_GENERATED_GRATUITOUS_ARP_DO_NOT_SUSPEND \
|
||||||
|
|| (__val) == IPMI_BMC_GENERATED_GRATUITOUS_ARP_SUSPEND) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_ARP_RESPONSE_DO_NOT_SUSPEND 0x0
|
||||||
|
#define IPMI_BMC_GENERATED_ARP_RESPONSE_SUSPEND 0x1
|
||||||
|
|
||||||
|
#define IPMI_BMC_GENERATED_ARP_RESPONSE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_BMC_GENERATED_ARP_RESPONSE_DO_NOT_SUSPEND \
|
||||||
|
|| (__val) == IPMI_BMC_GENERATED_ARP_RESPONSE_SUSPEND) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_USER_DISABLED_EVENT_MESSAGE_ON 0x1
|
||||||
|
#define IPMI_USER_DISABLED_EVENT_MESSAGE_OFF 0x0
|
||||||
|
|
||||||
|
#define IPMI_USER_DISABLED_EVENT_MESSAGE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_USER_DISABLED_EVENT_MESSAGE_ON \
|
||||||
|
|| (__val) == IPMI_USER_DISABLED_EVENT_MESSAGE_OFF) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_GET_LAN_PARAMETER 0x0
|
||||||
|
#define IPMI_GET_LAN_PARAMETER_REVISION_ONLY 0x1
|
||||||
|
|
||||||
|
#define IPMI_GET_LAN_PARAMETER_VALID(__val) \
|
||||||
|
(((__val) == IPMI_GET_LAN_PARAMETER \
|
||||||
|
|| (__val) == IPMI_GET_LAN_PARAMETER_REVISION_ONLY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CLEAR_ALL_STATISTICS 0x1
|
||||||
|
#define IPMI_DONT_CLEAR_ALL_STATISTICS 0x0
|
||||||
|
|
||||||
|
#define IPMI_CLEAR_ALL_STATISTICS_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CLEAR_ALL_STATISTICS \
|
||||||
|
|| (__val) == IPMI_DONT_CLEAR_ALL_STATISTICS) ? 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_set_lan_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_set_in_progress_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_authentication_type_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_ip_address_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_ip_address_source_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_mac_address_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_subnet_mask_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_ipv4_header_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_primary_rmcp_port_number_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_secondary_rmcp_port_number_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_bmc_generated_arp_control_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_gratuitous_arp_interval_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_default_gateway_address_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_default_gateway_mac_address_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_backup_gateway_address_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_backup_gateway_mac_address_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_community_string_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_destination_type_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_destination_addresses_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_vlan_id_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_vlan_priority_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_privilege_levels_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_lan_configuration_parameters_bad_password_threshold_rq;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_set_in_progress_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_authentication_type_support_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_authentication_type_enables_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_ip_address_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_ip_address_source_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_mac_address_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_subnet_mask_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_ipv4_header_parameters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_primary_rmcp_port_number_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_secondary_rmcp_port_number_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_bmc_generated_arp_control_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_gratuitous_arp_interval_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_default_gateway_address_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_default_gateway_mac_address_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_backup_gateway_address_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_backup_gateway_mac_address_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_community_string_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_number_of_destinations_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_destination_type_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_destination_addresses_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_vlan_id_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_vlan_priority_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_entry_support_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_entries_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_privilege_levels_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_lan_configuration_parameters_bad_password_threshold_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_suspend_bmc_arps_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_suspend_bmc_arps_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_ip_udp_rmcp_statistics_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_ip_udp_rmcp_statistics_rs;
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters (uint8_t channel_number,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_set_in_progress (uint8_t channel_number,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_authentication_type_enables (uint8_t channel_number,
|
||||||
|
uint8_t callback_level_none,
|
||||||
|
uint8_t callback_level_md2,
|
||||||
|
uint8_t callback_level_md5,
|
||||||
|
uint8_t callback_level_straight_password,
|
||||||
|
uint8_t callback_level_oem_proprietary,
|
||||||
|
uint8_t user_level_none,
|
||||||
|
uint8_t user_level_md2,
|
||||||
|
uint8_t user_level_md5,
|
||||||
|
uint8_t user_level_straight_password,
|
||||||
|
uint8_t user_level_oem_proprietary,
|
||||||
|
uint8_t operator_level_none,
|
||||||
|
uint8_t operator_level_md2,
|
||||||
|
uint8_t operator_level_md5,
|
||||||
|
uint8_t operator_level_straight_password,
|
||||||
|
uint8_t operator_level_oem_proprietary,
|
||||||
|
uint8_t admin_level_none,
|
||||||
|
uint8_t admin_level_md2,
|
||||||
|
uint8_t admin_level_md5,
|
||||||
|
uint8_t admin_level_straight_password,
|
||||||
|
uint8_t admin_level_oem_proprietary,
|
||||||
|
uint8_t oem_level_none,
|
||||||
|
uint8_t oem_level_md2,
|
||||||
|
uint8_t oem_level_md5,
|
||||||
|
uint8_t oem_level_straight_password,
|
||||||
|
uint8_t oem_level_oem_proprietary,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_ip_address (uint8_t channel_number,
|
||||||
|
uint32_t ip_address,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_ip_address_source (uint8_t channel_number,
|
||||||
|
uint8_t ip_address_source,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_mac_address (uint8_t channel_number,
|
||||||
|
uint64_t mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_subnet_mask (uint8_t channel_number,
|
||||||
|
uint32_t subnet_mask,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_ipv4_header_parameters (uint8_t channel_number,
|
||||||
|
uint8_t time_to_live,
|
||||||
|
uint8_t flags,
|
||||||
|
uint8_t type_of_service,
|
||||||
|
uint8_t precedence,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_primary_rmcp_port_number (uint8_t channel_number,
|
||||||
|
uint16_t primary_rmcp_port_number,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_secondary_rmcp_port_number (uint8_t channel_number,
|
||||||
|
uint16_t secondary_rmcp_port_number,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_bmc_generated_arp_control (uint8_t channel_number,
|
||||||
|
uint8_t bmc_generated_gratuitous_arps,
|
||||||
|
uint8_t bmc_generated_arp_responses,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_gratuitous_arp_interval (uint8_t channel_number,
|
||||||
|
uint8_t gratuitous_arp_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_default_gateway_address (uint8_t channel_number,
|
||||||
|
uint32_t ip_address,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_default_gateway_mac_address (uint8_t channel_number,
|
||||||
|
uint64_t mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_backup_gateway_address (uint8_t channel_number,
|
||||||
|
uint32_t ip_address,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_backup_gateway_mac_address (uint8_t channel_number,
|
||||||
|
uint64_t mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_community_string (uint8_t channel_number,
|
||||||
|
const char *community_string,
|
||||||
|
unsigned int community_string_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_destination_type (uint8_t channel_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t destination_type,
|
||||||
|
uint8_t alert_acknowledge,
|
||||||
|
uint8_t alert_acknowledge_timeout,
|
||||||
|
uint8_t retries,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_destination_addresses (uint8_t channel_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t gateway_selector,
|
||||||
|
uint32_t alerting_ip_address,
|
||||||
|
uint64_t alerting_mac_address,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_vlan_id (uint8_t channel_number,
|
||||||
|
uint16_t vlan_id,
|
||||||
|
uint8_t vlan_id_enable,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_vlan_priority (uint8_t channel_number,
|
||||||
|
uint8_t vlan_priority,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_rmcpplus_messaging_cipher_suite_privilege_levels (uint8_t channel_number,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_1,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_2,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_3,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_4,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_5,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_6,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_7,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_8,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_9,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_10,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_11,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_12,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_13,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_14,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_15,
|
||||||
|
uint8_t maximum_privilege_for_cipher_suite_16,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_lan_configuration_parameters_bad_password_threshold (uint8_t channel_number,
|
||||||
|
uint8_t user_disabled_event_message,
|
||||||
|
uint8_t bad_password_threshold_number,
|
||||||
|
uint16_t attempt_count_reset_interval,
|
||||||
|
uint16_t user_lockout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_lan_configuration_parameters (uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_suspend_bmc_arps (uint8_t channel_number,
|
||||||
|
uint8_t gratuitous_arp_suspend,
|
||||||
|
uint8_t arp_response_suspend,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_ip_udp_rmcp_statistics (uint8_t channel_number,
|
||||||
|
uint8_t clear_all_statistics,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_LAN_CMDS_H */
|
|
@ -0,0 +1,654 @@
|
||||||
|
/*
|
||||||
|
* 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_MESSAGING_SUPPORT_CMDS_H
|
||||||
|
#define IPMI_MESSAGING_SUPPORT_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_MAX_USER_NAME_LENGTH 16
|
||||||
|
#define IPMI_1_5_MAX_PASSWORD_LENGTH 16
|
||||||
|
#define IPMI_2_0_MAX_PASSWORD_LENGTH 20
|
||||||
|
#define IPMI_MAX_PASSWORD_LENGTH IPMI_2_0_MAX_PASSWORD_LENGTH
|
||||||
|
#define IPMI_CHALLENGE_STRING_LENGTH 16
|
||||||
|
#define IPMI_MAX_K_R_LENGTH 20
|
||||||
|
#define IPMI_MAX_K_G_LENGTH 20
|
||||||
|
|
||||||
|
#define IPMI_BMC_GLOBAL_ENABLES_ENABLED 0x1
|
||||||
|
#define IPMI_BMC_GLOBAL_ENALBES_DISABLED 0x0
|
||||||
|
|
||||||
|
#define IPMI_BMC_GLOBAL_ENABLES_VALID(__val) \
|
||||||
|
(((__val) == IPMI_BMC_GLOBAL_ENABLES_ENABLED \
|
||||||
|
|| (__val) == IPMI_BMC_GLOBAL_ENALBES_DISABLED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_MESSAGE_FLAGS_CLEAR 0x1
|
||||||
|
#define IPMI_MESSAGE_FLAGS_DONT_CLEAR 0x0
|
||||||
|
|
||||||
|
#define IPMI_MESSAGE_FLAGS_VALID(__val) \
|
||||||
|
(((__val) == IPMI_MESSAGE_FLAGS_CLEAR \
|
||||||
|
|| (__val) == IPMI_MESSAGE_FLAGS_DONT_CLEAR) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_OPERATION_DISABLE_CHANNEL 0x00
|
||||||
|
#define IPMI_CHANNEL_OPERATION_ENABLE_CHANNEL 0x01
|
||||||
|
#define IPMI_CHANNEL_OPERATION_GET_CHANNEL_ENABLE_DISABLE_STATE 0x02
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CHANNEL_OPERATION_DISABLE_CHANNEL \
|
||||||
|
|| (__val) == IPMI_CHANNEL_OPERATION_ENABLE_CHANNEL \
|
||||||
|
|| (__val) == IPMI_CHANNEL_OPERATION_GET_CHANNEL_ENABLE_DISABLE_STATE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_DISABLED 0x00
|
||||||
|
#define IPMI_CHANNEL_ENABLED 0x01
|
||||||
|
|
||||||
|
#define IPMI_SEND_MESSAGE_WITH_AUTHENTICATION 0x1
|
||||||
|
#define IPMI_SEND_MESSAGE_AUTHENTICATION_NOT_REQUIRED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SEND_MESSAGE_AUTHENTICATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SEND_MESSAGE_WITH_AUTHENTICATION \
|
||||||
|
|| (__val) == IPMI_SEND_MESSAGE_AUTHENTICATION_NOT_REQUIRED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SEND_MESSAGE_WITH_ENCRYPTION 0x1
|
||||||
|
#define IPMI_SEND_MESSAGE_ENCRYPTION_NOT_REQUIRED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SEND_MESSAGE_ENCRYPTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SEND_MESSAGE_WITH_ENCRYPTION \
|
||||||
|
|| (__val) == IPMI_SEND_MESSAGE_ENCRYPTION_NOT_REQUIRED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SEND_MESSAGE_TRACKING_OPERATION_NO_TRACKING 0x0
|
||||||
|
#define IPMI_SEND_MESSAGE_TRACKING_OPERATION_TRACKING_REQUEST 0x1
|
||||||
|
#define IPMI_SEND_MESSAGE_TRACKING_OPERATION_SEND_RAW 0x2
|
||||||
|
|
||||||
|
#define IPMI_SEND_MESSAGE_TRACKING_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SEND_MESSAGE_TRACKING_OPERATION_NO_TRACKING \
|
||||||
|
|| (__val) == IPMI_SEND_MESSAGE_TRACKING_OPERATION_TRACKING_REQUEST \
|
||||||
|
|| (__val) == IPMI_SEND_MESSAGE_TRACKING_OPERATION_SEND_RAW) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INTERFACE_SSIF 0x00
|
||||||
|
#define IPMI_SYSTEM_INTERFACE_KCS 0x01
|
||||||
|
#define IPMI_SYSTEM_INTERFACE_SMIC 0x02
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INTERFACE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SYSTEM_INTERFACE_SSIF \
|
||||||
|
|| (__val) == IPMI_SYSTEM_INTERFACE_KCS \
|
||||||
|
|| (__val) == IPMI_SYSTEM_INTERFACE_SMIC) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SSIF_SYSTEM_INTERFACE_VERSION_1 0x0
|
||||||
|
|
||||||
|
#define IPMI_SSIF_SYSTEM_INTERFACE_IMPLEMENTS_PEC 0x1
|
||||||
|
#define IPMI_SSIF_SYSTEM_INTERFACE_DOES_NOT_SUPPORT_PEC 0x0
|
||||||
|
|
||||||
|
#define IPMI_SSIF_SYSTEM_INTERFACE_TRANSACTION_SUPPORT_SINGLE_PART_READS_WRITES_SUPPORTED 0x0
|
||||||
|
#define IPMI_SSIF_SYSTEM_INTERFACE_TRANSACTION_SUPPORT_MULTI_PART_READS_WRITES_SUPPORTED_START_AND_END_ONLY 0x1
|
||||||
|
#define IPMI_SSIF_SYSTEM_INTERFACE_TRANSACTION_SUPPORT_MULTI_PART_READS_WRITES_SUPPORTED_START_MIDDLE_END 0x2
|
||||||
|
|
||||||
|
#define IPMI_KCS_SYSTEM_INTERFACE_VERSION_1 0x0
|
||||||
|
|
||||||
|
#define IPMI_BUS_TYPE_PUBLIC 0x0
|
||||||
|
#define IPMI_BUS_TYPE_PRIVATE 0x1
|
||||||
|
|
||||||
|
#define IPMI_BUS_TYPE_VALID(__bus_type) \
|
||||||
|
(((__bus_type) == IPMI_BUS_TYPE_PUBLIC \
|
||||||
|
|| (__bus_type) == IPMI_BUS_TYPE_PRIVATE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_GET_IPMI_V20_EXTENDED_DATA 0x01
|
||||||
|
#define IPMI_GET_IPMI_V15_DATA 0x00
|
||||||
|
|
||||||
|
#define IPMI_GET_IPMI_DATA_VALID(__val) \
|
||||||
|
(((__val) == IPMI_GET_IPMI_V20_EXTENDED_DATA \
|
||||||
|
|| (__val) == IPMI_GET_IPMI_V15_DATA) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_GET_SYSTEM_INFO_PARAMETER 0x0
|
||||||
|
#define IPMI_GET_SYSTEM_INFO_PARAMETER_REVISION_ONLY 0x1
|
||||||
|
|
||||||
|
#define IPMI_GET_SYSTEM_INFO_PARAMETER_VALID(__val) \
|
||||||
|
(((__val) == IPMI_GET_SYSTEM_INFO_PARAMETER \
|
||||||
|
|| (__val) == IPMI_GET_SYSTEM_INFO_PARAMETER_REVISION_ONLY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INFO_PARAMETERS_NO_SET_SELECTOR 0x0
|
||||||
|
#define IPMI_SYSTEM_INFO_PARAMETERS_NO_BLOCK_SELECTOR 0x0
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INFO_PARAMETERS_SET_COMPLETE 0x00
|
||||||
|
#define IPMI_SYSTEM_INFO_PARAMETERS_SET_IN_PROGRESS 0x01
|
||||||
|
#define IPMI_SYSTEM_INFO_PARAMETERS_SET_COMMIT_WRITE 0x02
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INFO_PARAMETERS_SET_IN_PROGRESS_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SYSTEM_INFO_PARAMETERS_SET_COMPLETE \
|
||||||
|
|| (__value) == IPMI_SYSTEM_INFO_PARAMETERS_SET_IN_PROGRESS \
|
||||||
|
|| (__value) == IPMI_SYSTEM_INFO_PARAMETERS_SET_COMMIT_WRITE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INFO_ENCODING_ASCII_LATIN1 0x0
|
||||||
|
#define IPMI_SYSTEM_INFO_ENCODING_UTF_8 0x1
|
||||||
|
#define IPMI_SYSTEM_INFO_ENCODING_UNICODE 0x2
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INFO_ENCODING_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SYSTEM_INFO_ENCODING_ASCII_LATIN1 \
|
||||||
|
|| (__val) == IPMI_SYSTEM_INFO_ENCODING_UTF_8 \
|
||||||
|
|| (__val) == IPMI_SYSTEM_INFO_ENCODING_UNICODE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SYSTEM_INFO_FIRST_SET_STRING_LEN_MAX 14
|
||||||
|
#define IPMI_SYSTEM_INFO_SET_STRING_LEN_MAX 16
|
||||||
|
#define IPMI_SYSTEM_INFO_STRING_LEN_MAX 255
|
||||||
|
|
||||||
|
#define IPMI_LIST_ALGORITHMS_BY_CIPHER_SUITE 0x1
|
||||||
|
#define IPMI_LIST_SUPPORTED_ALGORITHMS 0x0
|
||||||
|
|
||||||
|
#define IPMI_LIST_ALGORITHM_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_LIST_ALGORITHMS_BY_CIPHER_SUITE \
|
||||||
|
|| (__val) == IPMI_LIST_SUPPORTED_ALGORITHMS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_MESSAGING_ACCESS_MODE_DISABLED 0x0
|
||||||
|
#define IPMI_MESSAGING_ACCESS_MODE_PRE_BOOT_ONLY 0x1
|
||||||
|
#define IPMI_MESSAGING_ACCESS_MODE_ALWAYS_AVAILABLE 0x2
|
||||||
|
#define IPMI_MESSAGING_ACCESS_MODE_SHARED 0x3
|
||||||
|
|
||||||
|
#define IPMI_MESSAGING_ACCESS_MODE_VALID(__access_mode) \
|
||||||
|
(((__access_mode) == IPMI_MESSAGING_ACCESS_MODE_DISABLED \
|
||||||
|
|| (__access_mode) == IPMI_MESSAGING_ACCESS_MODE_PRE_BOOT_ONLY \
|
||||||
|
|| (__access_mode) == IPMI_MESSAGING_ACCESS_MODE_ALWAYS_AVAILABLE \
|
||||||
|
|| (__access_mode) == IPMI_MESSAGING_ACCESS_MODE_SHARED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_USER_LEVEL_AUTHENTICATION_ENABLE 0x0
|
||||||
|
#define IPMI_USER_LEVEL_AUTHENTICATION_DISABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_USER_LEVEL_AUTHENTICATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_USER_LEVEL_AUTHENTICATION_ENABLE \
|
||||||
|
|| (__val) == IPMI_USER_LEVEL_AUTHENTICATION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PER_MESSAGE_AUTHENTICATION_ENABLE 0x0
|
||||||
|
#define IPMI_PER_MESSAGE_AUTHENTICATION_DISABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_PER_MESSAGE_AUTHENTICATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PER_MESSAGE_AUTHENTICATION_ENABLE \
|
||||||
|
|| (__val) == IPMI_PER_MESSAGE_AUTHENTICATION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_ALERTING_ENABLE 0x0
|
||||||
|
#define IPMI_PEF_ALERTING_DISABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_PEF_ALERTING_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_ALERTING_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_ALERTING_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_ACCESS_NO_CHANGE 0x0
|
||||||
|
#define IPMI_CHANNEL_ACCESS_SET_NON_VOLATILE 0x1
|
||||||
|
#define IPMI_CHANNEL_ACCESS_SET_VOLATILE 0x2
|
||||||
|
#define IPMI_CHANNEL_ACCESS_RESERVED 0x3
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_ACCESS_VALID(__access_mode) \
|
||||||
|
(((__access_mode) == IPMI_CHANNEL_ACCESS_NO_CHANGE \
|
||||||
|
|| (__access_mode) == IPMI_CHANNEL_ACCESS_SET_NON_VOLATILE \
|
||||||
|
|| (__access_mode) == IPMI_CHANNEL_ACCESS_SET_VOLATILE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PRIVILEGE_LEVEL_LIMIT_NO_CHANGE 0x0
|
||||||
|
#define IPMI_PRIVILEGE_LEVEL_LIMIT_SET_NON_VOLATILE 0x1
|
||||||
|
#define IPMI_PRIVILEGE_LEVEL_LIMIT_SET_VOLATILE 0x2
|
||||||
|
#define IPMI_PRIVILEGE_LEVEL_LIMIT_RESERVED 0x3
|
||||||
|
|
||||||
|
#define IPMI_PRIVILEGE_LEVEL_LIMIT_SET_VALID(__privilege_level_limit) \
|
||||||
|
(((__privilege_level_limit) == IPMI_PRIVILEGE_LEVEL_LIMIT_NO_CHANGE \
|
||||||
|
|| (__privilege_level_limit) == IPMI_PRIVILEGE_LEVEL_LIMIT_SET_NON_VOLATILE \
|
||||||
|
|| (__privilege_level_limit) == IPMI_PRIVILEGE_LEVEL_LIMIT_SET_VOLATILE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_ACCESS_GET_NON_VOLATILE 0x1
|
||||||
|
#define IPMI_CHANNEL_ACCESS_GET_VOLATILE 0x2
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_ACCESS_GET_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CHANNEL_ACCESS_GET_NON_VOLATILE \
|
||||||
|
|| (__val) == IPMI_CHANNEL_ACCESS_GET_VOLATILE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_USER_RESTRICTED_TO_CALLBACK_ENABLE 0x1
|
||||||
|
#define IPMI_USER_RESTRICTED_TO_CALLBACK_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_USER_RESTRICTED_TO_CALLBACK_VALID(__val) \
|
||||||
|
(((__val) == IPMI_USER_RESTRICTED_TO_CALLBACK_ENABLE \
|
||||||
|
|| (__val) == IPMI_USER_RESTRICTED_TO_CALLBACK_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PRIVILEGE_LEVEL_LIMIT_VALID(__privilege_level) \
|
||||||
|
(((__privilege_level) == IPMI_PRIVILEGE_LEVEL_CALLBACK \
|
||||||
|
|| (__privilege_level) == IPMI_PRIVILEGE_LEVEL_USER \
|
||||||
|
|| (__privilege_level) == IPMI_PRIVILEGE_LEVEL_OPERATOR \
|
||||||
|
|| (__privilege_level) == IPMI_PRIVILEGE_LEVEL_ADMIN \
|
||||||
|
|| (__privilege_level) == IPMI_PRIVILEGE_LEVEL_OEM \
|
||||||
|
|| (__privilege_level) == IPMI_PRIVILEGE_LEVEL_NO_ACCESS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_USER_LINK_AUTHENTICATION_ENABLE 0x1
|
||||||
|
#define IPMI_USER_LINK_AUTHENTICATION_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_USER_LINK_AUTHENTICATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_USER_LINK_AUTHENTICATION_ENABLE \
|
||||||
|
|| (__val) == IPMI_USER_LINK_AUTHENTICATION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_USER_IPMI_MESSAGING_ENABLE 0x1
|
||||||
|
#define IPMI_USER_IPMI_MESSAGING_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_USER_IPMI_MESSAGING_VALID(__val) \
|
||||||
|
(((__val) == IPMI_USER_IPMI_MESSAGING_ENABLE \
|
||||||
|
|| (__val) == IPMI_USER_IPMI_MESSAGING_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANGE_BITS_YES 0x1
|
||||||
|
#define IPMI_CHANGE_BITS_NO 0x0
|
||||||
|
|
||||||
|
#define IPMI_CHANGE_BITS_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CHANGE_BITS_YES \
|
||||||
|
|| (__val) == IPMI_CHANGE_BITS_NO) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SESSION_SUPPORT_SESSION_LESS 0x00
|
||||||
|
#define IPMI_SESSION_SUPPORT_SINGLE_SESSION 0x01
|
||||||
|
#define IPMI_SESSION_SUPPORT_MULTI_SESSION 0x02
|
||||||
|
#define IPMI_SESSION_SUPPORT_SESSION_BASED 0x03
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_READ_KEY 0x0
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_SET_KEY 0x1
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_LOCK_KEY 0x2
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CHANNEL_SECURITY_KEYS_OPERATION_READ_KEY \
|
||||||
|
|| (__val) == IPMI_CHANNEL_SECURITY_KEYS_OPERATION_SET_KEY \
|
||||||
|
|| (__val) == IPMI_CHANNEL_SECURITY_KEYS_OPERATION_LOCK_KEY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_R 0x0
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_G 0x1
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_R \
|
||||||
|
|| (__val) == IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_G) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_LOCK_STATUS_KEY_IS_NOT_LOCKABLE 0x0
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_LOCK_STATUS_KEY_IS_LOCKED 0x1
|
||||||
|
#define IPMI_CHANNEL_SECURITY_KEYS_LOCK_STATUS_KEY_IS_UNLOCKED 0x2
|
||||||
|
|
||||||
|
#define IPMI_PASSWORD_OPERATION_DISABLE_USER 0x0
|
||||||
|
#define IPMI_PASSWORD_OPERATION_ENABLE_USER 0x1
|
||||||
|
#define IPMI_PASSWORD_OPERATION_SET_PASSWORD 0x2
|
||||||
|
#define IPMI_PASSWORD_OPERATION_TEST_PASSWORD 0x3
|
||||||
|
|
||||||
|
#define IPMI_PASSWORD_OPERATION_VALID(__operation) \
|
||||||
|
(((__operation) == IPMI_PASSWORD_OPERATION_DISABLE_USER \
|
||||||
|
|| (__operation) == IPMI_PASSWORD_OPERATION_ENABLE_USER \
|
||||||
|
|| (__operation) == IPMI_PASSWORD_OPERATION_SET_PASSWORD \
|
||||||
|
|| (__operation) == IPMI_PASSWORD_OPERATION_TEST_PASSWORD) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PASSWORD_SIZE_16_BYTES 0x0
|
||||||
|
#define IPMI_PASSWORD_SIZE_20_BYTES 0x1
|
||||||
|
|
||||||
|
#define IPMI_PASSWORD_SIZE_VALID(__password_size) \
|
||||||
|
(((__password_size) == IPMI_PASSWORD_SIZE_16_BYTES \
|
||||||
|
|| (__password_size) == IPMI_PASSWORD_SIZE_20_BYTES) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_USER_ID_ENABLE_STATUS_UNSPECIFIED 0x0
|
||||||
|
#define IPMI_USER_ID_ENABLE_STATUS_ENABLED 0x1
|
||||||
|
#define IPMI_USER_ID_ENABLE_STATUS_DISABLED 0x2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_set_bmc_global_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_bmc_global_enables_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_bmc_global_enables_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_bmc_global_enables_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_clear_message_flags_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_clear_message_flags_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_message_flags_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_message_flags_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_enable_message_channel_receive_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_enable_message_channel_receive_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_message_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_message_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_send_message_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_send_message_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_read_event_message_buffer_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_read_event_message_buffer_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_ssif_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_kcs_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_bt_interface_capabilities_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_bt_interface_capabilities_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_master_write_read_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_master_write_read_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_authentication_capabilities_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_authentication_capabilities_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_guid_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_guid_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_guid_format_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_set_in_progress_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_firmware_version_first_set_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_firmware_version_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_name_first_set_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_name_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_primary_operating_system_name_first_set_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_primary_operating_system_name_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_operating_system_name_first_set_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_operating_system_name_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_present_os_version_number_first_set_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_present_os_version_number_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_bmc_url_first_set_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_bmc_url_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_base_os_hypervisor_url_first_set_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_system_info_parameters_base_os_hypervisor_url_rq;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_set_in_progress_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_firmware_version_first_set_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_firmware_version_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_name_first_set_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_name_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_primary_operating_system_name_first_set_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_primary_operating_system_name_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_operating_system_name_first_set_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_operating_system_name_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_present_os_version_number_first_set_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_present_os_version_number_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_bmc_url_first_set_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_bmc_url_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_base_os_hypervisor_url_first_set_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_system_info_parameters_base_os_hypervisor_url_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_cipher_suites_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_cipher_suites_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_session_challenge_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_session_challenge_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_activate_session_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_activate_session_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_session_privilege_level_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_session_privilege_level_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_close_session_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_close_session_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_channel_access_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_channel_access_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_access_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_access_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_channel_info_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_channel_security_keys_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_channel_security_keys_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_user_access_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_user_access_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_user_access_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_user_access_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_user_name_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_user_name_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_user_name_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_user_name_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_user_password_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_user_password_rs;
|
||||||
|
|
||||||
|
int fill_cmd_set_bmc_global_enables (uint8_t receive_message_queue_interrupt,
|
||||||
|
uint8_t event_message_buffer_full_interrupt,
|
||||||
|
uint8_t event_message_buffer,
|
||||||
|
uint8_t system_event_logging,
|
||||||
|
uint8_t oem_0,
|
||||||
|
uint8_t oem_1,
|
||||||
|
uint8_t oem_2,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_bmc_global_enables (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_clear_message_flags (uint8_t receive_message_queue,
|
||||||
|
uint8_t event_message_buffer,
|
||||||
|
uint8_t watchdog_pre_timeout_interrupt_flag,
|
||||||
|
uint8_t oem_0,
|
||||||
|
uint8_t oem_1,
|
||||||
|
uint8_t oem_2,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_message_flags (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_enable_message_channel_receive (uint8_t channel_number,
|
||||||
|
uint8_t channel_operation,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_message (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_send_message (uint8_t channel_number,
|
||||||
|
uint8_t message_authentication,
|
||||||
|
uint8_t message_encryption,
|
||||||
|
uint8_t tracking_operation,
|
||||||
|
const void *message_data,
|
||||||
|
unsigned int message_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_read_event_message_buffer (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_system_interface_capabilities (uint8_t system_interface,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_bt_interface_capabilities (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_master_write_read (uint8_t bus_type,
|
||||||
|
uint8_t bus_id,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t slave_address,
|
||||||
|
uint8_t read_count,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_channel_authentication_capabilities (uint8_t channel_number,
|
||||||
|
uint8_t maximum_privilege_level,
|
||||||
|
uint8_t get_ipmi_v20_extended_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_system_guid (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters (uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_set_in_progress (uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_system_firmware_version_first_set (uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_system_firmware_version (uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_system_name_first_set (uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_system_name (uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_primary_operating_system_name_first_set (uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_primary_operating_system_name (uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_operating_system_name_first_set (uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_operating_system_name (uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_present_os_version_number_first_set (uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_present_os_version_number (uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_bmc_url_first_set (uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_bmc_url (uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_base_os_hypervisor_url_first_set (uint8_t set_selector,
|
||||||
|
uint8_t encoding,
|
||||||
|
uint8_t string_length,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_system_info_parameters_base_os_hypervisor_url (uint8_t set_selector,
|
||||||
|
const void *string_block,
|
||||||
|
unsigned int string_block_length,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_system_info_parameters (uint8_t get_parameter,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_channel_cipher_suites (uint8_t channel_number,
|
||||||
|
uint8_t payload_type,
|
||||||
|
uint8_t list_index,
|
||||||
|
uint8_t list_algorithm_type,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_session_challenge (uint8_t authentication_type,
|
||||||
|
const char *user_name,
|
||||||
|
unsigned int user_name_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_activate_session (uint8_t authentication_type,
|
||||||
|
uint8_t maximum_privilege_level,
|
||||||
|
const void *challenge_string,
|
||||||
|
unsigned int challenge_string_len,
|
||||||
|
uint32_t initial_outbound_sequence_number,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_session_privilege_level (uint8_t privilege_level,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_close_session (uint32_t session_id,
|
||||||
|
uint8_t *session_handle,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_channel_access (uint8_t channel_number,
|
||||||
|
uint8_t ipmi_messaging_access_mode,
|
||||||
|
uint8_t user_level_authentication,
|
||||||
|
uint8_t per_message_authentication,
|
||||||
|
uint8_t pef_alerting,
|
||||||
|
uint8_t channel_access_set,
|
||||||
|
uint8_t channel_privilege_level_limit,
|
||||||
|
uint8_t channel_privilege_level_limit_set,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_channel_access (uint8_t channel_number,
|
||||||
|
uint8_t channel_access_get,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_channel_info (uint8_t channel_number, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_channel_security_keys (uint8_t channel_number,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t key_id,
|
||||||
|
const void *key_value,
|
||||||
|
unsigned int key_value_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_user_access (uint8_t channel_number,
|
||||||
|
uint8_t user_ipmi_messaging,
|
||||||
|
uint8_t user_link_authentication,
|
||||||
|
uint8_t user_restricted_to_callback,
|
||||||
|
uint8_t change_bits_in_byte,
|
||||||
|
uint8_t user_id,
|
||||||
|
uint8_t user_privilege_level_limit,
|
||||||
|
uint8_t user_session_limit,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_user_access (uint8_t channel_number,
|
||||||
|
uint8_t user_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_user_name (uint8_t user_id,
|
||||||
|
const char *user_name,
|
||||||
|
unsigned int user_name_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_user_name (uint8_t user_id, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_user_password (uint8_t user_id,
|
||||||
|
uint8_t password_size,
|
||||||
|
uint8_t operation,
|
||||||
|
const char *password,
|
||||||
|
unsigned int password_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_MESSAGING_SUPPORT_CMDS_H */
|
|
@ -0,0 +1,537 @@
|
||||||
|
/*
|
||||||
|
* 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_OEM_INTEL_NODE_MANAGER_CMDS_H
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel Node Manager
|
||||||
|
*
|
||||||
|
* For Intel Chips, not just Intel Motherboards. Confirmed for:
|
||||||
|
*
|
||||||
|
* Intel S5500WB/Penguin Computing Relion 700
|
||||||
|
* Intel S2600JF/Appro 512X
|
||||||
|
* Intel S2600KP
|
||||||
|
* Intel S2600WT2
|
||||||
|
* Intel S2600WTT
|
||||||
|
* Inventec 5441/Dell Xanadu II
|
||||||
|
* Inventec 5442/Dell Xanadu III
|
||||||
|
* Quanta S99Q/Dell FS12-TY
|
||||||
|
* Quanta QSSC-S4R/Appro GB812X-CN
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_MIN 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_MAX 0xF
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_ENTIRE_PLATFORM 0x00
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_CPU_SUBSYSTEM 0x01
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_MEMORY_SUBSYSTEM 0x02
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_RESERVED 0x03
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_HIGH_POWER_IO_SUBSYSTEM 0x04
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_ENTIRE_PLATFORM \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_CPU_SUBSYSTEM \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_MEMORY_SUBSYSTEM \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_DOMAIN_ID_HIGH_POWER_IO_SUBSYSTEM) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_GLOBAL_DISABLE_NODE_MANAGER_POLICY_CONTROL 0x00
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_GLOBAL_ENABLE_NODE_MANAGER_POLICY_CONTROL 0x01
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_DOMAIN_DISABLE_NODE_MANAGER_POLICIES 0x02
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_DOMAIN_ENABLE_NODE_MANAGER_POLITICES 0x03
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_POLICY_DISABLE_NODE_MANAGER_POLICIES 0x04
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_POLICY_ENABLE_NODE_MANAGER_POLITICES 0x05
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_GLOBAL_DISABLE_NODE_MANAGER_POLICY_CONTROL \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_GLOBAL_ENABLE_NODE_MANAGER_POLICY_CONTROL \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_DOMAIN_DISABLE_NODE_MANAGER_POLICIES \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_DOMAIN_ENABLE_NODE_MANAGER_POLITICES \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_POLICY_DISABLE_NODE_MANAGER_POLICIES \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLE_DISABLE_PER_POLICY_ENABLE_NODE_MANAGER_POLITICES) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLED 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_DISABLED 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLED_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ENABLED \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_DISABLED) ? 1 : 0)
|
||||||
|
|
||||||
|
/* Celsius */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_NO_POLICY_TRIGGER 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_INLET_TEMPERATURE_LIMIT_POLICY_TRIGGER 0x1
|
||||||
|
/* 1/10 seconds units */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_MISSING_POWER_READING_TIMEOUT 0x2
|
||||||
|
/* 1/10 seconds units */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_TIME_AFTER_PLATFORM_RESET_TRIGGER 0x3
|
||||||
|
/* Only to domain 0 = Entire Platform */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_BOOT_TIME_POLICY 0x4
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_NO_POLICY_TRIGGER \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_INLET_TEMPERATURE_LIMIT_POLICY_TRIGGER \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_MISSING_POWER_READING_TIMEOUT \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_TIME_AFTER_PLATFORM_RESET_TRIGGER \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TRIGGER_TYPE_BOOT_TIME_POLICY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_CONFIGURATION_ACTION_POLICY_POINTED_BY_POLICY_ID_SHALL_BE_REMOVED 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_CONFIGURATION_ACTION_ADD_POWER_POLICY 0x1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_CONFIGURATION_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_CONFIGURATION_ACTION_POLICY_POINTED_BY_POLICY_ID_SHALL_BE_REMOVED \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_CONFIGURATION_ACTION_ADD_POWER_POLICY) ? 1 : 0)
|
||||||
|
|
||||||
|
/* achu: not in spec, assume it to be true */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_EXCEPTION_ACTION_ENABLE 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_EXCEPTION_ACTION_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_EXCEPTION_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_EXCEPTION_ACTION_ENABLE \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_EXCEPTION_ACTION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_PER_DOMAIN_NODE_MANAGER_POLICY_CONTROL_ENABLED 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_PER_DOMAIN_NODE_MANAGER_POLICY_CONTROL_DISABLED 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_GLOBAL_NODE_MANAGER_POLICY_CONTROL_ENABLED 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_GLOBAL_NODE_MANAGER_POLICY_CONTROL_DISABLED 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_CREATED_AND_MANAGED_BY_OTHER_MANAGEMENT 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_NOT_CREATED_AND_MANAGED_BY_OTHER_MANAGEMENT 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_AGGRESSIVE_CPU_POWER_CORRECTION_AUTOMATIC 0x00
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_AGGRESSIVE_CPU_POWER_CORRECTION_NON_AGGRESSIVE 0x01
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_AGGRESSIVE_CPU_POWER_CORRECTION_AGGRESSIVE 0x02
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_AGGRESSIVE_CPU_POWER_CORRECTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_AGGRESSIVE_CPU_POWER_CORRECTION_AUTOMATIC \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_AGGRESSIVE_CPU_POWER_CORRECTION_NON_AGGRESSIVE \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_AGGRESSIVE_CPU_POWER_CORRECTION_AGGRESSIVE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_STORAGE_PERSISTENT_STORAGE 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_STORAGE_VOLATILE_MEMORY 0x1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_STORAGE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_STORAGE_PERSISTENT_STORAGE \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_STORAGE_VOLATILE_MEMORY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_PLATFORM_BOOTING_MODE_BOOT_IN_POWER_OPTIMIZED_MODE 0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_PLATFORM_BOOTING_MODE_BOOT_IN_PERFORMANCE_OPTIMIZED_MODE 1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_PLATFORM_BOOTING_MODE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_PLATFORM_BOOTING_MODE_BOOT_IN_POWER_OPTIMIZED_MODE \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_PLATFORM_BOOTING_MODE_BOOT_IN_PERFORMANCE_OPTIMIZED_MODE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TYPE_POWER_CONTROL_POLICY 0x1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_TYPE_POWER_CONTROL_POLICY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_POWER_DOMAIN_POWER_PRIMARY_SIDE_POWER_DOMAIN 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_POWER_DOMAIN_POWER_SECONDARY_SIDE_POWER_DOMAIN 0x1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_POWER_DOMAIN_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_POWER_DOMAIN_POWER_PRIMARY_SIDE_POWER_DOMAIN \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_POLICY_POWER_DOMAIN_POWER_SECONDARY_SIDE_POWER_DOMAIN) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ALERT_THRESHOLDS_MAX 3
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_START_TIME_MIN 0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_START_TIME_MAX 239
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_START_TIME_VALID(__val) \
|
||||||
|
((((__val) + 1) >= (IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_START_TIME_MIN + 1) \
|
||||||
|
&& (__val) <= IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_START_TIME_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_STOP_TIME_MIN 0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_STOP_TIME_MAX 240
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_STOP_TIME_VALID(__val) \
|
||||||
|
((((__val) + 1) >= (IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_STOP_TIME_MIN + 1) \
|
||||||
|
&& (__val) <= IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_STOP_TIME_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
/* achu: not in spec, assume it to be true */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_REPEAT_THE_SUSPEND_PERIOD 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DO_NOT_REPEAT_THE_SUSPEND_PERIOD 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_SUSPEND_PERIOD_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_REPEAT_THE_SUSPEND_PERIOD \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_DO_NOT_REPEAT_THE_SUSPEND_PERIOD) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_SUSPEND_PERIODS_MAX 5
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_RESET_GLOBAL_STATISTICS 0x00
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_PER_POLICY_STATISTICS 0x01
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_GLOBAL_HOST_UNHANDLED_REQUESTS_STATISTICS 0x1B
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_HOST_RESPONSE_TIME_STATISTICS 0x1C
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_CPU_THROTTLING_STATISTICS 0x1D
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_MEMORY_THROTTLING_STATISTICS 0x1E
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_HOST_COMMUNICATION_FAILURE_STATISTICS 0x1F
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_RESET_GLOBAL_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_PER_POLICY_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_GLOBAL_HOST_UNHANDLED_REQUESTS_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_HOST_RESPONSE_TIME_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_CPU_THROTTLING_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_MEMORY_THROTTLING_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_RESET_MODE_HOST_COMMUNICATION_FAILURE_STATISTICS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_POWER_STATISTICS 0x01
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_INLET_TEMPERATURE_STATISTICS 0x02
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_THROTTLING_STATISTICS 0x03
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_VOLUMETRIC_AIRFLOW_STATISTICS 0x04
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_OUTLET_AIRFLOW_TEMPERATURE_STATISTICS 0x05
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_CHASSIS_POWER_STATISTICS 0x06
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_PER_POLICY_POWER_STATISTICS 0x11
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_PER_POLICY_TRIGGER_STATISTICS 0x12
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_PER_POLICY_THROTTLING_STATISTICS 0x13
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_HOST_UNHANDLED_REQUESTS_STATISTICS 0x1B
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_HOST_RESPONSE_TIME_STATISTICS 0x1C
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_CPU_THROTTLING_STATISTICS 0x1D
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_MEMORY_THROTTLING_STATISTICS 0x1E
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_HOST_COMMUNICATION_FAILURE_STATISTICS 0x1F
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_POWER_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_INLET_TEMPERATURE_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_THROTTLING_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_VOLUMETRIC_AIRFLOW_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_OUTLET_AIRFLOW_TEMPERATURE_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_CHASSIS_POWER_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_PER_POLICY_POWER_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_PER_POLICY_TRIGGER_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_PER_POLICY_THROTTLING_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_HOST_UNHANDLED_REQUESTS_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_HOST_RESPONSE_TIME_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_CPU_THROTTLING_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_MEMORY_THROTTLING_STATISTICS \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_STATISTICS_MODE_GLOBAL_HOST_COMMUNICATION_FAILURE_STATISTICS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_GLOBAL_ADMINISTRATIVE_STATE_ENABLED 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_GLOBAL_ADMINISTRATIVE_STATE_OTHERWISE 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_OPERATIONAL_STATE_ACTIVELY_MONITORING_DEFINED_TRIGGER 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_OPERATIONAL_STATE_SUSPENDED 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_MEASUREMENTS_STATE_IN_PROGRESS 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_MEASUREMENTS_STATE_SUSPENDED 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ACTIVATION_STATE_TRIGGERED_AND_ACTIVELY_LIMITING_TARGET 0x1
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_POLICY_ACTIVATION_STATE_NOT_TRIGGERED 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_LIMITING_TYPE_PLATFORM_POWER_LIMITING 0 /* Legacy, no longer in 2.0 spec */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_LIMITING_TYPE_CPU_POWER_LIMITING 1 /* Legacy, no longer in 2.0 spec */
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_LIMITING_BASED_ON_WALL_INPUT_POWER_PSU_INPUT_POWER 0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_LIMITING_BASED_ON_DC_POWER_PSU_OUTPUT_POWER_OR_BLADED_SYSTEM 1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_VERSION_1_0 0x01
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_VERSION_1_5 0x02
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_VERSION_2_0 0x03
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_VERSION_2_5 0x04
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_VERSION_3_0 0x05
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_IPMI_INTERFACE_VERSION_1_0 0x01
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_IPMI_INTERFACE_VERSION_2_0 0x02
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_IPMI_INTERFACE_VERSION_3_0 0x03
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_REGISTER_ALERT_RECEIVER 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_UNREGISTER_ALERT_RECEIVER 0x1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_REGISTER_ALERT_RECEIVER \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_UNREGISTER_ALERT_RECEIVER) ? 1 : 0)
|
||||||
|
|
||||||
|
/* legacy names */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DESTINATION_INFORMATION_OPERATION_REGISTER_ALERT_RECEIVER IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_REGISTER_ALERT_RECEIVER
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DESTINATION_INFORMATION_OPERATION_UNREGISTER_ALERT_RECEIVER IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_UNREGISTER_ALERT_RECEIVER
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DESTINATION_INFORMATION_OPERATION_VALID(__val) \
|
||||||
|
IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_VALID((__val))
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_STRING_SELECTOR_USE_VOLATILE_ALERT_STRING 0x00
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_STRING_SELECTOR_MIN 0x00
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_STRING_SELECTOR_MAX 0x7F
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_STRING_SELECTOR_VALID(__val) \
|
||||||
|
((((__val) + 1) >= (IPMI_OEM_INTEL_NODE_MANAGER_ALERT_STRING_SELECTOR_MIN + 1) \
|
||||||
|
&& (__val) <= IPMI_OEM_INTEL_NODE_MANAGER_ALERT_STRING_SELECTOR_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DONT_SEND_AN_ALERT_STRING 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_SEND_ALERT_STRING_IDENTIFIED_BY_STRING_SELECTOR 0x1
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_SEND_ALERT_STRING_VALID(__val) \
|
||||||
|
(((__val) == IPMI_OEM_INTEL_NODE_MANAGER_DONT_SEND_AN_ALERT_STRING \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_SEND_ALERT_STRING_IDENTIFIED_BY_STRING_SELECTOR) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_CONFIGURATION_VALID 0x0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_CONFIGURATION_INVALID 0x1
|
||||||
|
|
||||||
|
/* legacy names */
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DESTINATION_INFORMATION_OPERATION_CONFIGURATION_VALID IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_CONFIGURATION_VALID
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DESTINATION_INFORMATION_OPERATION_CONFIGURATION_INVALID IPMI_OEM_INTEL_NODE_MANAGER_ALERT_RECEIVER_DEACTIVATION_CONFIGURATION_INVALID
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_DESTINATION_SELECTOR_OPERATOR_USE_VOLATILE_DESTINATION_INFO 0x0
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_CPU_SOCKET_MIN 0
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_CPU_SOCKET_MAX 7
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_CPU_SOCKET_ALL_SOCKETS 0xFF
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_CPU_SOCKET_VALID(__val) \
|
||||||
|
((((__val) >= IPMI_OEM_INTEL_NODE_MANAGER_CPU_SOCKET_MIN \
|
||||||
|
&& (__val) <= IPMI_OEM_INTEL_NODE_MANAGER_CPU_SOCKET_MAX) \
|
||||||
|
|| (__val) == IPMI_OEM_INTEL_NODE_MANAGER_CPU_SOCKET_ALL_SOCKETS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ACTIVE_CORES_CONFIGURATION_RESERVED 0x00
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_ACTIVE_CORES_CONFIGURATION_APPLY_SETTINGS_TO_ALL_ACTIVE_CORES_CONFIGURATION 0xFF
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_SET_ACTIVE_CORES_CONFIGURATION_VALID(__val) \
|
||||||
|
(((__val) != IPMI_OEM_INTEL_NODE_MANAGER_ACTIVE_CORES_CONFIGURATION_RESERVED \
|
||||||
|
&& ((__val) == IPMI_OEM_INTEL_NODE_MANAGER_ACTIVE_CORES_CONFIGURATION_APPLY_SETTINGS_TO_ALL_ACTIVE_CORES_CONFIGURATION \
|
||||||
|
|| (__val) > 0)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_GET_ACTIVE_CORES_CONFIGURATION_VALID(__val) \
|
||||||
|
(((__val) != IPMI_OEM_INTEL_NODE_MANAGER_ACTIVE_CORES_CONFIGURATION_RESERVED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_OEM_INTEL_NODE_MANAGER_TURBO_RATIO_LIMIT_RESTORE_DEFAULT_SETTINGS 0x00
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_oem_intel_node_manager_enable_disable_node_manager_policy_control_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_enable_disable_node_manager_policy_control_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_boot_time_policy_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_policy_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_policy_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_alert_thresholds_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_alert_thresholds_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_policy_alert_thresholds_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_policy_alert_thresholds_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_suspend_periods_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_policy_suspend_periods_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_policy_suspend_periods_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_policy_suspend_periods_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_reset_node_manager_statistics_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_reset_node_manager_statistics_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_statistics_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_statistics_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_capabilities_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_capabilities_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_version_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_version_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_power_draw_range_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_power_draw_range_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_alert_destination_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_alert_destination_ipmb_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_alert_destination_lan_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_node_manager_alert_destination_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_alert_destination_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_node_manager_alert_destination_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_turbo_synchronization_ratio_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_set_turbo_synchronization_ratio_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_turbo_synchronization_ratio_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_turbo_synchronization_ratio_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_limiting_policy_id_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_oem_intel_node_manager_get_limiting_policy_id_rs;
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_enable_disable_node_manager_policy_control (uint8_t policy_enable_disable,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_policy (uint8_t domain_id,
|
||||||
|
uint8_t policy_enabled,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint8_t policy_trigger_type,
|
||||||
|
uint8_t policy_configuration_action,
|
||||||
|
uint8_t aggressive_cpu_power_correction,
|
||||||
|
uint8_t policy_storage_option,
|
||||||
|
uint8_t policy_exception_actions_send_alert,
|
||||||
|
uint8_t policy_exception_actions_shutdown_system,
|
||||||
|
uint8_t policy_power_domain,
|
||||||
|
uint16_t policy_target_limit,
|
||||||
|
uint32_t correction_time_limit,
|
||||||
|
uint16_t policy_trigger_limit,
|
||||||
|
uint16_t statistics_reporting_period,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_policy_boot_time_policy (uint8_t domain_id,
|
||||||
|
uint8_t policy_enabled,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint8_t policy_trigger_type,
|
||||||
|
uint8_t policy_configuration_action,
|
||||||
|
uint8_t aggressive_cpu_power_correction,
|
||||||
|
uint8_t policy_storage_option,
|
||||||
|
uint8_t policy_exception_actions_send_alert,
|
||||||
|
uint8_t policy_exception_actions_shutdown_system,
|
||||||
|
uint8_t policy_power_domain,
|
||||||
|
uint8_t platform_booting_mode,
|
||||||
|
uint8_t cores_disabled,
|
||||||
|
uint32_t correction_time_limit,
|
||||||
|
uint16_t policy_trigger_limit,
|
||||||
|
uint16_t statistics_reporting_period,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_node_manager_policy (uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_policy_alert_thresholds (uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint16_t *alert_threshold1,
|
||||||
|
uint16_t *alert_threshold2,
|
||||||
|
uint16_t *alert_threshold3,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_node_manager_policy_alert_thresholds (uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_policy_suspend_periods (uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
uint8_t *policy1_suspend_start_time,
|
||||||
|
uint8_t *policy1_suspend_stop_time,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy1_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy2_suspend_start_time,
|
||||||
|
uint8_t *policy2_suspend_stop_time,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy2_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy3_suspend_start_time,
|
||||||
|
uint8_t *policy3_suspend_stop_time,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy3_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy4_suspend_start_time,
|
||||||
|
uint8_t *policy4_suspend_stop_time,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy4_suspend_period_recurrence_sunday,
|
||||||
|
uint8_t *policy5_suspend_start_time,
|
||||||
|
uint8_t *policy5_suspend_stop_time,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_monday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_tuesday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_wednesday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_thursday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_friday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_saturday,
|
||||||
|
uint8_t *policy5_suspend_period_recurrence_sunday,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_node_manager_policy_suspend_periods (uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_reset_node_manager_statistics (uint8_t mode,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_node_manager_statistics (uint8_t mode,
|
||||||
|
uint8_t domain_id,
|
||||||
|
uint8_t policy_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_node_manager_capabilities (uint8_t domain_id,
|
||||||
|
uint8_t policy_trigger_type,
|
||||||
|
uint8_t policy_type,
|
||||||
|
uint8_t policy_power_domain,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_node_manager_version (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_power_draw_range (uint8_t domain_id,
|
||||||
|
uint16_t minimum_power_draw,
|
||||||
|
uint16_t maximum_power_draw,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_alert_destination (uint8_t channel_number,
|
||||||
|
uint8_t alert_receiver_deactivation,
|
||||||
|
uint8_t destination_information,
|
||||||
|
uint8_t alert_string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_alert_destination_ipmb (uint8_t channel_number,
|
||||||
|
uint8_t alert_receiver_deactivation,
|
||||||
|
uint8_t slave_address,
|
||||||
|
uint8_t alert_string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_node_manager_alert_destination_lan (uint8_t channel_number,
|
||||||
|
uint8_t alert_receiver_deactivation,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t alert_string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_node_manager_alert_destination (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_set_turbo_synchronization_ratio (uint8_t cpu_socket_number,
|
||||||
|
uint8_t active_cores_configuration,
|
||||||
|
uint8_t turbo_ratio_limit,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_turbo_synchronization_ratio (uint8_t cpu_socket_number,
|
||||||
|
uint8_t active_cores_configuration,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_oem_intel_node_manager_get_limiting_policy_id (uint8_t domain_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_OEM_INTEL_NODE_MANAGER_CMDS_H */
|
|
@ -0,0 +1,494 @@
|
||||||
|
/*
|
||||||
|
* 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_PEF_AND_ALERTING_CMDS_H
|
||||||
|
#define IPMI_PEF_AND_ALERTING_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
#include <freeipmi/spec/ipmi-sensor-types-spec.h>
|
||||||
|
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_NO_SET_SELECTOR 0x0
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_NO_BLOCK_SELECTOR 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_SET_COMPLETE 0x00
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS 0x01
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE 0x02
|
||||||
|
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS_VALID(__value) \
|
||||||
|
(((__value) == IPMI_PEF_CONFIGURATION_PARAMETERS_SET_COMPLETE \
|
||||||
|
|| (__value) == IPMI_PEF_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS \
|
||||||
|
|| (__value) == IPMI_PEF_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_POSTPONE_TIMER_DISABLE 0x00
|
||||||
|
#define IPMI_PEF_POSTPONE_TIMER_TEMPORARY_DISABLE 0xFE
|
||||||
|
#define IPMI_PEF_POSTPONE_TIMER_GET_PRESENT_COUNTDOWN_VALUE 0xFF
|
||||||
|
|
||||||
|
#define IPMI_PEF_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_EVENT_MESSAGES_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_EVENT_MESSAGES_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_EVENT_MESSAGES_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_EVENT_MESSAGES_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_EVENT_MESSAGES_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_STARTUP_DELAY_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_STARTUP_DELAY_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_STARTUP_DELAY_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_STARTUP_DELAY_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_STARTUP_DELAY_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_ALERT_STARTUP_DELAY_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_ALERT_STARTUP_DELAY_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_ALERT_STARTUP_DELAY_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_ALERT_STARTUP_DELAY_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_ALERT_STARTUP_DELAY_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_ALERT_ACTION_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_ALERT_ACTION_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_ALERT_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_ALERT_ACTION_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_ALERT_ACTION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_POWER_DOWN_ACTION_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_POWER_DOWN_ACTION_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_POWER_DOWN_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_POWER_DOWN_ACTION_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_POWER_DOWN_ACTION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_RESET_ACTION_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_RESET_ACTION_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_RESET_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_RESET_ACTION_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_RESET_ACTION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_POWER_CYCLE_ACTION_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_POWER_CYCLE_ACTION_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_POWER_CYCLE_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_POWER_CYCLE_ACTION_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_POWER_CYCLE_ACTION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_OEM_ACTION_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_OEM_ACTION_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_OEM_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_OEM_ACTION_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_OEM_ACTION_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_DIAGNOSTIC_INTERRUPT_ENABLE 0x1
|
||||||
|
#define IPMI_PEF_DIAGNOSTIC_INTERRUPT_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PEF_DIAGNOSTIC_INTERRUPT_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PEF_DIAGNOSTIC_INTERRUPT_ENABLE \
|
||||||
|
|| (__val) == IPMI_PEF_DIAGNOSTIC_INTERRUPT_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_FILTER_CONFIGURATION_MANUFACTURER_PRE_CONFIGURED_FILTER 0x2
|
||||||
|
#define IPMI_FILTER_CONFIGURATION_SOFTWARE_CONFIGURABLE_FILTER 0x0
|
||||||
|
|
||||||
|
#define IPMI_FILTER_CONFIGURATION_FILTER_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_FILTER_CONFIGURATION_MANUFACTURER_PRE_CONFIGURED_FILTER \
|
||||||
|
|| (__val) == IPMI_FILTER_CONFIGURATION_SOFTWARE_CONFIGURABLE_FILTER) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_FILTER_CONFIGURATION_FILTER_ENABLE 0x1
|
||||||
|
#define IPMI_FILTER_CONFIGURATION_FILTER_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_FILTER_CONFIGURATION_FILTER_VALID(__val) \
|
||||||
|
(((__val) == IPMI_FILTER_CONFIGURATION_FILTER_ENABLE \
|
||||||
|
|| (__val) == IPMI_FILTER_CONFIGURATION_FILTER_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_ALERT 0x1
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_NO_ALERT 0x0
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_ALERT_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_FILTER_ACTION_ALERT \
|
||||||
|
|| (__val) == IPMI_EVENT_FILTER_ACTION_NO_ALERT) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_POWER_OFF 0x1
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_NO_POWER_OFF 0x0
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_POWER_OFF_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_FILTER_ACTION_POWER_OFF \
|
||||||
|
|| (__val) == IPMI_EVENT_FILTER_ACTION_NO_POWER_OFF) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_RESET 0x1
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_NO_RESET 0x0
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_RESET_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_FILTER_ACTION_RESET \
|
||||||
|
|| (__val) == IPMI_EVENT_FILTER_ACTION_NO_RESET) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_POWER_CYCLE 0x1
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_NO_POWER_CYCLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_POWER_CYCLE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_FILTER_ACTION_POWER_CYCLE \
|
||||||
|
|| (__val) == IPMI_EVENT_FILTER_ACTION_NO_POWER_CYCLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_OEM_ACTION 0x1
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_NO_OEM 0x0
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_OEM_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_FILTER_ACTION_OEM_ACTION \
|
||||||
|
|| (__val) == IPMI_EVENT_FILTER_ACTION_NO_OEM) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_DIAGNOSTIC_INTERRUPT 0x1
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_NO_DIAGNOSTIC_INTERRUPT 0x0
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_DIAGNOSTIC_INTERRUPT_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_FILTER_ACTION_DIAGNOSTIC_INTERRUPT \
|
||||||
|
|| (__val) == IPMI_EVENT_FILTER_ACTION_NO_DIAGNOSTIC_INTERRUPT) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_GROUP_CONTROL_OPERATION 0x1
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_NO_GROUP_CONTROL_OPERATION 0x0
|
||||||
|
|
||||||
|
#define IPMI_EVENT_FILTER_ACTION_GROUP_CONTROL_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_FILTER_ACTION_GROUP_CONTROL_OPERATION \
|
||||||
|
|| (__val) == IPMI_EVENT_FILTER_ACTION_NO_GROUP_CONTROL_OPERATION) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_SEVERITY_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_EVENT_SEVERITY_MONITOR 0x01
|
||||||
|
#define IPMI_EVENT_SEVERITY_INFORMATION 0x02
|
||||||
|
#define IPMI_EVENT_SEVERITY_OK 0x04
|
||||||
|
#define IPMI_EVENT_SEVERITY_NON_CRITICAL_CONDITION 0x08
|
||||||
|
#define IPMI_EVENT_SEVERITY_CRITICAL_CONDITION 0x10
|
||||||
|
#define IPMI_EVENT_SEVERITY_NON_RECOVERABLE_CONDITION 0x20
|
||||||
|
|
||||||
|
#define IPMI_EVENT_SEVERITY_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_SEVERITY_UNSPECIFIED \
|
||||||
|
|| (__val) == IPMI_EVENT_SEVERITY_MONITOR \
|
||||||
|
|| (__val) == IPMI_EVENT_SEVERITY_INFORMATION \
|
||||||
|
|| (__val) == IPMI_EVENT_SEVERITY_OK \
|
||||||
|
|| (__val) == IPMI_EVENT_SEVERITY_NON_CRITICAL_CONDITION \
|
||||||
|
|| (__val) == IPMI_EVENT_SEVERITY_CRITICAL_CONDITION \
|
||||||
|
|| (__val) == IPMI_EVENT_SEVERITY_NON_RECOVERABLE_CONDITION) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_RESERVED IPMI_SENSOR_TYPE_RESERVED
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_TEMPERATURE IPMI_SENSOR_TYPE_TEMPERATURE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_VOLTAGE IPMI_SENSOR_TYPE_VOLTAGE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_CURRENT IPMI_SENSOR_TYPE_CURRENT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_FAN IPMI_SENSOR_TYPE_FAN
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_PHYSICAL_SECURITY IPMI_SENSOR_TYPE_PHYSICAL_SECURITY
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_PLATFORM_SECURITY_VIOLATION_ATTEMPT IPMI_SENSOR_TYPE_PLATFORM_SECURITY_VIOLATION_ATTEMPT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_PROCESSOR IPMI_SENSOR_TYPE_PROCESSOR
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_POWER_SUPPLY IPMI_SENSOR_TYPE_POWER_SUPPLY
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_POWER_UNIT IPMI_SENSOR_TYPE_POWER_UNIT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_COOLING_DEVICE IPMI_SENSOR_TYPE_COOLING_DEVICE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_OTHER_UNITS_BASED_SENSOR IPMI_SENSOR_TYPE_OTHER_UNITS_BASED_SENSOR
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_MEMORY IPMI_SENSOR_TYPE_MEMORY
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_DRIVE_SLOT IPMI_SENSOR_TYPE_DRIVE_SLOT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_POST_MEMORY_RESIZE IPMI_SENSOR_TYPE_POST_MEMORY_RESIZE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_SYSTEM_FIRMWARE_PROGRESS IPMI_SENSOR_TYPE_SYSTEM_FIRMWARE_PROGRESS
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_EVENT_LOGGING_DISABLED IPMI_SENSOR_TYPE_EVENT_LOGGING_DISABLED
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_WATCHDOG1 IPMI_SENSOR_TYPE_WATCHDOG1
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_SYSTEM_EVENT IPMI_SENSOR_TYPE_SYSTEM_EVENT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_CRITICAL_INTERRUPT IPMI_SENSOR_TYPE_CRITICAL_INTERRUPT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_BUTTON_SWITCH IPMI_SENSOR_TYPE_BUTTON_SWITCH
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_MODULE_BOARD IPMI_SENSOR_TYPE_MODULE_BOARD
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_MICROCONTROLLER_COPROCESSOR IPMI_SENSOR_TYPE_MICROCONTROLLER_COPROCESSOR
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_ADD_IN_CARD IPMI_SENSOR_TYPE_ADD_IN_CARD
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_CHASSIS IPMI_SENSOR_TYPE_CHASSIS
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_CHIP_SET IPMI_SENSOR_TYPE_CHIP_SET
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_OTHER_FRU IPMI_SENSOR_TYPE_OTHER_FRU
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_CABLE_INTERCONNECT IPMI_SENSOR_TYPE_CABLE_INTERCONNECT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_TERMINATOR IPMI_SENSOR_TYPE_TERMINATOR
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_SYSTEM_BOOT_INITIATED IPMI_SENSOR_TYPE_SYSTEM_BOOT_INITIATED
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_BOOT_ERROR IPMI_SENSOR_TYPE_BOOT_ERROR
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_OS_BOOT IPMI_SENSOR_TYPE_OS_BOOT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_OS_CRITICAL_STOP IPMI_SENSOR_TYPE_OS_CRITICAL_STOP
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_SLOT_CONNECTOR IPMI_SENSOR_TYPE_SLOT_CONNECTOR
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_SYSTEM_ACPI_POWER_STATE IPMI_SENSOR_TYPE_SYSTEM_ACPI_POWER_STATE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_WATCHDOG2 IPMI_SENSOR_TYPE_WATCHDOG2
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_PLATFORM_ALERT IPMI_SENSOR_TYPE_PLATFORM_ALERT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_ENTITY_PRESENCE IPMI_SENSOR_TYPE_ENTITY_PRESENCE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_MONITOR_ASIC_IC IPMI_SENSOR_TYPE_MONITOR_ASIC_IC
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_LAN IPMI_SENSOR_TYPE_LAN
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_MANAGEMENT_SUBSYSTEM_HEALTH IPMI_SENSOR_TYPE_MANAGEMENT_SUBSYSTEM_HEALTH
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_BATTERY IPMI_SENSOR_TYPE_BATTERY
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_SESSION_AUDIT IPMI_SENSOR_TYPE_SESSION_AUDIT
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_VERSION_CHANGE IPMI_SENSOR_TYPE_VERSION_CHANGE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_FRU_STATE IPMI_SENSOR_TYPE_FRU_STATE
|
||||||
|
#define IPMI_EVENT_SENSOR_TYPE_ANY 0xff
|
||||||
|
|
||||||
|
#define IPMI_STRING_SELECTOR_MIN 0x00
|
||||||
|
#define IPMI_STRING_SELECTOR_MAX 0x7F
|
||||||
|
#define IPMI_STRING_SELECTOR_VOLATILE 0x0
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_STRING_SELECTOR_VALID(__val) \
|
||||||
|
(((__val+1) >= (IPMI_STRING_SELECTOR_MIN + 1) \
|
||||||
|
&& (__val) <= IPMI_STRING_SELECTOR_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SET_RECORD_ID_FOR_LAST_RECORD_PROCESSED_BY_SOFTWARE 0x0
|
||||||
|
#define IPMI_SET_RECORD_ID_FOR_LAST_RECORD_PROCESSED_BY_BMC 0x1
|
||||||
|
|
||||||
|
#define IPMI_SET_RECORD_ID_FOR_LAST_RECORD_PROCESSED_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SET_RECORD_ID_FOR_LAST_RECORD_PROCESSED_BY_SOFTWARE \
|
||||||
|
|| (__val) == IPMI_SET_RECORD_ID_FOR_LAST_RECORD_PROCESSED_BY_BMC) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ALERT_IMMEDIATE_OPERATION_INITIATE_ALERT 0x0
|
||||||
|
#define IPMI_ALERT_IMMEDIATE_OPERATION_GET_ALERT_IMMEDIATE_STATUS 0x1
|
||||||
|
#define IPMI_ALERT_IMMEDIATE_OPERATION_CLEAR_ALERT_IMMEDIATE_STATUS 0x2
|
||||||
|
#define IPMI_ALERT_IMMEDIATE_OPERATION_RESERVED 0x3
|
||||||
|
|
||||||
|
#define IPMI_ALERT_IMMEDIATE_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_ALERT_IMMEDIATE_OPERATION_INITIATE_ALERT \
|
||||||
|
|| (__val) == IPMI_ALERT_IMMEDIATE_OPERATION_GET_ALERT_IMMEDIATE_STATUS \
|
||||||
|
|| (__val) == IPMI_ALERT_IMMEDIATE_OPERATION_CLEAR_ALERT_IMMEDIATE_STATUS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SEND_ALERT_STRING_IDENTIFIED_BY_STRING_SELECTOR 0x1
|
||||||
|
#define IPMI_DO_NOT_SEND_AN_ALERT_STRING 0x0
|
||||||
|
|
||||||
|
#define IPMI_SEND_ALERT_STRING_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SEND_ALERT_STRING_IDENTIFIED_BY_STRING_SELECTOR \
|
||||||
|
|| (__val) == IPMI_DO_NOT_SEND_AN_ALERT_STRING) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_GET_PEF_PARAMETER 0x0
|
||||||
|
#define IPMI_GET_PEF_PARAMETER_REVISION_ONLY 0x1
|
||||||
|
|
||||||
|
#define IPMI_GET_PEF_PARAMETER_VALID(__val) \
|
||||||
|
(((__val) == IPMI_GET_PEF_PARAMETER \
|
||||||
|
|| (__val) == IPMI_GET_PEF_PARAMETER_REVISION_ONLY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_ALERT_STRINGS_BLOCK_SIZE 16
|
||||||
|
#define IPMI_PEF_ALERT_STRINGS_BLOCK_SIZE_VALID(__val) \
|
||||||
|
(((__val) <= IPMI_PEF_ALERT_STRINGS_BLOCK_SIZE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ALERT_POLICY_ALWAYS_SEND_TO_THIS_DESTINATION 0x0
|
||||||
|
#define IPMI_ALERT_POLICY_PROCEED_TO_NEXT_ENTRY 0x1
|
||||||
|
#define IPMI_ALERT_POLICY_DO_NOT_PROCEED_ANY_MORE_ENTRIES 0x2
|
||||||
|
#define IPMI_ALERT_POLICY_PROCEED_TO_NEXT_ENTRY_DIFFERENT_CHANNEL 0x3
|
||||||
|
#define IPMI_ALERT_POLICY_PROCEED_TO_NEXT_ENTRY_DIFFERENT_DESTINATION_TYPE 0x4
|
||||||
|
|
||||||
|
#define IPMI_ALERT_POLICY_TABLE_POLICY_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_ALERT_POLICY_ALWAYS_SEND_TO_THIS_DESTINATION \
|
||||||
|
|| (__val) == IPMI_ALERT_POLICY_PROCEED_TO_NEXT_ENTRY \
|
||||||
|
|| (__val) == IPMI_ALERT_POLICY_DO_NOT_PROCEED_ANY_MORE_ENTRIES \
|
||||||
|
|| (__val) == IPMI_ALERT_POLICY_PROCEED_TO_NEXT_ENTRY_DIFFERENT_CHANNEL \
|
||||||
|
|| (__val) == IPMI_ALERT_POLICY_PROCEED_TO_NEXT_ENTRY_DIFFERENT_DESTINATION_TYPE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ALERT_POLICY_DISABLED 0x0
|
||||||
|
#define IPMI_ALERT_POLICY_ENABLED 0x1
|
||||||
|
#define IPMI_ALERT_POLICY_ENABLED_DISABLED_VALID(__val) \
|
||||||
|
(((__val) == IPMI_ALERT_POLICY_DISABLED \
|
||||||
|
|| (__val) == IPMI_ALERT_POLICY_ENABLED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_SPECIFIC_ALERT_STRING_NO 0x0
|
||||||
|
#define IPMI_EVENT_SPECIFIC_ALERT_STRING_YES 0x1
|
||||||
|
#define IPMI_EVENT_SPECIFIC_ALERT_STRING_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_SPECIFIC_ALERT_STRING_NO \
|
||||||
|
|| (__val) == IPMI_EVENT_SPECIFIC_ALERT_STRING_YES) ? 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_get_pef_capabilities_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_capabilities_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_arm_pef_postpone_timer_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_arm_pef_postpone_timer_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_set_in_progress_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_pef_control_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_pef_action_global_control_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_pef_startup_delay_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_pef_alert_startup_delay_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_event_filter_table_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_event_filter_table_data1_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_alert_string_keys_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_alert_strings_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_pef_configuration_parameters_alert_policy_table_rq;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_set_in_progress_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_pef_control_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_pef_action_global_control_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_pef_startup_delay_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_pef_alert_startup_delay_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_number_of_event_filters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_event_filter_table_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_event_filter_table_data1_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_number_of_alert_policy_entries_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_number_of_alert_strings_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_alert_string_keys_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_alert_strings_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_pef_configuration_parameters_alert_policy_table_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_last_processed_event_id_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_last_processed_event_id_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_last_processed_event_id_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_last_processed_event_id_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_alert_immediate_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_alert_immediate_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_pet_acknowledge_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_pet_acknowledge_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_pef_capabilities (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_arm_pef_postpone_timer (uint8_t pef_postpone_timeout,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters (uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_set_in_progress (uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_pef_control (uint8_t pef,
|
||||||
|
uint8_t pef_event_messages,
|
||||||
|
uint8_t pef_startup_delay,
|
||||||
|
uint8_t pef_alert_startup_delay,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_pef_action_global_control (uint8_t alert_action,
|
||||||
|
uint8_t power_down_action,
|
||||||
|
uint8_t reset_action,
|
||||||
|
uint8_t power_cycle_action,
|
||||||
|
uint8_t oem_action,
|
||||||
|
uint8_t diagnostic_interrupt,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_pef_startup_delay (uint8_t pef_startup_delay,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_pef_alert_startup_delay (uint8_t pef_alert_startup_delay,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_event_filter_table (uint8_t filter_number,
|
||||||
|
uint8_t filter_configuration_type,
|
||||||
|
uint8_t filter_configuration_enable,
|
||||||
|
uint8_t event_filter_action_alert,
|
||||||
|
uint8_t event_filter_action_power_off,
|
||||||
|
uint8_t event_filter_action_reset,
|
||||||
|
uint8_t event_filter_action_power_cycle,
|
||||||
|
uint8_t event_filter_action_oem,
|
||||||
|
uint8_t event_filter_action_diagnostic_interrupt,
|
||||||
|
uint8_t event_filter_action_group_control_operation,
|
||||||
|
uint8_t alert_policy_number_policy_number,
|
||||||
|
uint8_t alert_policy_number_group_control_selector,
|
||||||
|
uint8_t event_severity,
|
||||||
|
uint8_t generator_id_byte1,
|
||||||
|
uint8_t generator_id_byte2,
|
||||||
|
uint8_t sensor_type,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint8_t event_trigger,
|
||||||
|
uint16_t event_data1_offset_mask,
|
||||||
|
uint8_t event_data1_AND_mask,
|
||||||
|
uint8_t event_data1_compare1,
|
||||||
|
uint8_t event_data1_compare2,
|
||||||
|
uint8_t event_data2_AND_mask,
|
||||||
|
uint8_t event_data2_compare1,
|
||||||
|
uint8_t event_data2_compare2,
|
||||||
|
uint8_t event_data3_AND_mask,
|
||||||
|
uint8_t event_data3_compare1,
|
||||||
|
uint8_t event_data3_compare2,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_event_filter_table_data1 (uint8_t filter_number,
|
||||||
|
uint8_t filter_configuration_type,
|
||||||
|
uint8_t filter_configuration_enable,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_alert_string_keys (uint8_t string_selector,
|
||||||
|
uint8_t filter_number,
|
||||||
|
uint8_t set_number_for_string,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_alert_strings (uint8_t string_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
const uint8_t *string_data,
|
||||||
|
unsigned int string_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_pef_configuration_parameters_alert_policy_table (uint8_t alert_policy_entry_number,
|
||||||
|
uint8_t policy_type,
|
||||||
|
uint8_t policy_enabled,
|
||||||
|
uint8_t policy_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t alert_string_set_selector,
|
||||||
|
uint8_t event_specific_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_pef_configuration_parameters (uint8_t parameter_selector,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_last_processed_event_id (uint8_t set_record_id_for_last_record,
|
||||||
|
uint16_t record_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_last_processed_event_id (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_alert_immediate (uint8_t channel_number,
|
||||||
|
uint8_t destination_selector,
|
||||||
|
uint8_t operation,
|
||||||
|
uint8_t string_selector,
|
||||||
|
uint8_t send_alert_string,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_pet_acknowledge (uint16_t sequence_number,
|
||||||
|
uint32_t local_timestamp,
|
||||||
|
uint8_t event_source_type,
|
||||||
|
uint8_t sensor_device,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
uint32_t event_data,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_PEF_AND_ALERTING_CMDS_H */
|
|
@ -0,0 +1,210 @@
|
||||||
|
/*
|
||||||
|
* 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 */
|
|
@ -0,0 +1,87 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_REPOSITORY_CMDS_H
|
||||||
|
#define IPMI_SDR_REPOSITORY_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SDR_MODAL_NON_MODAL_REPOSITORY_UPDATE_OP_UNSPECIFIED 0x0
|
||||||
|
#define IPMI_SDR_NON_MODAL_REPOSITORY_UPDATE_OP_SUPPORTED 0x1
|
||||||
|
#define IPMI_SDR_MODAL_REPOSITORY_UPDATE_OP_SUPPORTED 0x2
|
||||||
|
#define IPMI_SDR_MODAL_NON_MODAL_REPOSITORY_UPDATE_OP_SUPPORTED 0x3
|
||||||
|
|
||||||
|
#define IPMI_SDR_IPMB_SLAVE_ADDRESS 0x0
|
||||||
|
#define IPMI_SDR_SYSTEM_SOFTWARE_ID 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_RECORD_ID_FIRST 0x0000
|
||||||
|
#define IPMI_SDR_RECORD_ID_LAST 0xFFFF
|
||||||
|
|
||||||
|
#define IPMI_SDR_READ_ENTIRE_RECORD_BYTES_TO_READ 0xFF
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_get_sdr_repository_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sdr_repository_info_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sdr_repository_allocation_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sdr_repository_allocation_info_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_reserve_sdr_repository_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_reserve_sdr_repository_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sdr_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sdr_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sdr_repository_time_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sdr_repository_time_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sdr_repository_time_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sdr_repository_time_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_repository_info (fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_get_repository_allocation_info (fiid_obj_t obj_cmd_rq);
|
||||||
|
int fill_cmd_reserve_sdr_repository (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sdr (uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
uint8_t offset_into_record,
|
||||||
|
uint8_t bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sdr_repository_time (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sdr_repository_time (uint32_t time, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_REPOSITORY_CMDS_H */
|
150
source/freeipmi/usr/include/freeipmi/cmds/ipmi-sel-cmds.h
Normal file
150
source/freeipmi/usr/include/freeipmi/cmds/ipmi-sel-cmds.h
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
/*
|
||||||
|
* 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_SEL_CMDS_H
|
||||||
|
#define IPMI_SEL_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SEL_GET_RECORD_ID_FIRST_ENTRY 0x0000
|
||||||
|
#define IPMI_SEL_GET_RECORD_ID_LAST_ENTRY 0xFFFF
|
||||||
|
|
||||||
|
#define IPMI_SEL_CLEAR_OPERATION_INITIATE_ERASE 0xAA
|
||||||
|
#define IPMI_SEL_CLEAR_OPERATION_GET_ERASURE_STATUS 0x0
|
||||||
|
|
||||||
|
#define IPMI_SEL_CLEAR_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SEL_CLEAR_OPERATION_INITIATE_ERASE \
|
||||||
|
|| (__val) == IPMI_SEL_CLEAR_OPERATION_GET_ERASURE_STATUS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SEL_CLEAR_ERASURE_IN_PROGRESS 0x0
|
||||||
|
#define IPMI_SEL_CLEAR_ERASE_COMPLETED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SEL_READ_ENTIRE_RECORD_BYTES_TO_READ 0xFF
|
||||||
|
|
||||||
|
#define IPMI_SEL_TIME_UTC_OFFSET_MIN -1440
|
||||||
|
#define IPMI_SEL_TIME_UTC_OFFSET_MAX 1440
|
||||||
|
|
||||||
|
#define IPMI_SEL_TIME_UTC_OFFSET_UNSPECIFIED 0x07FF
|
||||||
|
|
||||||
|
#define IPMI_SEL_TIME_UTC_OFFSET_VALID(__val) \
|
||||||
|
((((__val) >= IPMI_SEL_TIME_UTC_OFFSET_MIN \
|
||||||
|
&& (__val) <= IPMI_SEL_TIME_UTC_OFFSET_MAX) \
|
||||||
|
|| (__val) == IPMI_SEL_TIME_UTC_OFFSET_UNSPECIFIED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_AUXILIARY_LOG_TYPE_MCA 0x00
|
||||||
|
#define IPMI_AUXILIARY_LOG_TYPE_OEM1 0x01
|
||||||
|
#define IPMI_AUXILIARY_LOG_TYPE_OEM2 0x02
|
||||||
|
|
||||||
|
#define IPMI_AUXILIARY_LOG_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_AUXILIARY_LOG_TYPE_MCA \
|
||||||
|
|| (__val) == IPMI_AUXILIARY_LOG_TYPE_OEM1 \
|
||||||
|
|| (__val) == IPMI_AUXILIARY_LOG_TYPE_OEM2) ? 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_get_sel_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_info_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_allocation_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_allocation_info_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_reserve_sel_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_reserve_sel_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_entry_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_entry_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_delete_sel_entry_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_delete_sel_entry_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_clear_sel_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_clear_sel_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_time_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_time_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sel_time_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sel_time_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_time_utc_offset_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sel_time_utc_offset_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sel_time_utc_offset_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sel_time_utc_offset_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_auxiliary_log_status_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_auxiliary_log_status_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_auxiliary_log_status_mca_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_auxiliary_log_status_oem_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_auxiliary_log_status_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_auxiliary_log_status_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_sel_info (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sel_allocation_info (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_reserve_sel (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sel_entry (uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
uint8_t offset_into_record,
|
||||||
|
uint8_t bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_delete_sel_entry (uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_clear_sel (uint16_t reservation_id,
|
||||||
|
uint8_t operation,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sel_time (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sel_time (uint32_t time, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sel_time_utc_offset (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sel_time_utc_offset (int16_t offset, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_auxiliary_log_status (uint8_t log_type,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_auxiliary_log_status (uint8_t log_type,
|
||||||
|
const void *log_data,
|
||||||
|
unsigned int log_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SEL_CMDS_H */
|
321
source/freeipmi/usr/include/freeipmi/cmds/ipmi-sensor-cmds.h
Normal file
321
source/freeipmi/usr/include/freeipmi/cmds/ipmi-sensor-cmds.h
Normal file
|
@ -0,0 +1,321 @@
|
||||||
|
/*
|
||||||
|
* 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_SENSOR_CMDS_H
|
||||||
|
#define IPMI_SENSOR_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_GET_SENSOR_COUNT 0x00
|
||||||
|
#define IPMI_SENSOR_GET_SDR_COUNT 0x01
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_GET_SDR_INFO_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SENSOR_GET_SENSOR_COUNT \
|
||||||
|
|| (__val) == IPMI_SENSOR_GET_SDR_COUNT) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_STATIC_SENSOR_POPULATION 0x0
|
||||||
|
#define IPMI_SENSOR_DYNAMIC_SENSOR_POPULATION 0x1
|
||||||
|
|
||||||
|
/* achu: as of IPMI 2.0 hysteresis_mask reserved for future - write as 0xFF */
|
||||||
|
#define IPMI_SENSOR_HYSTERESIS_MASK 0xFF
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_EVENT_MESSAGE_ACTION_DO_NOT_CHANGE_INDIVIDUAL_ENABLES 0x0
|
||||||
|
#define IPMI_SENSOR_EVENT_MESSAGE_ACTION_ENABLE_SELECTED_EVENT_MESSAGES 0x1
|
||||||
|
#define IPMI_SENSOR_EVENT_MESSAGE_ACTION_DISABLE_SELECTED_EVENT_MESSAGES 0x2
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_EVENT_MESSAGE_ACTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SENSOR_EVENT_MESSAGE_ACTION_DO_NOT_CHANGE_INDIVIDUAL_ENABLES \
|
||||||
|
|| (__val) == IPMI_SENSOR_EVENT_MESSAGE_ACTION_ENABLE_SELECTED_EVENT_MESSAGES \
|
||||||
|
|| (__val) == IPMI_SENSOR_EVENT_MESSAGE_ACTION_DISABLE_SELECTED_EVENT_MESSAGES) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_SCANNING_ON_THIS_SENSOR_ENABLE 0x1
|
||||||
|
#define IPMI_SENSOR_SCANNING_ON_THIS_SENSOR_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_SCANNING_ON_THIS_SENSOR_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SENSOR_SCANNING_ON_THIS_SENSOR_ENABLE \
|
||||||
|
|| (__val) == IPMI_SENSOR_SCANNING_ON_THIS_SENSOR_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_ALL_EVENT_MESSAGES_ENABLE 0x1
|
||||||
|
#define IPMI_SENSOR_ALL_EVENT_MESSAGES_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_ALL_EVENT_MESSAGES_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SENSOR_ALL_EVENT_MESSAGES_ENABLE \
|
||||||
|
|| (__val) == IPMI_SENSOR_ALL_EVENT_MESSAGES_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_EVENT_FLAG_ENABLE 0x1
|
||||||
|
#define IPMI_SENSOR_EVENT_FLAG_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_EVENT_FLAG_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SENSOR_EVENT_FLAG_ENABLE \
|
||||||
|
|| (__val) == IPMI_SENSOR_EVENT_FLAG_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
/* achu: Yes, this one is backwards. I don't know why */
|
||||||
|
#define IPMI_SENSOR_RE_ARM_ALL_EVENT_STATUS_ENABLED 0x0
|
||||||
|
#define IPMI_SENSOR_RE_ARM_ALL_EVENT_STATUS_DISABLED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_RE_ARM_ALL_EVENT_STATUS_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SENSOR_RE_ARM_ALL_EVENT_STATUS_ENABLED \
|
||||||
|
|| (__val) == IPMI_SENSOR_RE_ARM_ALL_EVENT_STATUS_DISABLED) ? 1 : 0)
|
||||||
|
|
||||||
|
/* achu: Yes, this one is backwards. I don't know why */
|
||||||
|
#define IPMI_SENSOR_READING_STATE_UNAVAILABLE 0x1
|
||||||
|
#define IPMI_SENSOR_READING_STATE_AVAILABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_THRESHOLD_SET 0x1
|
||||||
|
#define IPMI_SENSOR_THRESHOLD_NOT_SET 0x0
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_READING_OPERATION_WRITE_GIVEN_VALUE_TO_SENSOR_READING_BYTE 0x01
|
||||||
|
#define IPMI_SENSOR_READING_OPERATION_DONT_CHANGE_SENSOR_READING_BYTE 0x00
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_READING_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SENSOR_READING_OPERATION_WRITE_GIVEN_VALUE_TO_SENSOR_READING_BYTE \
|
||||||
|
|| (__val) == IPMI_SENSOR_READING_OPERATION_DONT_CHANGE_SENSOR_READING_BYTE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_CLEAR_EVENT_STATUS_BITS 0x03
|
||||||
|
#define IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_SET_EVENT_STATUS_BITS 0x02
|
||||||
|
#define IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_WRITE_EVENT_STATUS_BITS 0x01
|
||||||
|
#define IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_DONT_CHANGE_EVENT_STATUS_BITS 0x00
|
||||||
|
|
||||||
|
#define IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_CLEAR_EVENT_STATUS_BITS \
|
||||||
|
|| (__val) == IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_SET_EVENT_STATUS_BITS \
|
||||||
|
|| (__val) == IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_WRITE_EVENT_STATUS_BITS \
|
||||||
|
|| (__val) == IPMI_ASSERTION_DEASSERTION_EVENT_STATUS_BITS_OPERATION_DONT_CHANGE_EVENT_STATUS_BITS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_DATA_BYTES_OPERATION_WRITE_EVENT_DATA_BYTES_EXCLUDING_EVENT_OFFSET 0x02
|
||||||
|
#define IPMI_EVENT_DATA_BYTES_OPERATION_WRITE_EVENT_DATA_BYTES_INCLUDING_EVENT_OFFSET 0x01
|
||||||
|
#define IPMI_EVENT_DATA_BYTES_OPERATION_DONT_WRITE_EVENT_DATA_BYTES 0x00
|
||||||
|
|
||||||
|
#define IPMI_EVENT_DATA_BYTES_OPERATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_DATA_BYTES_OPERATION_WRITE_EVENT_DATA_BYTES_EXCLUDING_EVENT_OFFSET \
|
||||||
|
|| (__val) == IPMI_EVENT_DATA_BYTES_OPERATION_WRITE_EVENT_DATA_BYTES_INCLUDING_EVENT_OFFSET \
|
||||||
|
|| (__val) == IPMI_EVENT_DATA_BYTES_OPERATION_DONT_WRITE_EVENT_DATA_BYTES) ? 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_get_device_sdr_info_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_sdr_info_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_sdr_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_device_sdr_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_reserve_device_sdr_repository_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_reserve_device_sdr_repository_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_reading_factors_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_reading_factors_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_hysteresis_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_hysteresis_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_hysteresis_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_hysteresis_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_thresholds_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_thresholds_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_thresholds_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_thresholds_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_event_enable_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_event_enable_threshold_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_event_enable_discrete_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_event_enable_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_enable_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_enable_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_enable_threshold_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_enable_discrete_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_re_arm_sensor_events_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_re_arm_sensor_events_threshold_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_re_arm_sensor_events_discrete_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_re_arm_sensor_events_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_status_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_status_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_status_threshold_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_event_status_discerete_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_reading_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_reading_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_reading_threshold_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_reading_discrete_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_type_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_type_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_type_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sensor_type_rs;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_reading_and_event_status_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_reading_and_event_status_threshold_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_reading_and_event_status_discrete_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_reading_and_event_status_event_fields_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_reading_and_event_status_threshold_event_fields_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_reading_and_event_status_discrete_event_fields_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sensor_reading_and_event_status_rs;
|
||||||
|
|
||||||
|
int fill_cmd_get_device_sdr_info (uint8_t operation,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_device_sdr (uint16_t reservation_id,
|
||||||
|
uint16_t record_id,
|
||||||
|
uint8_t offset_into_record,
|
||||||
|
uint8_t bytes_to_read,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_reserve_device_sdr_repository (fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
/* achu: as of IPMI 2.0 hysteresis_mask reserved for future - write as 0xFF */
|
||||||
|
int fill_cmd_set_sensor_hysteresis (uint8_t sensor_number,
|
||||||
|
uint8_t hysteresis_mask,
|
||||||
|
uint8_t positive_going_threshold_hysteresis_value,
|
||||||
|
uint8_t negative_going_threshold_hysteresis_value,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
/* achu: as of IPMI 2.0 hysteresis_mask reserved for future - write as 0xFF */
|
||||||
|
int fill_cmd_get_sensor_hysteresis (uint8_t sensor_number,
|
||||||
|
uint8_t hysteresis_mask,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sensor_thresholds (uint8_t sensor_number,
|
||||||
|
const uint8_t *lower_non_critical_threshold,
|
||||||
|
const uint8_t *lower_critical_threshold,
|
||||||
|
const uint8_t *lower_non_recoverable_threshold,
|
||||||
|
const uint8_t *upper_non_critical_threshold,
|
||||||
|
const uint8_t *upper_critical_threshold,
|
||||||
|
const uint8_t *upper_non_recoverable_threshold,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sensor_thresholds (uint8_t sensor_number, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sensor_event_enable (uint8_t sensor_number,
|
||||||
|
uint8_t event_message_action,
|
||||||
|
uint8_t scanning_on_this_sensor,
|
||||||
|
uint8_t all_event_messages,
|
||||||
|
uint16_t assertion_event_bitmask,
|
||||||
|
uint16_t deassertion_event_bitmask,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sensor_event_enable_threshold (uint8_t sensor_number,
|
||||||
|
uint8_t event_message_action,
|
||||||
|
uint8_t scanning_on_this_sensor,
|
||||||
|
uint8_t all_event_messages,
|
||||||
|
uint8_t assertion_event_lower_non_critical_going_low,
|
||||||
|
uint8_t assertion_event_lower_non_critical_going_high,
|
||||||
|
uint8_t assertion_event_lower_critical_going_low,
|
||||||
|
uint8_t assertion_event_lower_critical_going_high,
|
||||||
|
uint8_t assertion_event_lower_non_recoverable_going_low,
|
||||||
|
uint8_t assertion_event_lower_non_recoverable_going_high,
|
||||||
|
uint8_t assertion_event_upper_non_critical_going_low,
|
||||||
|
uint8_t assertion_event_upper_non_critical_going_high,
|
||||||
|
uint8_t assertion_event_upper_critical_going_low,
|
||||||
|
uint8_t assertion_event_upper_critical_going_high,
|
||||||
|
uint8_t assertion_event_upper_non_recoverable_going_low,
|
||||||
|
uint8_t assertion_event_upper_non_recoverable_going_high,
|
||||||
|
uint8_t deassertion_event_lower_non_critical_going_low,
|
||||||
|
uint8_t deassertion_event_lower_non_critical_going_high,
|
||||||
|
uint8_t deassertion_event_lower_critical_going_low,
|
||||||
|
uint8_t deassertion_event_lower_critical_going_high,
|
||||||
|
uint8_t deassertion_event_lower_non_recoverable_going_low,
|
||||||
|
uint8_t deassertion_event_lower_non_recoverable_going_high,
|
||||||
|
uint8_t deassertion_event_upper_non_critical_going_low,
|
||||||
|
uint8_t deassertion_event_upper_non_critical_going_high,
|
||||||
|
uint8_t deassertion_event_upper_critical_going_low,
|
||||||
|
uint8_t deassertion_event_upper_critical_going_high,
|
||||||
|
uint8_t deassertion_event_upper_non_recoverable_going_low,
|
||||||
|
uint8_t deassertion_event_upper_non_recoverable_going_high,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sensor_event_enable_discrete (uint8_t sensor_number,
|
||||||
|
uint8_t event_message_action,
|
||||||
|
uint8_t scanning_on_this_sensor,
|
||||||
|
uint8_t all_event_messages,
|
||||||
|
uint8_t assertion_event_state_bit_0,
|
||||||
|
uint8_t assertion_event_state_bit_1,
|
||||||
|
uint8_t assertion_event_state_bit_2,
|
||||||
|
uint8_t assertion_event_state_bit_3,
|
||||||
|
uint8_t assertion_event_state_bit_4,
|
||||||
|
uint8_t assertion_event_state_bit_5,
|
||||||
|
uint8_t assertion_event_state_bit_6,
|
||||||
|
uint8_t assertion_event_state_bit_7,
|
||||||
|
uint8_t assertion_event_state_bit_8,
|
||||||
|
uint8_t assertion_event_state_bit_9,
|
||||||
|
uint8_t assertion_event_state_bit_10,
|
||||||
|
uint8_t assertion_event_state_bit_11,
|
||||||
|
uint8_t assertion_event_state_bit_12,
|
||||||
|
uint8_t assertion_event_state_bit_13,
|
||||||
|
uint8_t assertion_event_state_bit_14,
|
||||||
|
uint8_t deassertion_event_state_bit_0,
|
||||||
|
uint8_t deassertion_event_state_bit_1,
|
||||||
|
uint8_t deassertion_event_state_bit_2,
|
||||||
|
uint8_t deassertion_event_state_bit_3,
|
||||||
|
uint8_t deassertion_event_state_bit_4,
|
||||||
|
uint8_t deassertion_event_state_bit_5,
|
||||||
|
uint8_t deassertion_event_state_bit_6,
|
||||||
|
uint8_t deassertion_event_state_bit_7,
|
||||||
|
uint8_t deassertion_event_state_bit_8,
|
||||||
|
uint8_t deassertion_event_state_bit_9,
|
||||||
|
uint8_t deassertion_event_state_bit_10,
|
||||||
|
uint8_t deassertion_event_state_bit_11,
|
||||||
|
uint8_t deassertion_event_state_bit_12,
|
||||||
|
uint8_t deassertion_event_state_bit_13,
|
||||||
|
uint8_t deassertion_event_state_bit_14,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sensor_event_enable (uint8_t sensor_number, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_re_arm_sensor_events (uint8_t sensor_number,
|
||||||
|
uint8_t re_arm_all_event_status_from_this_sensor,
|
||||||
|
uint16_t *re_arm_assertion_event,
|
||||||
|
uint16_t *re_arm_deassertion_event,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sensor_reading (uint8_t sensor_number, fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sensor_reading_and_event_status (uint8_t sensor_number,
|
||||||
|
uint8_t sensor_reading_operation,
|
||||||
|
uint8_t deassertion_bits_operation,
|
||||||
|
uint8_t assertion_bits_operation,
|
||||||
|
uint8_t event_data_bytes_operation,
|
||||||
|
uint8_t sensor_reading,
|
||||||
|
uint16_t assertion_event_bitmask,
|
||||||
|
uint16_t deassertion_event_bitmask,
|
||||||
|
uint8_t event_data1,
|
||||||
|
uint8_t event_data2,
|
||||||
|
uint8_t event_data3,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SENSOR_CMDS_H */
|
|
@ -0,0 +1,173 @@
|
||||||
|
/*
|
||||||
|
* 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_SERIAL_MODEM_CMDS_H
|
||||||
|
#define IPMI_SERIAL_MODEM_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SERIAL_MODEM_CONFIGURATION_NO_SET_SELECTOR 0x0
|
||||||
|
#define IPMI_SERIAL_MODEM_CONFIGURATION_NO_BLOCK_SELECTOR 0x0
|
||||||
|
|
||||||
|
#define IPMI_SERIAL_MODEM_CONFIGURATION_PARAMETERS_SET_COMPLETE 0x00
|
||||||
|
#define IPMI_SERIAL_MODEM_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS 0x01
|
||||||
|
#define IPMI_SERIAL_MODEM_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE 0x02
|
||||||
|
|
||||||
|
#define IPMI_SERIAL_MODEM_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SERIAL_MODEM_CONFIGURATION_PARAMETERS_SET_COMPLETE \
|
||||||
|
|| (__value) == IPMI_SERIAL_MODEM_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS \
|
||||||
|
|| (__value) == IPMI_SERIAL_MODEM_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BASIC_MODE_ENABLE 0x1
|
||||||
|
#define IPMI_BASIC_MODE_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_BASIC_MODE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_BASIC_MODE_ENABLE \
|
||||||
|
|| (__val) == IPMI_BASIC_MODE_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PPP_MODE_ENABLE 0x1
|
||||||
|
#define IPMI_PPP_MODE_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_PPP_MODE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_PPP_MODE_ENABLE \
|
||||||
|
|| (__val) == IPMI_PPP_MODE_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_TERMINAL_MODE_ENABLE 0x1
|
||||||
|
#define IPMI_TERMINAL_MODE_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_TERMINAL_MODE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_TERMINAL_MODE_ENABLE \
|
||||||
|
|| (__val) == IPMI_TERMINAL_MODE_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CONNECT_MODE_DIRECT 0x1
|
||||||
|
#define IPMI_CONNECT_MODE_MODEM 0x0
|
||||||
|
|
||||||
|
#define IPMI_CONNECT_MODE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CONNECT_MODE_DIRECT \
|
||||||
|
|| (__val) == IPMI_CONNECT_MODE_MODEM) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_DTR_HANGUP_ENABLE 0x1
|
||||||
|
#define IPMI_DTR_HANGUP_DISABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_DTR_HANGUP_VALID(__val) \
|
||||||
|
(((__val) == IPMI_DTR_HANGUP_ENABLE \
|
||||||
|
|| (__val) == IPMI_DTR_HANGUP_DISABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_FLOW_CONTROL_NO_FLOW_CONTROL 0x0
|
||||||
|
#define IPMI_FLOW_CONTROL_RTS_CTS_FLOW_CONTROL 0x1
|
||||||
|
#define IPMI_FLOW_CONTROL_XON_XOFF_FLOW_CONTROL 0x2
|
||||||
|
#define IPMI_FLOW_CONTROL_RESERVED 0x3
|
||||||
|
|
||||||
|
#define IPMI_FLOW_CONTROL_VALID(__val) \
|
||||||
|
(((__val) == IPMI_FLOW_CONTROL_NO_FLOW_CONTROL \
|
||||||
|
|| (__val) == IPMI_FLOW_CONTROL_RTS_CTS_FLOW_CONTROL \
|
||||||
|
|| (__val) == IPMI_FLOW_CONTROL_XON_XOFF_FLOW_CONTROL) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_BIT_RATE_9600_BPS 0x6
|
||||||
|
#define IPMI_BIT_RATE_19200_BPS 0x7
|
||||||
|
#define IPMI_BIT_RATE_38400_BPS 0x8
|
||||||
|
#define IPMI_BIT_RATE_57600_BPS 0x9
|
||||||
|
#define IPMI_BIT_RATE_115200_BPS 0xA
|
||||||
|
|
||||||
|
#define IPMI_BIT_RATE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_BIT_RATE_9600_BPS \
|
||||||
|
|| (__val) == IPMI_BIT_RATE_19200_BPS \
|
||||||
|
|| (__val) == IPMI_BIT_RATE_38400_BPS \
|
||||||
|
|| (__val) == IPMI_BIT_RATE_57600_BPS \
|
||||||
|
|| (__val) == IPMI_BIT_RATE_115200_BPS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_GET_SERIAL_MODEM_PARAMETER 0x0
|
||||||
|
#define IPMI_GET_SERIAL_MODEM_PARAMETER_REVISION_ONLY 0x1
|
||||||
|
|
||||||
|
#define IPMI_GET_SERIAL_MODEM_PARAMETER_VALID(__flag) \
|
||||||
|
(((__flag) == IPMI_GET_SERIAL_MODEM_PARAMETER \
|
||||||
|
|| (__flag) == IPMI_GET_SERIAL_MODEM_PARAMETER_REVISION_ONLY) ? 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_set_serial_modem_configuration_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_serial_modem_configuration_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_serial_modem_configuration_set_in_progress_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_serial_modem_configuration_connection_mode_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_serial_modem_configuration_ipmi_messaging_comm_settings_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_serial_modem_configuration_page_blackout_interval_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_serial_modem_configuration_call_retry_interval_rq;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_serial_modem_configuration_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_serial_modem_configuration_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_serial_modem_configuration_set_in_progress_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_serial_modem_configuration_connection_mode_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_serial_modem_configuration_ipmi_messaging_comm_settings_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_serial_modem_configuration_page_blackout_interval_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_serial_modem_configuration_call_retry_interval_rs;
|
||||||
|
|
||||||
|
int fill_cmd_set_serial_modem_configuration (uint8_t channel_number,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_serial_modem_configuration_set_in_progress (uint8_t channel_number,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_serial_modem_configuration_connection_mode (uint8_t channel_number,
|
||||||
|
uint8_t basic_mode,
|
||||||
|
uint8_t ppp_mode,
|
||||||
|
uint8_t terminal_mode,
|
||||||
|
uint8_t connect_mode,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_serial_modem_configuration_ipmi_messaging_comm_settings (uint8_t channel_number,
|
||||||
|
uint8_t dtr_hangup,
|
||||||
|
uint8_t flow_control,
|
||||||
|
uint8_t bit_rate,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_serial_modem_configuration_page_blackout_interval (uint8_t channel_number,
|
||||||
|
uint8_t page_blackout_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_serial_modem_configuration_call_retry_interval (uint8_t channel_number,
|
||||||
|
uint8_t call_retry_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_serial_modem_configuration (uint8_t channel_number,
|
||||||
|
uint8_t parameter_type,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SERIAL_MODEM_CMDS_H */
|
169
source/freeipmi/usr/include/freeipmi/cmds/ipmi-sol-cmds.h
Normal file
169
source/freeipmi/usr/include/freeipmi/cmds/ipmi-sol-cmds.h
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
/*
|
||||||
|
* 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_SOL_CMDS_H
|
||||||
|
#define IPMI_SOL_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SOL_CONFIGURATION_PARAMETERS_NO_SET_SELECTOR 0x0
|
||||||
|
#define IPMI_SOL_CONFIGURATION_PARAMETERS_NO_BLOCK_SELECTOR 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_CONFIGURATION_PARAMETERS_SET_COMPLETE 0x00
|
||||||
|
#define IPMI_SOL_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS 0x01
|
||||||
|
#define IPMI_SOL_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE 0x02
|
||||||
|
|
||||||
|
#define IPMI_SOL_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS_VALID(__value) \
|
||||||
|
(((__value) == IPMI_SOL_CONFIGURATION_PARAMETERS_SET_COMPLETE \
|
||||||
|
|| (__value) == IPMI_SOL_CONFIGURATION_PARAMETERS_SET_IN_PROGRESS \
|
||||||
|
|| (__value) == IPMI_SOL_CONFIGURATION_PARAMETERS_SET_COMMIT_WRITE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_SOL_DISABLE 0x0
|
||||||
|
#define IPMI_SOL_SOL_ENABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_SOL_SOL_ENABLE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_SOL_DISABLE \
|
||||||
|
|| (__val) == IPMI_SOL_SOL_ENABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_FORCE_SOL_PAYLOAD_AUTHENTICATION 0x1
|
||||||
|
#define IPMI_SOL_AUTHENTICATION_CONTROLLED_BY_REMOTE_SOFTWARE 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_FORCE_SOL_PAYLOAD_AUTHENTICATION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_FORCE_SOL_PAYLOAD_AUTHENTICATION \
|
||||||
|
|| (__val) == IPMI_SOL_AUTHENTICATION_CONTROLLED_BY_REMOTE_SOFTWARE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_FORCE_SOL_PAYLOAD_ENCRYPTION 0x1
|
||||||
|
#define IPMI_SOL_ENCRYPTION_CONTROLLED_BY_REMOTE_SOFTWARE 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_FORCE_SOL_PAYLOAD_ENCRYPTION_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_FORCE_SOL_PAYLOAD_ENCRYPTION \
|
||||||
|
|| (__val) == IPMI_SOL_ENCRYPTION_CONTROLLED_BY_REMOTE_SOFTWARE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_BIT_RATE_SERIAL_BIT_RATE 0x0
|
||||||
|
#define IPMI_SOL_BIT_RATE_96_KBPS 0x6
|
||||||
|
#define IPMI_SOL_BIT_RATE_192_KBPS 0x7
|
||||||
|
#define IPMI_SOL_BIT_RATE_384_KBPS 0x8
|
||||||
|
#define IPMI_SOL_BIT_RATE_576_KBPS 0x9
|
||||||
|
#define IPMI_SOL_BIT_RATE_1152_KBPS 0xA
|
||||||
|
|
||||||
|
#define IPMI_SOL_BIT_RATE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_BIT_RATE_SERIAL_BIT_RATE \
|
||||||
|
|| (__val) == IPMI_SOL_BIT_RATE_96_KBPS \
|
||||||
|
|| (__val) == IPMI_SOL_BIT_RATE_192_KBPS \
|
||||||
|
|| (__val) == IPMI_SOL_BIT_RATE_384_KBPS \
|
||||||
|
|| (__val) == IPMI_SOL_BIT_RATE_576_KBPS \
|
||||||
|
|| (__val) == IPMI_SOL_BIT_RATE_1152_KBPS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_GET_SOL_PARAMETER 0x0
|
||||||
|
#define IPMI_GET_SOL_PARAMETER_REVISION_ONLY 0x1
|
||||||
|
|
||||||
|
#define IPMI_GET_SOL_PARAMETER_VALID(__val) \
|
||||||
|
(((__val) == IPMI_GET_SOL_PARAMETER \
|
||||||
|
|| (__val) == IPMI_GET_SOL_PARAMETER_REVISION_ONLY) ? 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_set_sol_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_set_in_progress_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_sol_enable_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_sol_authentication_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_character_accumulate_interval_and_send_threshold_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_sol_retry_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_sol_non_volatile_bit_rate_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_sol_volatile_bit_rate_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_set_sol_configuration_parameters_sol_payload_port_number_rq;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_rq;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_set_in_progress_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_sol_enable_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_sol_authentication_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_character_accumulate_interval_and_send_threshold_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_sol_retry_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_sol_non_volatile_bit_rate_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_sol_volatile_bit_rate_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_sol_payload_channel_rs;
|
||||||
|
extern fiid_template_t tmpl_cmd_get_sol_configuration_parameters_sol_payload_port_number_rs;
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters (uint8_t channel_number,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
const void *configuration_parameter_data,
|
||||||
|
unsigned int configuration_parameter_data_len,
|
||||||
|
fiid_obj_t obj_data_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_set_in_progress (uint8_t channel_number,
|
||||||
|
uint8_t state,
|
||||||
|
fiid_obj_t obj_data_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_sol_enable (uint8_t channel_number,
|
||||||
|
uint8_t sol_enable,
|
||||||
|
fiid_obj_t obj_data_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_sol_authentication (uint8_t channel_number,
|
||||||
|
uint8_t sol_privilege_level,
|
||||||
|
uint8_t force_sol_payload_authentication,
|
||||||
|
uint8_t force_sol_payload_encryption,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_character_accumulate_interval_and_send_threshold (uint8_t channel_number,
|
||||||
|
uint8_t character_accumulate_interval,
|
||||||
|
uint8_t character_send_threshold,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_sol_retry (uint8_t channel_number,
|
||||||
|
uint8_t retry_count,
|
||||||
|
uint8_t retry_interval,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_sol_non_volatile_bit_rate (uint8_t channel_number,
|
||||||
|
uint8_t bit_rate,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_sol_volatile_bit_rate (uint8_t channel_number,
|
||||||
|
uint8_t bit_rate,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_set_sol_configuration_parameters_sol_payload_port_number (uint8_t channel_number,
|
||||||
|
uint16_t port_number,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_cmd_get_sol_configuration_parameters (uint8_t channel_number,
|
||||||
|
uint8_t get_parameter,
|
||||||
|
uint8_t parameter_selector,
|
||||||
|
uint8_t set_selector,
|
||||||
|
uint8_t block_selector,
|
||||||
|
fiid_obj_t obj_data_rq);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SOL_CMDS_H */
|
53
source/freeipmi/usr/include/freeipmi/cmds/rmcp-cmds.h
Normal file
53
source/freeipmi/usr/include/freeipmi/cmds/rmcp-cmds.h
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
* 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 RMCP_CMDS_H
|
||||||
|
#define RMCP_CMDS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_asf_presence_ping;
|
||||||
|
extern fiid_template_t tmpl_cmd_asf_presence_pong;
|
||||||
|
|
||||||
|
/* MESSAGE_TAG:
|
||||||
|
achu: Consecutive ping messages should use different message tags,
|
||||||
|
ranging from 0x00 to 0xFE. This is because the RMCP consumers may
|
||||||
|
optionally discard duplicate messages. */
|
||||||
|
|
||||||
|
int fill_cmd_asf_presence_ping (uint8_t message_tag, fiid_obj_t obj_cmd);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* RMCP_CMDS_H */
|
151
source/freeipmi/usr/include/freeipmi/debug/ipmi-debug.h
Normal file
151
source/freeipmi/usr/include/freeipmi/debug/ipmi-debug.h
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
/*
|
||||||
|
* 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_DEBUG_H
|
||||||
|
#define IPMI_DEBUG_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_unexpected_data;
|
||||||
|
|
||||||
|
int ipmi_obj_dump (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
fiid_obj_t obj);
|
||||||
|
|
||||||
|
int ipmi_obj_dump_ipmb (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
fiid_obj_t obj,
|
||||||
|
fiid_template_t tmpl_ipmb_msg_hdr,
|
||||||
|
fiid_template_t tmpl_ipmb_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_rmcp_packet (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_kcs_packet (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_kcs_packet_ipmb (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_cmd,
|
||||||
|
fiid_template_t tmpl_ipmb_msg_hdr,
|
||||||
|
fiid_template_t tmpl_ipmb_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_ssif_packet (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_lan_packet (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_lan_msg_hdr,
|
||||||
|
fiid_template_t tmpl_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_lan_packet_ipmb (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_lan_msg_hdr,
|
||||||
|
fiid_template_t tmpl_cmd,
|
||||||
|
fiid_template_t tmpl_ipmb_msg_hdr,
|
||||||
|
fiid_template_t tmpl_ipmb_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_rmcpplus_packet (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
uint8_t authentication_algorithm,
|
||||||
|
uint8_t integrity_algorithm,
|
||||||
|
uint8_t confidentiality_algorithm,
|
||||||
|
const void *integrity_key,
|
||||||
|
unsigned int integrity_key_len,
|
||||||
|
const void *confidentiality_key,
|
||||||
|
unsigned int confidentiality_key_len,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_lan_msg_hdr,
|
||||||
|
fiid_template_t tmpl_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_rmcpplus_packet_ipmb (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
uint8_t authentication_algorithm,
|
||||||
|
uint8_t integrity_algorithm,
|
||||||
|
uint8_t confidentiality_algorithm,
|
||||||
|
const void *integrity_key,
|
||||||
|
unsigned int integrity_key_len,
|
||||||
|
const void *confidentiality_key,
|
||||||
|
unsigned int confidentiality_key_len,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_template_t tmpl_lan_msg_hdr,
|
||||||
|
fiid_template_t tmpl_cmd,
|
||||||
|
fiid_template_t tmpl_ipmb_msg_hdr,
|
||||||
|
fiid_template_t tmpl_ipmb_cmd);
|
||||||
|
|
||||||
|
int ipmi_dump_sdr_record (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len);
|
||||||
|
|
||||||
|
int ipmi_dump_hex (int fd,
|
||||||
|
const char *prefix,
|
||||||
|
const char *hdr,
|
||||||
|
const char *trlr,
|
||||||
|
const void *buf,
|
||||||
|
unsigned int buf_len);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DEBUG_H */
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* 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_INTELDCMI_DRIVER_H
|
||||||
|
#define IPMI_INTELDCMI_DRIVER_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_INTELDCMI_DRIVER_DEVICE_DEFAULT "/dev/dcmi"
|
||||||
|
|
||||||
|
#define IPMI_INTELDCMI_ERR_SUCCESS 0
|
||||||
|
#define IPMI_INTELDCMI_ERR_NULL 1
|
||||||
|
#define IPMI_INTELDCMI_ERR_INVALID 2
|
||||||
|
#define IPMI_INTELDCMI_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_INTELDCMI_ERR_PERMISSION 4
|
||||||
|
#define IPMI_INTELDCMI_ERR_DEVICE_NOT_FOUND 5
|
||||||
|
#define IPMI_INTELDCMI_ERR_IO_NOT_INITIALIZED 6
|
||||||
|
#define IPMI_INTELDCMI_ERR_OUT_OF_MEMORY 7
|
||||||
|
#define IPMI_INTELDCMI_ERR_DRIVER_TIMEOUT 8
|
||||||
|
#define IPMI_INTELDCMI_ERR_IPMI_ERROR 9
|
||||||
|
#define IPMI_INTELDCMI_ERR_SYSTEM_ERROR 10
|
||||||
|
#define IPMI_INTELDCMI_ERR_INTERNAL_ERROR 11
|
||||||
|
#define IPMI_INTELDCMI_ERR_ERRNUMRANGE 12
|
||||||
|
|
||||||
|
#define IPMI_INTELDCMI_FLAGS_DEFAULT 0x00000000
|
||||||
|
|
||||||
|
typedef struct ipmi_inteldcmi_ctx *ipmi_inteldcmi_ctx_t;
|
||||||
|
|
||||||
|
ipmi_inteldcmi_ctx_t ipmi_inteldcmi_ctx_create (void);
|
||||||
|
void ipmi_inteldcmi_ctx_destroy (ipmi_inteldcmi_ctx_t ctx);
|
||||||
|
int ipmi_inteldcmi_ctx_errnum (ipmi_inteldcmi_ctx_t ctx);
|
||||||
|
char *ipmi_inteldcmi_ctx_strerror (int errnum);
|
||||||
|
char *ipmi_inteldcmi_ctx_errormsg (ipmi_inteldcmi_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_inteldcmi_ctx_get_driver_device (ipmi_inteldcmi_ctx_t ctx, char **driver_device);
|
||||||
|
int ipmi_inteldcmi_ctx_get_flags (ipmi_inteldcmi_ctx_t ctx, unsigned int *flags);
|
||||||
|
|
||||||
|
int ipmi_inteldcmi_ctx_set_driver_device (ipmi_inteldcmi_ctx_t ctx, const char *driver_device);
|
||||||
|
int ipmi_inteldcmi_ctx_set_flags (ipmi_inteldcmi_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
int ipmi_inteldcmi_ctx_io_init (ipmi_inteldcmi_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_inteldcmi_cmd (ipmi_inteldcmi_ctx_t ctx,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_inteldcmi_cmd_ipmb (ipmi_inteldcmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t rs_addr,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_INTELDCMI_DRIVER_H */
|
|
@ -0,0 +1,98 @@
|
||||||
|
/*
|
||||||
|
* 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_KCS_DRIVER_H
|
||||||
|
#define IPMI_KCS_DRIVER_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_KCS_SMS_IO_BASE_DEFAULT 0x0CA2
|
||||||
|
|
||||||
|
#define IPMI_KCS_ERR_SUCCESS 0
|
||||||
|
#define IPMI_KCS_ERR_NULL 1
|
||||||
|
#define IPMI_KCS_ERR_INVALID 2
|
||||||
|
#define IPMI_KCS_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_KCS_ERR_PERMISSION 4
|
||||||
|
#define IPMI_KCS_ERR_IO_NOT_INITIALIZED 5
|
||||||
|
#define IPMI_KCS_ERR_OVERFLOW 6
|
||||||
|
#define IPMI_KCS_ERR_BUSY 7
|
||||||
|
#define IPMI_KCS_ERR_OUT_OF_MEMORY 8
|
||||||
|
#define IPMI_KCS_ERR_DEVICE_NOT_FOUND 9
|
||||||
|
#define IPMI_KCS_ERR_DRIVER_TIMEOUT 10
|
||||||
|
#define IPMI_KCS_ERR_IPMI_ERROR 11
|
||||||
|
#define IPMI_KCS_ERR_SYSTEM_ERROR 12
|
||||||
|
#define IPMI_KCS_ERR_INTERNAL_ERROR 13
|
||||||
|
#define IPMI_KCS_ERR_ERRNUMRANGE 14
|
||||||
|
|
||||||
|
/* NONBLOCKING - if busy, IPMI_KCS_ERR_BUSY will be returned.
|
||||||
|
*
|
||||||
|
* SPIN_POLL - when polling, internally spin instead of putting
|
||||||
|
* process to sleep. If polling intervals are small, may improve
|
||||||
|
* inband performance by removing context switches and OS timer
|
||||||
|
* granularity.
|
||||||
|
*/
|
||||||
|
#define IPMI_KCS_FLAGS_DEFAULT 0x00000000
|
||||||
|
#define IPMI_KCS_FLAGS_NONBLOCKING 0x00000001
|
||||||
|
#define IPMI_KCS_FLAGS_SPIN_POLL 0x00000002
|
||||||
|
|
||||||
|
typedef struct ipmi_kcs_ctx *ipmi_kcs_ctx_t;
|
||||||
|
|
||||||
|
ipmi_kcs_ctx_t ipmi_kcs_ctx_create (void);
|
||||||
|
void ipmi_kcs_ctx_destroy (ipmi_kcs_ctx_t ctx);
|
||||||
|
int ipmi_kcs_ctx_errnum (ipmi_kcs_ctx_t ctx);
|
||||||
|
char *ipmi_kcs_ctx_strerror (int errnum);
|
||||||
|
char *ipmi_kcs_ctx_errormsg (ipmi_kcs_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_kcs_ctx_get_driver_address (ipmi_kcs_ctx_t ctx, uint16_t *bmc_iobase_address);
|
||||||
|
int ipmi_kcs_ctx_get_register_spacing (ipmi_kcs_ctx_t ctx, uint8_t *register_spacing);
|
||||||
|
int ipmi_kcs_ctx_get_poll_interval (ipmi_kcs_ctx_t ctx, uint8_t *poll_interval);
|
||||||
|
int ipmi_kcs_ctx_get_flags (ipmi_kcs_ctx_t ctx, unsigned int *flags);
|
||||||
|
|
||||||
|
int ipmi_kcs_ctx_set_driver_address (ipmi_kcs_ctx_t ctx, uint16_t bmc_iobase_address);
|
||||||
|
int ipmi_kcs_ctx_set_register_spacing (ipmi_kcs_ctx_t ctx, uint8_t register_spacing);
|
||||||
|
int ipmi_kcs_ctx_set_poll_interval (ipmi_kcs_ctx_t ctx, uint8_t poll_interval);
|
||||||
|
int ipmi_kcs_ctx_set_flags (ipmi_kcs_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
int ipmi_kcs_ctx_io_init (ipmi_kcs_ctx_t ctx);
|
||||||
|
|
||||||
|
/* returns length written on success, -1 on error */
|
||||||
|
int ipmi_kcs_write (ipmi_kcs_ctx_t ctx,
|
||||||
|
const void *buf,
|
||||||
|
unsigned int buf_len);
|
||||||
|
|
||||||
|
/* returns length read on success, -1 on error */
|
||||||
|
int ipmi_kcs_read (ipmi_kcs_ctx_t ctx,
|
||||||
|
void *buf,
|
||||||
|
unsigned int buf_len);
|
||||||
|
|
||||||
|
int ipmi_kcs_cmd (ipmi_kcs_ctx_t ctx,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_KCS_DRIVER_H */
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* 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_OPENIPMI_DRIVER_H
|
||||||
|
#define IPMI_OPENIPMI_DRIVER_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_OPENIPMI_DRIVER_DEVICE_DEFAULT "/dev/ipmi0"
|
||||||
|
|
||||||
|
#define IPMI_OPENIPMI_ERR_SUCCESS 0
|
||||||
|
#define IPMI_OPENIPMI_ERR_NULL 1
|
||||||
|
#define IPMI_OPENIPMI_ERR_INVALID 2
|
||||||
|
#define IPMI_OPENIPMI_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_OPENIPMI_ERR_PERMISSION 4
|
||||||
|
#define IPMI_OPENIPMI_ERR_DEVICE_NOT_FOUND 5
|
||||||
|
#define IPMI_OPENIPMI_ERR_IO_NOT_INITIALIZED 6
|
||||||
|
#define IPMI_OPENIPMI_ERR_OUT_OF_MEMORY 7
|
||||||
|
#define IPMI_OPENIPMI_ERR_DRIVER_TIMEOUT 8
|
||||||
|
#define IPMI_OPENIPMI_ERR_IPMI_ERROR 9
|
||||||
|
#define IPMI_OPENIPMI_ERR_SYSTEM_ERROR 10
|
||||||
|
#define IPMI_OPENIPMI_ERR_INTERNAL_ERROR 11
|
||||||
|
#define IPMI_OPENIPMI_ERR_ERRNUMRANGE 12
|
||||||
|
|
||||||
|
#define IPMI_OPENIPMI_FLAGS_DEFAULT 0x00000000
|
||||||
|
|
||||||
|
typedef struct ipmi_openipmi_ctx *ipmi_openipmi_ctx_t;
|
||||||
|
|
||||||
|
ipmi_openipmi_ctx_t ipmi_openipmi_ctx_create (void);
|
||||||
|
void ipmi_openipmi_ctx_destroy (ipmi_openipmi_ctx_t ctx);
|
||||||
|
int ipmi_openipmi_ctx_errnum (ipmi_openipmi_ctx_t ctx);
|
||||||
|
char *ipmi_openipmi_ctx_strerror (int errnum);
|
||||||
|
char *ipmi_openipmi_ctx_errormsg (ipmi_openipmi_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_openipmi_ctx_get_driver_device (ipmi_openipmi_ctx_t ctx, char **driver_device);
|
||||||
|
int ipmi_openipmi_ctx_get_flags (ipmi_openipmi_ctx_t ctx, unsigned int *flags);
|
||||||
|
|
||||||
|
int ipmi_openipmi_ctx_set_driver_device (ipmi_openipmi_ctx_t ctx, const char *driver_device);
|
||||||
|
int ipmi_openipmi_ctx_set_flags (ipmi_openipmi_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
int ipmi_openipmi_ctx_io_init (ipmi_openipmi_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_openipmi_cmd (ipmi_openipmi_ctx_t ctx,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
int ipmi_openipmi_cmd_ipmb (ipmi_openipmi_ctx_t ctx,
|
||||||
|
uint8_t channel_number,
|
||||||
|
uint8_t rs_addr,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_OPENIPMI_DRIVER_H */
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* 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_SSIF_DRIVER_H
|
||||||
|
#define IPMI_SSIF_DRIVER_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_DEFAULT_I2C_DEVICE "/dev/i2c-0"
|
||||||
|
#define IPMI_DEFAULT_SSIF_IPMB_ADDR 0x42
|
||||||
|
|
||||||
|
#define IPMI_SSIF_ERR_SUCCESS 0
|
||||||
|
#define IPMI_SSIF_ERR_NULL 1
|
||||||
|
#define IPMI_SSIF_ERR_INVALID 2
|
||||||
|
#define IPMI_SSIF_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_SSIF_ERR_PERMISSION 4
|
||||||
|
#define IPMI_SSIF_ERR_IO_NOT_INITIALIZED 5
|
||||||
|
#define IPMI_SSIF_ERR_OVERFLOW 6
|
||||||
|
#define IPMI_SSIF_ERR_BUSY 7
|
||||||
|
#define IPMI_SSIF_ERR_OUT_OF_MEMORY 8
|
||||||
|
#define IPMI_SSIF_ERR_DEVICE_NOT_FOUND 9
|
||||||
|
#define IPMI_SSIF_ERR_DRIVER_TIMEOUT 10
|
||||||
|
#define IPMI_SSIF_ERR_IPMI_ERROR 11
|
||||||
|
#define IPMI_SSIF_ERR_SYSTEM_ERROR 12
|
||||||
|
#define IPMI_SSIF_ERR_INTERNAL_ERROR 13
|
||||||
|
#define IPMI_SSIF_ERR_ERRNUMRANGE 14
|
||||||
|
|
||||||
|
#define IPMI_SSIF_FLAGS_DEFAULT 0x00000000
|
||||||
|
#define IPMI_SSIF_FLAGS_NONBLOCKING 0x00000001
|
||||||
|
|
||||||
|
typedef struct ipmi_ssif_ctx *ipmi_ssif_ctx_t;
|
||||||
|
|
||||||
|
/* Notes:
|
||||||
|
*
|
||||||
|
* IPMBAddress - slave address of the BMC on the SMBus (usually 0x42)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
ipmi_ssif_ctx_t ipmi_ssif_ctx_create (void);
|
||||||
|
void ipmi_ssif_ctx_destroy (ipmi_ssif_ctx_t ctx);
|
||||||
|
int ipmi_ssif_ctx_errnum (ipmi_ssif_ctx_t ctx);
|
||||||
|
char *ipmi_ssif_ctx_strerror (int errnum);
|
||||||
|
char *ipmi_ssif_ctx_errormsg (ipmi_ssif_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_ssif_ctx_get_driver_device (ipmi_ssif_ctx_t ctx, char **driver_device);
|
||||||
|
int ipmi_ssif_ctx_get_driver_address (ipmi_ssif_ctx_t ctx, uint8_t *driver_address);
|
||||||
|
int ipmi_ssif_ctx_get_flags (ipmi_ssif_ctx_t ctx, unsigned int *flags);
|
||||||
|
|
||||||
|
int ipmi_ssif_ctx_set_driver_device (ipmi_ssif_ctx_t ctx, const char *driver_device);
|
||||||
|
int ipmi_ssif_ctx_set_driver_address (ipmi_ssif_ctx_t ctx, uint8_t driver_address);
|
||||||
|
int ipmi_ssif_ctx_set_flags (ipmi_ssif_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
int ipmi_ssif_ctx_io_init (ipmi_ssif_ctx_t ctx);
|
||||||
|
|
||||||
|
/* returns length written on success, -1 on error */
|
||||||
|
int ipmi_ssif_write (ipmi_ssif_ctx_t ctx,
|
||||||
|
const void *buf,
|
||||||
|
unsigned int buf_len);
|
||||||
|
|
||||||
|
/* returns length read on success, -1 on error */
|
||||||
|
int ipmi_ssif_read (ipmi_ssif_ctx_t ctx,
|
||||||
|
void *buf,
|
||||||
|
unsigned int buf_len);
|
||||||
|
|
||||||
|
int ipmi_ssif_cmd (ipmi_ssif_ctx_t ctx,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SSIF_DRIVER_H */
|
|
@ -0,0 +1,74 @@
|
||||||
|
/*
|
||||||
|
* 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_SUNBMC_DRIVER_H
|
||||||
|
#define IPMI_SUNBMC_DRIVER_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SUNBMC_DRIVER_DEVICE_DEFAULT "/dev/bmc"
|
||||||
|
|
||||||
|
#define IPMI_SUNBMC_ERR_SUCCESS 0
|
||||||
|
#define IPMI_SUNBMC_ERR_NULL 1
|
||||||
|
#define IPMI_SUNBMC_ERR_INVALID 2
|
||||||
|
#define IPMI_SUNBMC_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_SUNBMC_ERR_PERMISSION 4
|
||||||
|
#define IPMI_SUNBMC_ERR_DEVICE_NOT_FOUND 5
|
||||||
|
#define IPMI_SUNBMC_ERR_DEVICE_NOT_SUPPORTED 6
|
||||||
|
#define IPMI_SUNBMC_ERR_IO_NOT_INITIALIZED 7
|
||||||
|
#define IPMI_SUNBMC_ERR_OUT_OF_MEMORY 8
|
||||||
|
#define IPMI_SUNBMC_ERR_DRIVER_TIMEOUT 9
|
||||||
|
#define IPMI_SUNBMC_ERR_IPMI_ERROR 10
|
||||||
|
#define IPMI_SUNBMC_ERR_SYSTEM_ERROR 11
|
||||||
|
#define IPMI_SUNBMC_ERR_INTERNAL_ERROR 12
|
||||||
|
#define IPMI_SUNBMC_ERR_ERRNUMRANGE 13
|
||||||
|
|
||||||
|
#define IPMI_SUNBMC_FLAGS_DEFAULT 0x00000000
|
||||||
|
|
||||||
|
typedef struct ipmi_sunbmc_ctx *ipmi_sunbmc_ctx_t;
|
||||||
|
|
||||||
|
ipmi_sunbmc_ctx_t ipmi_sunbmc_ctx_create (void);
|
||||||
|
void ipmi_sunbmc_ctx_destroy (ipmi_sunbmc_ctx_t ctx);
|
||||||
|
int ipmi_sunbmc_ctx_errnum (ipmi_sunbmc_ctx_t ctx);
|
||||||
|
char *ipmi_sunbmc_ctx_strerror (int errnum);
|
||||||
|
char *ipmi_sunbmc_ctx_errormsg (ipmi_sunbmc_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_sunbmc_ctx_get_driver_device (ipmi_sunbmc_ctx_t ctx, char **driver_device);
|
||||||
|
int ipmi_sunbmc_ctx_get_flags (ipmi_sunbmc_ctx_t ctx, unsigned int *flags);
|
||||||
|
|
||||||
|
int ipmi_sunbmc_ctx_set_driver_device (ipmi_sunbmc_ctx_t ctx, const char *driver_device);
|
||||||
|
int ipmi_sunbmc_ctx_set_flags (ipmi_sunbmc_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
int ipmi_sunbmc_ctx_io_init (ipmi_sunbmc_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_sunbmc_cmd (ipmi_sunbmc_ctx_t ctx,
|
||||||
|
uint8_t lun,
|
||||||
|
uint8_t net_fn,
|
||||||
|
fiid_obj_t obj_cmd_rq,
|
||||||
|
fiid_obj_t obj_cmd_rs);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SUNBMC_DRIVER_H */
|
751
source/freeipmi/usr/include/freeipmi/fiid/fiid.h
Normal file
751
source/freeipmi/usr/include/freeipmi/fiid/fiid.h
Normal file
|
@ -0,0 +1,751 @@
|
||||||
|
/*
|
||||||
|
* 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 FIID_H
|
||||||
|
#define FIID_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID Error Codes
|
||||||
|
*/
|
||||||
|
|
||||||
|
enum fiid_err
|
||||||
|
{
|
||||||
|
FIID_ERR_SUCCESS = 0,
|
||||||
|
FIID_ERR_OBJ_NULL = 1,
|
||||||
|
FIID_ERR_OBJ_INVALID = 2,
|
||||||
|
FIID_ERR_ITERATOR_NULL = 3,
|
||||||
|
FIID_ERR_ITERATOR_INVALID = 4,
|
||||||
|
FIID_ERR_PARAMETERS = 5,
|
||||||
|
FIID_ERR_TEMPLATE_INVALID = 6,
|
||||||
|
FIID_ERR_FIELD_NOT_FOUND = 7,
|
||||||
|
FIID_ERR_KEY_INVALID = 8,
|
||||||
|
FIID_ERR_FLAGS_INVALID = 9,
|
||||||
|
FIID_ERR_TEMPLATE_NOT_BYTE_ALIGNED = 10,
|
||||||
|
FIID_ERR_FIELD_NOT_BYTE_ALIGNED = 11,
|
||||||
|
FIID_ERR_BLOCK_NOT_BYTE_ALIGNED = 12,
|
||||||
|
FIID_ERR_OVERFLOW = 13,
|
||||||
|
FIID_ERR_MAX_FIELD_LEN_MISMATCH = 14,
|
||||||
|
FIID_ERR_KEY_FIELD_MISMATCH = 15,
|
||||||
|
FIID_ERR_FLAGS_FIELD_MISMATCH = 16,
|
||||||
|
FIID_ERR_TEMPLATE_LENGTH_MISMATCH = 17,
|
||||||
|
FIID_ERR_DATA_NOT_BYTE_ALIGNED = 18,
|
||||||
|
FIID_ERR_REQUIRED_FIELD_MISSING = 19,
|
||||||
|
FIID_ERR_FIXED_LENGTH_FIELD_INVALID = 20,
|
||||||
|
FIID_ERR_DATA_NOT_AVAILABLE = 21,
|
||||||
|
FIID_ERR_NOT_IDENTICAL = 22,
|
||||||
|
FIID_ERR_OUT_OF_MEMORY = 23,
|
||||||
|
FIID_ERR_INTERNAL_ERROR = 24,
|
||||||
|
FIID_ERR_ERRNUMRANGE = 25
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum fiid_err fiid_err_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID Field Maximum Key Length
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define FIID_FIELD_MAX_KEY_LEN 256
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID Field Flags
|
||||||
|
*
|
||||||
|
* FIID Field Requirement Flags
|
||||||
|
*
|
||||||
|
* REQUIRED
|
||||||
|
*
|
||||||
|
* The field in the template is required. For requests, if not set, a
|
||||||
|
* packet cannot be created. For responses, if not set, a packet is
|
||||||
|
* invalid.
|
||||||
|
*
|
||||||
|
* OPTIONAL
|
||||||
|
*
|
||||||
|
* The field in the template is not required. For requests, if not
|
||||||
|
* set, a packet can still be created. For responses, if not set, a
|
||||||
|
* packet is still valid.
|
||||||
|
*
|
||||||
|
* In a template field, either the REQUIRED or OPTIONAL flag must be
|
||||||
|
* specified.
|
||||||
|
*
|
||||||
|
* FIID Field Length Flags
|
||||||
|
*
|
||||||
|
* LENGTH_FIXED
|
||||||
|
*
|
||||||
|
* The number of bits that must be set in the field is fixed. It
|
||||||
|
* cannot be any other length.
|
||||||
|
*
|
||||||
|
* LENGTH_VARIABLE
|
||||||
|
*
|
||||||
|
* The number of bits that must be set in the field is variable in
|
||||||
|
* length.
|
||||||
|
*
|
||||||
|
* In a template field, either the LENGTH_FIXED or LENGTH_VARIABLE
|
||||||
|
* flag must be specified.
|
||||||
|
*
|
||||||
|
* FIID Field Misc Flags
|
||||||
|
*
|
||||||
|
* MAKES_PACKET_SUFFICIENT
|
||||||
|
*
|
||||||
|
* Used to indicate a sufficient set of fields, that if set, may allow
|
||||||
|
* a packet to be "sufficiently valid", despite other "required"
|
||||||
|
* fields not being set. Typically used in response packets to
|
||||||
|
* indicate the few fields necessary to be set for a payload to be
|
||||||
|
* accepted.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define FIID_FIELD_REQUIRED 0x00000001
|
||||||
|
#define FIID_FIELD_OPTIONAL 0x00000002
|
||||||
|
#define FIID_FIELD_REQUIRED_MASK 0x0000000F
|
||||||
|
|
||||||
|
#define FIID_FIELD_REQUIRED_FLAG(__flags) \
|
||||||
|
((__flags) & FIID_FIELD_REQUIRED_MASK)
|
||||||
|
|
||||||
|
#define FIID_FIELD_REQUIRED_FLAG_VALID(__flags) \
|
||||||
|
((FIID_FIELD_REQUIRED_FLAG (__flags) == FIID_FIELD_REQUIRED \
|
||||||
|
|| FIID_FIELD_REQUIRED_FLAG (__flags) == FIID_FIELD_OPTIONAL) ? 1 : 0)
|
||||||
|
|
||||||
|
#define FIID_FIELD_LENGTH_FIXED 0x00000010
|
||||||
|
#define FIID_FIELD_LENGTH_VARIABLE 0x00000020
|
||||||
|
#define FIID_FIELD_LENGTH_MASK 0x000000F0
|
||||||
|
|
||||||
|
#define FIID_FIELD_LENGTH_FLAG(__flags) \
|
||||||
|
((__flags) & FIID_FIELD_LENGTH_MASK)
|
||||||
|
|
||||||
|
#define FIID_FIELD_LENGTH_FLAG_VALID(__flags) \
|
||||||
|
((FIID_FIELD_LENGTH_FLAG (__flags) == FIID_FIELD_LENGTH_FIXED \
|
||||||
|
|| FIID_FIELD_LENGTH_FLAG (__flags) == FIID_FIELD_LENGTH_VARIABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define FIID_FIELD_MAKES_PACKET_SUFFICIENT 0x00010000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_field_t
|
||||||
|
*
|
||||||
|
* Defines a FIID field:
|
||||||
|
*
|
||||||
|
* max_field_len - maximum length of a field in bits
|
||||||
|
* key - field name
|
||||||
|
* flags - indicating field requirements
|
||||||
|
*
|
||||||
|
* An array of field's makes up a FIID template.
|
||||||
|
*/
|
||||||
|
typedef struct fiid_field
|
||||||
|
{
|
||||||
|
unsigned int max_field_len;
|
||||||
|
char key[FIID_FIELD_MAX_KEY_LEN];
|
||||||
|
unsigned int flags;
|
||||||
|
} fiid_field_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID Template
|
||||||
|
*
|
||||||
|
* An array of fiid_field_t's make up a fiid template. The array should be
|
||||||
|
* terminated with a field with a maximum field length of 0.
|
||||||
|
*
|
||||||
|
* The FIID template should be a multiple of 8 (i.e. byte aligned) otherwise
|
||||||
|
* most of the FIID API will return errors.
|
||||||
|
*/
|
||||||
|
typedef fiid_field_t fiid_template_t[];
|
||||||
|
|
||||||
|
typedef struct fiid_obj *fiid_obj_t;
|
||||||
|
|
||||||
|
typedef struct fiid_iterator *fiid_iterator_t;
|
||||||
|
|
||||||
|
/*****************************
|
||||||
|
* FIID Template API *
|
||||||
|
*****************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_field_lookup
|
||||||
|
*
|
||||||
|
* Returns 1 if the field is found in the template, 0 if not, -1 on
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
int fiid_template_field_lookup (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID_TEMPLATE_FIELD_LOOKUP
|
||||||
|
*
|
||||||
|
* Returns 1 if the field is found in the template, -1 on error.
|
||||||
|
* Identical to fiid_template_field_lookup() except a return of 0 is
|
||||||
|
* not possible. If the field is not found, -1 is returned and
|
||||||
|
* errno EINVAL is the error code set.
|
||||||
|
*/
|
||||||
|
int FIID_TEMPLATE_FIELD_LOOKUP (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_len
|
||||||
|
*
|
||||||
|
* Returns the total length (in bits) of the all the fields in the
|
||||||
|
* template, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_template_len (fiid_template_t tmpl);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_len_bytes
|
||||||
|
*
|
||||||
|
* Returns the total length (in bytes) of the all the fields in the
|
||||||
|
* template, -1 on error. Will return an error if template bit length
|
||||||
|
* is not a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_template_len_bytes (fiid_template_t tmpl);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_field_start
|
||||||
|
*
|
||||||
|
* Returns the offset (in bits) of the beginning of the field within
|
||||||
|
* this template, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_template_field_start (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_field_start_bytes
|
||||||
|
*
|
||||||
|
* Returns the offset (in bytes) of the beginning of the field within
|
||||||
|
* this template, -1 on error. Will return an error if field bit
|
||||||
|
* offset is not a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_template_field_start_bytes (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_field_end
|
||||||
|
*
|
||||||
|
* Returns the offset (in bits) of the ending of the field within this
|
||||||
|
* template, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_template_field_end (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_field_end_bytes
|
||||||
|
*
|
||||||
|
* Returns the offset (in bytes) of the ending of the field within
|
||||||
|
* this template, -1 on error. Will return an error if field bit
|
||||||
|
* offset is not a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_template_field_end_bytes (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_field_len
|
||||||
|
*
|
||||||
|
* Returns the maximum length (in bits) of the specified field, -1 on
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
int fiid_template_field_len (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_field_len_bytes
|
||||||
|
*
|
||||||
|
* Returns the maximum length (in bytes) of the specified field, -1 on
|
||||||
|
* error. Will return an error if the field maximum bit length is not
|
||||||
|
* a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_template_field_len_bytes (fiid_template_t tmpl,
|
||||||
|
const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_block_len
|
||||||
|
*
|
||||||
|
* Returns the maximum length (in bits) of the block of fields
|
||||||
|
* beginning at 'field_start' and ending at 'field_end'. Returns -1
|
||||||
|
* on error.
|
||||||
|
*/
|
||||||
|
int fiid_template_block_len (fiid_template_t tmpl,
|
||||||
|
const char *field_start,
|
||||||
|
const char *field_end);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_block_len_bytes
|
||||||
|
*
|
||||||
|
* Returns the maximum length (in bytes) of the block of fields
|
||||||
|
* beginning at 'field_start' and ending at 'field_end'. Returns -1
|
||||||
|
* on error. Will return an error if the calculated bit length is not
|
||||||
|
* a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_template_block_len_bytes (fiid_template_t tmpl,
|
||||||
|
const char *field_start,
|
||||||
|
const char *field_end);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_compare
|
||||||
|
*
|
||||||
|
* Returns 1 if the two specified templates are identical, 0 if not,
|
||||||
|
* -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_template_compare (fiid_template_t tmpl1,
|
||||||
|
fiid_template_t tmpl2);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID_TEMPLATE_COMPARE
|
||||||
|
*
|
||||||
|
* Returns 1 if the two specified templates are identical, -1 on
|
||||||
|
* error. Identical to fiid_template_compare() except a return of 0
|
||||||
|
* is not possible. If templates are not identical, -1 is returned and
|
||||||
|
* errno EINVAL is the error code set.
|
||||||
|
*/
|
||||||
|
int FIID_TEMPLATE_COMPARE (fiid_template_t tmpl1,
|
||||||
|
fiid_template_t tmpl2);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_template_free
|
||||||
|
*
|
||||||
|
* Free's a template created by fiid_obj_template.
|
||||||
|
*/
|
||||||
|
void fiid_template_free (fiid_field_t *tmpl_dynamic);
|
||||||
|
|
||||||
|
/*****************************
|
||||||
|
* FIID Object API *
|
||||||
|
*****************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_strerror
|
||||||
|
*
|
||||||
|
* Return statically allocated string describing the specified error.
|
||||||
|
*/
|
||||||
|
char *fiid_strerror (fiid_err_t errnum);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_create
|
||||||
|
*
|
||||||
|
* Return a fiid object based on the specified template. Returns NULL
|
||||||
|
* on error.
|
||||||
|
*/
|
||||||
|
fiid_obj_t fiid_obj_create (fiid_template_t tmpl);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_destroy
|
||||||
|
*
|
||||||
|
* Destroy and free memory from a fiid object.
|
||||||
|
*/
|
||||||
|
void fiid_obj_destroy (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_dup
|
||||||
|
*
|
||||||
|
* Create and return a duplicate object from the one specified.
|
||||||
|
* Returns NULL on error.
|
||||||
|
*/
|
||||||
|
fiid_obj_t fiid_obj_dup (fiid_obj_t src_obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_copy
|
||||||
|
*
|
||||||
|
* Create and return a duplicate object from the one specified, but
|
||||||
|
* base the new object on the alternate template specified. Template
|
||||||
|
* length of the original and alternate template must be the same.
|
||||||
|
* Returns NULL on error.
|
||||||
|
*/
|
||||||
|
fiid_obj_t fiid_obj_copy (fiid_obj_t src_obj, fiid_template_t alt_tmpl);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_valid
|
||||||
|
*
|
||||||
|
* Returns 1 if the object passed in is a valid fiid object, 0 if not.
|
||||||
|
*/
|
||||||
|
int fiid_obj_valid (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_packet_valid
|
||||||
|
*
|
||||||
|
* Returns 1 if the object contains all the data for a valid packet,
|
||||||
|
* 0 if not, -1 on error. A valid packet is based on the field flags
|
||||||
|
* specified in the original fiid template. For example, this
|
||||||
|
* function will check if all required fields have been set with the
|
||||||
|
* correct number of bytes. It will also check that data set within
|
||||||
|
* the object is byte aligned. The FIID_FIELD_MAKES_PACKET_SUFFICIENT
|
||||||
|
* is not considered in this function.
|
||||||
|
*/
|
||||||
|
int fiid_obj_packet_valid (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID_OBJ_PACKET_VALID
|
||||||
|
*
|
||||||
|
* Returns 1 if the object contains all the data for a valid packet,
|
||||||
|
* -1 on error. Identical to fiid_obj_packet_valid() except a return
|
||||||
|
* of 0 is not possible. The FIID_FIELD_MAKES_PACKET_SUFFICIENT is
|
||||||
|
* not considered in this function.
|
||||||
|
*/
|
||||||
|
int FIID_OBJ_PACKET_VALID (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_packet_sufficient
|
||||||
|
*
|
||||||
|
* Returns 1 if the object contains all the data for a sufficient
|
||||||
|
* packet, 0 if not, -1 on error. Identical to
|
||||||
|
* fiid_obj_packet_valid() except FIID_FIELD_MAKES_PACKET_SUFFICIENT
|
||||||
|
* is considered. If a packet does not meet the conditions to pass
|
||||||
|
* fiid_obj_packet_valid(), sufficient fields are subsequently
|
||||||
|
* checked.
|
||||||
|
*/
|
||||||
|
int fiid_obj_packet_sufficient (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID_OBJ_PACKET_SUFFICIENT
|
||||||
|
*
|
||||||
|
* Returns 1 if the object contains a all the data for a valid packet,
|
||||||
|
* -1 on error. Identical to fiid_obj_packet_sufficient() except a return
|
||||||
|
* of 0 is not possible.
|
||||||
|
*/
|
||||||
|
int FIID_OBJ_PACKET_SUFFICIENT (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_template
|
||||||
|
*
|
||||||
|
* Create a template based on what is stored internally within the
|
||||||
|
* object. Returns NULL on error. Free the resulting template using
|
||||||
|
* fiid_template_free().
|
||||||
|
*/
|
||||||
|
fiid_field_t *fiid_obj_template (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_template_compare
|
||||||
|
*
|
||||||
|
* Returns 1 if the template specified is the one used to create the
|
||||||
|
* object, 0 if not, -1 one error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_template_compare (fiid_obj_t obj, fiid_template_t tmpl);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID_OBJ_TEMPLATE_COMPARE
|
||||||
|
*
|
||||||
|
* Returns 1 if the template specified is the one used to create the
|
||||||
|
* object, -1 one error. Identical to fiid_obj_template_compare()
|
||||||
|
* except a return of 0 is not possible. If object template and input
|
||||||
|
* template are not identical, -1 is returned and
|
||||||
|
* FIID_ERR_NOT_IDENTICAL is the error code set.
|
||||||
|
*/
|
||||||
|
int FIID_OBJ_TEMPLATE_COMPARE (fiid_obj_t obj, fiid_template_t tmpl);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_errnum
|
||||||
|
*
|
||||||
|
* Returns the error code for the most recently occurring error.
|
||||||
|
*/
|
||||||
|
fiid_err_t fiid_obj_errnum (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_errormsg
|
||||||
|
*
|
||||||
|
* Returns the error string for the most recently occurring error.
|
||||||
|
*/
|
||||||
|
char *fiid_obj_errormsg (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_len
|
||||||
|
*
|
||||||
|
* Returns the total length (in bits) of data stored within the
|
||||||
|
* object, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_len (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_len_bytes
|
||||||
|
*
|
||||||
|
* Returns the total length (in bytes) of data stored within the
|
||||||
|
* object, -1 on error. Will return an error if the total bit length
|
||||||
|
* of data is not a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_obj_len_bytes (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_field_len
|
||||||
|
*
|
||||||
|
* Returns the length (in bits) of data stored within the
|
||||||
|
* specified field, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_field_len (fiid_obj_t obj, const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_field_len_bytes
|
||||||
|
*
|
||||||
|
* Returns the length (in bytes) of data stored within the specified
|
||||||
|
* field, -1 on error. Will return an error if the bit length of data
|
||||||
|
* is not a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_obj_field_len_bytes (fiid_obj_t obj, const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_block_len
|
||||||
|
*
|
||||||
|
* Returns the length (in bits) of data stored within the block of
|
||||||
|
* fields beginning at 'field_start' and ending at 'field_end'.
|
||||||
|
* Returns -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_block_len (fiid_obj_t obj,
|
||||||
|
const char *field_start,
|
||||||
|
const char *field_end);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_block_len_bytes
|
||||||
|
*
|
||||||
|
* Returns the length (in bytes) of data stored within the block of
|
||||||
|
* fields beginning at 'field_start' and ending at 'field_end'.
|
||||||
|
* Returns -1 on error. Will return an error if the calculated bit
|
||||||
|
* length is not a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_obj_block_len_bytes (fiid_obj_t obj,
|
||||||
|
const char *field_start,
|
||||||
|
const char *field_end);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_clear
|
||||||
|
*
|
||||||
|
* Clear all data stored in the object. Return 0 on success, -1 on
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_clear (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_clear_field
|
||||||
|
*
|
||||||
|
* Clear all data stored in a specified field in the object. Return 0
|
||||||
|
* on success, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_clear_field (fiid_obj_t obj, const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_field_lookup
|
||||||
|
*
|
||||||
|
* Returns 1 if the field is found in the object, 0 if not, -1 on
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_field_lookup (fiid_obj_t obj, const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID_OBJ_FIELD_LOOKUP
|
||||||
|
*
|
||||||
|
* Returns 1 if the field is found in the object, -1 on error.
|
||||||
|
* Identical to fiid_obj_field_lookup() except a return of 0 is not
|
||||||
|
* possible. If the field is not found, -1 is returned and
|
||||||
|
* FIID_ERR_FIELD_NOT_FOUND is the error code set.
|
||||||
|
*/
|
||||||
|
int FIID_OBJ_FIELD_LOOKUP (fiid_obj_t obj, const char *field);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_set
|
||||||
|
*
|
||||||
|
* Set data in the object for the specified field. Returns 0 on
|
||||||
|
* success, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_set (fiid_obj_t obj, const char *field, uint64_t val);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_get
|
||||||
|
*
|
||||||
|
* Get data stored in the object for the specified field. Returns 1
|
||||||
|
* if data was available and returned, 0 if no data was available, -1
|
||||||
|
* on error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_get (fiid_obj_t obj, const char *field, uint64_t *val);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIID_OBJ_GET
|
||||||
|
*
|
||||||
|
* Get data stored in the object for the specified field. Returns 1
|
||||||
|
* if data was available and returned, -1 on error. Identical to
|
||||||
|
* fiid_obj_get() except a return of 0 is not possible. If no data is
|
||||||
|
* available, -1 is returned and FIID_ERR_DATA_NOT_AVAILABLE is the
|
||||||
|
* error code set.
|
||||||
|
*/
|
||||||
|
int FIID_OBJ_GET (fiid_obj_t obj, const char *field, uint64_t *val);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_set_data
|
||||||
|
*
|
||||||
|
* Set an array of data in the object for the specified field.
|
||||||
|
* Returns length of data set on success, -1 on error. The field
|
||||||
|
* specified must begin on a byte boundary and have a maximum bit
|
||||||
|
* length that is a multiple of 8. Will truncate the data written
|
||||||
|
* if the field maximum length is smaller than the data given.
|
||||||
|
*/
|
||||||
|
int fiid_obj_set_data (fiid_obj_t obj,
|
||||||
|
const char *field,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_get_data
|
||||||
|
*
|
||||||
|
* Get an array of data in the object for the specified field.
|
||||||
|
* Returns length of data read on success, -1 on error. The field
|
||||||
|
* specified must begin on a byte boundary and have a data bit length
|
||||||
|
* that is a multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_obj_get_data (fiid_obj_t obj,
|
||||||
|
const char *field,
|
||||||
|
void *data,
|
||||||
|
unsigned int data_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_set_all
|
||||||
|
*
|
||||||
|
* Set all fields in the object with the specified array of data.
|
||||||
|
* Returns length of data set on success, -1 on error. The given data
|
||||||
|
* must fall on a byte boundary of the object. Will truncate the data
|
||||||
|
* written if the total object maximum length is smaller than the data
|
||||||
|
* given. Will write as much as possible if data is not large enough
|
||||||
|
* to fill the entire object.
|
||||||
|
*/
|
||||||
|
int fiid_obj_set_all (fiid_obj_t obj, const void *data, unsigned int data_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_get_all
|
||||||
|
*
|
||||||
|
* Get an array of all data in the object. Returns length of data
|
||||||
|
* read on success, -1 on error.
|
||||||
|
*/
|
||||||
|
int fiid_obj_get_all (fiid_obj_t obj, void *data, unsigned int data_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_set_block
|
||||||
|
*
|
||||||
|
* Set a block of fields in the object, beginning with 'field_start'
|
||||||
|
* and ending with 'field_end'. Returns length of data set on
|
||||||
|
* success, -1 on error. The fields given must fall on a byte
|
||||||
|
* boundary of the object. Will truncate the data written if the
|
||||||
|
* total block maximum length is smaller than the data given. Will
|
||||||
|
* write as much as possible if data is not large enough to fill the
|
||||||
|
* entire block.
|
||||||
|
*/
|
||||||
|
int fiid_obj_set_block (fiid_obj_t obj,
|
||||||
|
const char *field_start,
|
||||||
|
const char *field_end,
|
||||||
|
const void *data,
|
||||||
|
unsigned int data_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_obj_get_block
|
||||||
|
*
|
||||||
|
* Get a block of data in the object, beginning with 'field_start' and
|
||||||
|
* ending with 'field_end'. Returns length of data read on success,
|
||||||
|
* -1 on error. Data being read must fall on a byte boundary.
|
||||||
|
*/
|
||||||
|
int fiid_obj_get_block (fiid_obj_t obj,
|
||||||
|
const char *field_start,
|
||||||
|
const char *field_end,
|
||||||
|
void *data,
|
||||||
|
unsigned int data_len);
|
||||||
|
|
||||||
|
/*****************************
|
||||||
|
* FIID Iterator API *
|
||||||
|
*****************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_create
|
||||||
|
*
|
||||||
|
* Create a fiid iterator to iteratate through each field in an
|
||||||
|
* object. Returns iterator on success, NULL on error.
|
||||||
|
*/
|
||||||
|
fiid_iterator_t fiid_iterator_create (fiid_obj_t obj);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_destroy
|
||||||
|
*
|
||||||
|
* Destroy and free memory from a fiid iterator.
|
||||||
|
*/
|
||||||
|
void fiid_iterator_destroy (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_errnum
|
||||||
|
*
|
||||||
|
* Returns the error code for the most recently occurring error.
|
||||||
|
*/
|
||||||
|
fiid_err_t fiid_iterator_errnum (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_errormsg
|
||||||
|
*
|
||||||
|
* Returns the error string for the most recently occurring error.
|
||||||
|
*/
|
||||||
|
char *fiid_iterator_errormsg (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_reset
|
||||||
|
*
|
||||||
|
* Reset the iterator back to the beginning. Returns 0 on success, -1
|
||||||
|
* on error.
|
||||||
|
*/
|
||||||
|
int fiid_iterator_reset (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_next
|
||||||
|
*
|
||||||
|
* Move the iterator to the next field. Returns 0 on success, -1 on
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
int fiid_iterator_next (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_end
|
||||||
|
*
|
||||||
|
* Returns 1 if you are at the end of the iterator, 0 if not, -1
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
int fiid_iterator_end (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_field_len
|
||||||
|
*
|
||||||
|
* Returns the number of bits set for the current field. Returns -1
|
||||||
|
* on error.
|
||||||
|
*/
|
||||||
|
int fiid_iterator_field_len (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_key
|
||||||
|
*
|
||||||
|
* Returns the key name for the current field. Returns NULL on error.
|
||||||
|
*/
|
||||||
|
char *fiid_iterator_key (fiid_iterator_t iter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_get
|
||||||
|
*
|
||||||
|
* Get data stored in the object for the current field. Returns 1
|
||||||
|
* if data was available and returned, 0 if no data was available, -1
|
||||||
|
* on error.
|
||||||
|
*/
|
||||||
|
int fiid_iterator_get (fiid_iterator_t iter, uint64_t *val);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fiid_iterator_get_data
|
||||||
|
*
|
||||||
|
* Get an array of data in the object for the current field. Returns
|
||||||
|
* length of data read on success, -1 on error. The current field
|
||||||
|
* must begin on a byte boundary and have a data bit length that is a
|
||||||
|
* multiple of 8.
|
||||||
|
*/
|
||||||
|
int fiid_iterator_get_data (fiid_iterator_t iter,
|
||||||
|
void *data,
|
||||||
|
unsigned int data_len);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* FIID_H */
|
243
source/freeipmi/usr/include/freeipmi/freeipmi.h
Normal file
243
source/freeipmi/usr/include/freeipmi/freeipmi.h
Normal file
|
@ -0,0 +1,243 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2003-2012 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 FREEIPMI_H
|
||||||
|
#define FREEIPMI_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-chassis-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-dcmi-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-device-global-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-event-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-firmware-firewall-command-discovery-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-fru-inventory-device-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-lan-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-messaging-support-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-oem-intel-node-manager-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-pef-and-alerting-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-rmcpplus-support-and-payload-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-sdr-repository-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-sensor-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-sel-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-serial-modem-cmds-api.h>
|
||||||
|
#include <freeipmi/api/ipmi-sol-cmds-api.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-bmc-watchdog-timer-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-chassis-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-dcmi-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-dcmi-oem-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-device-global-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-event-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-firmware-firewall-command-discovery-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-fru-inventory-device-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-lan-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-messaging-support-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-oem-intel-node-manager-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-pef-and-alerting-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-rmcpplus-support-and-payload-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-sdr-repository-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-sel-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-sensor-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-serial-modem-cmds.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-sol-cmds.h>
|
||||||
|
#include <freeipmi/cmds/rmcp-cmds.h>
|
||||||
|
#include <freeipmi/debug/ipmi-debug.h>
|
||||||
|
#include <freeipmi/driver/ipmi-kcs-driver.h>
|
||||||
|
#include <freeipmi/driver/ipmi-ssif-driver.h>
|
||||||
|
#include <freeipmi/driver/ipmi-openipmi-driver.h>
|
||||||
|
#include <freeipmi/driver/ipmi-sunbmc-driver.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
#include <freeipmi/fru/ipmi-fru.h>
|
||||||
|
#include <freeipmi/interface/ipmi-interface.h>
|
||||||
|
#include <freeipmi/interface/ipmi-ipmb-interface.h>
|
||||||
|
#include <freeipmi/interface/ipmi-kcs-interface.h>
|
||||||
|
#include <freeipmi/interface/ipmi-lan-interface.h>
|
||||||
|
#include <freeipmi/interface/ipmi-rmcpplus-interface.h>
|
||||||
|
#include <freeipmi/interface/rmcp-interface.h>
|
||||||
|
#include <freeipmi/interpret/ipmi-interpret.h>
|
||||||
|
#include <freeipmi/locate/ipmi-locate.h>
|
||||||
|
#include <freeipmi/payload/ipmi-sol-payload.h>
|
||||||
|
#include <freeipmi/record-format/ipmi-cipher-suite-record-format.h>
|
||||||
|
#include <freeipmi/record-format/ipmi-fru-dimmspd-record-format.h>
|
||||||
|
#include <freeipmi/record-format/ipmi-fru-information-record-format.h>
|
||||||
|
#include <freeipmi/record-format/ipmi-platform-event-trap-record-format.h>
|
||||||
|
#include <freeipmi/record-format/ipmi-sdr-record-format.h>
|
||||||
|
#include <freeipmi/record-format/ipmi-sel-record-format.h>
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-fru-wistron-oem-record-format.h>
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sdr-oem-intel-node-manager-record-format.h>
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sdr-oem-intel-record-format.h>
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sel-oem-intel-record-format.h>
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sel-oem-linux-kernel-record-format.h>
|
||||||
|
#include <freeipmi/sdr/ipmi-sdr.h>
|
||||||
|
#include <freeipmi/sdr/oem/ipmi-sdr-oem-intel-node-manager.h>
|
||||||
|
#include <freeipmi/sel/ipmi-sel.h>
|
||||||
|
#include <freeipmi/sensor-read/ipmi-sensor-read.h>
|
||||||
|
#include <freeipmi/spec/ipmi-authentication-type-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-channel-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-cmd-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-cmd-dcmi-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-comp-code-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-comp-code-dcmi-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-device-types-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-entity-ids-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-event-reading-type-code-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-fru-chassis-types-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-fru-language-codes-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-iana-enterprise-numbers-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-ipmb-lun-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-jedec-manufacturer-identification-code-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-lan-configuration-parameters-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-netfn-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-pef-configuration-parameters-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-privilege-level-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-product-id-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-rmcpplus-status-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-sensor-and-event-code-tables-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-sensor-types-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-sensor-units-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-serial-modem-configuration-parameters-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-slave-address-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-sol-configuration-parameters-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-system-boot-option-parameters-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-system-info-parameters-spec.h>
|
||||||
|
#include <freeipmi/spec/ipmi-system-software-id-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-ibm-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-sun-microsystems-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-cmd-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-hp-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-lan-configuration-parameters-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-lan-configuration-parameters-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-ibm-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-ibm-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-sun-microsystems-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-hp-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-and-event-code-tables-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-numbers-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-numbers-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-numbers-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-numbers-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-numbers-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-numbers-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-hp-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sensor-types-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-slave-address-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-slave-address-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-slave-address-oem-linux-kernel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-slave-address-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-slave-address-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sol-configuration-parameters-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-sol-configuration-parameters-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-system-info-parameters-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-system-info-parameters-oem-wistron-spec.h>
|
||||||
|
#include <freeipmi/util/ipmi-channel-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-cipher-suite-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-device-types-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-entity-ids-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-error-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-error-dcmi-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-iana-enterprise-numbers-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-ipmb-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-jedec-manufacturer-identification-code-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-lan-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-outofband-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-rmcpplus-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-sensor-and-event-code-tables-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-sensor-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-timestamp-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-util.h>
|
||||||
|
#include <freeipmi/util/ipmi-dcmi-util.h>
|
||||||
|
#include <freeipmi/util/rmcp-util.h>
|
||||||
|
|
||||||
|
#define FREEIPMI_PACKAGE_VERSION 1.5.1
|
||||||
|
#define FREEIPMI_PACKAGE_VERSION_MAJOR 1
|
||||||
|
#define FREEIPMI_PACKAGE_VERSION_MINOR 5
|
||||||
|
#define FREEIPMI_PACKAGE_VERSION_PATCH 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Libfreeipmi version
|
||||||
|
*
|
||||||
|
* MAJOR - Incremented when interfaces are changed or removed.
|
||||||
|
* Interfaces may be binary incompatible. When incremented, MINOR
|
||||||
|
* and PATCH are zeroed.
|
||||||
|
*
|
||||||
|
* MINOR - Incremented when interfaces are added. Interfaces are
|
||||||
|
* binary compatible with older minor versions. When incremented,
|
||||||
|
* PATCH is zeroed.
|
||||||
|
*
|
||||||
|
* PATCH - Incremented when interfaces are not changed. Typically
|
||||||
|
* incremented due to bug fixes or minor features. Interfaces are
|
||||||
|
* forward and backward compatible to other PATCH versions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LIBFREEIPMI_VERSION_MAJOR 6
|
||||||
|
#define LIBFREEIPMI_VERSION_MINOR 0
|
||||||
|
#define LIBFREEIPMI_VERSION_PATCH 0
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* FREEIPMI_H */
|
||||||
|
|
339
source/freeipmi/usr/include/freeipmi/fru/ipmi-fru.h
Normal file
339
source/freeipmi/usr/include/freeipmi/fru/ipmi-fru.h
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
/*
|
||||||
|
* 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_FRU_H
|
||||||
|
#define IPMI_FRU_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
|
||||||
|
#define IPMI_FRU_ERR_SUCCESS 0
|
||||||
|
#define IPMI_FRU_ERR_CONTEXT_NULL 1
|
||||||
|
#define IPMI_FRU_ERR_CONTEXT_INVALID 2
|
||||||
|
#define IPMI_FRU_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_FRU_ERR_DEVICE_ID_NOT_OPEN 4
|
||||||
|
#define IPMI_FRU_ERR_DEVICE_ID_ALREADY_OPEN 5
|
||||||
|
#define IPMI_FRU_ERR_NO_FRU_INFORMATION 6
|
||||||
|
#define IPMI_FRU_ERR_FRU_AREA_LENGTH_INVALID 7
|
||||||
|
#define IPMI_FRU_ERR_COMMON_HEADER_CHECKSUM_INVALID 8
|
||||||
|
#define IPMI_FRU_ERR_CHASSIS_INFO_AREA_CHECKSUM_INVALID 9
|
||||||
|
#define IPMI_FRU_ERR_BOARD_INFO_AREA_CHECKSUM_INVALID 10
|
||||||
|
#define IPMI_FRU_ERR_PRODUCT_INFO_AREA_CHECKSUM_INVALID 11
|
||||||
|
#define IPMI_FRU_ERR_MULTIRECORD_AREA_CHECKSUM_INVALID 12
|
||||||
|
#define IPMI_FRU_ERR_COMMON_HEADER_FORMAT_INVALID 13
|
||||||
|
#define IPMI_FRU_ERR_CHASSIS_INFO_AREA_FORMAT_INVALID 14
|
||||||
|
#define IPMI_FRU_ERR_BOARD_INFO_AREA_FORMAT_INVALID 15
|
||||||
|
#define IPMI_FRU_ERR_PRODUCT_INFO_AREA_FORMAT_INVALID 16
|
||||||
|
#define IPMI_FRU_ERR_MULTIRECORD_AREA_FORMAT_INVALID 17
|
||||||
|
#define IPMI_FRU_ERR_FRU_INFORMATION_INCONSISTENT 18
|
||||||
|
#define IPMI_FRU_ERR_FRU_LANGUAGE_CODE_NOT_SUPPORTED 19
|
||||||
|
#define IPMI_FRU_ERR_FRU_INVALID_BCD_ENCODING 20
|
||||||
|
#define IPMI_FRU_ERR_FRU_SENTINEL_VALUE_NOT_FOUND 21
|
||||||
|
#define IPMI_FRU_ERR_NOT_AVAILABLE_FOR_THIS_RECORD 22
|
||||||
|
#define IPMI_FRU_ERR_OVERFLOW 23
|
||||||
|
#define IPMI_FRU_ERR_OUT_OF_MEMORY 24
|
||||||
|
#define IPMI_FRU_ERR_DEVICE_BUSY 25
|
||||||
|
#define IPMI_FRU_ERR_IPMI_ERROR 26
|
||||||
|
#define IPMI_FRU_ERR_SYSTEM_ERROR 27
|
||||||
|
#define IPMI_FRU_ERR_INTERNAL_ERROR 28
|
||||||
|
#define IPMI_FRU_ERR_ERRNUMRANGE 29
|
||||||
|
|
||||||
|
#define IPMI_FRU_FLAGS_DEFAULT 0x0000
|
||||||
|
#define IPMI_FRU_FLAGS_DEBUG_DUMP 0x0001
|
||||||
|
#define IPMI_FRU_FLAGS_SKIP_CHECKSUM_CHECKS 0x0002
|
||||||
|
#define IPMI_FRU_FLAGS_INTERPRET_OEM_DATA 0x0004
|
||||||
|
/* Do not parse FRU inventory information like normal
|
||||||
|
* - iterator functions no longer serve purpose
|
||||||
|
* - ipmi_fru_read_data_area will read as much data as in
|
||||||
|
* can into buffer.
|
||||||
|
*/
|
||||||
|
#define IPMI_FRU_FLAGS_READ_RAW 0x0008
|
||||||
|
|
||||||
|
#define IPMI_FRU_AREA_TYPE_CHASSIS_INFO_AREA 0
|
||||||
|
#define IPMI_FRU_AREA_TYPE_BOARD_INFO_AREA 1
|
||||||
|
#define IPMI_FRU_AREA_TYPE_PRODUCT_INFO_AREA 2
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_POWER_SUPPLY_INFORMATION 3
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_DC_OUTPUT 4
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_DC_LOAD 5
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_MANAGEMENT_ACCESS_RECORD 6
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_BASE_COMPATABILITY_RECORD 7
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_EXTENDED_COMPATABILITY_RECORD 8
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_ASF_FIXED_SMBUS_DEVICE_RECORD 9
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_ASF_LEGACY_DEVICE_ALERTS 10
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_ASF_REMOTE_CONTROL 11
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_EXTENDED_DC_OUTPUT 12
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_EXTENDED_DC_LOAD 13
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_NVM_EXPRESS 14
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_OEM 15
|
||||||
|
#define IPMI_FRU_AREA_TYPE_MULTIRECORD_UNKNOWN 16
|
||||||
|
#define IPMI_FRU_AREA_TYPE_RAW_DATA 17
|
||||||
|
|
||||||
|
/* multirecord length field is 1 byte => max 256 chars. Round up to
|
||||||
|
* 512 for good measure.
|
||||||
|
*/
|
||||||
|
#define IPMI_FRU_AREA_TYPE_LENGTH_FIELD_MAX 512
|
||||||
|
|
||||||
|
/* length field is 6 bits = 64 bytes of text, x2 b/c could be hex
|
||||||
|
* output, x2 because of possible space in between hex output and 'h'
|
||||||
|
* at end of hex output, x2 for extra measure. This length is
|
||||||
|
* sufficient for 6-bit ASCII as well, since you have 4 chars / 3
|
||||||
|
* bytes.
|
||||||
|
*/
|
||||||
|
#define IPMI_FRU_AREA_STRING_MAX 512
|
||||||
|
|
||||||
|
/* 16 bit field for length */
|
||||||
|
#define IPMI_FRU_AREA_SIZE_MAX 65536
|
||||||
|
|
||||||
|
struct ipmi_fru_field
|
||||||
|
{
|
||||||
|
uint8_t type_length_field[IPMI_FRU_AREA_TYPE_LENGTH_FIELD_MAX];
|
||||||
|
/* store length of data stored in buffer */
|
||||||
|
unsigned int type_length_field_length;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct ipmi_fru_field ipmi_fru_field_t;
|
||||||
|
|
||||||
|
typedef struct ipmi_fru_ctx *ipmi_fru_ctx_t;
|
||||||
|
|
||||||
|
/* FRU Parse Context Functions
|
||||||
|
* - if specified, ipmi_ctx must be open and ready to go
|
||||||
|
* - if NULL ipmi_ctx, FRU ctx cannot be used for FRU reading, only parsing records
|
||||||
|
*/
|
||||||
|
ipmi_fru_ctx_t ipmi_fru_ctx_create (ipmi_ctx_t ipmi_ctx);
|
||||||
|
void ipmi_fru_ctx_destroy (ipmi_fru_ctx_t ctx);
|
||||||
|
int ipmi_fru_ctx_errnum (ipmi_fru_ctx_t ctx);
|
||||||
|
char * ipmi_fru_ctx_strerror (int errnum);
|
||||||
|
char * ipmi_fru_ctx_errormsg (ipmi_fru_ctx_t ctx);
|
||||||
|
|
||||||
|
/* FRU Parse flag functions */
|
||||||
|
int ipmi_fru_ctx_get_flags (ipmi_fru_ctx_t ctx, unsigned int *flags);
|
||||||
|
int ipmi_fru_ctx_set_flags (ipmi_fru_ctx_t ctx, unsigned int flags);
|
||||||
|
/* for use w/ IPMI_FRU_FLAGS_INTERPRET_OEM_DATA */
|
||||||
|
int ipmi_fru_ctx_get_manufacturer_id (ipmi_fru_ctx_t ctx, uint32_t *manufacturer_id);
|
||||||
|
int ipmi_fru_ctx_set_manufacturer_id (ipmi_fru_ctx_t ctx, uint32_t manufacturer_id);
|
||||||
|
/* for use w/ IPMI_FRU_FLAGS_INTERPRET_OEM_DATA */
|
||||||
|
int ipmi_fru_ctx_get_product_id (ipmi_fru_ctx_t ctx, uint16_t *product_id);
|
||||||
|
int ipmi_fru_ctx_set_product_id (ipmi_fru_ctx_t ctx, uint16_t product_id);
|
||||||
|
char *ipmi_fru_ctx_get_debug_prefix (ipmi_fru_ctx_t ctx);
|
||||||
|
int ipmi_fru_ctx_set_debug_prefix (ipmi_fru_ctx_t ctx, const char *debug_prefix);
|
||||||
|
|
||||||
|
/* FRU data retrieval setup functions */
|
||||||
|
int ipmi_fru_open_device_id (ipmi_fru_ctx_t ctx, uint8_t fru_device_id);
|
||||||
|
int ipmi_fru_close_device_id (ipmi_fru_ctx_t ctx);
|
||||||
|
|
||||||
|
/* FRU data iterator functions */
|
||||||
|
int ipmi_fru_first (ipmi_fru_ctx_t ctx);
|
||||||
|
/* returns 1 if iterator can continue, 0 if at end, -1 on error */
|
||||||
|
int ipmi_fru_next (ipmi_fru_ctx_t ctx);
|
||||||
|
|
||||||
|
/* area read will not include record headers */
|
||||||
|
/* utiliize area_type and area_length in/out parameters for later parsing */
|
||||||
|
/* if reading in raw mode, read as much data as you can into buffer
|
||||||
|
* - area_length will return total size of data that exists
|
||||||
|
* - area_type will return IPMI_FRU_AREA_TYPE_RAW_DATA
|
||||||
|
*/
|
||||||
|
int ipmi_fru_read_data_area (ipmi_fru_ctx_t ctx,
|
||||||
|
unsigned int *area_type,
|
||||||
|
unsigned int *area_length,
|
||||||
|
void *areabuf,
|
||||||
|
unsigned int areabuflen);
|
||||||
|
|
||||||
|
/* most useful for OEM record handling, will error if not at a multirecord area */
|
||||||
|
int ipmi_fru_read_multirecord_record_type_id (ipmi_fru_ctx_t ctx,
|
||||||
|
uint8_t *record_type_id);
|
||||||
|
|
||||||
|
/* FRU area parsing */
|
||||||
|
/* Functions assume record headers have been stripped out */
|
||||||
|
|
||||||
|
int ipmi_fru_chassis_info_area (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
uint8_t *chassis_type,
|
||||||
|
ipmi_fru_field_t *chassis_part_number,
|
||||||
|
ipmi_fru_field_t *chassis_serial_number,
|
||||||
|
ipmi_fru_field_t *chassis_custom_fields,
|
||||||
|
unsigned int chassis_custom_fields_len);
|
||||||
|
|
||||||
|
/* mfg_date_time returned in seconds since unix epoch, not FRU defined epoch */
|
||||||
|
int ipmi_fru_board_info_area (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
uint8_t *language_code,
|
||||||
|
uint32_t *mfg_date_time,
|
||||||
|
ipmi_fru_field_t *board_manufacturer,
|
||||||
|
ipmi_fru_field_t *board_product_name,
|
||||||
|
ipmi_fru_field_t *board_serial_number,
|
||||||
|
ipmi_fru_field_t *board_part_number,
|
||||||
|
ipmi_fru_field_t *board_fru_file_id,
|
||||||
|
ipmi_fru_field_t *board_custom_fields,
|
||||||
|
unsigned int chassis_custom_fields_len);
|
||||||
|
|
||||||
|
int ipmi_fru_product_info_area (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
uint8_t *language_code,
|
||||||
|
ipmi_fru_field_t *product_manufacturer_name,
|
||||||
|
ipmi_fru_field_t *product_name,
|
||||||
|
ipmi_fru_field_t *product_part_model_number,
|
||||||
|
ipmi_fru_field_t *product_version,
|
||||||
|
ipmi_fru_field_t *product_serial_number,
|
||||||
|
ipmi_fru_field_t *product_asset_tag,
|
||||||
|
ipmi_fru_field_t *product_fru_file_id,
|
||||||
|
ipmi_fru_field_t *product_custom_fields,
|
||||||
|
unsigned int product_custom_fields_len);
|
||||||
|
|
||||||
|
/* 10 mV multipliers factored in return voltages */
|
||||||
|
/* FRU Revision 1.2 renamed ac_dropout_tolerance to input_dropout_tolerance, are identical */
|
||||||
|
int ipmi_fru_multirecord_power_supply_information (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
unsigned int *overall_capacity,
|
||||||
|
unsigned int *peak_va,
|
||||||
|
unsigned int *inrush_current,
|
||||||
|
unsigned int *inrush_interval,
|
||||||
|
int *low_end_input_voltage_range_1,
|
||||||
|
int *high_end_input_voltage_range_1,
|
||||||
|
int *low_end_input_voltage_range_2,
|
||||||
|
int *high_end_input_voltage_range_2,
|
||||||
|
unsigned int *low_end_input_frequency_range,
|
||||||
|
unsigned int *high_end_input_frequency_range,
|
||||||
|
unsigned int *ac_dropout_tolerance,
|
||||||
|
unsigned int *predictive_fail_support,
|
||||||
|
unsigned int *power_factor_correction,
|
||||||
|
unsigned int *autoswitch,
|
||||||
|
unsigned int *hot_swap_support,
|
||||||
|
unsigned int *tachometer_pulses_per_rotation_predictive_fail_polarity,
|
||||||
|
unsigned int *peak_capacity,
|
||||||
|
unsigned int *hold_up_time,
|
||||||
|
unsigned int *voltage_1,
|
||||||
|
unsigned int *voltage_2,
|
||||||
|
unsigned int *total_combined_wattage,
|
||||||
|
unsigned int *predictive_fail_tachometer_lower_threshold);
|
||||||
|
|
||||||
|
/* 10 mV multipliers factored in return voltages */
|
||||||
|
int ipmi_fru_multirecord_dc_output (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
unsigned int *output_number,
|
||||||
|
unsigned int *standby,
|
||||||
|
int *nominal_voltage,
|
||||||
|
int *maximum_negative_voltage_deviation,
|
||||||
|
int *maximum_positive_voltage_deviation,
|
||||||
|
unsigned int *ripple_and_noise_pk_pk,
|
||||||
|
unsigned int *minimum_current_draw,
|
||||||
|
unsigned int *maximum_current_draw);
|
||||||
|
|
||||||
|
/* 10 mV multipliers factored in return voltages */
|
||||||
|
int ipmi_fru_multirecord_dc_load (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
unsigned int *output_number,
|
||||||
|
unsigned int *standby,
|
||||||
|
int *nominal_voltage,
|
||||||
|
int *specd_minimum_voltage,
|
||||||
|
int *specd_maximum_voltage,
|
||||||
|
unsigned int *specd_ripple_and_noise_pk_pk,
|
||||||
|
unsigned int *minimum_current_load,
|
||||||
|
unsigned int *maximum_current_load);
|
||||||
|
|
||||||
|
int ipmi_fru_multirecord_management_access_record (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
uint8_t *sub_record_type,
|
||||||
|
void *sub_record_data,
|
||||||
|
unsigned int *sub_record_data_len);
|
||||||
|
|
||||||
|
int ipmi_fru_multirecord_base_compatibility_record (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
uint32_t *manufacturer_id,
|
||||||
|
unsigned int *entity_id_code,
|
||||||
|
unsigned int *compatibility_base,
|
||||||
|
unsigned int *compatibility_code_start_value,
|
||||||
|
uint8_t *code_range_mask,
|
||||||
|
unsigned int *code_range_mask_len);
|
||||||
|
|
||||||
|
int ipmi_fru_multirecord_extended_compatibility_record (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
uint32_t *manufacturer_id,
|
||||||
|
unsigned int *entity_id_code,
|
||||||
|
unsigned int *compatibility_base,
|
||||||
|
unsigned int *compatibility_code_start_value,
|
||||||
|
uint8_t *code_range_mask,
|
||||||
|
unsigned int *code_range_mask_len);
|
||||||
|
|
||||||
|
/* 10 mV multipliers factored in return voltages */
|
||||||
|
/* draw in mA units, already factoring in current_units */
|
||||||
|
int ipmi_fru_multirecord_extended_dc_output (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
unsigned int *output_number,
|
||||||
|
unsigned int *current_units,
|
||||||
|
unsigned int *standby,
|
||||||
|
int *nominal_voltage,
|
||||||
|
int *maximum_negative_voltage_deviation,
|
||||||
|
int *maximum_positive_voltage_deviation,
|
||||||
|
unsigned int *ripple_and_noise_pk_pk,
|
||||||
|
unsigned int *minimum_current_draw,
|
||||||
|
unsigned int *maximum_current_draw);
|
||||||
|
|
||||||
|
/* 10 mV multipliers factored in return voltages */
|
||||||
|
/* load in mA units, already factoring in current_units */
|
||||||
|
int ipmi_fru_multirecord_extended_dc_load (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
unsigned int *output_number,
|
||||||
|
unsigned int *current_units,
|
||||||
|
unsigned int *standby,
|
||||||
|
int *nominal_voltage,
|
||||||
|
int *specd_minimum_voltage,
|
||||||
|
int *specd_maximum_voltage,
|
||||||
|
unsigned int *specd_ripple_and_noise_pk_pk,
|
||||||
|
unsigned int *minimum_current_load,
|
||||||
|
unsigned int *maximum_current_load);
|
||||||
|
|
||||||
|
int ipmi_fru_multirecord_oem_record (ipmi_fru_ctx_t ctx,
|
||||||
|
const void *areabuf,
|
||||||
|
unsigned int areabuflen,
|
||||||
|
uint32_t *manufacturer_id,
|
||||||
|
void *oem_data,
|
||||||
|
unsigned int *oem_data_len);
|
||||||
|
|
||||||
|
/* FRU utility functions */
|
||||||
|
/* Typically pass in buffer and length from ipmi_fru_field_t
|
||||||
|
* after info area is parsed. strbuflen is an in/out value. input
|
||||||
|
* indicates length of buffer, output indicates bytes written to
|
||||||
|
* buffer.
|
||||||
|
*/
|
||||||
|
int ipmi_fru_type_length_field_to_string (ipmi_fru_ctx_t ctx,
|
||||||
|
const uint8_t *type_length_buf,
|
||||||
|
unsigned int type_length_buflen,
|
||||||
|
uint8_t language_code,
|
||||||
|
char *strbuf,
|
||||||
|
unsigned int *strbuflen);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_H */
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* 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_INTERFACE_H
|
||||||
|
#define IPMI_INTERFACE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/* NO_LEGAL_CHECK - do no check if IPMI response payloads have
|
||||||
|
* sufficient data (i.e. completion code fields) to be legal. Useful
|
||||||
|
* to work around non-compliant motherboards. Only applicable to
|
||||||
|
* interface unassemble functions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_INTERFACE_FLAGS_DEFAULT 0x00000000
|
||||||
|
#define IPMI_INTERFACE_FLAGS_NO_LEGAL_CHECK 0x00000001
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_INTERFACE_H */
|
|
@ -0,0 +1,73 @@
|
||||||
|
/*
|
||||||
|
* 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_IPMB_INTERFACE_H
|
||||||
|
#define IPMI_IPMB_INTERFACE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_IPMB_REQUESTER_SEQUENCE_NUMBER_MAX 0x3F /* 111111b */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fill* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* object must be for the fill function's respective fiid
|
||||||
|
* template.
|
||||||
|
*
|
||||||
|
* assemble/unassemble functions must be passed fiid objects of the
|
||||||
|
* respective expected header/trailer templates.
|
||||||
|
*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_ipmb_msg_hdr_rq;
|
||||||
|
extern fiid_template_t tmpl_ipmb_msg_hdr_rs;
|
||||||
|
extern fiid_template_t tmpl_ipmb_msg_trlr;
|
||||||
|
extern fiid_template_t tmpl_ipmb_msg;
|
||||||
|
|
||||||
|
int fill_ipmb_msg_hdr (uint8_t rs_addr,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t rs_lun,
|
||||||
|
uint8_t rq_addr,
|
||||||
|
uint8_t rq_lun,
|
||||||
|
uint8_t rq_seq,
|
||||||
|
fiid_obj_t obj_ipmb_msg_hdr);
|
||||||
|
|
||||||
|
/* returns length written to obj_ipmb_msg on success, -1 on error */
|
||||||
|
int assemble_ipmi_ipmb_msg (fiid_obj_t obj_ipmb_msg_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
fiid_obj_t obj_ipmb_msg,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* returns 1 if fully unparsed, 0 if not, -1 on error */
|
||||||
|
int unassemble_ipmi_ipmb_msg (fiid_obj_t obj_ipmb_msg,
|
||||||
|
fiid_obj_t obj_ipmb_msg_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
fiid_obj_t obj_ipmb_msg_trlr,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_IPMB_INTERFACE_H */
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* 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_KCS_INTERFACE_H
|
||||||
|
#define IPMI_KCS_INTERFACE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fill* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* object must be for the fill function's respective fiid
|
||||||
|
* template.
|
||||||
|
*
|
||||||
|
* assemble/unassemble functions must be passed fiid objects of the
|
||||||
|
* respective expected header/trailer templates.
|
||||||
|
*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_hdr_kcs;
|
||||||
|
|
||||||
|
int fill_hdr_ipmi_kcs (uint8_t lun,
|
||||||
|
uint8_t fn,
|
||||||
|
fiid_obj_t obj_kcs_hdr);
|
||||||
|
|
||||||
|
/* returns length written to pkt on success, -1 on error */
|
||||||
|
int assemble_ipmi_kcs_pkt (fiid_obj_t obj_kcs_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* returns 1 if fully unparsed, 0 if not, -1 on error */
|
||||||
|
int unassemble_ipmi_kcs_pkt (const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_obj_t obj_kcs_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_KCS_INTERFACE_H */
|
|
@ -0,0 +1,105 @@
|
||||||
|
/*
|
||||||
|
* 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_LAN_INTERFACE_H
|
||||||
|
#define IPMI_LAN_INTERFACE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
#define IPMI_LAN_REQUESTER_SEQUENCE_NUMBER_MAX 0x3F /* 111111b */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fill* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* object must be for the fill function's respective fiid
|
||||||
|
* template.
|
||||||
|
*
|
||||||
|
* assemble/unassemble functions must be passed fiid objects of the
|
||||||
|
* respective expected header/trailer templates.
|
||||||
|
*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_lan_session_hdr;
|
||||||
|
extern fiid_template_t tmpl_lan_msg_hdr_rq;
|
||||||
|
extern fiid_template_t tmpl_lan_msg_hdr_rs;
|
||||||
|
extern fiid_template_t tmpl_lan_msg_trlr;
|
||||||
|
|
||||||
|
int fill_lan_session_hdr (uint8_t authentication_type,
|
||||||
|
uint32_t session_sequence_number,
|
||||||
|
uint32_t session_id,
|
||||||
|
fiid_obj_t obj_lan_session_hdr);
|
||||||
|
|
||||||
|
int fill_lan_msg_hdr (uint8_t rs_addr,
|
||||||
|
uint8_t net_fn,
|
||||||
|
uint8_t rs_lun,
|
||||||
|
uint8_t rq_seq,
|
||||||
|
fiid_obj_t obj_lan_msg_hdr);
|
||||||
|
|
||||||
|
/* returns length written to pkt on success, -1 on error */
|
||||||
|
int assemble_ipmi_lan_pkt (fiid_obj_t obj_rmcp_hdr,
|
||||||
|
fiid_obj_t obj_lan_session_hdr,
|
||||||
|
fiid_obj_t obj_lan_msg_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
const void *authentication_code_data,
|
||||||
|
unsigned int authentication_code_data_len,
|
||||||
|
void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* returns 1 if fully unparsed, 0 if not, -1 on error */
|
||||||
|
int unassemble_ipmi_lan_pkt (const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_obj_t obj_rmcp_hdr,
|
||||||
|
fiid_obj_t obj_lan_session_hdr,
|
||||||
|
fiid_obj_t obj_lan_msg_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
fiid_obj_t obj_lan_msg_trlr,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* returns length sent on success, -1 on error */
|
||||||
|
/* A few extra error checks, but nearly identical to system sendto() */
|
||||||
|
ssize_t ipmi_lan_sendto (int s,
|
||||||
|
const void *buf,
|
||||||
|
size_t len,
|
||||||
|
int flags,
|
||||||
|
const struct sockaddr *to,
|
||||||
|
socklen_t tolen);
|
||||||
|
|
||||||
|
/* returns length received on success, 0 on orderly shutdown, -1 on error */
|
||||||
|
/* A few extra error checks, but nearly identical to system recvfrom() */
|
||||||
|
ssize_t ipmi_lan_recvfrom (int s,
|
||||||
|
void *buf,
|
||||||
|
size_t len,
|
||||||
|
int flags,
|
||||||
|
struct sockaddr *from,
|
||||||
|
socklen_t *fromlen);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_LAN_INTERFACE_H */
|
|
@ -0,0 +1,342 @@
|
||||||
|
/*
|
||||||
|
* 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_INTERFACE_H
|
||||||
|
#define IPMI_RMCPPLUS_INTERFACE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/**************************
|
||||||
|
* IPMI 2.0 Payload Types *
|
||||||
|
**************************/
|
||||||
|
|
||||||
|
#define IPMI_PAYLOAD_TYPE_IPMI 0x00
|
||||||
|
#define IPMI_PAYLOAD_TYPE_SOL 0x01
|
||||||
|
#define IPMI_PAYLOAD_TYPE_OEM_EXPLICIT 0x02
|
||||||
|
#define IPMI_PAYLOAD_TYPE_RMCPPLUS_OPEN_SESSION_REQUEST 0x10
|
||||||
|
#define IPMI_PAYLOAD_TYPE_RMCPPLUS_OPEN_SESSION_RESPONSE 0x11
|
||||||
|
#define IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_1 0x12
|
||||||
|
#define IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_2 0x13
|
||||||
|
#define IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_3 0x14
|
||||||
|
#define IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_4 0x15
|
||||||
|
/* 20h - 27h - OEM */
|
||||||
|
/* all other reserved */
|
||||||
|
|
||||||
|
#define IPMI_PAYLOAD_TYPE_VALID(__payload_type) \
|
||||||
|
(((__payload_type) == IPMI_PAYLOAD_TYPE_IPMI \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_SOL \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_OEM_EXPLICIT \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RMCPPLUS_OPEN_SESSION_REQUEST \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RMCPPLUS_OPEN_SESSION_RESPONSE \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_1 \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_2 \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_3 \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_4) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PAYLOAD_TYPE_SESSION_SETUP(__payload_type) \
|
||||||
|
(((__payload_type) == IPMI_PAYLOAD_TYPE_RMCPPLUS_OPEN_SESSION_REQUEST \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RMCPPLUS_OPEN_SESSION_RESPONSE \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_1 \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_2 \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_3 \
|
||||||
|
|| (__payload_type) == IPMI_PAYLOAD_TYPE_RAKP_MESSAGE_4) ? 1 : 0)
|
||||||
|
|
||||||
|
/**************************
|
||||||
|
* IPMI 2.0 Payload Flags *
|
||||||
|
**************************/
|
||||||
|
#define IPMI_PAYLOAD_FLAG_UNENCRYPTED 0x0
|
||||||
|
#define IPMI_PAYLOAD_FLAG_ENCRYPTED 0x1
|
||||||
|
#define IPMI_PAYLOAD_FLAG_UNAUTHENTICATED 0x0
|
||||||
|
#define IPMI_PAYLOAD_FLAG_AUTHENTICATED 0x1
|
||||||
|
|
||||||
|
#define IPMI_PAYLOAD_ENCRYPTED_FLAG_VALID(__payload_flag) \
|
||||||
|
(((__payload_flag) == IPMI_PAYLOAD_FLAG_UNENCRYPTED \
|
||||||
|
|| (__payload_flag) == IPMI_PAYLOAD_FLAG_ENCRYPTED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PAYLOAD_AUTHENTICATED_FLAG_VALID(__payload_flag) \
|
||||||
|
(((__payload_flag) == IPMI_PAYLOAD_FLAG_UNENCRYPTED \
|
||||||
|
|| (__payload_flag) == IPMI_PAYLOAD_FLAG_ENCRYPTED) ? 1 : 0)
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* IPMI 2.0 Authentication Algorithm Numbers *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_ALGORITHM_RAKP_NONE 0x00
|
||||||
|
#define IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_SHA1 0x01
|
||||||
|
#define IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_MD5 0x02
|
||||||
|
#define IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_SHA256 0x03
|
||||||
|
/* C0h - FFh - OEM */
|
||||||
|
/* all other reserved */
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_ALGORITHM_VALID(__algorithm) \
|
||||||
|
(((__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_NONE \
|
||||||
|
|| (__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_SHA1 \
|
||||||
|
|| (__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_MD5 \
|
||||||
|
|| (__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_SHA256) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_ALGORITHM_SUPPORTED(__algorithm) \
|
||||||
|
(((__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_NONE \
|
||||||
|
|| (__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_SHA1 \
|
||||||
|
|| (__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_MD5 \
|
||||||
|
|| (__algorithm) == IPMI_AUTHENTICATION_ALGORITHM_RAKP_HMAC_SHA256) ? 1 : 0)
|
||||||
|
|
||||||
|
/****************************************
|
||||||
|
* IPMI 2.0 Integrity Algorithm Numbers *
|
||||||
|
****************************************/
|
||||||
|
|
||||||
|
#define IPMI_INTEGRITY_ALGORITHM_NONE 0x00
|
||||||
|
#define IPMI_INTEGRITY_ALGORITHM_HMAC_SHA1_96 0x01
|
||||||
|
#define IPMI_INTEGRITY_ALGORITHM_HMAC_MD5_128 0x02
|
||||||
|
#define IPMI_INTEGRITY_ALGORITHM_MD5_128 0x03
|
||||||
|
#define IPMI_INTEGRITY_ALGORITHM_HMAC_SHA256_128 0x04
|
||||||
|
/* C0h - FFh - OEM */
|
||||||
|
/* all other reserved */
|
||||||
|
|
||||||
|
#define IPMI_INTEGRITY_ALGORITHM_VALID(__algorithm) \
|
||||||
|
(((__algorithm) == IPMI_INTEGRITY_ALGORITHM_NONE \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_HMAC_SHA1_96 \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_HMAC_MD5_128 \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_MD5_128 \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_HMAC_SHA256_128) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_INTEGRITY_ALGORITHM_SUPPORTED(__algorithm) \
|
||||||
|
(((__algorithm) == IPMI_INTEGRITY_ALGORITHM_NONE \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_HMAC_SHA1_96 \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_HMAC_MD5_128 \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_MD5_128 \
|
||||||
|
|| (__algorithm) == IPMI_INTEGRITY_ALGORITHM_HMAC_SHA256_128) ? 1 : 0)
|
||||||
|
|
||||||
|
/**********************************************
|
||||||
|
* IPMI 2.0 Confidentiality Algorithm Numbers *
|
||||||
|
**********************************************/
|
||||||
|
|
||||||
|
#define IPMI_CONFIDENTIALITY_ALGORITHM_NONE 0x00
|
||||||
|
#define IPMI_CONFIDENTIALITY_ALGORITHM_AES_CBC_128 0x01
|
||||||
|
#define IPMI_CONFIDENTIALITY_ALGORITHM_XRC4_128 0x02
|
||||||
|
#define IPMI_CONFIDENTIALITY_ALGORITHM_XRC4_40 0x03
|
||||||
|
/* 30h - 3Fh - OEM */
|
||||||
|
/* all other reserved */
|
||||||
|
|
||||||
|
#define IPMI_CONFIDENTIALITY_ALGORITHM_VALID(__algorithm) \
|
||||||
|
(((__algorithm) == IPMI_CONFIDENTIALITY_ALGORITHM_NONE \
|
||||||
|
|| (__algorithm) == IPMI_CONFIDENTIALITY_ALGORITHM_AES_CBC_128 \
|
||||||
|
|| (__algorithm) == IPMI_CONFIDENTIALITY_ALGORITHM_XRC4_128 \
|
||||||
|
|| (__algorithm) == IPMI_CONFIDENTIALITY_ALGORITHM_XRC4_40) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CONFIDENTIALITY_ALGORITHM_SUPPORTED(__algorithm) \
|
||||||
|
(((__algorithm) == IPMI_CONFIDENTIALITY_ALGORITHM_NONE \
|
||||||
|
|| (__algorithm) == IPMI_CONFIDENTIALITY_ALGORITHM_AES_CBC_128) ? 1 : 0)
|
||||||
|
|
||||||
|
/***************************************
|
||||||
|
* IPMI 2.0 Misc Flags and Definitions *
|
||||||
|
***************************************/
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_PAYLOAD_TYPE 0x00
|
||||||
|
#define IPMI_AUTHENTICATION_PAYLOAD_LENGTH 0x08
|
||||||
|
#define IPMI_INTEGRITY_PAYLOAD_TYPE 0x01
|
||||||
|
#define IPMI_INTEGRITY_PAYLOAD_LENGTH 0x08
|
||||||
|
#define IPMI_CONFIDENTIALITY_PAYLOAD_TYPE 0x02
|
||||||
|
#define IPMI_CONFIDENTIALITY_PAYLOAD_LENGTH 0x08
|
||||||
|
|
||||||
|
#define IPMI_USER_NAME_PRIVILEGE_LOOKUP 0x0
|
||||||
|
#define IPMI_NAME_ONLY_LOOKUP 0x1
|
||||||
|
|
||||||
|
#define IPMI_USER_NAME_LOOKUP_VALID(__username_lookup_flag) \
|
||||||
|
(((__username_lookup_flag) == IPMI_USER_NAME_PRIVILEGE_LOOKUP \
|
||||||
|
|| (__username_lookup_flag) == IPMI_NAME_ONLY_LOOKUP) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_REMOTE_CONSOLE_RANDOM_NUMBER_LENGTH 16
|
||||||
|
#define IPMI_MANAGED_SYSTEM_RANDOM_NUMBER_LENGTH 16
|
||||||
|
#define IPMI_MANAGED_SYSTEM_GUID_LENGTH 16
|
||||||
|
|
||||||
|
#define IPMI_NEXT_HEADER 0x07
|
||||||
|
|
||||||
|
#define IPMI_INTEGRITY_PAD_MULTIPLE 4
|
||||||
|
#define IPMI_INTEGRITY_PAD_DATA 0xFF
|
||||||
|
|
||||||
|
#define IPMI_MAX_PAYLOAD_LENGTH 65536
|
||||||
|
/* achu: b/c ipmi_msg_len is 2 bytes */
|
||||||
|
|
||||||
|
#define IPMI_HMAC_SHA1_DIGEST_LENGTH 20
|
||||||
|
#define IPMI_HMAC_MD5_DIGEST_LENGTH 16
|
||||||
|
#define IPMI_MD5_DIGEST_LENGTH 16
|
||||||
|
#define IPMI_HMAC_SHA1_96_DIGEST_LENGTH 12
|
||||||
|
#define IPMI_HMAC_SHA256_DIGEST_LENGTH 32
|
||||||
|
|
||||||
|
#define IPMI_HMAC_SHA1_96_AUTHENTICATION_CODE_LENGTH 12
|
||||||
|
#define IPMI_HMAC_MD5_128_AUTHENTICATION_CODE_LENGTH 16
|
||||||
|
#define IPMI_MD5_128_AUTHENTICATION_CODE_LENGTH 16
|
||||||
|
#define IPMI_HMAC_SHA256_128_AUTHENTICATION_CODE_LENGTH 16
|
||||||
|
|
||||||
|
/* Refer to table 22-19 */
|
||||||
|
/* XXX - Errata 4 defines SHA256 but not cipher suite IDs */
|
||||||
|
/* achu: Intel support says Cipher Suite 15-19 maps to 1-5 using
|
||||||
|
* SHA256 instead of SHA1 and SHA256-128 instead of SHA1-96.
|
||||||
|
*/
|
||||||
|
/* Cipher Suite 17 confirmed via DCMI 1.1 specification */
|
||||||
|
#define IPMI_CIPHER_SUITE_ID_MIN 0
|
||||||
|
#define IPMI_CIPHER_SUITE_ID_MAX 19
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fill* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* object must be for the fill function's respective fiid
|
||||||
|
* template.
|
||||||
|
*
|
||||||
|
* assemble/unassemble functions must be passed fiid objects of the
|
||||||
|
* respective expected header/trailer templates.
|
||||||
|
*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_session_hdr;
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_session_trlr;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_payload;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_open_session_request;
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_open_session_response;
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_rakp_message_1;
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_rakp_message_2;
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_rakp_message_3;
|
||||||
|
extern fiid_template_t tmpl_rmcpplus_rakp_message_4;
|
||||||
|
|
||||||
|
/* ipmi_rmcpplus_init
|
||||||
|
*
|
||||||
|
* Must be called first to initialize crypt libs. In threaded
|
||||||
|
* programs, must be called before threads are created.
|
||||||
|
*
|
||||||
|
* If errno returned == EPERM, underlying crypt library incompatible.
|
||||||
|
*
|
||||||
|
* Returns 0 on success, -1 on error.
|
||||||
|
*/
|
||||||
|
int ipmi_rmcpplus_init (void);
|
||||||
|
|
||||||
|
int fill_rmcpplus_session_hdr (uint8_t payload_type,
|
||||||
|
uint8_t payload_authenticated,
|
||||||
|
uint8_t payload_encrypted,
|
||||||
|
uint32_t oem_iana,
|
||||||
|
uint16_t oem_payload_id,
|
||||||
|
uint32_t session_id,
|
||||||
|
uint32_t session_sequence_number,
|
||||||
|
fiid_obj_t obj_rmcpplus_session_hdr);
|
||||||
|
|
||||||
|
int fill_rmcpplus_session_trlr (fiid_obj_t obj_rmcpplus_session_trlr);
|
||||||
|
|
||||||
|
int fill_rmcpplus_payload (const void *confidentiality_header,
|
||||||
|
unsigned int confidentiality_header_len,
|
||||||
|
const void *payload_data,
|
||||||
|
unsigned int payload_data_len,
|
||||||
|
const void *confidentiality_trailer,
|
||||||
|
unsigned int confidentiality_trailer_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_rmcpplus_open_session (uint8_t message_tag,
|
||||||
|
uint8_t requested_maximum_privilege_level,
|
||||||
|
uint32_t remote_console_session_id,
|
||||||
|
uint8_t authentication_algorithm,
|
||||||
|
uint8_t integrity_algorithm,
|
||||||
|
uint8_t confidentiality_algorithm,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_rmcpplus_rakp_message_1 (uint8_t message_tag,
|
||||||
|
uint32_t managed_system_session_id,
|
||||||
|
const void *remote_console_random_number,
|
||||||
|
unsigned int remote_console_random_number_len,
|
||||||
|
uint8_t requested_maximum_privilege_level,
|
||||||
|
uint8_t name_only_lookup_flag,
|
||||||
|
const char *username,
|
||||||
|
unsigned int username_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
int fill_rmcpplus_rakp_message_3 (uint8_t message_tag,
|
||||||
|
uint8_t rmcpplus_status_code,
|
||||||
|
uint32_t managed_system_session_id,
|
||||||
|
const void *key_exchange_authentication_code,
|
||||||
|
unsigned int key_exchange_authentication_code_len,
|
||||||
|
fiid_obj_t obj_cmd_rq);
|
||||||
|
|
||||||
|
/* returns length written to pkt on success, -1 on error */
|
||||||
|
int assemble_ipmi_rmcpplus_pkt (uint8_t authentication_algorithm,
|
||||||
|
uint8_t integrity_algorithm,
|
||||||
|
uint8_t confidentiality_algorithm,
|
||||||
|
const void *integrity_key,
|
||||||
|
unsigned int integrity_key_len,
|
||||||
|
const void *confidentiality_key,
|
||||||
|
unsigned int confidentiality_key_len,
|
||||||
|
const void *authentication_code_data,
|
||||||
|
unsigned int authentication_code_data_len,
|
||||||
|
fiid_obj_t obj_rmcp_hdr,
|
||||||
|
fiid_obj_t obj_rmcpplus_session_hdr,
|
||||||
|
fiid_obj_t obj_lan_msg_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
fiid_obj_t obj_rmcpplus_session_trlr,
|
||||||
|
void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* returns 1 if fully unparsed, 0 if not, -1 on error */
|
||||||
|
int unassemble_ipmi_rmcpplus_pkt (uint8_t authentication_algorithm,
|
||||||
|
uint8_t integrity_algorithm,
|
||||||
|
uint8_t confidentiality_algorithm,
|
||||||
|
const void *integrity_key,
|
||||||
|
unsigned int integrity_key_len,
|
||||||
|
const void *confidentiality_key,
|
||||||
|
unsigned int confidentiality_key_len,
|
||||||
|
const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_obj_t obj_rmcp_hdr,
|
||||||
|
fiid_obj_t obj_rmcpplus_session_hdr,
|
||||||
|
fiid_obj_t obj_rmcpplus_payload,
|
||||||
|
fiid_obj_t obj_lan_msg_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
fiid_obj_t obj_lan_msg_trlr,
|
||||||
|
fiid_obj_t obj_rmcpplus_session_trlr,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* returns length sent on success, -1 on error */
|
||||||
|
/* A few extra error checks, but nearly identical to system sendto() */
|
||||||
|
ssize_t ipmi_rmcpplus_sendto (int s,
|
||||||
|
const void *buf,
|
||||||
|
size_t len,
|
||||||
|
int flags,
|
||||||
|
const struct sockaddr *to,
|
||||||
|
socklen_t tolen);
|
||||||
|
|
||||||
|
/* returns length received on success, 0 on orderly shutdown, -1 on error */
|
||||||
|
/* A few extra error checks, but nearly identical to system recvfrom() */
|
||||||
|
ssize_t ipmi_rmcpplus_recvfrom (int s,
|
||||||
|
void *buf,
|
||||||
|
size_t len,
|
||||||
|
int flags,
|
||||||
|
struct sockaddr *from,
|
||||||
|
socklen_t *fromlen);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_RMCPPLUS_INTERFACE_H */
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* 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 RMCP_INTERFACE_H
|
||||||
|
#define RMCP_INTERFACE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define RMCP_VERSION_1_0 0x06 /* RMCP Version 1.0 */
|
||||||
|
|
||||||
|
#define RMCP_AUX_BUS_SHUNT 0x26F /* 623 */
|
||||||
|
#define RMCP_PRIMARY_RMCP_PORT RMCP_AUX_BUS_SHUNT
|
||||||
|
|
||||||
|
#define RMCP_SECURE_AUX_BUS 0x298 /* 664 */
|
||||||
|
#define RMCP_SECONDARY_RMCP_PORT RMCP_SECURE_AUX_BUS
|
||||||
|
|
||||||
|
#define RMCP_HDR_SEQ_NUM_NO_RMCP_ACK 0xFF
|
||||||
|
|
||||||
|
#define RMCP_HDR_MESSAGE_CLASS_BIT_RMCP_NORMAL 0x0
|
||||||
|
#define RMCP_HDR_MESSAGE_CLASS_BIT_RMCP_ACK 0x1
|
||||||
|
|
||||||
|
#define RMCP_HDR_MESSAGE_CLASS_ASF 0x06
|
||||||
|
#define RMCP_HDR_MESSAGE_CLASS_IPMI 0x07
|
||||||
|
#define RMCP_HDR_MESSAGE_CLASS_OEM 0x08
|
||||||
|
|
||||||
|
#define RMCP_HDR_MESSAGE_CLASS_VALID(__message_class) \
|
||||||
|
(((__message_class) == RMCP_HDR_MESSAGE_CLASS_ASF \
|
||||||
|
|| (__message_class) == RMCP_HDR_MESSAGE_CLASS_IPMI \
|
||||||
|
|| (__message_class) == RMCP_HDR_MESSAGE_CLASS_OEM) ? 1 : 0)
|
||||||
|
|
||||||
|
#define RMCP_ASF_IANA_ENTERPRISE_NUM 0x11BE /* 4542 */
|
||||||
|
|
||||||
|
#define RMCP_ASF_MESSAGE_TYPE_PRESENCE_PING 0x80
|
||||||
|
#define RMCP_ASF_MESSAGE_TYPE_PRESENCE_PONG 0x40
|
||||||
|
|
||||||
|
#define RMCP_ASF_MESSAGE_TAG_MAX 0xFE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fill* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* object must be for the fill function's respective fiid
|
||||||
|
* template.
|
||||||
|
*
|
||||||
|
* assemble/unassemble functions must be passed fiid objects of the
|
||||||
|
* respective expected header/trailer templates.
|
||||||
|
*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_rmcp_hdr;
|
||||||
|
|
||||||
|
int fill_rmcp_hdr (uint8_t message_class, fiid_obj_t obj_rmcp_hdr);
|
||||||
|
|
||||||
|
int fill_rmcp_hdr_ipmi (fiid_obj_t obj_rmcp_hdr);
|
||||||
|
|
||||||
|
int fill_rmcp_hdr_asf (fiid_obj_t obj_rmcp_hdr);
|
||||||
|
|
||||||
|
/* returns length written to pkt on success, -1 on error */
|
||||||
|
int assemble_rmcp_pkt (fiid_obj_t obj_rmcp_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/* returns 1 if fully unparsed, 0 if not, -1 on error */
|
||||||
|
int unassemble_rmcp_pkt (const void *pkt,
|
||||||
|
unsigned int pkt_len,
|
||||||
|
fiid_obj_t obj_rmcp_hdr,
|
||||||
|
fiid_obj_t obj_cmd,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* RMCP_INTERFACE_H */
|
102
source/freeipmi/usr/include/freeipmi/interpret/ipmi-interpret.h
Normal file
102
source/freeipmi/usr/include/freeipmi/interpret/ipmi-interpret.h
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
/*
|
||||||
|
* 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_INTERPRET_H
|
||||||
|
#define IPMI_INTERPRET_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define IPMI_INTERPRET_ERR_SUCCESS 0
|
||||||
|
#define IPMI_INTERPRET_ERR_CONTEXT_NULL 1
|
||||||
|
#define IPMI_INTERPRET_ERR_CONTEXT_INVALID 2
|
||||||
|
#define IPMI_INTERPRET_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_INTERPRET_ERR_OUT_OF_MEMORY 4
|
||||||
|
#define IPMI_INTERPRET_ERR_PERMISSION 5
|
||||||
|
#define IPMI_INTERPRET_ERR_SEL_CONFIG_FILE_DOES_NOT_EXIST 6
|
||||||
|
#define IPMI_INTERPRET_ERR_SEL_CONFIG_FILE_PARSE 7
|
||||||
|
#define IPMI_INTERPRET_ERR_SENSOR_CONFIG_FILE_DOES_NOT_EXIST 8
|
||||||
|
#define IPMI_INTERPRET_ERR_SENSOR_CONFIG_FILE_PARSE 9
|
||||||
|
#define IPMI_INTERPRET_ERR_INVALID_SEL_RECORD 10
|
||||||
|
#define IPMI_INTERPRET_ERR_SYSTEM_ERROR 11
|
||||||
|
#define IPMI_INTERPRET_ERR_OVERFLOW 12
|
||||||
|
#define IPMI_INTERPRET_ERR_INTERNAL_ERROR 13
|
||||||
|
#define IPMI_INTERPRET_ERR_ERRNUMRANGE 14
|
||||||
|
|
||||||
|
#define IPMI_INTERPRET_FLAGS_DEFAULT 0x0000
|
||||||
|
#define IPMI_INTERPRET_FLAGS_INTERPRET_OEM_DATA 0x0001
|
||||||
|
#define IPMI_INTERPRET_FLAGS_SEL_ASSUME_SYSTEM_EVENT_RECORDS 0x0002
|
||||||
|
#define IPMI_INTERPRET_FLAGS_IGNORE_UNRECOGNIZED_EVENTS 0x0004
|
||||||
|
|
||||||
|
#define IPMI_INTERPRET_STATE_NOMINAL 0x00
|
||||||
|
#define IPMI_INTERPRET_STATE_WARNING 0x01
|
||||||
|
#define IPMI_INTERPRET_STATE_CRITICAL 0x02
|
||||||
|
#define IPMI_INTERPRET_STATE_UNKNOWN 0x03
|
||||||
|
|
||||||
|
typedef struct ipmi_interpret_ctx *ipmi_interpret_ctx_t;
|
||||||
|
|
||||||
|
/* Interpret Context Functions */
|
||||||
|
ipmi_interpret_ctx_t ipmi_interpret_ctx_create (void);
|
||||||
|
void ipmi_interpret_ctx_destroy (ipmi_interpret_ctx_t ctx);
|
||||||
|
int ipmi_interpret_ctx_errnum (ipmi_interpret_ctx_t ctx);
|
||||||
|
char * ipmi_interpret_ctx_strerror (int errnum);
|
||||||
|
char * ipmi_interpret_ctx_errormsg (ipmi_interpret_ctx_t ctx);
|
||||||
|
|
||||||
|
/* interpret flag functions */
|
||||||
|
int ipmi_interpret_ctx_get_flags (ipmi_interpret_ctx_t ctx, unsigned int *flags);
|
||||||
|
int ipmi_interpret_ctx_set_flags (ipmi_interpret_ctx_t ctx, unsigned int flags);
|
||||||
|
/* for use w/ IPMI_INTERPRET_FLAGS_INTERPRET_OEM_DATA */
|
||||||
|
int ipmi_interpret_ctx_get_manufacturer_id (ipmi_interpret_ctx_t ctx, uint32_t *manufacturer_id);
|
||||||
|
int ipmi_interpret_ctx_set_manufacturer_id (ipmi_interpret_ctx_t ctx, uint32_t manufacturer_id);
|
||||||
|
/* for use w/ IPMI_INTERPRET_FLAGS_INTERPRET_OEM_DATA */
|
||||||
|
int ipmi_interpret_ctx_get_product_id (ipmi_interpret_ctx_t ctx, uint16_t *product_id);
|
||||||
|
int ipmi_interpret_ctx_set_product_id (ipmi_interpret_ctx_t ctx, uint16_t product_id);
|
||||||
|
|
||||||
|
/* interpret file config loading */
|
||||||
|
|
||||||
|
/* specify NULL for default config file */
|
||||||
|
/* if not called, library default will always be used */
|
||||||
|
int ipmi_interpret_load_sel_config (ipmi_interpret_ctx_t ctx,
|
||||||
|
const char *sel_config_file);
|
||||||
|
|
||||||
|
/* specify NULL for default config file */
|
||||||
|
/* if not called, library default will always be used */
|
||||||
|
int ipmi_interpret_load_sensor_config (ipmi_interpret_ctx_t ctx,
|
||||||
|
const char *sensor_config_file);
|
||||||
|
|
||||||
|
/* interpret core functions */
|
||||||
|
|
||||||
|
int ipmi_interpret_sel (ipmi_interpret_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
unsigned int *sel_state);
|
||||||
|
|
||||||
|
int ipmi_interpret_sensor (ipmi_interpret_ctx_t ctx,
|
||||||
|
uint8_t event_reading_type_code,
|
||||||
|
uint8_t sensor_type,
|
||||||
|
uint16_t sensor_event_bitmask,
|
||||||
|
unsigned int *sensor_state);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_INTERPRET_H */
|
134
source/freeipmi/usr/include/freeipmi/locate/ipmi-locate.h
Normal file
134
source/freeipmi/usr/include/freeipmi/locate/ipmi-locate.h
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
/*
|
||||||
|
* 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_LOCATE_H
|
||||||
|
#define IPMI_LOCATE_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define IPMI_LOCATE_PATH_MAX 1024
|
||||||
|
|
||||||
|
#define IPMI_ADDRESS_SPACE_ID_SYSTEM_MEMORY 0x00
|
||||||
|
#define IPMI_ADDRESS_SPACE_ID_SYSTEM_IO 0x01
|
||||||
|
#define IPMI_ADDRESS_SPACE_ID_SMBUS 0x04
|
||||||
|
|
||||||
|
#define IPMI_LOCATE_ERR_SUCCESS 0
|
||||||
|
#define IPMI_LOCATE_ERR_NULL 1
|
||||||
|
#define IPMI_LOCATE_ERR_INVALID 2
|
||||||
|
#define IPMI_LOCATE_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_LOCATE_ERR_PERMISSION 4
|
||||||
|
#define IPMI_LOCATE_ERR_OUT_OF_MEMORY 5
|
||||||
|
#define IPMI_LOCATE_ERR_SYSTEM_ERROR 6
|
||||||
|
#define IPMI_LOCATE_ERR_INTERNAL_ERROR 7
|
||||||
|
#define IPMI_LOCATE_ERR_ERRNUMRANGE 8
|
||||||
|
|
||||||
|
typedef struct ipmi_locate_ctx *ipmi_locate_ctx_t;
|
||||||
|
|
||||||
|
enum ipmi_locate_driver_type
|
||||||
|
{
|
||||||
|
IPMI_LOCATE_DRIVER_NONE = 0,
|
||||||
|
IPMI_LOCATE_DRIVER_DEFAULTS = 1,
|
||||||
|
IPMI_LOCATE_DRIVER_SMBIOS = 2,
|
||||||
|
IPMI_LOCATE_DRIVER_ACPI = 3,
|
||||||
|
IPMI_LOCATE_DRIVER_PCI = 4,
|
||||||
|
IPMI_LOCATE_DRIVER_DMIDECODE = 5
|
||||||
|
};
|
||||||
|
typedef enum ipmi_locate_driver_type ipmi_locate_driver_type_t;
|
||||||
|
|
||||||
|
#define IPMI_LOCATE_DRIVER_VALID(__val) \
|
||||||
|
(((__val) == IPMI_LOCATE_DRIVER_NONE \
|
||||||
|
|| (__val) == IPMI_LOCATE_DRIVER_DEFAULTS \
|
||||||
|
|| (__val) == IPMI_LOCATE_DRIVER_SMBIOS \
|
||||||
|
|| (__val) == IPMI_LOCATE_DRIVER_ACPI \
|
||||||
|
|| (__val) == IPMI_LOCATE_DRIVER_PCI \
|
||||||
|
|| (__val) == IPMI_LOCATE_DRIVER_DMIDECODE) ? 1 : 0)
|
||||||
|
|
||||||
|
enum ipmi_interface_type
|
||||||
|
{
|
||||||
|
IPMI_INTERFACE_RESERVED = 0,
|
||||||
|
IPMI_INTERFACE_KCS = 1,
|
||||||
|
IPMI_INTERFACE_SMIC = 2,
|
||||||
|
IPMI_INTERFACE_BT = 3,
|
||||||
|
IPMI_INTERFACE_SSIF = 4,
|
||||||
|
};
|
||||||
|
typedef enum ipmi_interface_type ipmi_interface_type_t;
|
||||||
|
|
||||||
|
#define IPMI_INTERFACE_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_INTERFACE_KCS \
|
||||||
|
|| (__val) == IPMI_INTERFACE_SMIC \
|
||||||
|
|| (__val) == IPMI_INTERFACE_BT \
|
||||||
|
|| (__val) == IPMI_INTERFACE_SSIF) ? 1 : 0)
|
||||||
|
|
||||||
|
struct ipmi_locate_info
|
||||||
|
{
|
||||||
|
uint8_t ipmi_version_major;
|
||||||
|
uint8_t ipmi_version_minor;
|
||||||
|
ipmi_locate_driver_type_t locate_driver_type;
|
||||||
|
ipmi_interface_type_t interface_type; /* KCS, SMIC, BT, SSIF */
|
||||||
|
char driver_device[IPMI_LOCATE_PATH_MAX];
|
||||||
|
uint8_t address_space_id; /* Memory mapped, IO mapped, SMBus*/
|
||||||
|
uint64_t driver_address;
|
||||||
|
uint8_t register_spacing; /* Register spacing in bytes */
|
||||||
|
};
|
||||||
|
|
||||||
|
ipmi_locate_ctx_t ipmi_locate_ctx_create (void);
|
||||||
|
void ipmi_locate_ctx_destroy (ipmi_locate_ctx_t ctx);
|
||||||
|
int ipmi_locate_ctx_errnum (ipmi_locate_ctx_t ctx);
|
||||||
|
char *ipmi_locate_ctx_strerror (int errnum);
|
||||||
|
char *ipmi_locate_ctx_errormsg (ipmi_locate_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_locate_get_device_info (ipmi_locate_ctx_t ctx,
|
||||||
|
ipmi_interface_type_t type,
|
||||||
|
struct ipmi_locate_info *info);
|
||||||
|
|
||||||
|
/* Identical to ipmi_locate_get_device_info() but will NOT return
|
||||||
|
* defaults if no device info is found.
|
||||||
|
*/
|
||||||
|
int ipmi_locate_discover_device_info (ipmi_locate_ctx_t ctx,
|
||||||
|
ipmi_interface_type_t type,
|
||||||
|
struct ipmi_locate_info *info);
|
||||||
|
|
||||||
|
int ipmi_locate_smbios_get_device_info (ipmi_locate_ctx_t ctx,
|
||||||
|
ipmi_interface_type_t type,
|
||||||
|
struct ipmi_locate_info *info);
|
||||||
|
|
||||||
|
int ipmi_locate_pci_get_device_info (ipmi_locate_ctx_t ctx,
|
||||||
|
ipmi_interface_type_t type,
|
||||||
|
struct ipmi_locate_info *info);
|
||||||
|
|
||||||
|
int ipmi_locate_acpi_spmi_get_device_info (ipmi_locate_ctx_t ctx,
|
||||||
|
ipmi_interface_type_t interface_type,
|
||||||
|
struct ipmi_locate_info *info);
|
||||||
|
|
||||||
|
int ipmi_locate_defaults_get_device_info (ipmi_locate_ctx_t ctx,
|
||||||
|
ipmi_interface_type_t type,
|
||||||
|
struct ipmi_locate_info *info);
|
||||||
|
|
||||||
|
int ipmi_locate_dmidecode_get_device_info (ipmi_locate_ctx_t ctx,
|
||||||
|
ipmi_interface_type_t type,
|
||||||
|
struct ipmi_locate_info *info);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_LOCATE_H */
|
135
source/freeipmi/usr/include/freeipmi/payload/ipmi-sol-payload.h
Normal file
135
source/freeipmi/usr/include/freeipmi/payload/ipmi-sol-payload.h
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
* 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_SOL_PAYLOAD_H
|
||||||
|
#define IPMI_SOL_PAYLOAD_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SOL_PACKET_SEQUENCE_NUMBER_MAX 0xF
|
||||||
|
|
||||||
|
#define IPMI_SOL_FLUSH_OUTBOUND 0x1
|
||||||
|
#define IPMI_SOL_DO_NOT_FLUSH_OUTBOUND 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_FLUSH_OUTBOUND_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_FLUSH_OUTBOUND \
|
||||||
|
|| (__val) == IPMI_SOL_DO_NOT_FLUSH_OUTBOUND) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_FLUSH_INBOUND 0x1
|
||||||
|
#define IPMI_SOL_DO_NOT_FLUSH_INBOUND 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_FLUSH_INBOUND_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_FLUSH_INBOUND \
|
||||||
|
|| (__val) == IPMI_SOL_DO_NOT_FLUSH_INBOUND) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_ASSERT_DCD_DSR 0x0
|
||||||
|
#define IPMI_SOL_DEASSERT_DCD_DSR 0x1
|
||||||
|
|
||||||
|
#define IPMI_SOL_ASSERT_DCD_DSR_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_ASSERT_DCD_DSR \
|
||||||
|
|| (__val) == IPMI_SOL_DEASSERT_DCD_DSR) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_ASSERT_CTS 0x0
|
||||||
|
#define IPMI_SOL_DEASSERT_CTS 0x1
|
||||||
|
|
||||||
|
#define IPMI_SOL_ASSERT_CTS_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_ASSERT_CTS \
|
||||||
|
|| (__val) == IPMI_SOL_DEASSERT_CTS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_GENERATE_BREAK 0x1
|
||||||
|
#define IPMI_SOL_DO_NOT_GENERATE_BREAK 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_GENERATE_BREAK_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_GENERATE_BREAK \
|
||||||
|
|| (__val) == IPMI_SOL_DO_NOT_GENERATE_BREAK) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_ASSERT_RI 0x0
|
||||||
|
#define IPMI_SOL_DEASSERT_RI 0x1
|
||||||
|
|
||||||
|
#define IPMI_SOL_ASSERT_RI_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_ASSERT_RI \
|
||||||
|
|| (__val) == IPMI_SOL_DEASSERT_RI) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_ACK 0x0
|
||||||
|
#define IPMI_SOL_NACK 0x1
|
||||||
|
|
||||||
|
#define IPMI_SOL_ACK_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_ACK \
|
||||||
|
|| (__val) == IPMI_SOL_NACK) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_NACK_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SOL_ACK \
|
||||||
|
|| (__val) == IPMI_SOL_NACK) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SOL_BREAK_CONDITION_DETECTED 0x1
|
||||||
|
#define IPMI_SOL_NO_BREAK_DETECTED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_TRANSMIT_OVERRUN_CHARACTERS_DROPPED 0x1
|
||||||
|
#define IPMI_SOL_TRANSMIT_OVERRUN_NO_CHARACTERS_DROPPED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_SOL_DEACTIVATING 0x1
|
||||||
|
#define IPMI_SOL_SOL_ACTIVE 0x0
|
||||||
|
|
||||||
|
#define IPMI_SOL_CHARACTER_TRANSFER_UNAVAILABLE 0x1
|
||||||
|
#define IPMI_SOL_CHARACTER_TRANSFER_AVAILABLE 0x0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fill* functions return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
|
* obj_sol_payload must be for the fill function's respective fiid
|
||||||
|
* template request.
|
||||||
|
*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_sol_payload_data;
|
||||||
|
extern fiid_template_t tmpl_sol_payload_data_remote_console_to_bmc;
|
||||||
|
extern fiid_template_t tmpl_sol_payload_data_bmc_to_remote_console;
|
||||||
|
|
||||||
|
int fill_sol_payload_data (uint8_t packet_sequence_number,
|
||||||
|
uint8_t packet_ack_nack_sequence_number,
|
||||||
|
uint8_t accepted_character_count,
|
||||||
|
uint8_t operation_status,
|
||||||
|
const void *character_data,
|
||||||
|
unsigned int character_data_len,
|
||||||
|
fiid_obj_t obj_sol_payload);
|
||||||
|
|
||||||
|
int fill_sol_payload_data_remote_console_to_bmc (uint8_t packet_sequence_number,
|
||||||
|
uint8_t packet_ack_nack_sequence_number,
|
||||||
|
uint8_t accepted_character_count,
|
||||||
|
uint8_t flush_outbound,
|
||||||
|
uint8_t flush_inbound,
|
||||||
|
uint8_t drop_dcd_dsr,
|
||||||
|
uint8_t cts_pause,
|
||||||
|
uint8_t generate_break,
|
||||||
|
uint8_t ring_wor,
|
||||||
|
uint8_t nack,
|
||||||
|
const void *character_data,
|
||||||
|
unsigned int character_data_len,
|
||||||
|
fiid_obj_t obj_sol_payload);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SOL_PAYLOAD_H */
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* 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_CIPHER_SUITE_RECORD_FORMAT_H
|
||||||
|
#define IPMI_CIPHER_SUITE_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/* Notes:
|
||||||
|
Refer to IPMI 2.0 spec Table 22-18.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_CIPHER_SUITE_TAG_BITS_AUTHENTICATION_ALGORITHM 0x0
|
||||||
|
#define IPMI_CIPHER_SUITE_TAG_BITS_INTEGRITY_ALGORITHM 0x1
|
||||||
|
#define IPMI_CIPHER_SUITE_TAG_BITS_CONFIDENTIALITY_ALGORITHM 0x2
|
||||||
|
#define IPMI_CIPHER_SUITE_TAG_BITS_RECORD 0x3
|
||||||
|
|
||||||
|
#define IPMI_CIPHER_SUITE_RECORD_FORMAT_STANDARD 0x00
|
||||||
|
#define IPMI_CIPHER_SUITE_RECORD_FORMAT_OEM 0x01
|
||||||
|
|
||||||
|
#define IPMI_CIPHER_SUITE_RECORD_FORMAT_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CIPHER_SUITE_RECORD_FORMAT_STANDARD \
|
||||||
|
|| (__val) == IPMI_CIPHER_SUITE_RECORD_FORMAT_OEM) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CIPHER_SUITE_TAG_BITS_VALID(__val) \
|
||||||
|
(((__val) == IPMI_CIPHER_SUITE_TAG_BITS_AUTHENTICATION_ALGORITHM \
|
||||||
|
|| (__val) == IPMI_CIPHER_SUITE_TAG_BITS_INTEGRITY_ALGORITHM \
|
||||||
|
|| (__val) == IPMI_CIPHER_SUITE_TAG_BITS_CONFIDENTIALITY_ALGORITHM \
|
||||||
|
|| (__val) == IPMI_CIPHER_SUITE_TAG_BITS_RECORD) ? 1 : 0)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_cipher_suite_record_header;
|
||||||
|
extern fiid_template_t tmpl_cipher_suite_record;
|
||||||
|
extern fiid_template_t tmpl_oem_cipher_suite_record;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_CIPHER_SUITE_RECORD_FORMAT_H */
|
|
@ -0,0 +1,480 @@
|
||||||
|
/*
|
||||||
|
* 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_FRU_DIMMSPD_RECORD_FORMAT_H
|
||||||
|
#define IPMI_FRU_DIMMSPD_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* From "Annex K: Serial Presence Detect (SPD) for DDR3 SDRAM Modules"
|
||||||
|
* and
|
||||||
|
* "Annex L: Serial Presence Detect (SPD) for DDR4 SDRAM Modules"
|
||||||
|
*
|
||||||
|
* Released by JEDEC
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_RESERVED 0x00
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_STANDARD_FPM_DRAM 0x01 /* Fast Page Mode */
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_EDO 0x02
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_PIPELINED_NIBBLE 0x03
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_SDRAM 0x04
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_ROM 0x05
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_DDR_SGRAM 0x06
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_DDR_SDRAM 0x07
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_DDR2_SDRAM 0x08
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_DDR2_SDRAM_FB_DIMM 0x09
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_DDR2_SDRAM_FB_DIMM_PROBE 0x0A
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_DDR3_SDRAM 0x0B
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_DEVICE_TYPE_DDR4_SDRAM 0x0C
|
||||||
|
|
||||||
|
/* From "Annex K: Serial Presence Detect (SPD) for DDR3 SDRAM Modules"
|
||||||
|
*
|
||||||
|
* Released by JEDEC
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_SPD_BYTES_USED_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_SPD_BYTES_USED_128 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_SPD_BYTES_USED_176 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_SPD_BYTES_USED_256 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_SPD_BYTES_TOTAL_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_SPD_BYTES_TOTAL_256 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_CRC_COVERAGE_0_TO_125 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_CRC_COVERAGE_0_TO_116 0x1
|
||||||
|
|
||||||
|
/* RDIMM - Registered Dual In-Line Memory Module
|
||||||
|
* LRDIMM - Load Reduction DIMM
|
||||||
|
* UDIMM - Unbuffered DIMM
|
||||||
|
* SO-DIMM - Unbuffered 64-bit Small Outline DIMM
|
||||||
|
* Micro-DIMM - Micro DIMM
|
||||||
|
* Mini-RDIMM - Mini RDIMM
|
||||||
|
* Mini-UDIMM - Mini UDIMM
|
||||||
|
* Mini-CDIMM - Clocked 72-bit Mini DIMM
|
||||||
|
* 72b-SO-UDIMM - Unbuffered 72-bit SO-DIMM
|
||||||
|
* 72b-SO-RDIMM - Registered 72-bit SO-DIMM
|
||||||
|
* 72b-SO-CDIMM - Clocked 72-bit SO-DIMM
|
||||||
|
* 16b-SO-DIMM - Unbuffered 16-bit SO-DIMM
|
||||||
|
* 32b-SO-DIMM - Unbuffered 32-bit SO-DIMM
|
||||||
|
*/
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_RDIMM 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_UDIMM 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_SO_DIMM 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_MICRO_DIMM 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_MINI_RDIMM 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_MINI_UDIMM 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_MINI_CDIMM 0x7
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_72B_SO_UDIMM 0x8
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_72B_SO_RDIMM 0x9
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_72B_SO_CDIMM 0xA
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_LRDIMM 0xB
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_16B_SO_DIMM 0xC
|
||||||
|
#define IPMI_FRU_DIMMSPD_DRAM_MODULE_TYPE_32B_SO_DIMM 0xD
|
||||||
|
|
||||||
|
/* In megabits / gigabits */
|
||||||
|
#define IPMI_FRU_DIMMSPD_TOTAL_SDRAM_CAPACITY_256_MB 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_TOTAL_SDRAM_CAPACITY_512_MB 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_TOTAL_SDRAM_CAPACITY_1_GB 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_TOTAL_SDRAM_CAPACITY_2_GB 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_TOTAL_SDRAM_CAPACITY_4_GB 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_TOTAL_SDRAM_CAPACITY_8_GB 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_TOTAL_SDRAM_CAPACITY_16_GB 0x6
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_BANK_ADDRESS_BITS_3 0x0 /* 8 banks */
|
||||||
|
#define IPMI_FRU_DIMMSPD_BANK_ADDRESS_BITS_4 0x1 /* 16 banks */
|
||||||
|
#define IPMI_FRU_DIMMSPD_BANK_ADDRESS_BITS_5 0x2 /* 32 banks */
|
||||||
|
#define IPMI_FRU_DIMMSPD_BANK_ADDRESS_BITS_6 0x3 /* 64 banks */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_COLUMN_ADDRESS_BITS_9 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_COLUMN_ADDRESS_BITS_10 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_COLUMN_ADDRESS_BITS_11 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_COLUMN_ADDRESS_BITS_12 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_ROW_ADDRESS_BITS_12 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_ROW_ADDRESS_BITS_13 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_ROW_ADDRESS_BITS_14 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_ROW_ADDRESS_BITS_15 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_ROW_ADDRESS_BITS_16 0x4
|
||||||
|
|
||||||
|
/* Yes, flags are opposite of normal logic for 1.5V */
|
||||||
|
#define IPMI_FRU_DIMMSPD_VOLTAGE_1_5_OPERABLE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_VOLTAGE_1_5_NOT_OPERABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_VOLTAGE_1_35_OPERABLE 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_VOLTAGE_1_35_NOT_OPERABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_VOLTAGE_1_25_OPERABLE 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_VOLTAGE_1_25_NOT_OPERABLE 0x0
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DEVICE_WIDTH_4_BITS 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DEVICE_WIDTH_8_BITS 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DEVICE_WIDTH_16_BITS 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DEVICE_WIDTH_32_BITS 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_NUMBER_OF_RANKS_1 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_NUMBER_OF_RANKS_2 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_NUMBER_OF_RANKS_3 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_NUMBER_OF_RANKS_4 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_PRIMARY_BUS_WIDTH_8_BITS 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_PRIMARY_BUS_WIDTH_16_BITS 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_PRIMARY_BUS_WIDTH_32_BITS 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_PRIMARY_BUS_WIDTH_64_BITS 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_BUS_WIDTH_EXTENSION_0_BITS 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_BUS_WIDTH_EXTENSION_8_BITS 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_CAS_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_CAS_SUPPORTED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_RZQ_6_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_RZQ_6_SUPPORTED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_RZQ_7_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_RZQ_7_SUPPORTED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DLL_OFF_MODE_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DLL_OFF_MODE_SUPPORTED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_EXTENDED_TEMPERATURE_RANGE_NORMAL_RANGE 0x0 /* 0-85 C */
|
||||||
|
#define IPMI_FRU_DIMMSPD_EXTENDED_TEMPERATURE_RANGE_NORMAL_AND_EXTENDED_RANGE 0x1 /* 0-95 C */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_EXTENDED_TEMPERATURE_RANGE_REFRESH_RATE_2X 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_EXTENDED_TEMPERATURE_RANGE_REFRESH_RATE_1X 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_AUTO_SELF_REFRESH_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_AUTO_SELF_REFRESH_SUPPORTED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_ON_DIE_THERMAL_SENSOR_READOUT_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_ON_DIE_THERMAL_SENSOR_READOUT_SUPPORTED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_PARTIAL_ARRAY_SELF_REFRESH_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_PARTIAL_ARRAY_SELF_REFRESH_SUPPORTED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_THERMAL_SENSOR_NOT_INCORPORATED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_THERMAL_SENSOR_INCORPORATED 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_SIGNAL_LOADING_NOT_SPECIFIED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_SIGNAL_LOADING_MULTI_LOAD_STACK 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_SIGNAL_LOADING_SINGLE_LOAD_STACK 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_SIGNAL_LOADING_RESERVED 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DIE_COUNT_NOT_SPECIFIED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DIE_COUNT_SINGLE_DIE 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DIE_COUNT_2_DIE 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DIE_COUNT_4_DIE 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DIE_COUNT_8_DIE 0x4
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_SDRAM_DEVICE_TYPE_STANDARD_MONOLITHIC_DRAM_DEVICE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_SDRAM_DEVICE_TYPE_NON_STANDARD_DEVICE 0x1
|
||||||
|
|
||||||
|
/* From "Annex L: Serial Presence Detect (SPD) for DDR4 SDRAM Modules"
|
||||||
|
*
|
||||||
|
* Released by JEDEC
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_USED_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_USED_128 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_USED_256 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_USED_384 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_USED_512 0x4
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_TOTAL_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_TOTAL_256 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SPD_BYTES_TOTAL_512 0x2
|
||||||
|
|
||||||
|
/* RDIMM - Registered Dual In-Line Memory Module
|
||||||
|
* UDIMM - Unbuffered Dual In-Line Memory Module
|
||||||
|
* SO-DIMM - Unbuffered Small Outline Dual In-Line Memory Module, 64-bit data bus
|
||||||
|
* LRDIMM - Load Reduced Dual In-Line Memory Module
|
||||||
|
* Mini-RDIMM - Mini RDIMM
|
||||||
|
* Mini-UDIMM - Mini UDIMM
|
||||||
|
* 72b-SO-RDIMM - Small Outline Registered DIMM, 72-bit data bus
|
||||||
|
* 72b-SO-UDIMM - Small Outline Unbuffered DIMM, 72-bit data bus
|
||||||
|
* 16b-SO-DIMM - Small Outline Unbuffered DIMM, 16-bit data bus
|
||||||
|
* 32b-SO-DIMM - Small Outline Unbuffered DIMM, 32-bit data bus
|
||||||
|
*/
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_EXTENDED_MODULE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_RDIMM 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_UDIMM 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_SO_DIMM 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_LR_DIMM 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_MINI_RDIMM 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_MINI_UDIMM 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_72B_SO_RDIMM 0x8
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_72B_SO_UDIMM 0x9
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_16B_SO_DIMM 0xC
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_32B_SO_DIMM 0xD
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_MODULE_TYPE_NO_BASE_MEMORY_PRESENT 0xF
|
||||||
|
|
||||||
|
/* In megabits / gigabits */
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_256_MB 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_512_MB 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_1_GB 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_2_GB 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_4_GB 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_8_GB 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_16_GB 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_TOTAL_SDRAM_CAPACITY_32_GB 0x7
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_BANK_ADDRESS_BITS_2 0x0 /* 4 banks */
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_BANK_ADDRESS_BITS_3 0x1 /* 8 banks */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_BANK_GROUP_BITS_0 0x0 /* no bank groups */
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_BANK_GROUP_BITS_1 0x1 /* 2 bank groups */
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_BANK_GROUP_BITS_2 0x2 /* 4 bank groups */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_COLUMN_ADDRESS_BITS_9 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_COLUMN_ADDRESS_BITS_10 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_COLUMN_ADDRESS_BITS_11 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_COLUMN_ADDRESS_BITS_12 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_ROW_ADDRESS_BITS_12 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_ROW_ADDRESS_BITS_13 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_ROW_ADDRESS_BITS_14 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_ROW_ADDRESS_BITS_15 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_ROW_ADDRESS_BITS_16 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_ROW_ADDRESS_BITS_17 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_ROW_ADDRESS_BITS_18 0x6
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SIGNAL_LOADING_NOT_SPECIFIED 0x00
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SIGNAL_LOADING_MULTI_LOAD_STACK 0x01
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SIGNAL_LOADING_SINGLE_LOAD_STACK 0x02
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_SINGLE_DIE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_2_DIE 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_3_DIE 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_4_DIE 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_5_DIE 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_6_DIE 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_7_DIE 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DIE_COUNT_8_DIE 0x7
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_PACKAGE_TYPE_MONOLITHIC_DRAM_DEVICE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_PACKAGE_TYPE_NON_MONOLITHIC_DRAM_DEVICE 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_UNTESTED_MAC 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_700_K 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_600_K 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_500_K 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_400_K 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_300_K 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_200_K 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_COUNT_UNLIMITED_MAC 0x7
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_WINDOW_8192xtREFI 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_WINDOW_4096xtREFI 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_MAXIMUM_ACTIVATE_WINDOW_2048xtREFI 0x2
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_POST_PACKAGE_REPAIR_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_SDRAM_POST_PACKAGE_REPAIR_SUPPORTED_ONE_ROW_PER_BANK_GROUP 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_1_2_NOT_OPERABLE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_1_2_OPERABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_1_2_NOT_ENDURANT 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_1_2_ENDURANT 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD1_NOT_OPERABLE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD1_OPERABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD1_NOT_ENDURANT 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD1_ENDURANT 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD2_NOT_OPERABLE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD2_OPERABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD2_NOT_ENDURANT 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_VDD_TBD2_ENDURANT 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DEVICE_WIDTH_4_BITS 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DEVICE_WIDTH_8_BITS 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DEVICE_WIDTH_16_BITS 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DEVICE_WIDTH_32_BITS 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_PACKAGE_RANKS_1 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_PACKAGE_RANKS_2 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_PACKAGE_RANKS_3 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_PACKAGE_RANKS_4 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_PRIMARY_BUS_WIDTH_8_BITS 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_PRIMARY_BUS_WIDTH_16_BITS 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_PRIMARY_BUS_WIDTH_32_BITS 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_PRIMARY_BUS_WIDTH_64_BITS 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_BUS_WIDTH_EXTENSION_0_BITS 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_BUS_WIDTH_EXTENSION_8_BITS 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_THERMAL_SENSOR_NOT_INCORPORATED_ONTO_THIS_ASSEMBLY 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_THERMAL_SENSOR_INCORPORATED_ONTO_THIS_ASSEMBLY 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_CAS_NOT_SUPPORTED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_CAS_SUPPORTED 0x1
|
||||||
|
|
||||||
|
/* For unbuffered memory modules & registered memory modules & load reduction memory modules */
|
||||||
|
|
||||||
|
/* in mm */
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_HEIGHT_LT_15 0x00
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_15_TO_16 0x01
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_16_TO_17 0x02
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_17_TO_18 0x03
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_18_TO_19 0x04
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_19_TO_20 0x05
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_20_TO_21 0x06
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_21_TO_22 0x07
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_22_TO_23 0x08
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_23_TO_24 0x09
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_24_TO_25 0x0A
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_25_TO_26 0x0B
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_26_TO_27 0x0C
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_27_TO_28 0x0D
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_28_TO_39 0x0E
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_29_TO_30 0x0F
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_30_TO_31 0x10
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_31_TO_32 0x11
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_32_TO_33 0x12
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_33_TO_34 0x13
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_34_TO_35 0x14
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_35_TO_36 0x15
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_36_TO_37 0x16
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_37_TO_38 0x17
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_38_TO_39 0x18
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_39_TO_40 0x19
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_40_TO_41 0x1A
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_41_TO_42 0x1B
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_42_TO_43 0x1C
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_43_TO_44 0x1D
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_44_TO_45 0x1E
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_NOMINAL_HEIGHT_MAX_45_GT_HEIGHT 0x1F
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_0_TO_3 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_4 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_5 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_6 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_7 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_8 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_9 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RAW_CARD_REVISIONS_10 0x7
|
||||||
|
|
||||||
|
/* in mm */
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_THICKNESS_LT_1 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_1_TO_2 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_2_TO_3 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_3_TO_4 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_4_TO_5 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_5_TO_6 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_6_TO_7 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_7_TO_8 0x7
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_8_TO_9 0x8
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_9_TO_10 0x9
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_10_TO_11 0xA
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_11_TO_12 0xB
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_12_TO_13 0xC
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_13_TO_14 0xD
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_14_TO_15 0xE
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_MODULE_MAXIMUM_THICKNESS_15_GT_THICKNESS 0xF
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_REFERENCE_RAW_CARD_EXTENSION_A_THROUGH_AL 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_REFERENCE_RAW_CARD_EXTENSION_AM_THROUGH_B 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_REFERENCE_RAW_CARD_REVISION_0 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_REFERENCE_RAW_CARD_REVISION_1 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_REFERENCE_RAW_CARD_REVISION_2 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_REFERENCE_RAW_CARD_REVISION_3 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_REFERENCE_RAW_CARD_NO_JEDEC_REFERENCE_RAW_CARD_DESIGN_USED 0x1F
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RANK_1_MAPPING_STANDARD 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_RANK_1_MAPPING_MIRRORED 0x1
|
||||||
|
|
||||||
|
/* For registered memory modules & load reduction memory modules */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_HEAT_SPREADER_SOLUTION_NOT_INCORPORATED_INTO_THIS_ASSEMBLY 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_HEAT_SPREADER_SOLUTION_INCORPORATED_INTO_THIS_ASSEMBLY 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRIVE_STRENGTH_LIGHT_DRIVE 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRIVE_STRENGTH_MODERATE_DRIVE 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRIVE_STRENGTH_STRONG_DRIVE 0x2
|
||||||
|
|
||||||
|
/* For registered memory modules */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_REGISTERS_USED_ON_RDIMM_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_REGISTERS_USED_ON_RDIMM_1_REGISTER 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_REGISTERS_USED_ON_RDIMM_2_REGISTERS 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_REGISTERS_USED_ON_RDIMM_4_REGISTERS 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_ROWS_OF_DRAMS_ON_RDIMM_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_ROWS_OF_DRAMS_ON_RDIMM_1_ROW 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_ROWS_OF_DRAMS_ON_RDIMM_2_ROWS 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_ROWS_OF_DRAMS_ON_RDIMM_4_ROWS 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_HEAT_SPREADER_THERMAL_CHARACTERISTICS_UNDEFINED 0x0
|
||||||
|
|
||||||
|
/* For load reduction memory modules */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_REGISTERS_USED_ON_LRDIMM_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_REGISTERS_USED_ON_LRDIMM_1_REGISTER 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_ROWS_OF_DRAMS_ON_LRDIMM_UNDEFINED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_ROWS_OF_DRAMS_ON_LRDIMM_1_ROW 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_NUMBER_OF_ROWS_OF_DRAMS_ON_LRDIMM_2_ROWS 0x2
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_DISABLED 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_RZQ4 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_RZQ2 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_RZQ6 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_RZQ 0x4
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_RZQ5 0x5
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_RZQ3 0x6
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_READ_TERMINATION_STRENGTH_RZQ7 0x7
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_DRIVE_STRENGTH_RZQ6 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_DRIVE_STRENGTH_RZQ7 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_DRIVE_STRENGTH_RZQ5 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_INTERFACE_MDQ_DRIVE_STRENGTH_RZQ4 0x5 /* not a typo, jumps to 5 */
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_DRIVE_STRENGTH_RZQ7 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_DRIVE_STRENGTH_RZQ5 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_ODT_STRENGTH_DYNAMIC_ODT_OFF 0x0
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_ODT_STRENGTH_RZQ2 0x1
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_ODT_STRENGTH_RZQ 0x2
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_ODT_STRENGTH_HI_IMPEDANCE 0x3
|
||||||
|
#define IPMI_FRU_DIMMSPD_DDR4_DRAM_ODT_STRENGTH_RZQ3 0x4
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_fru_dimm_spd_ddr_header;
|
||||||
|
extern fiid_template_t tmpl_fru_dimm_spd_ddr3_record;
|
||||||
|
extern fiid_template_t tmpl_fru_dimm_spd_ddr4_record;
|
||||||
|
extern fiid_template_t tmpl_fru_dimm_spd_ddr4_module_specific_unbuffered_memory_module;
|
||||||
|
extern fiid_template_t tmpl_fru_dimm_spd_ddr4_module_specific_registered_memory_module;
|
||||||
|
extern fiid_template_t tmpl_fru_dimm_spd_ddr4_module_specific_load_reduction_memory_module;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_DIMMSPD_RECORD_FORMAT_H */
|
|
@ -0,0 +1,159 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Copyright (C) 2007 The Regents of the University of California.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* UCRL-CODE-232183
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-fru, a tool used for retrieving
|
||||||
|
* motherboard field replaceable unit (FRU) information. For details,
|
||||||
|
* see http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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 Ipmi-fru. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_FRU_INFORMATION_RECORD_FORMAT_H
|
||||||
|
#define IPMI_FRU_INFORMATION_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* achu:
|
||||||
|
*
|
||||||
|
* Not in IPMI spec. In "Platform Management FRU Information Storage
|
||||||
|
* Definition" document.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_FRU_COMMON_HEADER_FORMAT_VERSION 0x01
|
||||||
|
#define IPMI_FRU_CHASSIS_INFO_AREA_FORMAT_VERSION 0x01
|
||||||
|
#define IPMI_FRU_BOARD_INFO_AREA_FORMAT_VERSION 0x01
|
||||||
|
#define IPMI_FRU_PRODUCT_INFO_AREA_FORMAT_VERSION 0x01
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_FORMAT_VERSION 0x02
|
||||||
|
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_POWER_SUPPLY_INFORMATION 0x00
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_DC_OUTPUT 0x01
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_DC_LOAD 0x02
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_MANAGEMENT_ACCESS_RECORD 0x03
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_BASE_COMPATIBILITY_RECORD 0x04
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_EXTENDED_COMPATIBILITY_RECORD 0x05
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_ASF_FIXED_SMBUS_DEVICE_RECORD 0x06
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_ASF_LEGACY_DEVICE_ALERTS 0x07
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_ASF_REMOTE_CONTROL 0x08
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_EXTENDED_DC_OUTPUT 0x09
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_EXTENDED_DC_LOAD 0x0A
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_NVM_EXPRESS_MIN 0x0B
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_NVM_EXPRESS_MAX 0x0F
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_OEM_MIN 0xC0
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_OEM_MAX 0xFF
|
||||||
|
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_VALID(__multirecord_area_type) \
|
||||||
|
(((__multirecord_area_type) >= IPMI_FRU_MULTIRECORD_AREA_TYPE_POWER_SUPPLY_INFORMATION \
|
||||||
|
&& (__multirecord_area_type) <= IPMI_FRU_MULTIRECORD_AREA_TYPE_EXTENDED_DC_LOAD) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_IS_NVM_EXPRESS(__multirecord_area_type) \
|
||||||
|
(((__multirecord_area_type) >= IPMI_FRU_MULTIRECORD_AREA_TYPE_NVM_EXPRESS_MIN \
|
||||||
|
&& (__multirecord_area_type) <= IPMI_FRU_MULTIRECORD_AREA_TYPE_NVM_EXPRESS_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_FRU_MULTIRECORD_AREA_TYPE_IS_OEM(__multirecord_area_type) \
|
||||||
|
(((__multirecord_area_type) >= IPMI_FRU_MULTIRECORD_AREA_TYPE_OEM_MIN \
|
||||||
|
&& (__multirecord_area_type) <= IPMI_FRU_MULTIRECORD_AREA_TYPE_OEM_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_FRU_MFG_DATE_TIME_UNSPECIFIED 0x000000
|
||||||
|
|
||||||
|
#define IPMI_FRU_ONE_PULSE_PER_ROTATION 0x0
|
||||||
|
#define IPMI_FRU_TWO_PULSES_PER_ROTATION 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_PEAK_CAPACITY_UNSPECIFIED 0xFFF
|
||||||
|
|
||||||
|
#define IPMI_FRU_VOLTAGE_12V 0x0
|
||||||
|
#define IPMI_FRU_VOLTAGE_MINUS12V 0x1
|
||||||
|
#define IPMI_FRU_VOLTAGE_5V 0x2
|
||||||
|
#define IPMI_FRU_VOLTAGE_3_3V 0x3
|
||||||
|
|
||||||
|
#define IPMI_FRU_PREDICTIVE_FAIL_PIN_IS_PASS_FAIL 0x0
|
||||||
|
|
||||||
|
#define IPMI_FRU_CURRENT_UNITS_10MA 0x0
|
||||||
|
#define IPMI_FRU_CURRENT_UNITS_100MA 0x1
|
||||||
|
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_SYSTEM_MANAGEMENT_URL 0x01
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_SYSTEM_NAME 0x02
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_SYSTEM_PING_ADDRESS 0x03
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_COMPONENT_MANAGEMENT_URL 0x04
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_COMPONENT_NAME 0x05
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_COMPONENT_PING_ADDRESS 0x06
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_SYSTEM_UNIQUE_ID 0x07
|
||||||
|
|
||||||
|
#define IPMI_FRU_SUB_RECORD_TYPE_VALID(__sub_record_type) \
|
||||||
|
(((__sub_record_type) >= IPMI_FRU_SUB_RECORD_TYPE_SYSTEM_MANAGEMENT_URL \
|
||||||
|
&& (__sub_record_type) <= IPMI_FRU_SUB_RECORD_TYPE_SYSTEM_UNIQUE_ID) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_FRU_TYPE_LENGTH_TYPE_CODE_BINARY 0x00
|
||||||
|
#define IPMI_FRU_TYPE_LENGTH_TYPE_CODE_BCD 0x01
|
||||||
|
#define IPMI_FRU_TYPE_LENGTH_TYPE_CODE_SIXBIT_ASCII 0x02
|
||||||
|
#define IPMI_FRU_TYPE_LENGTH_TYPE_CODE_LANGUAGE_CODE 0x03
|
||||||
|
#define IPMI_FRU_TYPE_LENGTH_TYPE_CODE_MASK 0xC0
|
||||||
|
#define IPMI_FRU_TYPE_LENGTH_TYPE_CODE_SHIFT 0x06
|
||||||
|
#define IPMI_FRU_TYPE_LENGTH_NUMBER_OF_DATA_BYTES_MASK 0x3F
|
||||||
|
|
||||||
|
#define IPMI_FRU_BCD_DIGIT_MIN 0x0
|
||||||
|
#define IPMI_FRU_BCD_DIGIT_MAX 0x9
|
||||||
|
#define IPMI_FRU_BCD_SPACE 0xA
|
||||||
|
#define IPMI_FRU_BCD_DASH 0xB
|
||||||
|
#define IPMI_FRU_BCD_PERIOD 0xC
|
||||||
|
|
||||||
|
#define IPMI_FRU_SENTINEL_VALUE 0xC1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_fru_common_header;
|
||||||
|
extern fiid_template_t tmpl_fru_info_area_header;
|
||||||
|
extern fiid_template_t tmpl_fru_multirecord_area_header;
|
||||||
|
extern fiid_template_t tmpl_fru_power_supply_information;
|
||||||
|
extern fiid_template_t tmpl_fru_dc_output;
|
||||||
|
extern fiid_template_t tmpl_fru_dc_load;
|
||||||
|
extern fiid_template_t tmpl_fru_management_access_record;
|
||||||
|
extern fiid_template_t tmpl_fru_base_compatibility_record;
|
||||||
|
extern fiid_template_t tmpl_fru_extended_compatibility_record;
|
||||||
|
extern fiid_template_t tmpl_fru_extended_dc_output;
|
||||||
|
extern fiid_template_t tmpl_fru_extended_dc_load;
|
||||||
|
extern fiid_template_t tmpl_fru_oem_record;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_INFORMATION_RECORD_FORMAT_H */
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* 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_FRU_OEM_RECORD_FORMAT_H
|
||||||
|
#define IPMI_FRU_OEM_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-fru-oem-record-format.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-fru-wistron-oem-record-format.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_OEM_RECORD_FORMAT_H */
|
|
@ -0,0 +1,118 @@
|
||||||
|
/*
|
||||||
|
* 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_PLATFORM_EVENT_TRAP_RECORD_FORMAT_H
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* achu:
|
||||||
|
*
|
||||||
|
* Not in IPMI spec. In "Platform Event Trap Specification" document.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_MIN_VARIABLE_BINDINGS_LENGTH 47
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_MAX_VARIABLE_BINDINGS_LENGTH 110
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_SENSOR_TYPE_MASK 0x00FF0000
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_SENSOR_TYPE_SHIFT 16
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_EVENT_TYPE_MASK 0x0000FF00
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_EVENT_TYPE_SHIFT 8
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_EVENT_DIRECTION_MASK 0x00000080
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_EVENT_DIRECTION_SHIFT 7
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_EVENT_OFFSET_MASK 0x0000000F
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_EVENT_OFFSET_SHIFT 0
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_SPECIFIC_TRAP_EVENT_OFFSET_UNSPECIFIED 0x0F
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_GUID_INDEX_START 0
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_GUID_INDEX_END 15
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SEQUENCE_NUMBER_INDEX_START 16
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SEQUENCE_NUMBER_INDEX_END 17
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_COOKIE_INDEX_START IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SEQUENCE_NUMBER_INDEX_START
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_COOKIE_INDEX_END IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SEQUENCE_NUMBER_INDEX_END
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_LOCAL_TIMESTAMP_INDEX_START 18
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_LOCAL_TIMESTAMP_INDEX_END 21
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_LOCAL_TIMESTAMP_UNSPECIFIED 0x0000
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_UTC_OFFSET_INDEX_START 22
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_UTC_OFFSET_INDEX_END 23
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_UTC_OFFSET_UNSPECIFIED 0xFFFF
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_TRAP_SOURCE_TYPE_INDEX 24
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_TRAP_SOURCE_UNSPECIFIED 0xFF
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SOURCE_TYPE_INDEX 25
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SOURCE_UNSPECIFIED 0xFF
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_INDEX 26
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_MONITOR 0x01
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_INFORMATION 0x02
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_OK 0x04
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_NON_CRITICAL_CONDITION 0x08
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_CRITICAL_CONDITION 0x10
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_SEVERITY_NON_RECOVERABLE_CONDITION 0x20
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SENSOR_DEVICE_INDEX 27
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SENSOR_DEVICE_UNSPECIFIED 0xFF
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SENSOR_NUMBER_INDEX 28
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SENSOR_NUMBER_UNSPECIFIED_A 0x00
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SENSOR_NUMBER_UNSPECIFIED_B 0xFF
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_ENTITY_INDEX 29
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_ENTITY_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_ENTITY_INSTANCE_INDEX 30
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_ENTITY_INSTANCE_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_DATA_INDEX_START 31
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_DATA_INDEX_END 38
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_EVENT_DATA_LENGTH 8
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_LANGUAGE_CODE_INDEX 39
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_MANUFACTURER_ID_INDEX_START 40
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_MANUFACTURER_ID_INDEX_END 43
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SYSTEM_ID_INDEX_START 44
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_SYSTEM_ID_INDEX_END 45
|
||||||
|
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_OEM_CUSTOM_FIELDS_INDEX_START 46
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_OEM_CUSTOM_FIELDS_INDEX_END 109
|
||||||
|
#define IPMI_PLATFORM_EVENT_TRAP_VARIABLE_BINDINGS_OEM_CUSTOM_FIELDS_LENGTH 64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_PLATFORM_EVENT_TRAP_RECORD_FORMAT_H */
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_OEM_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SDR_OEM_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-sdr-oem-record-format.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sdr-oem-intel-node-manager-record-format.h>
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sdr-oem-intel-record-format.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_OEM_RECORD_FORMAT_H */
|
|
@ -0,0 +1,231 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SDR_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_SDR_FORMAT_FULL_SENSOR_RECORD 0x01
|
||||||
|
#define IPMI_SDR_FORMAT_COMPACT_SENSOR_RECORD 0x02
|
||||||
|
#define IPMI_SDR_FORMAT_EVENT_ONLY_RECORD 0x03
|
||||||
|
#define IPMI_SDR_FORMAT_ENTITY_ASSOCIATION_RECORD 0x08
|
||||||
|
#define IPMI_SDR_FORMAT_DEVICE_RELATIVE_ENTITY_ASSOCIATION_RECORD 0x09
|
||||||
|
#define IPMI_SDR_FORMAT_GENERIC_DEVICE_LOCATOR_RECORD 0x10
|
||||||
|
#define IPMI_SDR_FORMAT_FRU_DEVICE_LOCATOR_RECORD 0x11
|
||||||
|
#define IPMI_SDR_FORMAT_MANAGEMENT_CONTROLLER_DEVICE_LOCATOR_RECORD 0x12
|
||||||
|
#define IPMI_SDR_FORMAT_MANAGEMENT_CONTROLLER_CONFIRMATION_RECORD 0x13
|
||||||
|
#define IPMI_SDR_FORMAT_BMC_MESSAGE_CHANNEL_INFO_RECORD 0x14
|
||||||
|
#define IPMI_SDR_FORMAT_OEM_RECORD 0xC0
|
||||||
|
|
||||||
|
#define IPMI_SDR_FORMAT_TYPE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SDR_FORMAT_FULL_SENSOR_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_COMPACT_SENSOR_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_EVENT_ONLY_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_ENTITY_ASSOCIATION_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_DEVICE_RELATIVE_ENTITY_ASSOCIATION_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_GENERIC_DEVICE_LOCATOR_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_FRU_DEVICE_LOCATOR_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_MANAGEMENT_CONTROLLER_DEVICE_LOCATOR_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_MANAGEMENT_CONTROLLER_CONFIRMATION_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_BMC_MESSAGE_CHANNEL_INFO_RECORD \
|
||||||
|
|| (__val) == IPMI_SDR_FORMAT_OEM_RECORD) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SDR_SENSOR_OWNER_ID_TYPE_IPMB_SLAVE_ADDRESS 0x0
|
||||||
|
#define IPMI_SDR_SENSOR_OWNER_ID_TYPE_SYSTEM_SOFTWARE_ID 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_UNSIGNED 0x0
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_1S_COMPLEMENT 0x1
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_2S_COMPLEMENT 0x2
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_NOT_ANALOG 0x3
|
||||||
|
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_UNSIGNED_STRING "unsigned"
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_1S_COMPLEMENT_STRING "1's complement (signed)"
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_2S_COMPLEMENT_STRING "2's complement (signed)"
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_NOT_ANALOG_STRING "Does not return analog (numeric) reading"
|
||||||
|
|
||||||
|
#define IPMI_SDR_ANALOG_DATA_FORMAT_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SDR_ANALOG_DATA_FORMAT_UNSIGNED \
|
||||||
|
|| (__val) == IPMI_SDR_ANALOG_DATA_FORMAT_1S_COMPLEMENT \
|
||||||
|
|| (__val) == IPMI_SDR_ANALOG_DATA_FORMAT_2S_COMPLEMENT) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SDR_MODIFIER_UNIT_NONE 0
|
||||||
|
#define IPMI_SDR_MODIFIER_UNIT_DIVIDE 1
|
||||||
|
#define IPMI_SDR_MODIFIER_UNIT_MULTIPLY 2
|
||||||
|
|
||||||
|
#define IPMI_SDR_MODIFIER_UNIT_VALID(__sensor_modifier_unit) \
|
||||||
|
(((__sensor_modifier_unit) == IPMI_SDR_MODIFIER_UNIT_NONE \
|
||||||
|
|| (__sensor_modifier_unit) == IPMI_SDR_MODIFIER_UNIT_DIVIDE \
|
||||||
|
|| (__sensor_modifier_unit) == IPMI_SDR_MODIFIER_UNIT_MULTIPLY) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LINEAR 0
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LN 1
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LOG10 2
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LOG2 3
|
||||||
|
#define IPMI_SDR_LINEARIZATION_E 4
|
||||||
|
#define IPMI_SDR_LINEARIZATION_EXP10 5
|
||||||
|
#define IPMI_SDR_LINEARIZATION_EXP2 6
|
||||||
|
#define IPMI_SDR_LINEARIZATION_INVERSE 7
|
||||||
|
#define IPMI_SDR_LINEARIZATION_SQR 8
|
||||||
|
#define IPMI_SDR_LINEARIZATION_CUBE 9
|
||||||
|
#define IPMI_SDR_LINEARIZATION_SQRT 10
|
||||||
|
#define IPMI_SDR_LINEARIZATION_CUBERT 11
|
||||||
|
#define IPMI_SDR_LINEARIZATION_NON_LINEAR 0x70
|
||||||
|
#define IPMI_SDR_LINEARIZATION_NON_LINEAR_OEM_MIN 0x71
|
||||||
|
#define IPMI_SDR_LINEARIZATION_NON_LINEAR_OEM_MAX 0x7F
|
||||||
|
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LINEAR_STRING "linear"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LN_STRING "ln"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LOG10_STRING "log10"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_LOG2_STRING "log2"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_E_STRING "e"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_EXP10_STRING "exp10"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_EXP2_STRING "exp2"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_INVERSE_STRING "1/x"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_SQR_STRING "sqr(x)"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_CUBE_STRING "cube(x)"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_SQRT_STRING "sqrt(x)"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_CUBERT_STRING "cube^-1(x)"
|
||||||
|
#define IPMI_SDR_LINEARIZATION_NON_LINEAR_STRING "non-linear"
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_SDR_LINEARIZATION_IS_LINEAR(__sensor_linearization) \
|
||||||
|
((((__sensor_linearization) + 1) >= IPMI_SDR_LINEARIZATION_LN \
|
||||||
|
&& (__sensor_linearization) <= IPMI_SDR_LINEARIZATION_CUBERT) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SDR_LINEARIZATION_IS_NON_LINEAR(__sensor_linearization) \
|
||||||
|
(((__sensor_linearization) >= IPMI_SDR_LINEARIZATION_NON_LINEAR \
|
||||||
|
&& (__sensor_linearization) <=IPMI_SDR_LINEARIZATION_NON_LINEAR_OEM_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SDR_PERCENTAGE_NO 0
|
||||||
|
#define IPMI_SDR_PERCENTAGE_YES 1
|
||||||
|
|
||||||
|
#define IPMI_SDR_PERCENTAGE_VALID(__val) \
|
||||||
|
(((__val) == IPMI_SDR_PERCENTAGE_NO \
|
||||||
|
|| (__val) == IPMI_SDR_PERCENTAGE_YES) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SDR_PHYSICAL_ENTITY 0x0
|
||||||
|
#define IPMI_SDR_LOGICAL_CONTAINER_ENTITY 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_SENSOR_SCANNING_ENABLED 0x1
|
||||||
|
#define IPMI_SDR_SENSOR_SCANNING_DISABLED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SDR_EVENT_GENERATION_ENABLED 0x1
|
||||||
|
#define IPMI_SDR_EVENT_GENERATION_DISABLED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SDR_SENSOR_AUTO_REARM_SUPPORT_MANUAL 0x0
|
||||||
|
#define IPMI_SDR_SENSOR_AUTO_REARM_SUPPORT_AUTO 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_PER_EVENT_ENABLE_DISABLE_SUPPORT 0x0
|
||||||
|
#define IPMI_SDR_ENTIRE_SENSOR_ONLY 0x1
|
||||||
|
#define IPMI_SDR_GLOBAL_DISABLE_ONLY 0x2
|
||||||
|
#define IPMI_SDR_NO_EVENTS_FROM_SENSOR 0x3
|
||||||
|
|
||||||
|
#define IPMI_SDR_NO_THRESHOLDS_SUPPORT 0x0
|
||||||
|
#define IPMI_SDR_READABLE_THRESHOLDS_SUPPORT 0x1
|
||||||
|
#define IPMI_SDR_READABLE_SETTABLE_THRESHOLDS_SUPPORT 0x2
|
||||||
|
#define IPMI_SDR_FIXED_UNREADABLE_THRESHOLDS_SUPPORT 0x3
|
||||||
|
|
||||||
|
#define IPMI_SDR_NO_HYSTERESIS_SUPPORT 0x0
|
||||||
|
#define IPMI_SDR_READABLE_HYSTERESIS_SUPPORT 0x1
|
||||||
|
#define IPMI_SDR_READABLE_SETTABLE_HYSTERESIS_SUPPORT 0x2
|
||||||
|
#define IPMI_SDR_FIXED_UNREADABLE_HYSTERESIS_SUPPORT 0x3
|
||||||
|
|
||||||
|
#define IPMI_SDR_ANALOG_CHARACTERISTICS_NOMINAL_READING_SPECIFIED 0x1
|
||||||
|
#define IPMI_SDR_ANALOG_CHARACTERISTICS_NOMINAL_READING_UNSPECIFIED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SDR_ANALOG_CHARACTERISTICS_NORMAL_MAX_SPECIFIED 0x1
|
||||||
|
#define IPMI_SDR_ANALOG_CHARACTERISTICS_NORMAL_MAX_UNSPECIFIED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SDR_ANALOG_CHARACTERISTICS_NORMAL_MIN_SPECIFIED 0x1
|
||||||
|
#define IPMI_SDR_ANALOG_CHARACTERISTICS_NORMAL_MIN_UNSPECIFIED 0x0
|
||||||
|
|
||||||
|
#define IPMI_SDR_ID_STRING_INSTANCE_MODIFIER_TYPE_NUMERIC 0x0
|
||||||
|
#define IPMI_SDR_ID_STRING_INSTANCE_MODIFIER_TYPE_ALPHA 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_SENSOR_DIRECTION_UNSPECIFIED 0x0
|
||||||
|
#define IPMI_SDR_SENSOR_DIRECTION_INPUT 0x1
|
||||||
|
#define IPMI_SDR_SENSOR_DIRECTION_OUTPUT 0x2
|
||||||
|
#define IPMI_SDR_SENSOR_DIRECTION_RESERVED 0x3
|
||||||
|
|
||||||
|
#define IPMI_SDR_ENTITY_INSTANCE_SAME_FOR_ALL_SHARED_RECORDS 0x0
|
||||||
|
#define IPMI_SDR_ENTITY_INSTANCE_INCREMENTS_FOR_EACH_SHARED_RECORD 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_RECORD_NO_LINKED_ENTITY_ASSOCIATION_RECORDS_EXIST 0x0
|
||||||
|
#define IPMI_SDR_RECORD_LINKED_ENTITY_ASSOCIATION_RECORDS_EXIST 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_CONTAINED_ENTITY_SPECIFIED_AS_LIST 0x0
|
||||||
|
#define IPMI_SDR_CONTAINED_ENTITY_SPECIFIED_AS_RANGE 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_DEVICE_IS_NOT_A_LOGICAL_FRU_DEVICE 0x0
|
||||||
|
#define IPMI_SDR_DEVICE_IS_LOGICAL_FRU_DEVICE 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_EVENT_MESSAGE_GENERATION_FROM_CONTROLLER_ENABLE 0x0
|
||||||
|
#define IPMI_SDR_EVENT_MESSAGE_GENERATION_FROM_CONTROLLER_DISABLE 0x1
|
||||||
|
#define IPMI_SDR_EVENT_MESSAGE_GENERATION_DO_NOT_INITIALIZE_CONTROLLER 0x2
|
||||||
|
#define IPMI_SDR_EVENT_MESSAGE_GENERATION_RESERVED 0x3
|
||||||
|
|
||||||
|
#define IPMI_SDR_LOG_INITIALIZATION_AGENT_ERRORS_ENABLE 0x0
|
||||||
|
#define IPMI_SDR_LOG_INITIALIZATION_AGENT_ERRORS_DISABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_CONTROLLER_LOGS_INITIALIZATION_AGENT_ERRORS_ENABLE 0x0
|
||||||
|
#define IPMI_SDR_CONTROLLER_LOGS_INITIALIZATION_AGENT_ERRORS_DISABLE 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_CONTROLLER_DYNAMIC 0x0
|
||||||
|
#define IPMI_SDR_CONTROLLER_STATIC 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_ACPI_DEVICE_POWER_STATE_NOTIFICATION_REQUIRED 0x0
|
||||||
|
#define IPMI_SDR_NO_ACPI_DEVICE_POWER_STATE_NOTIFICATION_REQUIRED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_ACPI_SYSTEM_POWER_STATE_NOTIFICATION_REQUIRED 0x0
|
||||||
|
#define IPMI_SDR_NO_ACPI_SYSTEM_POWER_STATE_NOTIFICATION_REQUIRED 0x1
|
||||||
|
|
||||||
|
#define IPMI_SDR_MAX_ID_STRING_LENGTH 16
|
||||||
|
#define IPMI_SDR_MAX_DEVICE_ID_STRING_LENGTH 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_sdr_record_header;
|
||||||
|
extern fiid_template_t tmpl_sdr_full_sensor_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_full_sensor_record_non_threshold_based_sensors;
|
||||||
|
extern fiid_template_t tmpl_sdr_full_sensor_record_threshold_based_sensors;
|
||||||
|
extern fiid_template_t tmpl_sdr_compact_sensor_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_compact_sensor_record_non_threshold_based_sensors;
|
||||||
|
extern fiid_template_t tmpl_sdr_compact_sensor_record_threshold_based_sensors;
|
||||||
|
extern fiid_template_t tmpl_sdr_event_only_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_entity_association_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_device_relative_entity_association_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_generic_device_locator_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_fru_device_locator_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_fru_device_locator_record_non_intelligent;
|
||||||
|
extern fiid_template_t tmpl_sdr_management_controller_device_locator_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_management_controller_confirmation_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_bmc_message_channel_info_record;
|
||||||
|
extern fiid_template_t tmpl_sdr_oem_record;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_RECORD_FORMAT_H */
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* 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_SEL_OEM_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SEL_OEM_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-sel-oem-record-format.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sel-oem-intel-record-format.h>
|
||||||
|
#include <freeipmi/record-format/oem/ipmi-sel-oem-linux-kernel-record-format.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SEL_OEM_RECORD_FORMAT_H */
|
|
@ -0,0 +1,96 @@
|
||||||
|
/*
|
||||||
|
* 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_SEL_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SEL_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
#define IPMI_V1_0_EVENT_MESSAGE_FORMAT 0x03
|
||||||
|
#define IPMI_V1_5_EVENT_MESSAGE_FORMAT 0x04
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_SYSTEM_EVENT_RECORD 0x02
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_TIMESTAMPED_OEM_MIN 0xC0
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_TIMESTAMPED_OEM_MAX 0xDF
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_NON_TIMESTAMPED_OEM_MIN 0xE0
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_NON_TIMESTAMPED_OEM_MAX 0xFF
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_IS_EVENT(__record_type) \
|
||||||
|
(((__record_type) == IPMI_SEL_RECORD_TYPE_SYSTEM_EVENT_RECORD) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_IS_TIMESTAMPED_OEM(__record_type) \
|
||||||
|
(((__record_type) >= IPMI_SEL_RECORD_TYPE_TIMESTAMPED_OEM_MIN \
|
||||||
|
&& (__record_type) <= IPMI_SEL_RECORD_TYPE_TIMESTAMPED_OEM_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, subtract -1 in comparison */
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_IS_NON_TIMESTAMPED_OEM(__record_type) \
|
||||||
|
(((__record_type) >= IPMI_SEL_RECORD_TYPE_NON_TIMESTAMPED_OEM_MIN \
|
||||||
|
&& (((__record_type) - 1) <= (IPMI_SEL_RECORD_TYPE_NON_TIMESTAMPED_OEM_MAX - 1))) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_VALID(__record_type) \
|
||||||
|
((IPMI_SEL_RECORD_TYPE_IS_EVENT((__record_type)) \
|
||||||
|
|| IPMI_SEL_RECORD_TYPE_IS_TIMESTAMPED_OEM((__record_type)) \
|
||||||
|
|| IPMI_SEL_RECORD_TYPE_IS_NON_TIMESTAMPED_OEM((__record_type))) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_ASSERTION_EVENT 0x0
|
||||||
|
#define IPMI_SEL_RECORD_DEASSERTION_EVENT 0x1
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_EVENT_DIRECTION_VALID(__event_direction) \
|
||||||
|
(((__event_direction) == IPMI_SEL_RECORD_ASSERTION_EVENT \
|
||||||
|
|| (__event_direction) == IPMI_SEL_RECORD_DEASSERTION_EVENT) ? 1 : 0)
|
||||||
|
|
||||||
|
/* Refer to Table 29-6 */
|
||||||
|
#define IPMI_SEL_EVENT_DATA_UNSPECIFIED_BYTE 0x0
|
||||||
|
#define IPMI_SEL_EVENT_DATA_TRIGGER_READING 0x1
|
||||||
|
#define IPMI_SEL_EVENT_DATA_TRIGGER_THRESHOLD_VALUE 0x1
|
||||||
|
#define IPMI_SEL_EVENT_DATA_PREVIOUS_STATE_OR_SEVERITY 0x1
|
||||||
|
#define IPMI_SEL_EVENT_DATA_OEM_CODE 0x2
|
||||||
|
#define IPMI_SEL_EVENT_DATA_SENSOR_SPECIFIC_EVENT_EXTENSION_CODE 0x3
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_UNSPECIFIED_EVENT 0xFF
|
||||||
|
#define IPMI_SEL_RECORD_UNSPECIFIED_OFFSET 0x0F
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_MAX_RECORD_LENGTH 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_sel_record_header;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_sel_system_event_record;
|
||||||
|
extern fiid_template_t tmpl_sel_system_event_record_event_fields;
|
||||||
|
extern fiid_template_t tmpl_sel_system_event_record_discrete_previous_state_severity;
|
||||||
|
extern fiid_template_t tmpl_sel_timestamped_oem_record;
|
||||||
|
extern fiid_template_t tmpl_sel_non_timestamped_oem_record;
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_threshold_event_data;
|
||||||
|
extern fiid_template_t tmpl_discrete_event_data;
|
||||||
|
extern fiid_template_t tmpl_oem_event_data;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SEL_RECORD_FORMAT_H */
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* 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_FRU_OEM_WISTRON_RECORD_FORMAT_H
|
||||||
|
#define IPMI_FRU_OEM_WISTRON_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Wistron / Dell Poweredge C6220
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* achu: not official names, named based on use context */
|
||||||
|
#define IPMI_FRU_OEM_WISTRON_PROPRIETARY_STRING 0xC0
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_OEM_WISTRON_RECORD_FORMAT_H */
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_OEM_INTEL_NODE_MANAGER_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SDR_OEM_INTEL_NODE_MANAGER_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel Node Manager
|
||||||
|
*
|
||||||
|
* For Intel Chips, not just Intel Motherboards. Confirmed for:
|
||||||
|
*
|
||||||
|
* Intel S5500WB/Penguin Computing Relion 700
|
||||||
|
* Intel S2600JF/Appro 512X
|
||||||
|
* Intel S2600KP
|
||||||
|
* Intel S2600WT2
|
||||||
|
* Intel S2600WTT
|
||||||
|
* Inventec 5441/Dell Xanadu II
|
||||||
|
* Inventec 5442/Dell Xanadu III
|
||||||
|
* Quanta S99Q/Dell FS12-TY
|
||||||
|
* Quanta QSSC-S4R/Appro GB812X-CN
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_NODE_MANAGER_RECORD_SUBTYPE_NM_DISCOVERY 0x0D
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_NODE_MANAGER_DISCOVERY_VERSION 0x01
|
||||||
|
|
||||||
|
extern fiid_template_t tmpl_sdr_oem_intel_node_manager_record;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_OEM_INTEL_NODE_MANAGER_RECORD_FORMAT_H */
|
|
@ -0,0 +1,121 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_OEM_INTEL_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SDR_OEM_INTEL_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see freeipmi/templates/ for template definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Quanta QSSC-S4R/Appro GB812X-CN
|
||||||
|
* (Quanta motherboard contains Intel manufacturer ID)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_OEM_DATA_LENGTH 11
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_SUBTYPE_INDEX 0
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_SUBTYPE 0x0B
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_MEMORY_THROTTLING_MODE_INDEX 1
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_MEMORY_THROTTLING_MODE_BITMASK 0x03
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_MEMORY_THROTTLING_MODE_SHIFT 0
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_MEMORY_THROTTLING_MODE_NONE_SUPPORTED 0
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_MEMORY_THROTTLING_MODE_OPEN_LOOP_THROUGHPUT_THROTTLING 1
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_MEMORY_THROTTLING_MODE_CLOSE_LOOP_THERMAL_THROTTLING 2
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE_INDEX 2
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE0_BITMASK 0x01
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE0_SHIFT 0
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE1_BITMASK 0x02
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE1_SHIFT 1
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE2_BITMASK 0x04
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE2_SHIFT 2
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE3_BITMASK 0x08
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE3_SHIFT 3
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE4_BITMASK 0x10
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE4_SHIFT 4
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE5_BITMASK 0x20
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE5_SHIFT 5
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE6_BITMASK 0x40
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE6_SHIFT 6
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE7_BITMASK 0x80
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE7_SHIFT 7
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE_VALID 1
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_FAN_PROFILE_INVALID 0
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_TEMPINLET_INDEX 3
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_TEMPRISE_INDEX 4
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_AIRFLOW_INDEX_START 5
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_AIRFLOW_INDEX_END 6
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_DIMMPITCH_INDEX_START 7
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_DIMMPITCH_INDEX_END 8
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THROTTLE_MODE_INDEX 9
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THROTTLE_MODE_BITMASK 0x03
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THROTTLE_MODE_SHIFT 0
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THROTTLE_MODE_DISABLED 0
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THROTTLE_MODE_VTS_ONLY 1
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THROTTLE_MODE_SOFTWARE_MODE 2
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THROTTLE_MODE_EXTTS_CLTT 3
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THERMAL_REGISTER_LOCK_INDEX 10
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THERMAL_REGISTER_LOCK_BITMASK 0x01
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_THERMAL_REGISTER_LOCK_SHIFT 0
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_HYSTERESIS_INDEX 10
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_HYSTERESIS_BITMASK 0x06
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_HYSTERESIS_SHIFT 1
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_HYSTERESIS_DISABLE 0
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_HYSTERESIS_1_5C 1
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_HYSTERESIS_3C 2
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_HYSTERESIS_6C 3
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_CONTROL_EVENT_MODE_INDEX 10
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_CONTROL_EVENT_MODE_BITMASK 0x04
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_CONTROL_EVENT_MODE_SHIFT 3
|
||||||
|
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_CONTROL_EVENT_MODE_ASSERT_NOT_ONLY_CRITICAL 0
|
||||||
|
#define IPMI_SDR_OEM_INTEL_QUANTA_QSSC_S4R_THERMAL_PROFILE_DATA_RECORD_CONTROL_EVENT_MODE_ASSERT_ONLY_CRITICAL 1
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_OEM_INTEL_RECORD_FORMAT_H */
|
|
@ -0,0 +1,86 @@
|
||||||
|
/*
|
||||||
|
* 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_SEL_OEM_INTEL_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SEL_OEM_INTEL_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel Windmill
|
||||||
|
* (Quanta Winterfell)
|
||||||
|
* (Wiwynn Windmill)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_ID_INDEX_LSB_INDEX 10
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_ID_INDEX_MSB_INDEX 11
|
||||||
|
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_INDEX_LSB_INDEX 12
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_INDEX_MSB_INDEX 13
|
||||||
|
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_DEVICE_0_IN_DMI_MODE 0x3C00
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_DMI_PORT_IN_PCIE_MODE 0x3C01
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_1A 0x3C02
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_1B 0x3C03
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_2A 0x3C04
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_2B 0x3C05
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_2C 0x3C06
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_2D 0x3C07
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_3A_IN_PCIE_MODE 0x3C08
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_3B 0x3C09
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_3C 0x3C0A
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_PORT_3D 0x3C0B
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_DEVICE_IDENTIFICATION_NUMBER_IIO_NTB_SECONDARY_ENDPOINT 0x3C0F
|
||||||
|
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_INDEX_LSB_INDEX 14
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_INDEX_MSB_INDEX 15
|
||||||
|
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVER_ERROR 0x70
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_BAD_TLP 0x71
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_BAD_DLLP 0x72
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_REPLAY_TIMEOUT 0x73
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_REPLAY_NUMBER_ROLLOVER 0x74
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_ADVISORY_NON_FATAL_ERROR 0x78
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_ERR_COR_MESSAGE_FROM_DOWNSTREAM_DEVICE 0x75
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_PCI_EXPRESS_LINK_BANDWIDTH_CHANGED 0x76
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_UNSUPPORTED_REQUEST_COMPLETION_STATUS_FROM_DOWNSTREAM_DEVICE 0x80
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_SENT_A_PCI_EXPRESS_UNSUPPORTED_REQUEST_RESPOND_ON_INBOUND_REQUEST 0x81
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_COMPLETER_ABORT_COMPLETION_STATUS_FROM_DOWNSTREAM_DEVICE 0x82
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_SENT_A_PCI_EXPRESS_COMPLETER_ABORT_CONDITION_ON_INBOUND_REQUEST 0x83
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_COMPLETION_TIMEOUT_ON_NP_TRANSACTION_OUTSTANDING_ON_PCI_EXPRESS_DMI 0x84
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_PCI_EXPRESS_POISONED_TLP 0x85
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_PCI_EXPRESS_UNEXPECTED_COMPLETION 0x86
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_PCI_EXPRESS_FLOW_CONTROL_PROTOCOL_ERROR 0x87
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_ERR_NONFATAL_MESSAGE_FROM_DOWNSTREAM_DEVICE 0x88
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_A_REQUEST_FROM_A_DOWNSTREAM_COMPONENT_THAT_IS_UNSUPPORTED 0x89
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_A_REQUEST_FROM_A_DOWNSTREAM_COMPONENT_THAT_IS_TO_BE_COMPLETER_ABORTED 0x8A
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_ACS_VIOLATION 0x8B
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_PCI_EXPRESS_MALFORMED_TLP 0x90
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_PCI_EXPRESS_DATA_LINK_PROTOCOL_ERROR 0x91
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_PCI_EXPRESS_RECEIVER_OVERFLOW 0x92
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_SURPRISE_DOWN 0x93
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_RECEIVED_ERR_FATAL_MESSAGE_FROM_DOWNSTREAM_DEVICE 0x94
|
||||||
|
#define IPMI_SEL_OEM_INTEL_WINDMILL_ERROR_CODE_OUTBOUND_SWITCH_HEADER_QUEUE_PARITY_ERROR 0x97
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SEL_OEM_INTEL_RECORD_FORMAT_H */
|
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* 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_SEL_OEM_LINUX_KERNEL_RECORD_FORMAT_H
|
||||||
|
#define IPMI_SEL_OEM_LINUX_KERNEL_RECORD_FORMAT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_NON_TIMESTAMPED_OEM_LINUX_KERNEL_PANIC 0xF0
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SEL_OEM_LINUX_KERNEL_RECORD_FORMAT_H */
|
34
source/freeipmi/usr/include/freeipmi/sdr/ipmi-sdr-oem.h
Normal file
34
source/freeipmi/usr/include/freeipmi/sdr/ipmi-sdr-oem.h
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_OEM_H
|
||||||
|
#define IPMI_SDR_OEM_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-sdr-oem.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/sdr/oem/ipmi-sdr-oem-intel-node-manager.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_OEM_H */
|
646
source/freeipmi/usr/include/freeipmi/sdr/ipmi-sdr.h
Normal file
646
source/freeipmi/usr/include/freeipmi/sdr/ipmi-sdr.h
Normal file
|
@ -0,0 +1,646 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Copyright (C) 2006-2007 The Regents of the University of California.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* UCRL-CODE-222073
|
||||||
|
*
|
||||||
|
* This file is part of Ipmimonitoring, an IPMI sensor monitoring
|
||||||
|
* library. For details, see http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmimonitoring 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.
|
||||||
|
*
|
||||||
|
* Ipmimonitoring 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 Ipmimonitoring. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_SDR_H
|
||||||
|
#define IPMI_SDR_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
|
||||||
|
#define IPMI_SDR_ERR_SUCCESS 0
|
||||||
|
#define IPMI_SDR_ERR_CONTEXT_NULL 1
|
||||||
|
#define IPMI_SDR_ERR_CONTEXT_INVALID 2
|
||||||
|
#define IPMI_SDR_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_SDR_ERR_OUT_OF_MEMORY 4
|
||||||
|
#define IPMI_SDR_ERR_FILENAME_INVALID 5
|
||||||
|
#define IPMI_SDR_ERR_FILESYSTEM 6
|
||||||
|
#define IPMI_SDR_ERR_PERMISSION 7
|
||||||
|
#define IPMI_SDR_ERR_CONTEXT_PERFORMING_OTHER_OPERATION 8
|
||||||
|
#define IPMI_SDR_ERR_CACHE_CREATE_CACHE_EXISTS 9
|
||||||
|
#define IPMI_SDR_ERR_CACHE_CREATE_DUPLICATE_RECORD_ID 10
|
||||||
|
#define IPMI_SDR_ERR_CACHE_CREATE_INVALID_RECORD_LENGTH 11
|
||||||
|
#define IPMI_SDR_ERR_CACHE_CREATE_INVALID_RECORD_COUNT 12
|
||||||
|
#define IPMI_SDR_ERR_CACHE_READ_ALREADY_INITIALIZED 13
|
||||||
|
#define IPMI_SDR_ERR_CACHE_READ_INITIALIZATION 14
|
||||||
|
#define IPMI_SDR_ERR_CACHE_READ_CACHE_DOES_NOT_EXIST 15
|
||||||
|
#define IPMI_SDR_ERR_CACHE_INVALID 16
|
||||||
|
#define IPMI_SDR_ERR_CACHE_OUT_OF_DATE 17
|
||||||
|
#define IPMI_SDR_ERR_STATS_NOT_COMPILED 18
|
||||||
|
#define IPMI_SDR_ERR_PARSE_INVALID_SDR_RECORD 19
|
||||||
|
#define IPMI_SDR_ERR_PARSE_INCOMPLETE_SDR_RECORD 20
|
||||||
|
#define IPMI_SDR_ERR_PARSE_CANNOT_PARSE_OR_CALCULATE 21
|
||||||
|
#define IPMI_SDR_ERR_ERROR_RETURNED_IN_CALLBACK 22
|
||||||
|
#define IPMI_SDR_ERR_NOT_FOUND 23
|
||||||
|
#define IPMI_SDR_ERR_IPMI_ERROR 24
|
||||||
|
#define IPMI_SDR_ERR_SYSTEM_ERROR 25
|
||||||
|
#define IPMI_SDR_ERR_OVERFLOW 26
|
||||||
|
#define IPMI_SDR_ERR_INTERNAL_ERROR 27
|
||||||
|
#define IPMI_SDR_ERR_ERRNUMRANGE 28
|
||||||
|
|
||||||
|
#define IPMI_SDR_FLAGS_DEFAULT 0x0000
|
||||||
|
#define IPMI_SDR_FLAGS_DEBUG_DUMP 0x0001
|
||||||
|
|
||||||
|
/* Flags just for cache creation
|
||||||
|
*
|
||||||
|
* OVERWRITE - overwrite any previously created cache.
|
||||||
|
*
|
||||||
|
* DUPLICATE_RECORD_ID - check for duplicate record IDs and return error if one is found.
|
||||||
|
*
|
||||||
|
* ASSUME_MAX_SDR_RECORD_COUNT - If motherboard does not implement SDR
|
||||||
|
* record reading properly, this workaround will allow code to not
|
||||||
|
* fail out.
|
||||||
|
*/
|
||||||
|
#define IPMI_SDR_CACHE_CREATE_FLAGS_DEFAULT 0x00
|
||||||
|
#define IPMI_SDR_CACHE_CREATE_FLAGS_OVERWRITE 0x01
|
||||||
|
#define IPMI_SDR_CACHE_CREATE_FLAGS_DUPLICATE_RECORD_ID 0x02
|
||||||
|
#define IPMI_SDR_CACHE_CREATE_FLAGS_ASSUME_MAX_SDR_RECORD_COUNT 0x04
|
||||||
|
|
||||||
|
#define IPMI_SDR_SENSOR_NAME_FLAGS_DEFAULT 0x00000000
|
||||||
|
#define IPMI_SDR_SENSOR_NAME_FLAGS_IGNORE_SHARED_SENSORS 0x00000001
|
||||||
|
/* applicable only to entity sensor names */
|
||||||
|
#define IPMI_SDR_SENSOR_NAME_FLAGS_ALWAYS_OUTPUT_INSTANCE_NUMBER 0x00000002
|
||||||
|
|
||||||
|
#define IPMI_SDR_MAX_RECORD_LENGTH 261 /* 256 + header */
|
||||||
|
|
||||||
|
#define IPMI_SDR_MAX_SENSOR_NAME_LENGTH 128
|
||||||
|
|
||||||
|
typedef struct ipmi_sdr_ctx *ipmi_sdr_ctx_t;
|
||||||
|
|
||||||
|
typedef void (*Ipmi_Sdr_Cache_Create_Callback)(uint8_t sdr_version,
|
||||||
|
uint16_t record_count,
|
||||||
|
uint32_t most_recent_addition_timestamp,
|
||||||
|
uint32_t most_recent_erase_timestamp,
|
||||||
|
uint16_t record_id,
|
||||||
|
void *data);
|
||||||
|
|
||||||
|
/* return != 0 to quit iteration, return val will be returned up
|
||||||
|
* through original caller. return < 0 will result in
|
||||||
|
* IPMI_SDR_ERR_ERROR_RETURNED_IN_CALLBACK to bet set.
|
||||||
|
*
|
||||||
|
* Users should be mindful of the API calls they make will in a
|
||||||
|
* callback. Calls to some functions, such as ipmi_sdr_cache_first()
|
||||||
|
* may change iteration behavior.
|
||||||
|
*/
|
||||||
|
typedef int (*Ipmi_Sdr_Cache_Iterate_Callback)(ipmi_sdr_ctx_t ctx,
|
||||||
|
uint8_t record_type,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
void *data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDR Cache Context and General functions
|
||||||
|
*/
|
||||||
|
ipmi_sdr_ctx_t ipmi_sdr_ctx_create (void);
|
||||||
|
void ipmi_sdr_ctx_destroy (ipmi_sdr_ctx_t ctx);
|
||||||
|
int ipmi_sdr_ctx_errnum (ipmi_sdr_ctx_t ctx);
|
||||||
|
char * ipmi_sdr_ctx_strerror (int errnum);
|
||||||
|
char * ipmi_sdr_ctx_errormsg (ipmi_sdr_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_sdr_ctx_get_flags (ipmi_sdr_ctx_t ctx, unsigned int *flags);
|
||||||
|
int ipmi_sdr_ctx_set_flags (ipmi_sdr_ctx_t ctx, unsigned int flags);
|
||||||
|
char *ipmi_sdr_ctx_get_debug_prefix (ipmi_sdr_ctx_t ctx);
|
||||||
|
int ipmi_sdr_ctx_set_debug_prefix (ipmi_sdr_ctx_t ctx, const char *debug_prefix);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDR Cache Creation Functions
|
||||||
|
*/
|
||||||
|
/* ipmi_sdr_cache_create
|
||||||
|
* - callback called between every record that is cached
|
||||||
|
*/
|
||||||
|
int ipmi_sdr_cache_create (ipmi_sdr_ctx_t ctx,
|
||||||
|
ipmi_ctx_t ipmi_ctx,
|
||||||
|
const char *filename,
|
||||||
|
int cache_create_flags,
|
||||||
|
Ipmi_Sdr_Cache_Create_Callback create_callback,
|
||||||
|
void *create_callback_data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDR Cache Reading Functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ipmi_sdr_cache_open
|
||||||
|
* - ipmi_ctx is optional
|
||||||
|
* - if ipmi_ctx is specified, timestamps/version of the SDR will be
|
||||||
|
* checked for out-of-dateness
|
||||||
|
*/
|
||||||
|
int ipmi_sdr_cache_open (ipmi_sdr_ctx_t ctx,
|
||||||
|
ipmi_ctx_t ipmi_ctx,
|
||||||
|
const char *filename);
|
||||||
|
|
||||||
|
int ipmi_sdr_cache_sdr_version (ipmi_sdr_ctx_t ctx, uint8_t *sdr_version);
|
||||||
|
int ipmi_sdr_cache_record_count (ipmi_sdr_ctx_t ctx, uint16_t *record_count);
|
||||||
|
int ipmi_sdr_cache_most_recent_addition_timestamp (ipmi_sdr_ctx_t ctx,
|
||||||
|
uint32_t *most_recent_addition_timestamp);
|
||||||
|
int ipmi_sdr_cache_most_recent_erase_timestamp (ipmi_sdr_ctx_t ctx,
|
||||||
|
uint32_t *most_recent_erase_timestamp);
|
||||||
|
|
||||||
|
int ipmi_sdr_cache_first (ipmi_sdr_ctx_t ctx);
|
||||||
|
int ipmi_sdr_cache_next (ipmi_sdr_ctx_t ctx);
|
||||||
|
int ipmi_sdr_cache_seek (ipmi_sdr_ctx_t ctx, unsigned int index);
|
||||||
|
int ipmi_sdr_cache_search_record_id (ipmi_sdr_ctx_t ctx, uint16_t record_id);
|
||||||
|
/* sensor owner id is 8bit field - 7 bit slave or system software id + 1 bit indicating type */
|
||||||
|
int ipmi_sdr_cache_search_sensor (ipmi_sdr_ctx_t ctx, uint8_t sensor_number, uint8_t sensor_owner_id);
|
||||||
|
|
||||||
|
/* return length of data read into buffer on success, -1 on error */
|
||||||
|
int ipmi_sdr_cache_record_read (ipmi_sdr_ctx_t ctx,
|
||||||
|
void *buf,
|
||||||
|
unsigned int buflen);
|
||||||
|
|
||||||
|
/* ipmi_sdr_cache_iterate
|
||||||
|
* - iterate through all SDR records calling callback for each one.
|
||||||
|
* - if callback returns < 0, that will break iteration and return
|
||||||
|
* value is returned here.
|
||||||
|
*/
|
||||||
|
int ipmi_sdr_cache_iterate (ipmi_sdr_ctx_t ctx,
|
||||||
|
Ipmi_Sdr_Cache_Iterate_Callback iterate_callback,
|
||||||
|
void *iterate_callback_data);
|
||||||
|
|
||||||
|
int ipmi_sdr_cache_close (ipmi_sdr_ctx_t ctx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDR stats functions
|
||||||
|
*
|
||||||
|
* After opening an SDR cache (i.e. ipmi_sdr_cache_open() has been
|
||||||
|
* called), loop through the cache and compile data on the cache for
|
||||||
|
* a variety of utility functions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_sdr_stats_compile (ipmi_sdr_ctx_t ctx);
|
||||||
|
|
||||||
|
/* returns the number of unique entity instances for an entity id found
|
||||||
|
* in the SDR
|
||||||
|
*/
|
||||||
|
int ipmi_sdr_stats_entity_instance_unique (ipmi_sdr_ctx_t ctx, uint8_t entity_id);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDR Record Parsing Functions
|
||||||
|
*
|
||||||
|
* For all parsing functions, if currently reading the SDR cache
|
||||||
|
* (i.e. ipmi_sdr_cache_open() has been called), if sdr_record is NULL
|
||||||
|
* and sdr_record_len is 0, the current sdr record in the iterator
|
||||||
|
* will be used in parsing.
|
||||||
|
*
|
||||||
|
* See ipmi-sdr-oem.h for parsing OEM records.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* For all SDR records */
|
||||||
|
int ipmi_sdr_parse_record_id_and_type (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint16_t *record_id,
|
||||||
|
uint8_t *record_type);
|
||||||
|
|
||||||
|
/* For Full, Compact, Event SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_owner_id (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *sensor_owner_id_type,
|
||||||
|
uint8_t *sensor_owner_id);
|
||||||
|
|
||||||
|
/* For Full, Compact, Event SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_owner_lun (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *sensor_owner_lun,
|
||||||
|
uint8_t *channel_number);
|
||||||
|
|
||||||
|
/* For Full, Compact, Event SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_number (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *sensor_number);
|
||||||
|
|
||||||
|
/* For Full, Compact, Event SDR, Generic Device Locator, Management Controller Device Locator SDR records */
|
||||||
|
int ipmi_sdr_parse_entity_id_instance_type (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *entity_id,
|
||||||
|
uint8_t *entity_instance,
|
||||||
|
uint8_t *entity_instance_type);
|
||||||
|
|
||||||
|
/* For Full, Compact, Event SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_type (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *sensor_type);
|
||||||
|
|
||||||
|
/* For Full, Compact, Event SDR records */
|
||||||
|
int ipmi_sdr_parse_event_reading_type_code (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *event_reading_type_code);
|
||||||
|
|
||||||
|
/* For Full, Compact, Event SDR records */
|
||||||
|
/* return length of data read into buffer on success, -1 on error */
|
||||||
|
int ipmi_sdr_parse_id_string (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
char *id_string,
|
||||||
|
unsigned int id_string_len);
|
||||||
|
|
||||||
|
/* For Full, Compact SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_units (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *sensor_units_percentage,
|
||||||
|
uint8_t *sensor_units_modifier,
|
||||||
|
uint8_t *sensor_units_rate,
|
||||||
|
uint8_t *sensor_base_unit_type,
|
||||||
|
uint8_t *sensor_modifier_unit_type);
|
||||||
|
|
||||||
|
/* For Full, Compact SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_capabilities (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *event_message_control_support,
|
||||||
|
uint8_t *threshold_access_support,
|
||||||
|
uint8_t *hysteresis_support,
|
||||||
|
uint8_t *auto_re_arm_support,
|
||||||
|
uint8_t *entity_ignore_support);
|
||||||
|
|
||||||
|
/* For Full, Compact SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_direction (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *sensor_direction);
|
||||||
|
|
||||||
|
/* For Full, Compact SDR records */
|
||||||
|
/* event reading type must indicate a discrete sensor */
|
||||||
|
int ipmi_sdr_parse_assertion_supported (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *event_state_0,
|
||||||
|
uint8_t *event_state_1,
|
||||||
|
uint8_t *event_state_2,
|
||||||
|
uint8_t *event_state_3,
|
||||||
|
uint8_t *event_state_4,
|
||||||
|
uint8_t *event_state_5,
|
||||||
|
uint8_t *event_state_6,
|
||||||
|
uint8_t *event_state_7,
|
||||||
|
uint8_t *event_state_8,
|
||||||
|
uint8_t *event_state_9,
|
||||||
|
uint8_t *event_state_10,
|
||||||
|
uint8_t *event_state_11,
|
||||||
|
uint8_t *event_state_12,
|
||||||
|
uint8_t *event_state_13,
|
||||||
|
uint8_t *event_state_14);
|
||||||
|
|
||||||
|
/* For Full, Compact SDR records */
|
||||||
|
/* event reading type must indicate a discrete sensor */
|
||||||
|
int ipmi_sdr_parse_deassertion_supported (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *event_state_0,
|
||||||
|
uint8_t *event_state_1,
|
||||||
|
uint8_t *event_state_2,
|
||||||
|
uint8_t *event_state_3,
|
||||||
|
uint8_t *event_state_4,
|
||||||
|
uint8_t *event_state_5,
|
||||||
|
uint8_t *event_state_6,
|
||||||
|
uint8_t *event_state_7,
|
||||||
|
uint8_t *event_state_8,
|
||||||
|
uint8_t *event_state_9,
|
||||||
|
uint8_t *event_state_10,
|
||||||
|
uint8_t *event_state_11,
|
||||||
|
uint8_t *event_state_12,
|
||||||
|
uint8_t *event_state_13,
|
||||||
|
uint8_t *event_state_14);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* event reading type must indicate a threshold sensor */
|
||||||
|
int ipmi_sdr_parse_threshold_assertion_supported (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *lower_non_critical_going_low,
|
||||||
|
uint8_t *lower_non_critical_going_high,
|
||||||
|
uint8_t *lower_critical_going_low,
|
||||||
|
uint8_t *lower_critical_going_high,
|
||||||
|
uint8_t *lower_non_recoverable_going_low,
|
||||||
|
uint8_t *lower_non_recoverable_going_high,
|
||||||
|
uint8_t *upper_non_critical_going_low,
|
||||||
|
uint8_t *upper_non_critical_going_high,
|
||||||
|
uint8_t *upper_critical_going_low,
|
||||||
|
uint8_t *upper_critical_going_high,
|
||||||
|
uint8_t *upper_non_recoverable_going_low,
|
||||||
|
uint8_t *upper_non_recoverable_going_high);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* event reading type must indicate a threshold sensor */
|
||||||
|
int ipmi_sdr_parse_threshold_deassertion_supported (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *lower_non_critical_going_low,
|
||||||
|
uint8_t *lower_non_critical_going_high,
|
||||||
|
uint8_t *lower_critical_going_low,
|
||||||
|
uint8_t *lower_critical_going_high,
|
||||||
|
uint8_t *lower_non_recoverable_going_low,
|
||||||
|
uint8_t *lower_non_recoverable_going_high,
|
||||||
|
uint8_t *upper_non_critical_going_low,
|
||||||
|
uint8_t *upper_non_critical_going_high,
|
||||||
|
uint8_t *upper_critical_going_low,
|
||||||
|
uint8_t *upper_critical_going_high,
|
||||||
|
uint8_t *upper_non_recoverable_going_low,
|
||||||
|
uint8_t *upper_non_recoverable_going_high);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* event reading type must indicate a threshold sensor */
|
||||||
|
int ipmi_sdr_parse_threshold_readable (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *lower_non_critical_threshold,
|
||||||
|
uint8_t *lower_critical_threshold,
|
||||||
|
uint8_t *lower_non_recoverable_threshold,
|
||||||
|
uint8_t *upper_non_critical_threshold,
|
||||||
|
uint8_t *upper_critical_threshold,
|
||||||
|
uint8_t *upper_non_recoverable_threshold);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* event reading type must indicate a threshold sensor */
|
||||||
|
int ipmi_sdr_parse_threshold_settable (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *lower_non_critical_threshold,
|
||||||
|
uint8_t *lower_critical_threshold,
|
||||||
|
uint8_t *lower_non_recoverable_threshold,
|
||||||
|
uint8_t *upper_non_critical_threshold,
|
||||||
|
uint8_t *upper_critical_threshold,
|
||||||
|
uint8_t *upper_non_recoverable_threshold);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* b_exponent - sometimes documented as k1 */
|
||||||
|
/* r_exponent - sometimes documented as k2 */
|
||||||
|
int ipmi_sdr_parse_sensor_decoding_data (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
int8_t *r_exponent,
|
||||||
|
int8_t *b_exponent,
|
||||||
|
int16_t *m,
|
||||||
|
int16_t *b,
|
||||||
|
uint8_t *linearization,
|
||||||
|
uint8_t *analog_data_format);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_reading_ranges_specified (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *nominal_reading_specified,
|
||||||
|
uint8_t *normal_maximum_specified,
|
||||||
|
uint8_t *normal_minimum_specified);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* Results must be freed by user */
|
||||||
|
int ipmi_sdr_parse_sensor_reading_ranges (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
double **nominal_reading,
|
||||||
|
double **normal_maximum,
|
||||||
|
double **normal_minimum,
|
||||||
|
double **sensor_maximum_reading,
|
||||||
|
double **sensor_minimum_reading);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* Results must be freed by user */
|
||||||
|
int ipmi_sdr_parse_thresholds (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
double **lower_non_critical_threshold,
|
||||||
|
double **lower_critical_threshold,
|
||||||
|
double **lower_non_recoverable_threshold,
|
||||||
|
double **upper_non_critical_threshold,
|
||||||
|
double **upper_critical_threshold,
|
||||||
|
double **upper_non_recoverable_threshold);
|
||||||
|
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
int ipmi_sdr_parse_thresholds_raw (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *lower_non_critical_threshold,
|
||||||
|
uint8_t *lower_critical_threshold,
|
||||||
|
uint8_t *lower_non_recoverable_threshold,
|
||||||
|
uint8_t *upper_non_critical_threshold,
|
||||||
|
uint8_t *upper_critical_threshold,
|
||||||
|
uint8_t *upper_non_recoverable_threshold);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* Results must be freed by user */
|
||||||
|
int ipmi_sdr_parse_tolerance (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
double **tolerance);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
/* Result returned is in percentage */
|
||||||
|
/* Results must be freed by user */
|
||||||
|
int ipmi_sdr_parse_accuracy (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
double **tolerance);
|
||||||
|
|
||||||
|
/* For Full SDR records */
|
||||||
|
int ipmi_sdr_parse_hysteresis (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *positive_going_threshold_hysteresis,
|
||||||
|
uint8_t *negative_going_threshold_hysteresis);
|
||||||
|
|
||||||
|
/* For Compact SDR records */
|
||||||
|
int ipmi_sdr_parse_sensor_record_sharing (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *share_count,
|
||||||
|
uint8_t *id_string_instance_modifier_type,
|
||||||
|
uint8_t *id_string_instance_modifier_offset,
|
||||||
|
uint8_t *entity_instance_sharing);
|
||||||
|
|
||||||
|
/* For Entity Association, Device Relative Entity Association SDR
|
||||||
|
records */
|
||||||
|
int ipmi_sdr_parse_container_entity (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *container_entity_id,
|
||||||
|
uint8_t *container_entity_instance);
|
||||||
|
|
||||||
|
/* For Generic Device Locator, FRU Device Locator, Management
|
||||||
|
Controller Device Locator SDR records */
|
||||||
|
/* return length of data read into buffer on success, -1 on error */
|
||||||
|
int ipmi_sdr_parse_device_id_string (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
char *device_id_string,
|
||||||
|
unsigned int device_id_string_len);
|
||||||
|
|
||||||
|
/* For Generic Device Locator, FRU Device Locator SDR records */
|
||||||
|
int ipmi_sdr_parse_device_type (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *device_type,
|
||||||
|
uint8_t *device_type_modifier);
|
||||||
|
|
||||||
|
/* For Generic Device Locator SDR records */
|
||||||
|
int ipmi_sdr_parse_generic_device_locator_parameters (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *device_access_address,
|
||||||
|
uint8_t *channel_number,
|
||||||
|
uint8_t *device_slave_address,
|
||||||
|
uint8_t *private_bus_id,
|
||||||
|
uint8_t *lun_for_master_write_read_command,
|
||||||
|
uint8_t *address_span,
|
||||||
|
uint8_t *oem);
|
||||||
|
|
||||||
|
/* For FRU Device Locator SDR records */
|
||||||
|
int ipmi_sdr_parse_fru_device_locator_parameters (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *device_access_address,
|
||||||
|
uint8_t *logical_fru_device_device_slave_address,
|
||||||
|
uint8_t *private_bus_id,
|
||||||
|
uint8_t *lun_for_master_write_read_fru_command,
|
||||||
|
uint8_t *logical_physical_fru_device,
|
||||||
|
uint8_t *channel_number);
|
||||||
|
|
||||||
|
/* For FRU Device Locator SDR records */
|
||||||
|
int ipmi_sdr_parse_fru_entity_id_and_instance (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *fru_entity_id,
|
||||||
|
uint8_t *fru_entity_instance);
|
||||||
|
|
||||||
|
/* For Management Controller Device Locator SDR records */
|
||||||
|
int ipmi_sdr_parse_management_controller_device_locator_parameters (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *device_slave_address,
|
||||||
|
uint8_t *channel_number,
|
||||||
|
uint8_t *global_initialization_event_message_generation,
|
||||||
|
uint8_t *global_initialization_log_initialization_agent_errors,
|
||||||
|
uint8_t *global_initialization_controller_logs_initialization_agent_errors,
|
||||||
|
uint8_t *power_state_notification_controller,
|
||||||
|
uint8_t *power_state_notification_acpi_device_power_state_notification,
|
||||||
|
uint8_t *power_state_notification_acpi_system_power_state_notification,
|
||||||
|
uint8_t *device_capabilities_sensor_device,
|
||||||
|
uint8_t *device_capabilities_sdr_repository_device,
|
||||||
|
uint8_t *device_capabilities_sel_device,
|
||||||
|
uint8_t *device_capabilities_fru_inventory_device,
|
||||||
|
uint8_t *device_capabilities_ipmb_event_receiver,
|
||||||
|
uint8_t *device_capabilities_ipmb_event_generator,
|
||||||
|
uint8_t *device_capabilities_bridge,
|
||||||
|
uint8_t *device_capabilities_chassis_device);
|
||||||
|
|
||||||
|
/* For Management Controller Confirmation, OEM SDR records */
|
||||||
|
int ipmi_sdr_parse_manufacturer_id (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint32_t *manufacturer_id);
|
||||||
|
|
||||||
|
/* For Management Controller Confirmation SDR records */
|
||||||
|
int ipmi_sdr_parse_product_id (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint16_t *product_id);
|
||||||
|
|
||||||
|
/* For OEM SDR records */
|
||||||
|
/* return length of data read into buffer on success, -1 on error */
|
||||||
|
int ipmi_sdr_parse_oem_data (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
void *oem_data,
|
||||||
|
unsigned int oem_data_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDR Cache Utility Functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
int ipmi_sdr_cache_delete (ipmi_sdr_ctx_t ctx, const char *filename);
|
||||||
|
|
||||||
|
/* ipmi_sensor_parse_sensor_name_string
|
||||||
|
* - Wrapper that will return id_string or device_id_string dependent
|
||||||
|
* on SDR type.
|
||||||
|
* - Based on flags, will deal with shared sensors and alter sensor
|
||||||
|
* name if necessary.
|
||||||
|
* - if sdr_record is NULL and sdr_record_len is 0, the current sdr
|
||||||
|
* record in the iterator will be used in parsing.
|
||||||
|
*/
|
||||||
|
/* For Full, Compact, Event, Generic Device Locator, FRU Device
|
||||||
|
* Locator, and Management Controller Device Locator SDR records
|
||||||
|
*/
|
||||||
|
/* returns length written into buffer on success, -1 on error */
|
||||||
|
int ipmi_sdr_parse_sensor_name (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
unsigned int flags,
|
||||||
|
char *buf,
|
||||||
|
unsigned int buflen);
|
||||||
|
|
||||||
|
/* ipmi_sensor_parse_entity_sensor_name
|
||||||
|
* - Creates sensor names with the entity id and instance for better
|
||||||
|
* names on some systems.
|
||||||
|
* - For example, on some systems sensor ID strings are all called
|
||||||
|
* "Temp". The entity ID and instance are needed to turn the name
|
||||||
|
* into "Processor 1 Temp" or "Processor 2 Temp".
|
||||||
|
* - Based on flags, will deal with shared sensors and alter sensor
|
||||||
|
* name if necessary.
|
||||||
|
* - if sdr_record is NULL and sdr_record_len is 0, the current sdr
|
||||||
|
* record in the iterator will be used in parsing.
|
||||||
|
*/
|
||||||
|
/* For Full, Compact, Event, Generic Device Locator, and Management
|
||||||
|
* Controller Device Locator SDR records
|
||||||
|
*/
|
||||||
|
/* returns length written into buffer on success, -1 on error */
|
||||||
|
int ipmi_sdr_parse_entity_sensor_name (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t sensor_number,
|
||||||
|
unsigned int flags,
|
||||||
|
char *buf,
|
||||||
|
unsigned int buflen);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_H */
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* 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_SDR_INTEL_NODE_MANAGER_OEM_H
|
||||||
|
#define IPMI_SDR_INTEL_NODE_MANAGER_OEM_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Intel Node Manager
|
||||||
|
*
|
||||||
|
* For Intel Chips, not just Intel Motherboards. Confirmed for:
|
||||||
|
*
|
||||||
|
* Intel S5500WB/Penguin Computing Relion 700
|
||||||
|
* Intel S2600JF/Appro 512X
|
||||||
|
* Intel S2600KP
|
||||||
|
* Intel S2600WT2
|
||||||
|
* Intel S2600WTT
|
||||||
|
* Inventec 5441/Dell Xanadu II
|
||||||
|
* Inventec 5442/Dell Xanadu III
|
||||||
|
* Quanta S99Q/Dell FS12-TY
|
||||||
|
* Quanta QSSC-S4R/Appro GB812X-CN
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* return (1) - is oem intel node manager, fully parsed
|
||||||
|
* return (0) - is not oem intel node manager
|
||||||
|
* return (-1) - error
|
||||||
|
*/
|
||||||
|
int ipmi_sdr_oem_parse_intel_node_manager (ipmi_sdr_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t *nm_device_slave_address,
|
||||||
|
uint8_t *sensor_owner_lun,
|
||||||
|
uint8_t *channel_number,
|
||||||
|
uint8_t *nm_health_event_sensor_number,
|
||||||
|
uint8_t *nm_exception_event_sensor_number,
|
||||||
|
uint8_t *nm_operational_capabilities_sensor_number,
|
||||||
|
uint8_t *nm_alert_threshold_exceeded_sensor_number);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SDR_INTEL_NODE_MANAGER_OEM_H */
|
479
source/freeipmi/usr/include/freeipmi/sel/ipmi-sel.h
Normal file
479
source/freeipmi/usr/include/freeipmi/sel/ipmi-sel.h
Normal file
|
@ -0,0 +1,479 @@
|
||||||
|
/*
|
||||||
|
* 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_SEL_H
|
||||||
|
#define IPMI_SEL_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/cmds/ipmi-sel-cmds.h>
|
||||||
|
#include <freeipmi/interpret/ipmi-interpret.h>
|
||||||
|
#include <freeipmi/sdr/ipmi-sdr.h>
|
||||||
|
|
||||||
|
#define IPMI_SEL_ERR_SUCCESS 0
|
||||||
|
#define IPMI_SEL_ERR_CONTEXT_NULL 1
|
||||||
|
#define IPMI_SEL_ERR_CONTEXT_INVALID 2
|
||||||
|
#define IPMI_SEL_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_SEL_ERR_OUT_OF_MEMORY 4
|
||||||
|
#define IPMI_SEL_ERR_SDR_CACHE_ERROR 5
|
||||||
|
#define IPMI_SEL_ERR_SEL_ENTRIES_NOT_LOADED 6
|
||||||
|
#define IPMI_SEL_ERR_NO_SEL_ENTRIES 7
|
||||||
|
#define IPMI_SEL_ERR_SEL_ENTRIES_LIST_END 8
|
||||||
|
#define IPMI_SEL_ERR_INVALID_SEL_ENTRY 9
|
||||||
|
#define IPMI_SEL_ERR_NOT_FOUND 10
|
||||||
|
#define IPMI_SEL_ERR_RESERVATION_CANCELED 11
|
||||||
|
#define IPMI_SEL_ERR_INTERPRET_ERROR 12
|
||||||
|
#define IPMI_SEL_ERR_CALLBACK_ERROR 13
|
||||||
|
#define IPMI_SEL_ERR_IPMI_ERROR 14
|
||||||
|
#define IPMI_SEL_ERR_SYSTEM_ERROR 15
|
||||||
|
#define IPMI_SEL_ERR_OVERFLOW 16
|
||||||
|
#define IPMI_SEL_ERR_INTERNAL_ERROR 17
|
||||||
|
#define IPMI_SEL_ERR_ERRNUMRANGE 18
|
||||||
|
|
||||||
|
#define IPMI_SEL_FLAGS_DEFAULT 0x0000
|
||||||
|
#define IPMI_SEL_FLAGS_DEBUG_DUMP 0x0001
|
||||||
|
#define IPMI_SEL_FLAGS_ASSUME_SYTEM_EVENT_RECORDS 0x0002
|
||||||
|
|
||||||
|
#define IPMI_SEL_PARAMETER_INTERPRET_CONTEXT 0x0001
|
||||||
|
#define IPMI_SEL_PARAMETER_UTC_OFFSET 0x0002
|
||||||
|
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_DEFAULT 0x0000
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_VERBOSE 0x0001
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_IGNORE_UNAVAILABLE_FIELD 0x0002
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_OUTPUT_NOT_AVAILABLE 0x0004
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_DATE_USE_SLASH 0x0008
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_DATE_MONTH_STRING 0x0010
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_NON_ABBREVIATED_UNITS 0x0020
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_ENTITY_SENSOR_NAMES 0x0040
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_INTERPRET_OEM_DATA 0x0100
|
||||||
|
/* Timestamps are defined as localtime. If there are UTC and
|
||||||
|
* one wishes to output in localtime, this flag will do so.
|
||||||
|
*/
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_UTC_TO_LOCALTIME 0x0200
|
||||||
|
/* Convert localtimes to UTC times, as it may be convenient
|
||||||
|
* for certain purposes.
|
||||||
|
*/
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_LOCALTIME_TO_UTC 0x0400
|
||||||
|
#define IPMI_SEL_STRING_FLAGS_LEGACY 0x1000
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_CLASS_SYSTEM_EVENT_RECORD 0x0
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_CLASS_TIMESTAMPED_OEM_RECORD 0x1
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_CLASS_NON_TIMESTAMPED_OEM_RECORD 0x2
|
||||||
|
#define IPMI_SEL_RECORD_TYPE_CLASS_UNKNOWN 0x3
|
||||||
|
|
||||||
|
#define IPMI_SEL_RECORD_ID_FIRST IPMI_SEL_GET_RECORD_ID_FIRST_ENTRY
|
||||||
|
#define IPMI_SEL_RECORD_ID_LAST IPMI_SEL_GET_RECORD_ID_LAST_ENTRY
|
||||||
|
|
||||||
|
typedef struct ipmi_sel_ctx *ipmi_sel_ctx_t;
|
||||||
|
|
||||||
|
typedef int (*Ipmi_Sel_Parse_Callback)(ipmi_sel_ctx_t ctx, void *callback_data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SEL Context Functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ipmi_sel_ctx_create
|
||||||
|
* - if specified, ipmi_ctx must be open and ready to go
|
||||||
|
* - if NULL ipmi_ctx, SEL ctx cannot be used for SEL reading, only parsing records
|
||||||
|
* - if specified, sdr_ctx cache must be open and ready for reading
|
||||||
|
* - if NULL sdr_ctx, sdr won't be used
|
||||||
|
*/
|
||||||
|
ipmi_sel_ctx_t ipmi_sel_ctx_create (ipmi_ctx_t ipmi_ctx, ipmi_sdr_ctx_t sdr_ctx);
|
||||||
|
void ipmi_sel_ctx_destroy (ipmi_sel_ctx_t ctx);
|
||||||
|
int ipmi_sel_ctx_errnum (ipmi_sel_ctx_t ctx);
|
||||||
|
char * ipmi_sel_ctx_strerror (int errnum);
|
||||||
|
char * ipmi_sel_ctx_errormsg (ipmi_sel_ctx_t ctx);
|
||||||
|
|
||||||
|
/* SEL Parse flag functions and settings functions */
|
||||||
|
int ipmi_sel_ctx_get_flags (ipmi_sel_ctx_t ctx, unsigned int *flags);
|
||||||
|
int ipmi_sel_ctx_set_flags (ipmi_sel_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
/* for use w/ string parsing w/ IPMI_SEL_STRING_FLAGS_INTERPRET_OEM_DATA */
|
||||||
|
int ipmi_sel_ctx_get_manufacturer_id (ipmi_sel_ctx_t ctx, uint32_t *manufacturer_id);
|
||||||
|
int ipmi_sel_ctx_set_manufacturer_id (ipmi_sel_ctx_t ctx, uint32_t manufacturer_id);
|
||||||
|
int ipmi_sel_ctx_get_product_id (ipmi_sel_ctx_t ctx, uint16_t *product_id);
|
||||||
|
int ipmi_sel_ctx_set_product_id (ipmi_sel_ctx_t ctx, uint16_t product_id);
|
||||||
|
int ipmi_sel_ctx_get_ipmi_version (ipmi_sel_ctx_t ctx,
|
||||||
|
uint8_t *ipmi_version_major,
|
||||||
|
uint8_t *ipmi_vesion_minor);
|
||||||
|
int ipmi_sel_ctx_set_ipmi_version (ipmi_sel_ctx_t ctx,
|
||||||
|
uint8_t ipmi_version_major,
|
||||||
|
uint8_t ipmi_version_minor);
|
||||||
|
/* get/set parameters
|
||||||
|
*
|
||||||
|
* For misc uses.
|
||||||
|
*
|
||||||
|
* INTERPRET_CONTEXT - for use with %I - see below. interpret_ctx
|
||||||
|
* assumed loaded with whatever config desired for interpretation
|
||||||
|
*
|
||||||
|
* UTC_OFFSET - specific UTC offset to apply to timestamps (int)
|
||||||
|
*/
|
||||||
|
int ipmi_sel_ctx_get_parameter (ipmi_sel_ctx_t ctx,
|
||||||
|
unsigned int parameter,
|
||||||
|
void *ptr);
|
||||||
|
|
||||||
|
/* Pass NULL as ptr for default value */
|
||||||
|
int ipmi_sel_ctx_set_parameter (ipmi_sel_ctx_t ctx,
|
||||||
|
unsigned int parameter,
|
||||||
|
const void *ptr);
|
||||||
|
|
||||||
|
char *ipmi_sel_ctx_get_debug_prefix (ipmi_sel_ctx_t ctx);
|
||||||
|
int ipmi_sel_ctx_set_debug_prefix (ipmi_sel_ctx_t ctx, const char *debug_prefix);
|
||||||
|
|
||||||
|
/* determines separator between fields in string functions
|
||||||
|
*
|
||||||
|
* defaults to " | "
|
||||||
|
*/
|
||||||
|
char *ipmi_sel_ctx_get_separator (ipmi_sel_ctx_t ctx);
|
||||||
|
int ipmi_sel_ctx_set_separator (ipmi_sel_ctx_t ctx, const char *separator);
|
||||||
|
|
||||||
|
/* register/clear a reservation ID
|
||||||
|
* - Almost all SEL operations use a reservation ID. Generally
|
||||||
|
* speaking, it can be considered an advisory lock. The same
|
||||||
|
* reservation ID can be used for all "read" operations and will only
|
||||||
|
* be canceled when some "write" operation has occurred on the SEL.
|
||||||
|
* This "write" operation could be a new SEL event, a SEL event that
|
||||||
|
* was deleted, etc.
|
||||||
|
* - Normally, it is no big deal for a reservation ID to be canceled.
|
||||||
|
* The most normal circumstance is a new SEL event has been generated
|
||||||
|
* while reading the current list of SEL records. Therefore, under
|
||||||
|
* most circumstances, this library will simple re-retrieve a
|
||||||
|
* reservation ID once it has noticed one has been canceled.
|
||||||
|
* - These functions allow you to override the default functionality.
|
||||||
|
* You may inform the library to register a specific reservation ID
|
||||||
|
* and continue to use it for all SEL operations. In the event that
|
||||||
|
* it has been canceled, a IPMI_SEL_ERR_RESERVATION_CANCELED
|
||||||
|
* errnum will be returned.
|
||||||
|
* - These functions are predominantly useful for doing a set of
|
||||||
|
* operations and wanting to be informed of a possible race
|
||||||
|
* condition occurring. For example, perhaps you wish to read all
|
||||||
|
* the SEL records, log them, then clear them. There is a small
|
||||||
|
* window where a new SEL event could be generated, then cleared
|
||||||
|
* without the user knowing it ever existed. Use of a fixed
|
||||||
|
* reservation ID would be a mechanism to notice this.
|
||||||
|
* - In the event a reservation ID is canceled, it is up to the user
|
||||||
|
* to re-register a reservation ID, otherwise SEL operations will
|
||||||
|
* continue to default to grab its own reservation ID.
|
||||||
|
* - In ipmi_sel_ctx_register_reservation_id(), an optional
|
||||||
|
* reservation_id can be passed to see what reservation ID was
|
||||||
|
* specifically registered.
|
||||||
|
*/
|
||||||
|
int ipmi_sel_ctx_register_reservation_id (ipmi_sel_ctx_t ctx, uint16_t *reservation_id);
|
||||||
|
int ipmi_sel_ctx_clear_reservation_id (ipmi_sel_ctx_t ctx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SEL Parse Functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ipmi_sel_parse and ipmi_sel_parse_record_ids
|
||||||
|
* - callback is called after each SEL entry is parsed
|
||||||
|
* - Returns the number of entries parsed
|
||||||
|
*/
|
||||||
|
int ipmi_sel_parse (ipmi_sel_ctx_t ctx,
|
||||||
|
uint16_t record_id_start,
|
||||||
|
uint16_t record_id_last,
|
||||||
|
Ipmi_Sel_Parse_Callback callback,
|
||||||
|
void *callback_data);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_record_ids (ipmi_sel_ctx_t ctx,
|
||||||
|
uint16_t *record_ids,
|
||||||
|
unsigned int record_ids_len,
|
||||||
|
Ipmi_Sel_Parse_Callback callback,
|
||||||
|
void *callback_data);
|
||||||
|
|
||||||
|
/* SEL data retrieval functions after SEL is parsed
|
||||||
|
*
|
||||||
|
* seek_record_id moves the iterator to the closest record_id >= record_id
|
||||||
|
* search_record_id finds the record id, will return NOT_FOUND if it can't be found
|
||||||
|
*/
|
||||||
|
int ipmi_sel_parse_first (ipmi_sel_ctx_t ctx);
|
||||||
|
int ipmi_sel_parse_next (ipmi_sel_ctx_t ctx);
|
||||||
|
int ipmi_sel_parse_sel_entry_count (ipmi_sel_ctx_t ctx);
|
||||||
|
int ipmi_sel_parse_seek_record_id (ipmi_sel_ctx_t ctx, uint16_t record_id);
|
||||||
|
int ipmi_sel_parse_search_record_id (ipmi_sel_ctx_t ctx, uint16_t record_id);
|
||||||
|
|
||||||
|
/* return length of data read into buffer on success, -1 on error */
|
||||||
|
int ipmi_sel_parse_read_record (ipmi_sel_ctx_t ctx,
|
||||||
|
void *buf,
|
||||||
|
unsigned int buflen);
|
||||||
|
|
||||||
|
/* SEL record parsing functions
|
||||||
|
*
|
||||||
|
* - if a sel_record is passed in, that sel_record is used for
|
||||||
|
* reading/parsing
|
||||||
|
*
|
||||||
|
* - if the sel_record is NULL sel_record_len is 0, the current sel
|
||||||
|
* parsed after ipmi_sel_parse() or ipmi_sel_parse_record_ids() is
|
||||||
|
* used. It can be the record used within the iterator functions
|
||||||
|
* (i.e. ipmi_sel_parse_next()) or in callbacks.
|
||||||
|
*
|
||||||
|
* - will return IPMI_SEL_ERR_INVALID_SEL_ENTRY if current sel
|
||||||
|
* entry is not appropriate for data requested.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* record_id & record_type - works with all SEL record types */
|
||||||
|
int ipmi_sel_parse_read_record_id (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint16_t *record_id);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_record_type (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *record_type);
|
||||||
|
|
||||||
|
/* timetamp - works with sel event and timestamped OEM record types */
|
||||||
|
int ipmi_sel_parse_read_timestamp (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint32_t *timestamp);
|
||||||
|
|
||||||
|
/* generator_id, event message format version, sensor type, sensor
|
||||||
|
* number, event direction, event type code, and event data available
|
||||||
|
* form system event record type
|
||||||
|
*/
|
||||||
|
int ipmi_sel_parse_read_generator_id (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *generator_id);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_ipmb_device_lun (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *ipmb_device_lun);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_channel_number (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *channel_number);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_message_format_version (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_message_format_version);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_sensor_type (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *sensor_type);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_sensor_number (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *sensor_number);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_direction (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_direction);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_type_code (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_type_code);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_data1 (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_data1);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_data1_offset_from_event_reading_type_code (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_data1_offset);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_data1_event_data2_flag (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_data2_flag);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_data1_event_data3_flag (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_data3_flag);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_data2 (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_data2);
|
||||||
|
|
||||||
|
int ipmi_sel_parse_read_event_data3 (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint8_t *event_data3);
|
||||||
|
|
||||||
|
/* manufacturer_id - works with sel timestamped OEM record types */
|
||||||
|
int ipmi_sel_parse_read_manufacturer_id (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
uint32_t *manufacturer_id);
|
||||||
|
|
||||||
|
/* oem - works with sel timestamped and non-timestamped OEM record types */
|
||||||
|
/* return length of data read into buffer on success, -1 on error */
|
||||||
|
int ipmi_sel_parse_read_oem (ipmi_sel_ctx_t ctx,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
void *buf,
|
||||||
|
unsigned int buflen);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* create a string output of the SEL entry.
|
||||||
|
*
|
||||||
|
* String format - availability for output dependent on SEL record
|
||||||
|
* type.
|
||||||
|
*
|
||||||
|
* Available in all SEL record types
|
||||||
|
*
|
||||||
|
* %i - record ID in decimal
|
||||||
|
* %I - event nominal vs. warning vs. critical interpretation [1]
|
||||||
|
*
|
||||||
|
* [1] - see libfreeipmi interpret library for information. See
|
||||||
|
* ipmi_sel_ctx_set_interpret_ctx(). If interpret context not
|
||||||
|
* available, returns INTERPRET_ERROR.
|
||||||
|
*
|
||||||
|
* Available in SEL event and timestamped OEM SEL records
|
||||||
|
*
|
||||||
|
* %t - time in format H:M:S using 24 hour clock
|
||||||
|
* %d - date in format D-M-YEAR
|
||||||
|
*
|
||||||
|
* Available in SEL event records
|
||||||
|
*
|
||||||
|
* %T - sensor type
|
||||||
|
* %s - sensor name
|
||||||
|
* %e - event data 1 string (usually offset from event/reading code type string)
|
||||||
|
* %f - event data 2 string [2]
|
||||||
|
* %h - event data 3 string
|
||||||
|
* %c - combined event data 2 and event data 3 string [3]
|
||||||
|
* %p - event data 2 previous state string [4]
|
||||||
|
* %S - event data 2 severity string [4]
|
||||||
|
* %E - combined event data 1, 2, and 3 string [5]
|
||||||
|
* %k - event direction
|
||||||
|
*
|
||||||
|
* [2] - if a previous state and a severity state string are available
|
||||||
|
* from a discrete sensor, they are concatenated with the defined
|
||||||
|
* separator in between.
|
||||||
|
*
|
||||||
|
* [3] - for events where both event data 2 and event data 3 hold data
|
||||||
|
* that must be combined for an effective output. As an example, data
|
||||||
|
* 2 holds a minor version number and data 3 holds a major version
|
||||||
|
* number. The combined output might print out "Version 1.2" instead
|
||||||
|
* of a separated "Major Version 1 ; Minor Version 2" if you did them
|
||||||
|
* separately. If a combined output is not available or not
|
||||||
|
* reasonable, event data 2 and event data 3 output will be output
|
||||||
|
* separately with the defined separator between them
|
||||||
|
* (e.g. effectively "%f ; %h").
|
||||||
|
*
|
||||||
|
* [4] - if event type code indicates a discrete sensor and event data 2
|
||||||
|
* flag indicates a previous state and/or severity state is available.
|
||||||
|
*
|
||||||
|
* [5] - this can be loosely considered the equivalent of "%e" and
|
||||||
|
* "%c" concatenated with the defined separator between them.
|
||||||
|
* However, various corner cases will be handled for the user to
|
||||||
|
* create a nicer output. For example, "Foo ; NA" will never be
|
||||||
|
* output. This will be condensed into just "Foo".
|
||||||
|
*
|
||||||
|
* Available in timestamped OEM SEL records
|
||||||
|
*
|
||||||
|
* %m - manufacturer id
|
||||||
|
*
|
||||||
|
* Available in SEL timestamped and non-timestamped OEM record types
|
||||||
|
*
|
||||||
|
* %o - oem data in hex (or strings if interpreted OEM available)
|
||||||
|
*
|
||||||
|
* Available in all record types for certain manufacturers
|
||||||
|
*
|
||||||
|
* %O - output an OEM supplied string describing the event. [6]
|
||||||
|
*
|
||||||
|
* [6] On some motherboards, the vendor is capable of supplying a full
|
||||||
|
* string describing the event data, in particular supplying strings
|
||||||
|
* for OEM records and OEM event extensions. Under the right
|
||||||
|
* conditions, this output option may be used as a potential
|
||||||
|
* replacement for %e, %f, %h, %c, and/or %E. If an OEM supplied string
|
||||||
|
* is not available, nothing will be output (with the exception of N/A
|
||||||
|
* if the OUTPUT_NOT_AVAILABLE flag is set). Currently, this output
|
||||||
|
* option supports Fujitsu systems with iRMC S1/iRMC S2.
|
||||||
|
*
|
||||||
|
* Misc
|
||||||
|
*
|
||||||
|
* %% - percent sign
|
||||||
|
*
|
||||||
|
* flags
|
||||||
|
*
|
||||||
|
* VERBOSE
|
||||||
|
*
|
||||||
|
* Output slightly more verbose text for selected fields. For example:
|
||||||
|
*
|
||||||
|
* - If a sensor does not have a name, output sensor number and
|
||||||
|
* generator id instead of just sensor number.
|
||||||
|
* - If an event data string cannot be determined (i.e. it is OEM or
|
||||||
|
* not defined by IPMI), output both the data and event type code
|
||||||
|
* instead of just the event data.
|
||||||
|
*
|
||||||
|
* IGNORE_UNAVAILABLE_FIELD
|
||||||
|
*
|
||||||
|
* If a field is not available for output (for example, a timestamp field
|
||||||
|
* in a SEL entry w/o a timestamp field), do not return an error. Output
|
||||||
|
* nothing.
|
||||||
|
*
|
||||||
|
* OUTPUT_NOT_AVAILABLE
|
||||||
|
*
|
||||||
|
* If a field is not available, do not output an empty string, output
|
||||||
|
* "N/A" (sometimes must have IGNORE_UNAVAILABLE_FIELD set)
|
||||||
|
*
|
||||||
|
* DATE_USE_SLASH
|
||||||
|
*
|
||||||
|
* Use a '/' instead of hyphens when outputting the date.
|
||||||
|
*
|
||||||
|
* DATE_MONTH_STRING
|
||||||
|
*
|
||||||
|
* Output a month name (Jan, Feb, Mar, etc.) instead of the month
|
||||||
|
* number when outputting the date.
|
||||||
|
*
|
||||||
|
* LEGACY
|
||||||
|
*
|
||||||
|
* Output strings in legacy format.
|
||||||
|
*
|
||||||
|
* Returns length of data written to buffer. If >= buflen, no null
|
||||||
|
* termination exists in buffer.
|
||||||
|
*/
|
||||||
|
int ipmi_sel_parse_read_record_string (ipmi_sel_ctx_t ctx,
|
||||||
|
const char *fmt,
|
||||||
|
const void *sel_record,
|
||||||
|
unsigned int sel_record_len,
|
||||||
|
char *buf,
|
||||||
|
unsigned int buflen,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SEL Utility functions
|
||||||
|
*/
|
||||||
|
int ipmi_sel_clear_sel (ipmi_sel_ctx_t ctx);
|
||||||
|
|
||||||
|
int ipmi_sel_delete_sel_entry (ipmi_sel_ctx_t ctx, uint16_t record_id);
|
||||||
|
|
||||||
|
int ipmi_sel_record_type_class (uint8_t record_type);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SEL_H */
|
|
@ -0,0 +1,114 @@
|
||||||
|
/*
|
||||||
|
* 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_SENSOR_READ_H
|
||||||
|
#define IPMI_SENSOR_READ_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freeipmi/api/ipmi-api.h>
|
||||||
|
#include <freeipmi/sdr/ipmi-sdr.h>
|
||||||
|
|
||||||
|
/* note: SENSOR_READING_UNAVAILABLE and SENSOR_SCANNING_DISABLED are
|
||||||
|
* because of configuration of a sensor. It is "ok" to some extent.
|
||||||
|
* SENSOR_READING_CANNOT_BE_OBTAINED is due to a retrieval error.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SUCCESS 0
|
||||||
|
#define IPMI_SENSOR_READ_ERR_CONTEXT_NULL 1
|
||||||
|
#define IPMI_SENSOR_READ_ERR_CONTEXT_INVALID 2
|
||||||
|
#define IPMI_SENSOR_READ_ERR_PARAMETERS 3
|
||||||
|
#define IPMI_SENSOR_READ_ERR_OUT_OF_MEMORY 4
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_READING_UNAVAILABLE 5
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_SCANNING_DISABLED 6
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_NON_ANALOG 7
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_NON_LINEAR 8
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_NOT_OWNED_BY_BMC 9
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_IS_SYSTEM_SOFTWARE 10
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_CANNOT_BE_BRIDGED 11
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SENSOR_READING_CANNOT_BE_OBTAINED 12
|
||||||
|
#define IPMI_SENSOR_READ_ERR_NODE_BUSY 13
|
||||||
|
#define IPMI_SENSOR_READ_ERR_INVALID_SDR_RECORD_TYPE 14
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SDR_ENTRY_ERROR 15
|
||||||
|
#define IPMI_SENSOR_READ_ERR_IPMI_ERROR 16
|
||||||
|
#define IPMI_SENSOR_READ_ERR_SYSTEM_ERROR 17
|
||||||
|
#define IPMI_SENSOR_READ_ERR_OVERFLOW 18
|
||||||
|
#define IPMI_SENSOR_READ_ERR_INTERNAL_ERROR 19
|
||||||
|
#define IPMI_SENSOR_READ_ERR_ERRNUMRANGE 20
|
||||||
|
|
||||||
|
#define IPMI_SENSOR_READ_FLAGS_DEFAULT 0x0000
|
||||||
|
#define IPMI_SENSOR_READ_FLAGS_BRIDGE_SENSORS 0x0001
|
||||||
|
#define IPMI_SENSOR_READ_FLAGS_DISCRETE_READING 0x0002
|
||||||
|
#define IPMI_SENSOR_READ_FLAGS_IGNORE_SCANNING_DISABLED 0x0004
|
||||||
|
#define IPMI_SENSOR_READ_FLAGS_ASSUME_BMC_OWNER 0x0008
|
||||||
|
|
||||||
|
typedef struct ipmi_sensor_read_ctx *ipmi_sensor_read_ctx_t;
|
||||||
|
|
||||||
|
/* Sensor Read Context Functions
|
||||||
|
* - ipmi_ctx assumes ipmi opened and ready to go
|
||||||
|
*/
|
||||||
|
ipmi_sensor_read_ctx_t ipmi_sensor_read_ctx_create (ipmi_ctx_t ipmi_ctx);
|
||||||
|
void ipmi_sensor_read_ctx_destroy (ipmi_sensor_read_ctx_t ctx);
|
||||||
|
int ipmi_sensor_read_ctx_errnum (ipmi_sensor_read_ctx_t ctx);
|
||||||
|
char * ipmi_sensor_read_ctx_strerror (int errnum);
|
||||||
|
char * ipmi_sensor_read_ctx_errormsg (ipmi_sensor_read_ctx_t ctx);
|
||||||
|
|
||||||
|
/* Sensor read flag functions */
|
||||||
|
int ipmi_sensor_read_ctx_get_flags (ipmi_sensor_read_ctx_t ctx, unsigned int *flags);
|
||||||
|
int ipmi_sensor_read_ctx_set_flags (ipmi_sensor_read_ctx_t ctx, unsigned int flags);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* return 1 - reading a success (although for some sensor types, a
|
||||||
|
* reading may not be returned. For example with discrete sensors, a
|
||||||
|
* reading is not returned but a sensor_event_bitmask is.)
|
||||||
|
*
|
||||||
|
* return 0 - cannot obtain reading, but sensor_event_bitmask still
|
||||||
|
* returned. This is most common because the sensor cannot be
|
||||||
|
* interpreted, b/c (for example) it is a non-analog or non-linear
|
||||||
|
* sensor. errnum will be set appropriately.
|
||||||
|
*
|
||||||
|
* return (-1) - error, neither a reading nor sensor_event_bitmask can
|
||||||
|
* be returned.
|
||||||
|
*
|
||||||
|
* if reading returned, must be free'd by caller
|
||||||
|
*
|
||||||
|
* 'sensor_reading_raw' is optional and need not be specified.
|
||||||
|
*
|
||||||
|
* under return of 0 or 1, the sensor_reading_raw will be filled with the raw reading
|
||||||
|
*
|
||||||
|
* Notes:
|
||||||
|
*
|
||||||
|
* shared_sensor_number_offset used for sensor record sharing in compact
|
||||||
|
* records. If not used or not available, must be set to 0.
|
||||||
|
*/
|
||||||
|
int ipmi_sensor_read (ipmi_sensor_read_ctx_t ctx,
|
||||||
|
const void *sdr_record,
|
||||||
|
unsigned int sdr_record_len,
|
||||||
|
uint8_t shared_sensor_number_offset,
|
||||||
|
uint8_t *sensor_reading_raw,
|
||||||
|
double **sensor_reading,
|
||||||
|
uint16_t *sensor_event_bitmask);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_SENSOR_READ_H */
|
|
@ -0,0 +1,56 @@
|
||||||
|
/*
|
||||||
|
* 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_AUTHENTICATION_TYPE_SPEC_H
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_NONE 0x00
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_MD2 0x01
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_MD5 0x02
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_STRAIGHT_PASSWORD_KEY 0x04
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_OEM_PROP 0x05
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_RMCPPLUS 0x06
|
||||||
|
|
||||||
|
#define IPMI_AUTHENTICATION_TYPE_VALID(__authentication_type) \
|
||||||
|
(((__authentication_type) == IPMI_AUTHENTICATION_TYPE_NONE \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_MD2 \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_MD5 \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_STRAIGHT_PASSWORD_KEY \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_OEM_PROP \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_RMCPPLUS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_1_5_AUTHENTICATION_TYPE_VALID(__authentication_type) \
|
||||||
|
(((__authentication_type) == IPMI_AUTHENTICATION_TYPE_NONE \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_MD2 \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_MD5 \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_STRAIGHT_PASSWORD_KEY \
|
||||||
|
|| (__authentication_type) == IPMI_AUTHENTICATION_TYPE_OEM_PROP) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_2_0_AUTHENTICATION_TYPE_VALID(__authentication_type) \
|
||||||
|
IPMI_AUTHENTICATION_TYPE_VALID ((__authentication_type))
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_AUTHENTICATION_TYPE_SPEC_H */
|
101
source/freeipmi/usr/include/freeipmi/spec/ipmi-channel-spec.h
Normal file
101
source/freeipmi/usr/include/freeipmi/spec/ipmi-channel-spec.h
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
/*
|
||||||
|
* 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_CHANNEL_SPEC_H
|
||||||
|
#define IPMI_CHANNEL_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_NUMBER_PRIMARY_IPMB 0x0
|
||||||
|
#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_MIN 0x01 /* 0x01 to 0x07 */
|
||||||
|
#define IPMI_CHANNEL_NUMBER_IMPLEMENTATION_SPECIFIC_MAX 0x07 /* 0x01 to 0x07 */
|
||||||
|
#define IPMI_CHANNEL_NUMBER_RESERVED_MIN 0x0C /* 0x0C to 0x0D */
|
||||||
|
#define IPMI_CHANNEL_NUMBER_RESERVED_MAX 0x0D /* 0x0C to 0x0D */
|
||||||
|
#define IPMI_CHANNEL_NUMBER_PRESENT_IF 0xE
|
||||||
|
#define IPMI_CHANNEL_NUMBER_CURRENT_CHANNEL IPMI_CHANNEL_NUMBER_PRESENT_IF
|
||||||
|
#define IPMI_CHANNEL_NUMBER_SYSTEM_INTERFACE 0xF
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_NUMBERS_MAX 16
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_CHANNEL_NUMBER_VALID(__channel_number) \
|
||||||
|
((((__channel_number + 1) >= (IPMI_CHANNEL_NUMBER_PRIMARY_IPMB + 1) \
|
||||||
|
&& (__channel_number) < IPMI_CHANNEL_NUMBER_RESERVED_MIN) \
|
||||||
|
|| ((__channel_number) > IPMI_CHANNEL_NUMBER_RESERVED_MAX \
|
||||||
|
&& (__channel_number) <= IPMI_CHANNEL_NUMBER_SYSTEM_INTERFACE)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED 0x0 /* 0x03, 0x0A to 0x1B */
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_1 IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_IPMB 0x1
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_ICMB_10 0x2
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_2 0x0 /* 0x03, 0x0A to 0x1B */
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_SMBUS_1X_2X 0x4
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_KCS 0x5
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_SMIC 0x6
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_10 0x7
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_15 0x8
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_TMODE 0x9
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_MIN 0x0A /* 0x03, 0x0A to 0x1B */
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_MAX 0x1B /* 0x03, 0x0A to 0x1B */
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_OEM_MIN 0x1C /* 0x1C to 0x1F */
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_OEM_MAX 0x1F /* 0x1C to 0x1F */
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_IS_RESERVED(__val) \
|
||||||
|
(((__val) == IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_1 \
|
||||||
|
|| (__val) == IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_2 \
|
||||||
|
|| ((__val) >= IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_MIN \
|
||||||
|
&& (__val) <= IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED_MAX)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_PROTOCOL_TYPE_IS_OEM(__val) \
|
||||||
|
(((__val) >= IPMI_CHANNEL_PROTOCOL_TYPE_OEM_MIN \
|
||||||
|
&& (__val) <= IPMI_CHANNEL_PROTOCOL_TYPE_OEM_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_RESERVED 0x0 /* 0x0D to 0x5F */
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_IPMB 0x1
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_ICMB_10 0x2
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_ICMB_09 0x3
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_LAN_802_3 0x4
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_RS232 0x5
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_OTHER_LAN 0x6
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_PCI_SMBUS 0x7
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_SMBUS_10_11 0x8
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_SMBUS_20 0x9
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_USB_1X 0xA
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_USB_2X 0xB
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_SYSTEM_INTERFACE 0xC
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_RESERVED_MIN 0x0D /* 0x0D to 0x59 */
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_RESERVED_MAX 0x59 /* 0x0D to 0x59 */
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_OEM_MIN 0x60 /* 0x60 to 0x7F */
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_OEM_MAX 0x7F /* 0x60 to 0x7F */
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_IS_RESERVED(__val) \
|
||||||
|
(((__val) == IPMI_CHANNEL_MEDIUM_TYPE_RESERVED \
|
||||||
|
|| ((__val) >= IPMI_CHANNEL_MEDIUM_TYPE_RESERVED_MIN \
|
||||||
|
&& (__val) <= IPMI_CHANNEL_MEDIUM_TYPE_RESERVED_MAX)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_CHANNEL_MEDIUM_TYPE_IS_OEM(__val) \
|
||||||
|
(((__val) >= IPMI_CHANNEL_MEDIUM_TYPE_OEM_MIN \
|
||||||
|
&& (__val) <= IPMI_CHANNEL_MEDIUM_TYPE_OEM_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_CHANNEL_SPEC_H */
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2009-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* LLNL-CODE-413270
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-Dcmi, tools and libraries to support the
|
||||||
|
* data center manageability interface (DCMI). For details, see
|
||||||
|
* http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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 Ipmi-Dcmi. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_CMD_DCMI_SPEC_H
|
||||||
|
#define IPMI_CMD_DCMI_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_CMD_DCMI_GET_DCMI_CAPABILITY_INFO 0x01
|
||||||
|
#define IPMI_CMD_DCMI_GET_POWER_READING 0x02
|
||||||
|
#define IPMI_CMD_DCMI_GET_POWER_LIMIT 0x03
|
||||||
|
#define IPMI_CMD_DCMI_SET_POWER_LIMIT 0x04
|
||||||
|
#define IPMI_CMD_DCMI_ACTIVATE_DEACTIVATE_POWER_LIMIT 0x05
|
||||||
|
#define IPMI_CMD_DCMI_GET_ASSET_TAG 0x06
|
||||||
|
#define IPMI_CMD_DCMI_GET_DCMI_SENSOR_INFO 0x07
|
||||||
|
#define IPMI_CMD_DCMI_SET_ASSET_TAG 0x08
|
||||||
|
#define IPMI_CMD_DCMI_GET_MANAGEMENT_CONTROLLER_IDENTIFIER_STRING 0x09
|
||||||
|
#define IPMI_CMD_DCMI_SET_MANAGEMENT_CONTROLLER_IDENTIFIER_STRING 0x0A
|
||||||
|
#define IPMI_CMD_DCMI_SET_THERMAL_LIMIT 0x0B
|
||||||
|
#define IPMI_CMD_DCMI_GET_THERMAL_LIMIT 0x0C
|
||||||
|
#define IPMI_CMD_DCMI_GET_TEMPERATURE_READING 0x10
|
||||||
|
#define IPMI_CMD_DCMI_SET_DCMI_CONFIGURATION_PARAMETERS 0x12
|
||||||
|
#define IPMI_CMD_DCMI_GET_DCMI_CONFIGURATION_PARAMETERS 0x13
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_CMD_DCMI_SPEC_H */
|
271
source/freeipmi/usr/include/freeipmi/spec/ipmi-cmd-spec.h
Normal file
271
source/freeipmi/usr/include/freeipmi/spec/ipmi-cmd-spec.h
Normal file
|
@ -0,0 +1,271 @@
|
||||||
|
/*
|
||||||
|
* 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_CMD_SPEC_H
|
||||||
|
#define IPMI_CMD_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Notes:
|
||||||
|
Refer to IPMIv1_5_rev1_1.pdf Table G-1, Command Number Assignments
|
||||||
|
and Privilege Levels for complete description
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI Device Global Commands */
|
||||||
|
#define IPMI_CMD_RESERVED 0x00
|
||||||
|
#define IPMI_CMD_GET_DEVICE_ID 0x01
|
||||||
|
#define IPMI_CMD_GET_DEVICE_ID_BCST IPMI_CMD_GET_DEVICE_ID
|
||||||
|
#define IPMI_CMD_COLD_RESET 0x02
|
||||||
|
#define IPMI_CMD_WARM_RESET 0x03
|
||||||
|
#define IPMI_CMD_GET_SELF_TEST_RESULTS 0x04
|
||||||
|
#define IPMI_CMD_MANUFACTURING_TEST_ON 0x05
|
||||||
|
#define IPMI_CMD_SET_ACPI_POWER_STATE 0x06
|
||||||
|
#define IPMI_CMD_GET_ACPI_POWER_STATE 0x07
|
||||||
|
#define IPMI_CMD_GET_DEVICE_GUID 0x08
|
||||||
|
#define IPMI_CMD_GET_NETFN_SUPPORT 0x09
|
||||||
|
#define IPMI_CMD_GET_COMMAND_SUPPORT 0x0A
|
||||||
|
#define IPMI_CMD_GET_COMMAND_SUB_FUNCTION_SUPPORT 0x0B
|
||||||
|
#define IPMI_CMD_GET_CONFIGURABLE_COMMANDS 0x0C
|
||||||
|
#define IPMI_CMD_GET_CONFIGURABLE_COMMAND_SUB_FUNCTIONS 0x0D
|
||||||
|
/* RESERVED 0x0E to 0x0F */
|
||||||
|
#define IPMI_CMD_SET_COMMAND_ENABLES 0x60
|
||||||
|
#define IPMI_CMD_GET_COMMAND_ENABLES 0x61
|
||||||
|
#define IPMI_CMD_SET_COMMAND_SUB_FUNCTION_ENABLES 0x62
|
||||||
|
#define IPMI_CMD_GET_COMMAND_SUB_FUNCTION_ENABLES 0x63
|
||||||
|
#define IPMI_CMD_GET_OEM_NETFN_IANA_SUPPORT 0x64
|
||||||
|
|
||||||
|
/* BMC Watchdog Timer Commands */
|
||||||
|
#define IPMI_CMD_RESET_WATCHDOG_TIMER 0x22
|
||||||
|
#define IPMI_CMD_SET_WATCHDOG_TIMER 0x24
|
||||||
|
#define IPMI_CMD_GET_WATCHDOG_TIMER 0x25
|
||||||
|
|
||||||
|
/* BMC Device And Messaging Commands */
|
||||||
|
#define IPMI_CMD_SET_BMC_GLOBAL_ENABLES 0x2E
|
||||||
|
#define IPMI_CMD_GET_BMC_GLOBAL_ENABLES 0x2F
|
||||||
|
#define IPMI_CMD_CLEAR_MESSAGE_FLAGS 0x30
|
||||||
|
#define IPMI_CMD_GET_MESSAGE_FLAGS 0x31
|
||||||
|
#define IPMI_CMD_ENABLE_MESSAGE_CHANNEL_RECEIVE 0x32
|
||||||
|
#define IPMI_CMD_GET_MESSAGE 0x33
|
||||||
|
#define IPMI_CMD_SEND_MESSAGE 0x34
|
||||||
|
#define IPMI_CMD_READ_EVENT_MESSAGE_BUFFER 0x35
|
||||||
|
#define IPMI_CMD_GET_BT_INTERFACE_CAPABILITIES 0x36
|
||||||
|
#define IPMI_CMD_GET_SYSTEM_GUID 0x37
|
||||||
|
#define IPMI_CMD_SET_SYSTEM_INFO_PARAMETERS 0x58
|
||||||
|
#define IPMI_CMD_GET_SYSTEM_INFO_PARAMETERS 0x59
|
||||||
|
#define IPMI_CMD_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38
|
||||||
|
#define IPMI_CMD_GET_SESSION_CHALLENGE 0x39
|
||||||
|
#define IPMI_CMD_ACTIVATE_SESSION 0x3A
|
||||||
|
#define IPMI_CMD_SET_SESSION_PRIVILEGE_LEVEL 0x3B
|
||||||
|
#define IPMI_CMD_CLOSE_SESSION 0x3C
|
||||||
|
#define IPMI_CMD_GET_SESSION_INFO 0x3D
|
||||||
|
/* UNASSIGNED 0x3E */
|
||||||
|
#define IPMI_CMD_GET_AUTHCODE 0x3F
|
||||||
|
#define IPMI_CMD_SET_CHANNEL_ACCESS 0x40
|
||||||
|
#define IPMI_CMD_GET_CHANNEL_ACCESS 0x41
|
||||||
|
#define IPMI_CMD_GET_CHANNEL_INFO_COMMAND 0x42
|
||||||
|
#define IPMI_CMD_SET_USER_ACCESS_COMMAND 0x43
|
||||||
|
#define IPMI_CMD_GET_USER_ACCESS_COMMAND 0x44
|
||||||
|
#define IPMI_CMD_SET_USER_NAME 0x45
|
||||||
|
#define IPMI_CMD_GET_USER_NAME_COMMAND 0x46
|
||||||
|
#define IPMI_CMD_SET_USER_PASSWORD_COMMAND 0x47
|
||||||
|
#define IPMI_CMD_ACTIVATE_PAYLOAD 0x48
|
||||||
|
#define IPMI_CMD_DEACTIVATE_PAYLOAD 0x49
|
||||||
|
#define IPMI_CMD_GET_PAYLOAD_ACTIVATION_STATUS 0x4A
|
||||||
|
#define IPMI_CMD_GET_PAYLOAD_INSTANCE_INFO 0x4B
|
||||||
|
#define IPMI_CMD_SET_USER_PAYLOAD_ACCESS 0x4C
|
||||||
|
#define IPMI_CMD_GET_USER_PAYLOAD_ACCESS 0x4D
|
||||||
|
#define IPMI_CMD_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E
|
||||||
|
#define IPMI_CMD_GET_CHANNEL_PAYLOAD_VERSION 0x4F
|
||||||
|
#define IPMI_CMD_GET_CHANNEL_OEM_PAYLOAD_INFO 0x50
|
||||||
|
/* unassigned 0x51 */
|
||||||
|
#define IPMI_CMD_MASTER_WRITE_READ 0x52
|
||||||
|
/* unassigned 0x53 */
|
||||||
|
#define IPMI_CMD_GET_CHANNEL_CIPHER_SUITES 0x54
|
||||||
|
#define IPMI_CMD_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x53
|
||||||
|
#define IPMI_CMD_SET_CHANNEL_SECURITY_KEYS 0x56
|
||||||
|
#define IPMI_CMD_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57
|
||||||
|
/* unassigned 0x58 to 0x5F */
|
||||||
|
/* Firmware Firewall Configuration 0x60 to 0x64 */
|
||||||
|
|
||||||
|
/* Chassis Device Commands */
|
||||||
|
/* achu: Cmd is named "set front panel enables", but cmd in appendix G is
|
||||||
|
* named "set front panel button enables". Go fig ...
|
||||||
|
*/
|
||||||
|
#define IPMI_CMD_GET_CHASSIS_CAPABILITIES 0x00
|
||||||
|
#define IPMI_CMD_GET_CHASSIS_STATUS 0x01
|
||||||
|
#define IPMI_CMD_CHASSIS_CONTROL 0x02
|
||||||
|
#define IPMI_CMD_CHASSIS_RESET 0x03
|
||||||
|
#define IPMI_CMD_CHASSIS_IDENTIFY 0x04
|
||||||
|
#define IPMI_CMD_SET_CHASSIS_CAPABILITIES 0x05
|
||||||
|
#define IPMI_CMD_SET_POWER_RESTORE_POLICY 0x06
|
||||||
|
#define IPMI_CMD_GET_SYSTEM_RESTART_CAUSE 0x07
|
||||||
|
#define IPMI_CMD_SET_SYSTEM_BOOT_OPTIONS 0x08
|
||||||
|
#define IPMI_CMD_GET_SYSTEM_BOOT_OPTIONS 0x09
|
||||||
|
#define IPMI_CMD_SET_FRONT_PANEL_BUTTON_ENABLES 0x0A
|
||||||
|
#define IPMI_CMD_SET_FRONT_PANEL_ENABLES IPMI_CMD_SET_FRONT_PANEL_BUTTON_ENABLES
|
||||||
|
#define IPMI_CMD_SET_POWER_CYCLE_INTERVAL 0x0B
|
||||||
|
/* unassigned 0x0C to 0x0E */
|
||||||
|
#define IPMI_CMD_GET_POWER_ON_HOURS_COUNTER 0x0F
|
||||||
|
|
||||||
|
|
||||||
|
/* Event Commands */
|
||||||
|
#define IPMI_CMD_SET_EVENT_RECEIVER 0x00
|
||||||
|
#define IPMI_CMD_GET_EVENT_RECEIVER 0x01
|
||||||
|
#define IPMI_CMD_PLATFORM_EVENT 0x02 /* (a.k.a. Event Message) */
|
||||||
|
/* unassigned 0x03h to 0x0F */
|
||||||
|
|
||||||
|
/* PEF and Alerting Commands */
|
||||||
|
#define IPMI_CMD_GET_PEF_CAPABILITIES 0x10
|
||||||
|
#define IPMI_CMD_ARM_PEF_POSTPONE_TIMER 0x11
|
||||||
|
#define IPMI_CMD_SET_PEF_CONFIGURATION_PARAMETERS 0x12
|
||||||
|
#define IPMI_CMD_GET_PEF_CONFIGURATION_PARAMETERS 0x13
|
||||||
|
#define IPMI_CMD_SET_LAST_PROCESSED_EVENT_ID 0x14
|
||||||
|
#define IPMI_CMD_GET_LAST_PROCESSED_EVENT_ID 0x15
|
||||||
|
#define IPMI_CMD_ALERT_IMMEDIATE 0x16
|
||||||
|
#define IPMI_CMD_PET_ACKNOWLEDGE 0x17
|
||||||
|
|
||||||
|
/* Sensor Device Commands */
|
||||||
|
#define IPMI_CMD_GET_DEVICE_SDR_INFO 0x20
|
||||||
|
#define IPMI_CMD_GET_DEVICE_SDR 0x21
|
||||||
|
#define IPMI_CMD_RESERVE_DEVICE_SDR_REPOSITORY 0x22
|
||||||
|
#define IPMI_CMD_GET_SENSOR_READING_FACTORS 0x23
|
||||||
|
#define IPMI_CMD_SET_SENSOR_HYSTERESIS 0x24
|
||||||
|
#define IPMI_CMD_GET_SENSOR_HYSTERESIS 0x25
|
||||||
|
#define IPMI_CMD_SET_SENSOR_THRESHOLDS 0x26
|
||||||
|
#define IPMI_CMD_GET_SENSOR_THRESHOLDS 0x27
|
||||||
|
#define IPMI_CMD_SET_SENSOR_EVENT_ENABLE 0x28
|
||||||
|
#define IPMI_CMD_GET_SENSOR_EVENT_ENABLE 0x29
|
||||||
|
#define IPMI_CMD_RE_ARM_SENSOR_EVENTS 0x2A
|
||||||
|
#define IPMI_CMD_GET_SENSOR_EVENT_STATUS 0x2B
|
||||||
|
#define IPMI_CMD_GET_SENSOR_READING 0x2D
|
||||||
|
#define IPMI_CMD_SET_SENSOR_TYPE 0x2E
|
||||||
|
#define IPMI_CMD_GET_SENSOR_TYPE 0x2F
|
||||||
|
#define IPMI_CMD_SET_SENSOR_READING_AND_EVENT_STATUS 0x30
|
||||||
|
|
||||||
|
/* FRU Device Commands */
|
||||||
|
#define IPMI_CMD_GET_FRU_INVENTORY_AREA_INFO 0x10
|
||||||
|
#define IPMI_CMD_READ_FRU_DATA 0x11
|
||||||
|
#define IPMI_CMD_WRITE_FRU_DATA 0x12
|
||||||
|
|
||||||
|
/* SDR Device Commands */
|
||||||
|
#define IPMI_CMD_GET_SDR_REPOSITORY_INFO 0x20
|
||||||
|
#define IPMI_CMD_GET_SDR_REPOSITORY_ALLOCATION_INFO 0x21
|
||||||
|
#define IPMI_CMD_RESERVE_SDR_REPOSITORY 0x22
|
||||||
|
#define IPMI_CMD_GET_SDR 0x23
|
||||||
|
#define IPMI_CMD_ADD_SDR 0x24
|
||||||
|
#define IPMI_CMD_PARTIAL_ADD_SDR 0x25
|
||||||
|
#define IPMI_CMD_DELETE_SDR 0x26
|
||||||
|
#define IPMI_CMD_CLEAR_SDR_REPOSITORY 0x27
|
||||||
|
#define IPMI_CMD_GET_SDR_REPOSITORY_TIME 0x28
|
||||||
|
#define IPMI_CMD_SET_SDR_REPOSITORY_TIME 0x29
|
||||||
|
#define IPMI_CMD_ENTER_SDR_REPOSITORY_UPDATE_MODE 0x2A
|
||||||
|
#define IPMI_CMD_EXIT_SDR_REPOSITORY_UPDATE_MODE 0x2B
|
||||||
|
#define IPMI_CMD_RUN_INITIALIZATION_AGENT 0x2C
|
||||||
|
|
||||||
|
/* SEL Device Commands */
|
||||||
|
#define IPMI_CMD_GET_SEL_INFO 0x40
|
||||||
|
#define IPMI_CMD_GET_SEL_ALLOCATION_INFO 0x41
|
||||||
|
#define IPMI_CMD_RESERVE_SEL 0x42
|
||||||
|
#define IPMI_CMD_GET_SEL_ENTRY 0x43
|
||||||
|
#define IPMI_CMD_ADD_SEL_ENTRY 0x44
|
||||||
|
#define IPMI_CMD_PARTIAL_ADD_SEL_ENTRY 0x45
|
||||||
|
#define IPMI_CMD_DELETE_SEL_ENTRY 0x46
|
||||||
|
#define IPMI_CMD_CLEAR_SEL 0x47
|
||||||
|
#define IPMI_CMD_GET_SEL_TIME 0x48
|
||||||
|
#define IPMI_CMD_SET_SEL_TIME 0x49
|
||||||
|
#define IPMI_CMD_GET_AUXILIARY_LOG_STATUS 0x5A
|
||||||
|
#define IPMI_CMD_SET_AUXILIARY_LOG_STATUS 0x5B
|
||||||
|
#define IPMI_CMD_GET_SEL_TIME_UTC_OFFSET 0x5C
|
||||||
|
#define IPMI_CMD_SET_SEL_TIME_UTC_OFFSET 0x5D
|
||||||
|
|
||||||
|
/* LAN Device Commands */
|
||||||
|
#define IPMI_CMD_SET_LAN_CONFIGURATION_PARAMETERS 0x01
|
||||||
|
#define IPMI_CMD_GET_LAN_CONFIGURATION_PARAMETERS 0x02
|
||||||
|
#define IPMI_CMD_SUSPEND_BMC_ARPS 0x03
|
||||||
|
#define IPMI_CMD_GET_IP_UDP_RMCP_STATISTICS 0x04
|
||||||
|
|
||||||
|
/* Serial/Modem Device Commands */
|
||||||
|
#define IPMI_CMD_SET_SERIAL_MODEM_CONFIGURATION 0x10
|
||||||
|
#define IPMI_CMD_GET_SERIAL_MODEM_CONFIGURATION 0x11
|
||||||
|
#define IPMI_CMD_SET_SERIAL_MODEM_MUX 0x12
|
||||||
|
#define IPMI_CMD_GET_TAP_RESPONSE_CODES 0x13
|
||||||
|
#define IPMI_CMD_SET_PPP_UDP_PROXY_TRANSMIT_DATA 0x14
|
||||||
|
#define IPMI_CMD_GET_PPP_UDP_PROXY_TRANSMIT_DATA 0x15
|
||||||
|
#define IPMI_CMD_SEND_PPP_UDP_PROXY_PACKET 0x16
|
||||||
|
#define IPMI_CMD_GET_PPP_UDP_PROXY_RECEIVE_DATA 0x17
|
||||||
|
#define IPMI_CMD_SERIAL_MODEM_CONNECTION_ACTIVE 0x18
|
||||||
|
#define IPMI_CMD_CALLBACK 0x19
|
||||||
|
#define IPMI_CMD_SET_USER_CALLBACK_OPTIONS 0x1A
|
||||||
|
#define IPMI_CMD_GET_USER_CALLBACK_OPTIONS 0x1B
|
||||||
|
#define IPMI_CMD_SET_SERIAL_ROUTING_MUX 0x1C
|
||||||
|
#define IPMI_CMD_SOL_ACTIVATING 0x20
|
||||||
|
#define IPMI_CMD_SET_SOL_CONFIGURATION_PARAMETERS 0x21
|
||||||
|
#define IPMI_CMD_GET_SOL_CONFIGURATION_PARAMETERS 0x22
|
||||||
|
|
||||||
|
/* Command Forwarding Commands */
|
||||||
|
#define IPMI_CMD_FORWARDED_COMMAND 0x30
|
||||||
|
#define IPMI_CMD_SET_FORWARDED_COMMANDS 0x31
|
||||||
|
#define IPMI_CMD_GET_FORWARDED_COMMANDS 0x32
|
||||||
|
#define IPMI_CMD_ENABLE_FORWARDED_COMMANDS 0x33
|
||||||
|
|
||||||
|
/* Bridge Management Commands (ICMB) */
|
||||||
|
#define IPMI_CMD_GET_BRIDGE_STATE 0x00
|
||||||
|
#define IPMI_CMD_SET_BRIDGE_STATE 0x01
|
||||||
|
#define IPMI_CMD_GET_ICMB_ADDRESS 0x02
|
||||||
|
#define IPMI_CMD_SET_ICMB_ADDRESS 0x03
|
||||||
|
#define IPMI_CMD_SET_BRIDGE_PROXY_ADDRESS 0x04
|
||||||
|
#define IPMI_CMD_GET_BRIDGE_STATISTICS 0x05
|
||||||
|
#define IPMI_CMD_GET_ICMB_CAPABILITIES 0x06
|
||||||
|
#define IPMI_CMD_CLEAR_BRIDGE_STATISTICS 0x08
|
||||||
|
#define IPMI_CMD_GET_BRIDGE_PROXY_ADDRESS 0x09
|
||||||
|
#define IPMI_CMD_GET_ICMB_CONNECTOR_INFO 0x0A
|
||||||
|
#define IPMI_CMD_GET_ICMB_CONNECTION_ID 0x0B
|
||||||
|
#define IPMI_CMD_SEND_ICMB_CONNECTION_ID 0x0C
|
||||||
|
|
||||||
|
/* Discovery Commands (ICMB) */
|
||||||
|
#define IPMI_CMD_PREPARE_FOR_DISCOVERY 0x10
|
||||||
|
#define IPMI_CMD_GET_ADDRESSES 0x11
|
||||||
|
#define IPMI_CMD_SET_DISCOVERED 0x12
|
||||||
|
#define IPMI_CMD_GET_CHASSIS_DEVICE_ID 0x13
|
||||||
|
#define IPMI_CMD_SET_CHASSIS_DEVICE_ID 0x14
|
||||||
|
|
||||||
|
/* Bridging Commands (ICMB) */
|
||||||
|
#define IPMI_CMD_BRIDGE_REQUEST 0x20
|
||||||
|
#define IPMI_CMD_BRIDGE_MESSAGE 0x21
|
||||||
|
|
||||||
|
/* Event Commands (ICMB) */
|
||||||
|
#define IPMI_CMD_GET_EVENT_COUNT 0x30
|
||||||
|
#define IPMI_CMD_SET_EVENT_DESTINATION 0x31
|
||||||
|
#define IPMI_CMD_SET_EVENT_RECEPTION_STATE 0x32
|
||||||
|
#define IPMI_CMD_SEND_ICMB_EVENT_MESSAGE 0x33
|
||||||
|
#define IPMI_CMD_GET_EVENT_DESTINATION 0x34
|
||||||
|
#define IPMI_CMD_GET_EVENT_RECEPTION_STATE 0x35
|
||||||
|
|
||||||
|
/* OEM Commands for Bridge NetFn */
|
||||||
|
/* OEM Commands 0xC0 to 0xFE */
|
||||||
|
|
||||||
|
/* Other Bridge Commands */
|
||||||
|
#define IPMI_CMD_ERROR_REPORT 0xFF
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_CMD_SPEC_H */
|
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2009-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* LLNL-CODE-413270
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-Dcmi, tools and libraries to support the
|
||||||
|
* data center manageability interface (DCMI). For details, see
|
||||||
|
* http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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.
|
||||||
|
*
|
||||||
|
* Ipmi-Dcmi 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 Ipmi-Dcmi. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_COMP_CODE_DCMI_SPEC_H
|
||||||
|
#define IPMI_COMP_CODE_DCMI_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* IPMI_CMD_DCMI_GET_POWER_LIMIT */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_NO_SET_POWER_LIMIT 0x80
|
||||||
|
#define IPMI_COMP_CODE_DCMI_NO_SET_POWER_LIMIT_STR \
|
||||||
|
"No Set Power Limit"
|
||||||
|
|
||||||
|
/* IPMI_CMD_DCMI_SET_POWER_LIMIT */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_POWER_LIMIT_OUT_OF_RANGE 0x84
|
||||||
|
#define IPMI_COMP_CODE_DCMI_POWER_LIMIT_OUT_OF_RANGE_STR \
|
||||||
|
"Power Limit out of range"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_CORRECTION_TIME_OUT_OF_RANGE 0x85
|
||||||
|
#define IPMI_COMP_CODE_DCMI_CORRECTION_TIME_OUT_OF_RANGE_STR \
|
||||||
|
"Correction Time out of range"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_STATISTICS_REPORTING_PERIOD_OUT_OF_RANGE 0x89 /* not a typo, is 0x89 */
|
||||||
|
#define IPMI_COMP_CODE_DCMI_STATISTICS_REPORTING_PERIOD_OUT_OF_RANGE_STR \
|
||||||
|
"Statistics Reporting Period out of range"
|
||||||
|
|
||||||
|
/* IPMI_CMD_DCMI_GET_ASSET_TAG */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_BINARY_UNSPECIFIED 0x80
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_BINARY_UNSPECIFIED_STR \
|
||||||
|
"Encoding type in FRU is binary / unspecified"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_BCD_PLUS 0x81
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_BCD_PLUS_STR \
|
||||||
|
"Encoding type in FRU is BCD Plus"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_6BIT_ASCII_PACKED 0x82
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_6BIT_ASCII_PACKED_STR \
|
||||||
|
"Encoding type in FRU is 6-bit ASCII Packed"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_SET_TO_ASCII_LATIN1_NOT_ENGLISH 0x83
|
||||||
|
#define IPMI_COMP_CODE_DCMI_ENCODING_TYPE_IN_FRU_IS_SET_TO_ASCII_LATIN1_NOT_ENGLISH_STR \
|
||||||
|
"Encoding type in FRU is set to ASCII+Latin1 but language code is " \
|
||||||
|
"not set to English (indicating data is 2-byte UNICODE)"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_COMP_CODE_DCMI_SPEC_H */
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* 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_COMP_CODE_OEM_SPEC_H
|
||||||
|
#define IPMI_COMP_CODE_OEM_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-comp-code-oem-spec.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-comp-code-oem-wistron-spec.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_COMP_CODE_OEM_SPEC_H */
|
713
source/freeipmi/usr/include/freeipmi/spec/ipmi-comp-code-spec.h
Normal file
713
source/freeipmi/usr/include/freeipmi/spec/ipmi-comp-code-spec.h
Normal file
|
@ -0,0 +1,713 @@
|
||||||
|
/*
|
||||||
|
* 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_COMP_CODE_SPEC_H
|
||||||
|
#define IPMI_COMP_CODE_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_SUCCESS 0x00
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_SUCCESS_STR \
|
||||||
|
"Command Completed Normally."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_NODE_BUSY 0xC0
|
||||||
|
#define IPMI_COMP_CODE_NODE_BUSY_STR \
|
||||||
|
"Node Busy. Command could not be processed because command " \
|
||||||
|
"processing resources are temporarily unavailable."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_INVALID_COMMAND 0xC1
|
||||||
|
#define IPMI_COMP_CODE_INVALID_COMMAND_STR \
|
||||||
|
"Invalid Command. Used to indicate an unrecognized or unsupported command."
|
||||||
|
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_INVALID_FOR_LUN 0xC2
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_INVALID_FOR_LUN_STR \
|
||||||
|
"Command invalid for given LUN."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_TIMEOUT 0xC3
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_TIMEOUT_STR \
|
||||||
|
"Timeout while processing command. Response unavailable."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_OUT_OF_SPACE 0xC4
|
||||||
|
#define IPMI_COMP_CODE_OUT_OF_SPACE_STR \
|
||||||
|
"Out of space. Command could not be completed because of a " \
|
||||||
|
"lack of storage space required to execute the given command " \
|
||||||
|
"operation."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_RESERVATION_CANCELLED 0xC5
|
||||||
|
#define IPMI_COMP_CODE_RESERVATION_CANCELLED_STR \
|
||||||
|
"Reservation Canceled or Invalid Reservation ID."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_INVALID_RESERVATION_ID IPMI_COMP_CODE_RESERVATION_CANCELLED
|
||||||
|
#define IPMI_COMP_CODE_INVALID_RESERVATION_ID_STR IPMI_COMP_CODE_RESERVATION_CANCELLED_STR
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_DATA_TRUNCATED 0xC6
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_DATA_TRUNCATED_STR \
|
||||||
|
"Request data truncated."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_DATA_LENGTH_INVALID 0xC7
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_DATA_LENGTH_INVALID_STR \
|
||||||
|
"Request data length invalid."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_DATA_LENGTH_LIMIT_EXCEEDED 0xC8
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_DATA_LENGTH_LIMIT_EXCEEDED_STR \
|
||||||
|
"Request data field length limit exceeded."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_PARAMETER_OUT_OF_RANGE 0xC9
|
||||||
|
#define IPMI_COMP_CODE_PARAMETER_OUT_OF_RANGE_STR \
|
||||||
|
"Parameter out of range. One or more parameters in the data " \
|
||||||
|
"field of the Request are out of range. This is different from " \
|
||||||
|
"'Invalid data field' (CCh) code in that it indicates that the " \
|
||||||
|
"erroneous field(s) has a contiguous range of possible values."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_CANNOT_RETURN_REQUESTED_NUMBER_OF_BYTES 0xCA
|
||||||
|
#define IPMI_COMP_CODE_CANNOT_RETURN_REQUESTED_NUMBER_OF_BYTES_STR \
|
||||||
|
"Cannot return number of requested data bytes."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_REQUESTED_SENSOR_DATA_OR_RECORD_NOT_PRESENT 0xCB
|
||||||
|
#define IPMI_COMP_CODE_REQUESTED_SENSOR_DATA_OR_RECORD_NOT_PRESENT_STR \
|
||||||
|
"Requested Sensor, data, or record not present."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_INVALID_DATA_FIELD_IN_REQUEST 0xCC
|
||||||
|
#define IPMI_COMP_CODE_INVALID_DATA_FIELD_IN_REQUEST_STR \
|
||||||
|
"Invalid data field in Request"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_ILLEGAL_FOR_SENSOR_OR_RECORD_TYPE 0xCD
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_ILLEGAL_FOR_SENSOR_OR_RECORD_TYPE_STR \
|
||||||
|
"Command illegal for specified sensor or record type."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_RESPONSE_COULD_NOT_BE_PROVIDED 0xCE
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_RESPONSE_COULD_NOT_BE_PROVIDED_STR \
|
||||||
|
"Command response could not be provided."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_CANNOT_EXECUTE_DUPLICATE_REQUEST 0xCF
|
||||||
|
#define IPMI_COMP_CODE_CANNOT_EXECUTE_DUPLICATE_REQUEST_STR \
|
||||||
|
"Cannot execute duplicated request. This completion code is " \
|
||||||
|
"for devices which cannot return the response that was returned " \
|
||||||
|
"for the original instance of the request. Such devices should " \
|
||||||
|
"provide separate commands that allow the completion status of " \
|
||||||
|
"the original request to be determined. An Event Receiver does not " \
|
||||||
|
"use this completion code, but returns the 00h completion code in " \
|
||||||
|
"the response to (valid) duplicated requests."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SDR_REPOSITORY_IN_UPDATE_MODE 0xD0
|
||||||
|
#define IPMI_COMP_CODE_SDR_REPOSITORY_IN_UPDATE_MODE_STR \
|
||||||
|
"Command response could not be provided. SDR Repository in " \
|
||||||
|
"update mode."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DEVICE_IN_FIRMWARE_UPDATE_MODE 0xD1
|
||||||
|
#define IPMI_COMP_CODE_DEVICE_IN_FIRMWARE_UPDATE_MODE_STR \
|
||||||
|
"Command response could not be provided. Device in firmware " \
|
||||||
|
"update mode."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_BMC_INITIALIZATION_IN_PROGRESS 0xD2
|
||||||
|
#define IPMI_COMP_CODE_BMC_INITIALIZATION_IN_PROGRESS_STR \
|
||||||
|
"Command response could not be provided. BMC initialization or " \
|
||||||
|
"initialization agent in progress."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DESTINATION_UNAVAILABLE 0xD3
|
||||||
|
#define IPMI_COMP_CODE_DESTINATION_UNAVAILABLE_STR \
|
||||||
|
"Destination unavailable. Cannot deliver request to selected " \
|
||||||
|
"destination. E.g. this code can be returned if a request message " \
|
||||||
|
"is targeted to SMS, but receive message queue reception is disabled " \
|
||||||
|
"for the particular channel."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_INSUFFICIENT_PRIVILEGE_LEVEL 0xD4
|
||||||
|
#define IPMI_COMP_CODE_INSUFFICIENT_PRIVILEGE_LEVEL_STR \
|
||||||
|
"Cannot execute command due to insufficient privilege level or other " \
|
||||||
|
"security-based restriction (e.g. disabled for 'firmware firewall')."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_PARAMETER_NOT_SUPPORTED 0xD5
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"Cannot execute command. Command, or request parameter(s), not " \
|
||||||
|
"supported in present state."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_PARAMETER_ILLEGAL 0xD6
|
||||||
|
#define IPMI_COMP_CODE_REQUEST_PARAMETER_ILLEGAL_STR \
|
||||||
|
"Cannot execute command. Parameter is illegal because command " \
|
||||||
|
"sub-function has been disabled or is unavailable " \
|
||||||
|
"(e.g. disabled for 'firmware firewall')."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_UNSPECIFIED_ERROR 0xFF
|
||||||
|
#define IPMI_COMP_CODE_UNSPECIFIED_ERROR_STR \
|
||||||
|
"Unspecified error."
|
||||||
|
|
||||||
|
/* DEVICE-SPECIFIC (OEM) CODES 01h-7Eh
|
||||||
|
This range is used for command-specific codes that are also
|
||||||
|
specific for a particular device and version. A-priori knowledge of
|
||||||
|
the device command set is required for interpretation of these
|
||||||
|
codes. */
|
||||||
|
|
||||||
|
/* COMMAND-SPECIFIC CODES 80h-BEh 80h-BEh
|
||||||
|
Standard command-specific codes. This range is reserved for
|
||||||
|
command-specific completion codes for commands specified in this
|
||||||
|
document. */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IPMI Device "Global Commands"
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_COMMAND_ENABLES */
|
||||||
|
#define IPMI_COMP_CODE_SET_COMMAND_ENABLES_ATTMPT_TO_ENABLE_AN_UNSUPPORTED_OR_UNCONFIGURABLE_COMMAND 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_COMMAND_ENABLES_ATTMPT_TO_ENABLE_AN_UNSUPPORTED_OR_UNCONFIGURABLE_COMMAND_STR \
|
||||||
|
"attempt to enable an unsupported or un-configurable command"
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_COMMAND_SUB_FUNCTION_ENABLES */
|
||||||
|
#define IPMI_COMP_CODE_SET_COMMAND_SUB_FUNCTION_ENABLES_ATTMPT_TO_ENABLE_AN_UNSUPPORTED_OR_UNCONFIGURABLE_COMMAND 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_COMMAND_SUB_FUNCTION_ENABLES_ATTMPT_TO_ENABLE_AN_UNSUPPORTED_OR_UNCONFIGURABLE_COMMAND_STR \
|
||||||
|
"attempt to enable an unsupported or un-configurable command"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_COMMAND_SUB_FUNCTION_ENABLES */
|
||||||
|
#define IPMI_COMP_CODE_GET_COMMAND_SUB_FUNCTION_ENABLES_ATTMPT_TO_ENABLE_AN_UNSUPPORTED_OR_UNCONFIGURABLE_COMMAND 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_COMMAND_SUB_FUNCTION_ENABLES_ATTMPT_TO_ENABLE_AN_UNSUPPORTED_OR_UNCONFIGURABLE_COMMAND_STR \
|
||||||
|
"attempt to enable an unsupported or un-configurable command"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* BMC Watchdog Timer Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_RESET_WATCHDOG_TIMER */
|
||||||
|
#define IPMI_COMP_CODE_RESET_WATCHDOG_TIMER_ATTEMPT_TO_START_UNINITIALIZED_WATCHDOG 0x80
|
||||||
|
#define IPMI_COMP_CODE_RESET_WATCHDOG_TIMER_ATTEMPT_TO_START_UNINITIALIZED_WATCHDOG_STR \
|
||||||
|
"Attempt to start un-initialized watchdog."
|
||||||
|
|
||||||
|
/*
|
||||||
|
* BMC Device and Messaging Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_MESSAGE */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_MESSAGE_DATA_NOT_AVAILABLE 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_MESSAGE_DATA_NOT_AVAILABLE_STR \
|
||||||
|
"data not available (queue/buffer empty)"
|
||||||
|
|
||||||
|
/* IPMI_CMD_SEND_MESSAGE */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_INVALID_SESSION_HANDLE 0x80
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_INVALID_SESSION_HANDLE_STR \
|
||||||
|
"Invalid Session Handle. The session handle does not match up with any " \
|
||||||
|
"currently active sessions for this channel."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_LOST_ARBITRATION 0x81
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_LOST_ARBITRATION_STR \
|
||||||
|
"Lost Arbitration"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_BUS_ERROR 0x82
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_BUS_ERROR_STR \
|
||||||
|
"Bus Error"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_NAK_ON_WRITE 0x83
|
||||||
|
#define IPMI_COMP_CODE_SEND_MESSAGE_NAK_ON_WRITE_STR \
|
||||||
|
"NAK on Write"
|
||||||
|
|
||||||
|
/* IPMI_CMD_MASTER_WRITE_READ */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_LOST_ARBITRATION 0x81
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_LOST_ARBITRATION_STR \
|
||||||
|
"Lost Arbitration"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_BUS_ERROR 0x82
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_BUS_ERROR_STR \
|
||||||
|
"Bus Error"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_NAK_ON_WRITE 0x83
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_NAK_ON_WRITE_STR \
|
||||||
|
"NAK on Write"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_TRUNCATED_READ 0x84
|
||||||
|
#define IPMI_COMP_CODE_MASTER_WRITE_READ_TRUNCATED_READ_STR \
|
||||||
|
"Truncated Read"
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_SYSTEM_INFO_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_INVALID_SET_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_INVALID_SET_IN_PROGRESS_STR \
|
||||||
|
"attempt to set the 'set in progress' value (in parameter #0) " \
|
||||||
|
"when not int the 'set complete' state."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_WRITE_READ_ONLY_PARAMETER 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_WRITE_READ_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to write read-only parameter"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_READ_WRITE_ONLY_PARAMETER 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_SYSTEM_INFO_PARAMETERS_READ_WRITE_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to read write-only parameter"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_SYSTEM_INFO_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_SYSTEM_INFO_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_SYSTEM_INFO_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_SESSION_CHALLENGE */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_SESSION_CHALLENGE_INVALID_USERNAME 0x81
|
||||||
|
#define IPMI_COMP_CODE_GET_SESSION_CHALLENGE_INVALID_USERNAME_STR \
|
||||||
|
"Invalid user name"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_SESSION_CHALLENGE_NULL_USERNAME_NOT_ENABLED 0x82
|
||||||
|
#define IPMI_COMP_CODE_GET_SESSION_CHALLENGE_NULL_USERNAME_NOT_ENABLED_STR \
|
||||||
|
"Null user name (User 1) not enabled"
|
||||||
|
|
||||||
|
/* IPMI_CMD_ACTIVATE_SESSION */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_NO_SESSION_SLOT_AVAILABLE 0x81
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_NO_SESSION_SLOT_AVAILABLE_STR \
|
||||||
|
"No session slot available (BMC cannot accept any more sessions)"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_NO_SLOT_AVAILABLE_FOR_GIVEN_USER 0x82
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_NO_SLOT_AVAILABLE_FOR_GIVEN_USER_STR \
|
||||||
|
"No slot available for given user. (Limit of user sessions " \
|
||||||
|
"allowed under that name has been reached)"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_NO_SLOT_AVAILABLE_TO_SUPPORT_USER 0x83
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_NO_SLOT_AVAILALBE_TO_SUPPORT_USER_STR \
|
||||||
|
"No slot available to support user due to maximum privilege " \
|
||||||
|
"capability. (An implementation may only be able to support " \
|
||||||
|
"a certain number of sessions based on what authentication " \
|
||||||
|
"resources are required. For example, if User Level " \
|
||||||
|
"Authentication is disabled, an implementation may be able " \
|
||||||
|
"to allow a larger number of users that are limited to User " \
|
||||||
|
"Level privilege, than users that require higher privilege."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_SESSION_SEQ_NUM_OUT_OF_RANGE 0x84
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_SESSION_SEQ_NUM_OUT_OF_RANGE_STR \
|
||||||
|
"Session sequence number out-of-range"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_INVALID_SESSION_ID 0x85
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_INVALID_SESSION_ID_STR \
|
||||||
|
"Invalid session ID in request"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_EXCEEDS_PRIVILEGE_LEVEL 0x86
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_SESSION_EXCEEDS_PRIVILEGE_LEVEL_STR \
|
||||||
|
"Requested maximum privilege level exceeds user and/or " \
|
||||||
|
"channel privilege limit"
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_SESSION_PRIVILEGE_LEVEL */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_REQUESTED_LEVEL_NOT_AVAILABLE_FOR_USER 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_REQUESTED_LEVEL_NOT_AVAILABLE_FOR_USER_STR \
|
||||||
|
"Requested level not available for this user"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_REQUESTED_LEVEL_EXCEEDS_USER_PRIVILEGE_LIMIT 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_REQUESTED_LEVEL_EXCEEDS_USER_PRIVILEGE_LIMIT_STR \
|
||||||
|
"Requested level exceeds Channel and/or User Privilege Limit"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_CANNOT_DISABLE_USER_LEVEL_AUTHENTICATION 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_SESSION_PRIVILEGE_LEVEL_CANNOT_DISABLE_USER_LEVEL_AUTHENTICATION_STR \
|
||||||
|
"Cannot disable User Level authentication"
|
||||||
|
|
||||||
|
/* IPMI_CMD_CLOSE_SESSION */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_CLOSE_SESSION_INVALID_SESSION_ID_IN_REQUEST 0x87
|
||||||
|
#define IPMI_COMP_CODE_CLOSE_SESSION_INVALID_SESSION_ID_IN_REQUEST_STR \
|
||||||
|
"Invalid session ID in request"
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_CHANNEL_ACCESS */
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_ACCESS_SET_NOT_SUPPORTED_ON_SELECTED_CHANNEL 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_ACCESS_SET_NOT_SUPPORTED_ON_SELECTED_CHANNEL_STR \
|
||||||
|
"set not supported on selected channel"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_ACCESS_ACCESS_MODE_NOT_SUPPORTED 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_ACCESS_ACCESS_MODE_NOT_SUPPORTED_STR \
|
||||||
|
"access mode not supported"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_CHANNEL_ACCESS */
|
||||||
|
#define IPMI_COMP_CODE_GET_CHANNEL_ACCESS_COMMAND_NOT_SUPPORTED_FOR_SELECTED_CHANNEL 0x82
|
||||||
|
#define IPMI_COMP_CODE_GET_CHANNEL_ACCESS_COMMAND_NOT_SUPPORTED_FOR_SELECTED_CHANNEL_STR \
|
||||||
|
"command not supported for selected channel"
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_USER_PASSWORD_COMMAND */
|
||||||
|
#define IPMI_COMP_CODE_SET_USER_PASSWORD_COMMAND_PASSWORD_TEST_FAILED_PASSWORD_SIZE_CORRECT 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_USER_PASSWORD_COMMAND_PASSWORD_TEST_FAILED_PASSWORD_SIZE_CORRECT_STR \
|
||||||
|
"password test failed. Password size correct, but password " \
|
||||||
|
"data does not match stored value."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_USER_PASSWORD_COMMAND_PASSWORD_TEST_FAILED_PASSWORD_SIZE_INCORRECT 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_USER_PASSWORD_COMMAND_PASSWORD_TEST_FAILED_PASSWORD_SIZE_INCORRECT_STR \
|
||||||
|
"password test failed. Wrong password size was used."
|
||||||
|
|
||||||
|
/* IPMI_CMD_ACTIVATE_PAYLOAD */
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_PAYLOAD_ALREADY_ACTIVE_ON_ANOTHER_SESSION 0x80
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_PAYLOAD_ALREADY_ACTIVE_ON_ANOTHER_SESSION_STR \
|
||||||
|
"Payload already active on another session"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_PAYLOAD_TYPE_IS_DISABLED 0x81
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_PAYLOAD_TYPE_IS_DISABLED_STR \
|
||||||
|
"Payload type disabled. Given payload type is not configured " \
|
||||||
|
"to be enabled for activation."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_PAYLOAD_ACTIVATION_LIMIT_REACHED 0x82
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_PAYLOAD_ACTIVATION_LIMIT_REACHED_STR \
|
||||||
|
"Payload activation limit reached. Cannot activate given payload type " \
|
||||||
|
"because the maximum number of simultaneous instances of that payload type " \
|
||||||
|
"are already running."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_CANNOT_ACTIVATE_PAYLOAD_WITH_ENCRYPTION 0x83
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_CANNOT_ACTIVATE_PAYLOAD_WITH_ENCRYPTION_STR \
|
||||||
|
"Cannot activate payload with encryption."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_CANNOT_ACTIVATE_PAYLOAD_WITHOUT_ENCRYPTION 0x84
|
||||||
|
#define IPMI_COMP_CODE_ACTIVATE_PAYLOAD_CANNOT_ACTIVATE_PAYLOAD_WITHOUT_ENCRYPTION_STR \
|
||||||
|
"Cannot activate payload without encryption. BMC requires encryption " \
|
||||||
|
"for all payloads for given privilege level."
|
||||||
|
|
||||||
|
/* IPMI_CMD_DEACTIVATE_PAYLOAD */
|
||||||
|
#define IPMI_COMP_CODE_DEACTIVATE_PAYLOAD_PAYLOAD_ALREADY_DEACTIVATED 0x80
|
||||||
|
#define IPMI_COMP_CODE_DEACTIVATE_PAYLOAD_PAYLOAD_ALREADY_DEACTIVATED_STR \
|
||||||
|
"Payload already deactivated"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DEACTIVATE_PAYLOAD_PAYLOAD_TYPE_IS_DISABLED 0x81
|
||||||
|
#define IPMI_COMP_CODE_DEACTIVATE_PAYLOAD_PAYLOAD_TYPE_IS_DISABLED_STR \
|
||||||
|
"Payload type disabled. Given payload type is not configured " \
|
||||||
|
"to be enabled for activation."
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_CHANNEL_PAYLOAD_VERSION */
|
||||||
|
#define IPMI_COMP_CODE_GET_CHANNEL_PAYLOAD_VERSION_PAYLOAD_TYPE_NOT_AVAILABLE_ON_GIVEN_CHANNEL 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_CHANNEL_PAYLOAD_VERSION_PAYLOAD_TYPE_NOT_AVAILABLE_ON_GIVEN_CHANNEL_STR \
|
||||||
|
"Payload type not available on given channel"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_CHANNEL_OEM_PAYLOAD_INFO */
|
||||||
|
#define IPMI_COMP_CODE_GET_CHANNEL_OEM_PAYLOAD_INFO_OEM_PAYLOAD_IANA_OR_PAYLOAD_ID_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_CHANNEL_OEM_PAYLOAD_INFO_OEM_PAYLOAD_IANA_OR_PAYLOAD_ID_NOT_SUPPORTED_STR \
|
||||||
|
"OEM Payload IANA and/or Payload ID not supported"
|
||||||
|
|
||||||
|
/* IPMI_CMD_SUSPEND_RESUME_PAYLOAD_ENCRYPTION */
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_OPERATION_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_OPERATION_NOT_SUPPORTED_STR \
|
||||||
|
"Operation not supported for given payload type."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_OPERATION_NOT_ALLOWED_UNDER_PRESENT_CONFIGURATION 0x81
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_OPERATION_NOT_ALLOWED_UNDER_PRESENT_CONFIGURATION_STR \
|
||||||
|
"Operation now allowed under present configuration for given payload type."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_ENCRYPTION_IS_NOT_AVAILABLE_FOR_SESSION 0x82
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_ENCRYPTION_IS_NOT_AVAILABLE_FOR_SESSION_STR \
|
||||||
|
"Encryption is not available for session that payload type is active under."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_PAYLOAD_INSTANCE_NOT_PRESENTLY_ACTIVE 0x83
|
||||||
|
#define IPMI_COMP_CODE_SUSPEND_RESUME_PAYLOAD_ENCRYPTION_PAYLOAD_INSTANCE_NOT_PRESENTLY_ACTIVE_STR \
|
||||||
|
"The payload instance is not presently active."
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_CHANNEL_SECURITY_KEYS */
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_CANNOT_PERFORM_SET_CONFIRM_KEY_IS_LOCKED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_CANNOT_PERFORM_SET_CONFIRM_KEY_IS_LOCKED_STR \
|
||||||
|
"Cannot perform set/confirm. Key is locked"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_INSUFFICIENT_KEY_BYTES 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_INSUFFICIENT_KEY_BYTES_STR \
|
||||||
|
"insufficient key bytes"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_TOO_MANY_KEY_BYTES 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_TOO_MANY_KEY_BYTES_STR \
|
||||||
|
"too many key bytes"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_KEY_VALUE_DOES_NOT_MEET_CRITERIA 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_KEY_VALUE_DOES_NOT_MEET_CRITERIA_STR \
|
||||||
|
"key value does not meet criteria for specified type of key"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_KR_IS_NOT_USED 0x84
|
||||||
|
#define IPMI_COMP_CODE_SET_CHANNEL_SECURITY_KEYS_KR_IS_NOT_USED_STR \
|
||||||
|
"K_R is not used. BMC uses a random number generation approach " \
|
||||||
|
"that does not require a K_R value"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Chassis Device Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_SYSTEM_BOOT_OPTIONS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_INVALID_SET_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_INVALID_SET_IN_PROGRESS_STR \
|
||||||
|
"attempt to set the 'set in progress' value (in parameter #0) " \
|
||||||
|
"when not int the 'set complete' state."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_WRITE_READ_ONLY_PARAMETER 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_WRITE_READ_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to write read-only parameter"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_READ_WRITE_ONLY_PARAMETER 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_BOOT_OPTIONS_READ_WRITE_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to read write-only parameter"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_SYSTEM_BOOT_OPTIONS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_BOOT_OPTIONS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_BOOT_OPTIONS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Event Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PEF and Alerting Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_PEF_CONFIGURATION_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_INVALID_SET_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_INVALID_SET_IN_PROGRESS_STR \
|
||||||
|
"attempt to set the 'set in progress' value (in parameter #0) " \
|
||||||
|
"when not int the 'set complete' state."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_WRITE_READ_ONLY_PARAMETER 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_WRITE_READ_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to write read-only parameter"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_READ_WRITE_ONLY_PARAMETER 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_PEF_CONFIGURATION_PARAMETERS_READ_WRITE_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to read write-only parameter"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_PEF_CONFIGURATION_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_PEF_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_PEF_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_LAST_PROCESSED_EVENT_ID */
|
||||||
|
#define IPMI_COMP_CODE_SET_LAST_PROCESSED_EVENT_ID_SEL_ERASE_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_LAST_PROCESSED_EVENT_ID_SEL_ERASE_IN_PROGRESS_STR \
|
||||||
|
"cannot execute command, SEL erase in progress"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_LAST_PROCESSED_EVENT_ID */
|
||||||
|
#define IPMI_COMP_CODE_GET_LAST_PROCESSED_EVENT_ID_SEL_ERASE_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_GET_LAST_PROCESSED_EVENT_ID_SEL_ERASE_IN_PROGRESS_STR \
|
||||||
|
"cannot execute command, SEL erase in progress"
|
||||||
|
|
||||||
|
/* IPMI_CMD_ALERT_IMMEDIATE */
|
||||||
|
#define IPMI_COMP_CODE_ALERT_ALREADY_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_ALERT_ALREADY_IN_PROGRESS_STR \
|
||||||
|
"Alert Immediate rejected due to alert already in progress"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_ALERT_IPMI_MESSAGING_SESSION_ACTIVE 0x82
|
||||||
|
#define IPMI_COMP_CODE_ALERT_IPMI_MESSAGING_SESSION_ACTIVE_STR \
|
||||||
|
"Alert Immedate rejected due to IPMI messaging session active on this channel"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sensor Device Commands
|
||||||
|
*/
|
||||||
|
/* IPMI_CMD_SET_SENSOR_READING_AND_EVENT_STATUS */
|
||||||
|
#define IPMI_COMP_CODE_SENSOR_READING_OR_STATUS_NOT_SETTABLE 0x80
|
||||||
|
#define IPMI_COMP_CODE_SENSOR_READING_OR_STATUS_NOT_SETTABLE_STR \
|
||||||
|
"Attempt to change reading or set or clear status bits that " \
|
||||||
|
"are not settable via this command"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_EVENT_DATA_BYTES_NOT_SETTABLE 0x81
|
||||||
|
#define IPMI_COMP_CODE_EVENT_DATA_BYTES_NOT_SETTABLE_STR \
|
||||||
|
"Attempted to set Event Data Bytes, but setting Event Data Bytes is not " \
|
||||||
|
"supported for this sensor."
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FRU Device Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_READ_FRU_DATA */
|
||||||
|
#define IPMI_COMP_CODE_READ_FRU_DATA_FRU_DEVICE_BUSY 0x81
|
||||||
|
#define IPMI_COMP_CODE_READ_FRU_DATA_FRU_DEVICE_BUSY_STR \
|
||||||
|
"FRU device busy. The requested cannot be completed because the " \
|
||||||
|
"implementation of the logical FRU device is in a state where the FRU " \
|
||||||
|
"information is temporarily unavailable. This could be due to a " \
|
||||||
|
"condition such as a loss of arbitration if the FRU is implemented as a " \
|
||||||
|
"device on a shared bus."
|
||||||
|
|
||||||
|
/* IPMI_CMD_WRITE_FRU_DATA */
|
||||||
|
#define IPMI_COMP_CODE_WRITE_FRU_DATA_WRITE_PROTECTED_OFFSET 0x80
|
||||||
|
#define IPMI_COMP_CODE_WRITE_FRU_DATA_WRITE_PROTECTED_OFFSET_STR \
|
||||||
|
"write-protected offset. Cannot complete write because one or more " \
|
||||||
|
"bytes of FRU data are to a write-protected offset in the FRU device. " \
|
||||||
|
"Note that an implementation may have allowed a 'partial write' of the " \
|
||||||
|
"data to occur."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_WRITE_FRU_DATA_FRU_DEVICE_BUSY 0x81
|
||||||
|
#define IPMI_COMP_CODE_WRITE_FRU_DATA_FRU_DEVICE_BUSY_STR \
|
||||||
|
"FRU device busy. The requested cannot be completed because the " \
|
||||||
|
"implementation of the logical FRU device is in a state where the FRU " \
|
||||||
|
"information is temporarily unavailable. This could be due to a " \
|
||||||
|
"condition such as a loss of arbitration if the FRU is implemented as a " \
|
||||||
|
"device on a shared bus."
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDR Device Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SEL Device Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_SEL_ENTRY */
|
||||||
|
#define IPMI_COMP_CODE_GET_SEL_ENTRY_SEL_ERASE_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_GET_SEL_ENTRY_SEL_ERASE_IN_PROGRESS_STR \
|
||||||
|
"cannot execute command, SEL erase in progress"
|
||||||
|
|
||||||
|
/* IPMI_CMD_DELETE_SEL_ENTRY */
|
||||||
|
#define IPMI_COMP_CODE_DELETE_SEL_ENTRY_SEL_OPERATION_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_DELETE_SEL_ENTRY_SEL_OPERATION_NOT_SUPPORTED_STR \
|
||||||
|
"Operation not supported for this Record Type"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DELETE_SEL_ENTRY_SEL_ERASE_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_DELETE_SEL_ENTRY_SEL_ERASE_IN_PROGRESS_STR \
|
||||||
|
"cannot execute command, SEL erase in progress"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LAN Device Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_LAN_CONFIGURATION_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_INVALID_SET_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_INVALID_SET_IN_PROGRESS_STR \
|
||||||
|
"attempt to set the 'set in progress' value (in parameter #0) " \
|
||||||
|
"when not int the 'set complete' state."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_WRITE_READ_ONLY_PARAMETER 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_WRITE_READ_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to write read-only parameter"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_READ_WRITE_ONLY_PARAMETER 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_LAN_CONFIGURATION_PARAMETERS_READ_WRITE_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to read write-only parameter"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_LAN_CONFIGURATION_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_LAN_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_LAN_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Serial/Modem Device Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_SERIAL_MODEM_CONFIGURATION */
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_INVALID_SET_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_INVALID_SET_IN_PROGRESS_STR \
|
||||||
|
"attempt to set the 'set in progress' value (in parameter #0) " \
|
||||||
|
"when not int the 'set complete' state."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_WRITE_READ_ONLY_PARAMETER 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_WRITE_READ_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to write read-only parameter"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_READ_WRITE_ONLY_PARAMETER 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_SERIAL_MODEM_CONFIGURATION_READ_WRITE_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to read write-only parameter"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_SERIAL_MODEM_CONFIGURATION */
|
||||||
|
#define IPMI_COMP_CODE_GET_SERIAL_MODEM_CONFIGURATION_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_SERIAL_MODEM_CONFIGURATION_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
/* IPMI_CMD_SET_SOL_CONFIGURATION_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_INVALID_SET_IN_PROGRESS 0x81
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_INVALID_SET_IN_PROGRESS_STR \
|
||||||
|
"attempt to set the 'set in progress' value (in parameter #0) " \
|
||||||
|
"when not int the 'set complete' state."
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_WRITE_READ_ONLY_PARAMETER 0x82
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_WRITE_READ_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to write read-only parameter"
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_READ_WRITE_ONLY_PARAMETER 0x83
|
||||||
|
#define IPMI_COMP_CODE_SET_SOL_CONFIGURATION_PARAMETERS_READ_WRITE_ONLY_PARAMETER_STR \
|
||||||
|
"attempt to read write-only parameter"
|
||||||
|
|
||||||
|
/* IPMI_CMD_GET_SOL_CONFIGURATION_PARAMETERS */
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GET_SOL_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED 0x80
|
||||||
|
#define IPMI_COMP_CODE_GET_SOL_CONFIGURATION_PARAMETERS_PARAMETER_NOT_SUPPORTED_STR \
|
||||||
|
"parameter not supported."
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bridge Management Commands (ICMB)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Discovery Commands (ICMB)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bridging Commands (ICMB)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Event Commands (ICMB)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OEM Commands for Bridge NetFN
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OEM Bridge Commands
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GENERIC_COMPLETION_CODES_MIN 0xC0
|
||||||
|
#define IPMI_COMP_CODE_GENERIC_COMPLETION_CODES_MAX 0xFF
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_GENERIC_COMPLETION_CODES(__comp_code) \
|
||||||
|
(((__comp_code) == IPMI_COMP_CODE_COMMAND_SUCCESS \
|
||||||
|
|| ((__comp_code) >= IPMI_COMP_CODE_GENERIC_COMPLETION_CODES_MIN \
|
||||||
|
&& (__comp_code) <= IPMI_COMP_CODE_GENERIC_COMPLETION_CODES_MAX)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DEVICE_SPECIFIC_CODES_MIN 0x01
|
||||||
|
#define IPMI_COMP_CODE_DEVICE_SPECIFIC_CODES_MAX 0x7E
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_DEVICE_SPECIFIC_CODES(__comp_code) \
|
||||||
|
(((__comp_code) >= IPMI_COMP_CODE_DEVICE_SPECIFIC_CODES_MIN \
|
||||||
|
&& (__comp_code) <= IPMI_COMP_CODE_DEVICE_SPECIFIC_CODES_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_SPECIFIC_CODES_MIN 0x80
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_SPECIFIC_CODES_MAX 0xBE
|
||||||
|
|
||||||
|
#define IPMI_COMP_CODE_COMMAND_SPECIFIC_CODES(__comp_code) \
|
||||||
|
(((__comp_code) >= IPMI_COMP_CODE_COMMAND_SPECIFIC_CODES_MIN \
|
||||||
|
&& (__comp_code) <= IPMI_COMP_CODE_COMMAND_SPECIFIC_CODES_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_COMP_CODE_SPEC_H */
|
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* 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_DEVICE_TYPES_OEM_SPEC_H
|
||||||
|
#define IPMI_DEVICE_TYPES_OEM_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-device-types-oem-spec.h header file is deprecated
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DEVICE_TYPES_OEM_SPEC_H */
|
|
@ -0,0 +1,284 @@
|
||||||
|
/*
|
||||||
|
* 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_DEVICE_TYPES_SPEC_H
|
||||||
|
#define IPMI_DEVICE_TYPES_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Note that the macros are not in sequential order, per spec table 43-12 */
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_DS1624_TEMPERATURE_SENSOR_EEPROM_OR_EQUIVALENT 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_DS1621_TEMPERATURE_SENSOR_OR_EQUIVALENT 0x03
|
||||||
|
#define IPMI_DEVICE_TYPE_LM75_TEMPERATURE_SENSOR_OR_EQUIVALENT 0x04
|
||||||
|
#define IPMI_DEVICE_TYPE_HECETA_ASIC_OR_SIMILAR 0x05
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C01_OR_EQUIVALENT 0x08
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C02_OR_EQUIVALENT 0x09
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C04_OR_EQUIVALENT 0x0A
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C08_OR_EQUIVALENT 0x0B
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C16_OR_EQUIVALENT 0x0C
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C17_OR_EQUIVALENT 0x0D
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C32_OR_EQUIVALENT 0x0E
|
||||||
|
#define IPMI_DEVICE_TYPE_EEPROM_24C64_OR_EQUIVALENT 0x0F
|
||||||
|
#define IPMI_DEVICE_TYPE_FRU_INVENTORY_DEVICE_BEHIND_MANAGEMENT_CONTROLLER 0x10
|
||||||
|
#define IPMI_DEVICE_TYPE_PCF_8570_256_BYTE_RAM_OR_EQUIVALENT 0x14
|
||||||
|
#define IPMI_DEVICE_TYPE_PCF_8573_CLOCK_CALENDAR_OR_EQUIVALENT 0x15
|
||||||
|
#define IPMI_DEVICE_TYPE_PCF_8574A_IO_PORT_OR_EQUIVALENT 0x16
|
||||||
|
#define IPMI_DEVICE_TYPE_PCF_8583_CLOCK_CALENDAR_OR_EQUIVALENT 0x17
|
||||||
|
#define IPMI_DEVICE_TYPE_PCF_8593_CLOCK_CALENDAR_OR_EQUIVALENT 0x18
|
||||||
|
#define IPMI_DEVICE_TYPE_CLOCK_CALENDAR_TYPE_NOT_SPECIFIED 0x19
|
||||||
|
#define IPMI_DEVICE_TYPE_PCF_8591_AD_DA_CONVERTER_OR_EQUIVALENT 0x1A
|
||||||
|
#define IPMI_DEVICE_TYPE_IO_PORT_SPECIFIC_DEVICE_NOT_SPECIFIED 0x1B
|
||||||
|
#define IPMI_DEVICE_TYPE_AD_CONVERTER_SPECIFIC_DEVICE_NOT_SPECIFIED 0x1C
|
||||||
|
#define IPMI_DEVICE_TYPE_DA_CONVERTER_SPECIFIC_DEVICE_NOT_SPECIFIED 0x1D
|
||||||
|
#define IPMI_DEVICE_TYPE_AD_DA_CONVERTER_SPECIFIC_DEVICE_NOT_SPECIFIED 0x1E
|
||||||
|
#define IPMI_DEVICE_TYPE_LCD_CONTROLLER_DRIVER_SPECIFIC_DEVICE_NOT_SPECIFIED 0x1F
|
||||||
|
#define IPMI_DEVICE_TYPE_CORE_LOGIC_DEVICE_SPECIFIC_DEVICE_NOT_SPECIFIED 0x20
|
||||||
|
#define IPMI_DEVICE_TYPE_LMC6874_INTELLIGENT_BATTERY_CONTROLLER_OR_EQUIVALENT 0x21
|
||||||
|
#define IPMI_DEVICE_TYPE_INTELLIGENT_BATTERY_CONTROLLER_SPECIFIC_DEVICE_NOT_SPECIFIED 0x22
|
||||||
|
#define IPMI_DEVICE_TYPE_COMBO_MANAGEMENT_ASIC_SPECIFIC_DEVICE_NOT_SPECIFIED 0x23
|
||||||
|
#define IPMI_DEVICE_TYPE_MAXIM_1617_TEMPERATURE_SENSOR 0x24
|
||||||
|
#define IPMI_DEVICE_TYPE_OTHER_UNSPECIFIED_DEVICE 0xBF
|
||||||
|
#define IPMI_DEVICE_TYPE_OEM_MIN 0xC0
|
||||||
|
#define IPMI_DEVICE_TYPE_OEM_MAX 0xFF
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_DS1624_TEMPERATURE_SENSOR_EEPROM_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_DS1621_TEMPERATURE_SENSOR_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_LM75_TEMPERATURE_SENSOR_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_HECETA_ASIC_OR_SIMILAR_HECETA_1 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_HECETA_ASIC_OR_SIMILAR_HECETA_2 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_HECETA_ASIC_OR_SIMILAR_LM80 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_HECETA_ASIC_OR_SIMILAR_HECETA_3 0x03
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_HECETA_ASIC_OR_SIMILAR_HECETA_4 0x04
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_HECETA_ASIC_OR_SIMILAR_HECETA_5 0x05
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C01_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C01_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C01_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C01_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C02_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C02_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C02_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C02_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C04_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C04_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C04_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C04_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C08_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C08_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C08_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C08_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C16_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C16_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C16_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C16_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C17_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C17_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C17_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C17_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C32_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C32_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C32_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C32_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* PI = processor information */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C64_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C64_OR_EQUIVALENT_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C64_OR_EQUIVALENT_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_EEPROM_24C64_OR_EQUIVALENT_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
|
||||||
|
/* achu: not a typo, 00h and 0x02 are same. 00h for backwards compatability, see spec */
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_FRU_INVENTORY_DEVICE_BEHIND_MANAGEMENT_CONTROLLER_IPMI_FRU_INVENTORY_BACKWARDS_COMPATABILITY 0x00
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_FRU_INVENTORY_DEVICE_BEHIND_MANAGEMENT_CONTROLLER_DIMM_MEMORY_ID 0x01
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_FRU_INVENTORY_DEVICE_BEHIND_MANAGEMENT_CONTROLLER_IPMI_FRU_INVENTORY 0x02
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_FRU_INVENTORY_DEVICE_BEHIND_MANAGEMENT_CONTROLLER_SYSTEM_PROCESSOR_CARTRIDGE_FRU_PI_ROM 0x03
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_FRU_INVENTORY_DEVICE_BEHIND_MANAGEMENT_CONTROLLER_UNSPECIFIED 0xFF
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_PCF_8570_256_BYTE_RAM_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_PCF_8573_CLOCK_CALENDAR_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_PCF_8574A_IO_PORT_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_PCF_8583_CLOCK_CALENDAR_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_PCF_8593_CLOCK_CALENDAR_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_CLOCK_CALENDAR_TYPE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_PCF_8591_AD_DA_CONVERTER_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_IO_PORT_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_AD_CONVERTER_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_DA_CONVERTER_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_AD_DA_CONVERTER_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_LCD_CONTROLLER_DRIVER_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_CORE_LOGIC_DEVICE_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_LMC6874_INTELLIGENT_BATTERY_CONTROLLER_OR_EQUIVALENT_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_INTELLIGENT_BATTERY_CONTROLLER_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_COMBO_MANAGEMENT_ASIC_SPECIFIC_DEVICE_NOT_SPECIFIED_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_MAXIM_1617_TEMPERATURE_SENSOR_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_MODIFIER_OTHER_UNSPECIFIED_DEVICE_UNSPECIFIED 0x00
|
||||||
|
|
||||||
|
#define IPMI_DEVICE_TYPE_VALID(__device_type) \
|
||||||
|
((((__device_type) >= IPMI_DEVICE_TYPE_DS1624_TEMPERATURE_SENSOR_EEPROM_OR_EQUIVALENT \
|
||||||
|
&& (__device_type) <= IPMI_DEVICE_TYPE_HECETA_ASIC_OR_SIMILAR) \
|
||||||
|
|| ((__device_type) >= IPMI_DEVICE_TYPE_EEPROM_24C01_OR_EQUIVALENT \
|
||||||
|
&& (__device_type) <= IPMI_DEVICE_TYPE_FRU_INVENTORY_DEVICE_BEHIND_MANAGEMENT_CONTROLLER) \
|
||||||
|
|| ((__device_type) >= IPMI_DEVICE_TYPE_PCF_8570_256_BYTE_RAM_OR_EQUIVALENT \
|
||||||
|
&& (__device_type) <= IPMI_DEVICE_TYPE_MAXIM_1617_TEMPERATURE_SENSOR) \
|
||||||
|
|| (__device_type) == IPMI_DEVICE_TYPE_OTHER_UNSPECIFIED_DEVICE) ? 1 : 0)
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, subtract -1 in comparison */
|
||||||
|
#define IPMI_DEVICE_TYPE_IS_OEM(__device_type) \
|
||||||
|
(((__device_type) >= IPMI_DEVICE_TYPE_OEM_MIN \
|
||||||
|
&& (((__device_type) - 1) <= (IPMI_DEVICE_TYPE_OEM_MAX - 1))) ? 1 : 0)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* String arrays for above
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern const char *const ipmi_device_types[];
|
||||||
|
extern const char *const ipmi_oem_device_type;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_ds1624_temperature_sensor_eeprom_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_ds1624_temperature_sensor_eeprom_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_ds1621_temperature_sensor_eeprom_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_ds1621_temperature_sensor_eeprom_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_lm75_temperature_sensor_eeprom_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_lm75_temperature_sensor_eeprom_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_heceta_asic_or_similar[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_heceta_asic_or_similar_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c01_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c01_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c02_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c02_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c04_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c04_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c08_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c08_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c16_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c16_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c17_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c17_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c32_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c32_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_eeprom_24c64_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_eeprom_24c64_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_fru_inventory_device_behind_management_controller[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_fru_inventory_device_behind_management_controller_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_pcf_8570_256_byte_ram_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_pcf_8570_256_byte_ram_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_pcf_8573_clock_calendar_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_pcf_8573_clock_calendar_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_pcf_8574a_io_port_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_pcf_8574a_io_port_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_pcf_8583_clock_calendar_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_pcf_8583_clock_calendar_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_pcf_8593_clock_calendar_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_pcf_8593_clock_calendar_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_clock_calendar_type_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_clock_calendar_type_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_pcf_8591_ad_da_converter_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_pcf_8591_ad_da_converter_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_io_port_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_io_port_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_ad_converter_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_ad_converter_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_da_converter_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_da_converter_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_ad_da_converter_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_ad_da_converter_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_lcd_controller_driver_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_lcd_controller_driver_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_core_logic_device_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_core_logic_device_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_lmc6874_intelligent_battery_controller_or_equivalent[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_lmc6874_intelligent_battery_controller_or_equivalent_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_intelligent_battery_controller_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_intelligent_battery_controller_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_combo_management_asic_specific_device_not_specified[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_combo_management_asic_specific_device_not_specified_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_maxim_1617_temperature_sensor[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_maxim_1617_temperature_sensor_max_index;
|
||||||
|
|
||||||
|
extern const char * const ipmi_device_type_modifier_other_unspecified_device[];
|
||||||
|
extern unsigned int ipmi_device_type_modifier_other_unspecified_device_max_index;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_DEVICE_TYPES_SPEC_H */
|
150
source/freeipmi/usr/include/freeipmi/spec/ipmi-entity-ids-spec.h
Normal file
150
source/freeipmi/usr/include/freeipmi/spec/ipmi-entity-ids-spec.h
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
/*
|
||||||
|
* 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_ENTITY_IDS_SPEC_H
|
||||||
|
#define IPMI_ENTITY_IDS_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_ENTITY_ID_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_ENTITY_ID_OTHER 0x01
|
||||||
|
#define IPMI_ENTITY_ID_UNKNOWN 0x02
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSOR 0x03
|
||||||
|
#define IPMI_ENTITY_ID_DISK_OR_DISK_BAY 0x04
|
||||||
|
#define IPMI_ENTITY_ID_PERIPHERAL_BAY 0x05 /* "peripheral bay" in spec */
|
||||||
|
#define IPMI_ENTITY_ID_SYSTEM_MANAGEMENT_MODULE 0x06
|
||||||
|
#define IPMI_ENTITY_ID_SYSTEM_BOARD 0x07
|
||||||
|
#define IPMI_ENTITY_ID_MEMORY_MODULE 0x08
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSOR_MODULE 0x09
|
||||||
|
#define IPMI_ENTITY_ID_POWER_SUPPLY 0x0A
|
||||||
|
#define IPMI_ENTITY_ID_ADD_IN_CARD 0x0B
|
||||||
|
#define IPMI_ENTITY_ID_FRONT_PANEL_BOARD 0x0C
|
||||||
|
#define IPMI_ENTITY_ID_BACK_PANEL_BOARD 0x0D
|
||||||
|
#define IPMI_ENTITY_ID_POWER_SYSTEM_BOARD 0x0E
|
||||||
|
#define IPMI_ENTITY_ID_DRIVE_BACKPLANE 0x0F
|
||||||
|
#define IPMI_ENTITY_ID_SYSTEM_INTERNAL_EXPANSION_BOARD 0x10
|
||||||
|
#define IPMI_ENTITY_ID_OTHER_SYSTEM_BOARD 0x11
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSOR_BOARD 0x12
|
||||||
|
#define IPMI_ENTITY_ID_POWER_UNIT_POWER_DOMAIN 0x13
|
||||||
|
#define IPMI_ENTITY_ID_POWER_MODULE_DC_TO_DC_CONVERTER 0x14
|
||||||
|
#define IPMI_ENTITY_ID_POWER_MANAGEMENT_POWER_DISTRIBUTION_BOARD 0x15
|
||||||
|
#define IPMI_ENTITY_ID_CHASSI_BACK_PANEL_BOARD 0x16
|
||||||
|
#define IPMI_ENTITY_ID_SYSTEM_CHASSIS 0x17
|
||||||
|
#define IPMI_ENTITY_ID_SUB_CHASSIS 0x18
|
||||||
|
#define IPMI_ENTITY_ID_OTHER_CHASSIS_BOARD 0x19
|
||||||
|
#define IPMI_ENTITY_ID_DISK_DRIVE_BAY 0x1A
|
||||||
|
#define IPMI_ENTITY_ID_PERIPHERAL_BAY2 0x1B /* "Peripheral Bay" in spec */
|
||||||
|
#define IPMI_ENTITY_ID_DEVICE_BAY 0x1C
|
||||||
|
#define IPMI_ENTITY_ID_FAN_COOLING_DEVICE 0x1D
|
||||||
|
#define IPMI_ENTITY_ID_COOLING_UNIT_COOLING_DOMAIN 0x1E /* see errata */
|
||||||
|
#define IPMI_ENTITY_ID_CABLE_INTERCONNECT 0x1F
|
||||||
|
#define IPMI_ENTITY_ID_MEMORY_DEVICE 0x20
|
||||||
|
#define IPMI_ENTITY_ID_SYSTEM_MANAGEMENT_SOFTWARE 0x21
|
||||||
|
#define IPMI_ENTITY_ID_SYSTEM_FIRMWARE 0x22 /* see errata */
|
||||||
|
#define IPMI_ENTITY_ID_OPERATING_SYSTEM 0x23
|
||||||
|
#define IPMI_ENTITY_ID_SYSTEM_BUS 0x24
|
||||||
|
#define IPMI_ENTITY_ID_GROUP 0x25
|
||||||
|
#define IPMI_ENTITY_ID_REMOTE_MANAGEMENT_COMMUNICATION_DEVICE 0x26
|
||||||
|
#define IPMI_ENTITY_ID_EXTERNAL_ENVIRONMENT 0x27
|
||||||
|
#define IPMI_ENTITY_ID_BATTERY 0x28
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSING_BLADE 0x29
|
||||||
|
#define IPMI_ENTITY_ID_CONNECTIVITY_SWTICH 0x2A
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSOR_MEMORY_MODULE 0x2B
|
||||||
|
#define IPMI_ENTITY_ID_IO_MODULE 0x2C
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSOR_IO_MODULE 0x2D
|
||||||
|
#define IPMI_ENTITY_ID_MANAGEMENT_CONTROLLER_FIRMWARE 0x2E
|
||||||
|
#define IPMI_ENTITY_ID_IPMI_CHANNEL 0x2F
|
||||||
|
#define IPMI_ENTITY_ID_PCI_BUS 0x30
|
||||||
|
#define IPMI_ENTITY_ID_PCI_EXPRESS_BUS 0x31
|
||||||
|
#define IPMI_ENTITY_ID_SCSI_BUS 0x32
|
||||||
|
#define IPMI_ENTITY_ID_SATA_SAS_BUS 0x33
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSOR_FRONT_SIDE_BUS 0x34
|
||||||
|
#define IPMI_ENTITY_ID_REAL_TIME_CLOCK 0x35
|
||||||
|
/* 0x36 - reserved */
|
||||||
|
/* achu:
|
||||||
|
*
|
||||||
|
* Ugh .. 0x37 is listed as air inlet in markup 4 spec, but not in
|
||||||
|
* errata 4. Initial assumption was that it was a typo. Later, DCMI
|
||||||
|
* v1.5 spec lits 0x37 is inlet temperature.
|
||||||
|
*
|
||||||
|
* So the assumption is it's not a typo now, we'll list 0x37 as
|
||||||
|
* AIR_INLET "B"
|
||||||
|
*/
|
||||||
|
#define IPMI_ENTITY_ID_AIR_INLET_B 0x37
|
||||||
|
/* 0x38 - 0x3F - reserved */
|
||||||
|
#define IPMI_ENTITY_ID_AIR_INLET 0x40
|
||||||
|
#define IPMI_ENTITY_ID_AIR_INLET_A IPMI_ENTITY_ID_AIR_INLET
|
||||||
|
#define IPMI_ENTITY_ID_PROCESSOR_CPU 0x41 /* considered same as 0x03, to match DCMI */
|
||||||
|
#define IPMI_ENTITY_ID_BASEBOARD_MAIN_SYSTEM_BOARD 0x42 /* considered same as 0x07, to match DCMI */
|
||||||
|
#define IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MIN 0x90
|
||||||
|
#define IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MAX 0xAF
|
||||||
|
#define IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MIN 0xB0
|
||||||
|
#define IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MAX 0xCF
|
||||||
|
#define IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MIN 0xD0
|
||||||
|
#define IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MAX 0xFF
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_ENTITY_ID_VALID(__entity_id) \
|
||||||
|
((((__entity_id + 1) >= (IPMI_ENTITY_ID_UNSPECIFIED + 1) \
|
||||||
|
&& (__entity_id) <= IPMI_ENTITY_ID_REAL_TIME_CLOCK) \
|
||||||
|
|| ((__entity_id) >= IPMI_ENTITY_ID_AIR_INLET \
|
||||||
|
&& (__entity_id) <= IPMI_ENTITY_ID_BASEBOARD_MAIN_SYSTEM_BOARD)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ENTITY_ID_IS_CHASSIS_SPECIFIC(__entity_id) \
|
||||||
|
(((__entity_id) >= IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MIN \
|
||||||
|
&& ((__entity_id) <= IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MAX)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ENTITY_ID_IS_BOARD_SET_SPECIFIC(__entity_id) \
|
||||||
|
(((__entity_id) >= IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MIN \
|
||||||
|
&& ((__entity_id) <= IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MAX)) ? 1 : 0)
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, subtract -1 in comparison */
|
||||||
|
#define IPMI_ENTITY_ID_IS_OEM_SYSTEM_INTEGRATOR_DEFINED(__entity_id) \
|
||||||
|
(((__entity_id) >= IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MIN \
|
||||||
|
&& ((__entity_id - 1) <= (IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MAX - 1))) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MIN 0x00
|
||||||
|
#define IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MAX 0x5F
|
||||||
|
|
||||||
|
#define IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MIN 0x60
|
||||||
|
#define IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MAX 0x7F
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE(__entity_instance) \
|
||||||
|
(((__entity_instance + 1) >= (IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MIN + 1)) \
|
||||||
|
&& ((__entity_instance) >= IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE(__entity_instance) \
|
||||||
|
(((__entity_instance) >= IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MIN) \
|
||||||
|
&& ((__entity_instance) >= IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
extern const char *const ipmi_entity_ids[];
|
||||||
|
extern const char *const ipmi_entity_id_chassis_specific;
|
||||||
|
extern const char *const ipmi_entity_id_board_set_specific;
|
||||||
|
extern const char *const ipmi_entity_id_oem_system_integrator;
|
||||||
|
|
||||||
|
/* properly capitalize, for some entries if entity has an "or" or "/" remove it and pick one element, etc. */
|
||||||
|
extern const char *const ipmi_entity_ids_pretty[];
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_ENTITY_IDS_SPEC_H */
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* 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_EVENT_READING_TYPE_CODE_OEM_SPEC_H
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_OEM_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-event-reading-type-code-oem-spec.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-hp-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-intel-node-manager-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-event-reading-type-code-oem-supermicro-spec.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_EVENT_READING_TYPE_CODE_OEM_SPEC_H */
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* 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_EVENT_READING_TYPE_CODE_SPEC_H
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Table 42-1 */
|
||||||
|
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_UNSPECIFIED 0x00
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_THRESHOLD 0x01
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_TRANSITION_STATE 0x02
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_STATE 0x03
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_PREDICTIVE_FAILURE 0x04
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_LIMIT 0x05
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_PERFORMANCE 0x06
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_TRANSITION_SEVERITY 0x07
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_DEVICE_PRESENT 0x08
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_DEVICE_ENABLED 0x09
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_TRANSITION_AVAILABILITY 0x0A
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_REDUNDANCY 0x0B
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_ACPI_POWER_STATE 0x0C
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_SENSOR_SPECIFIC 0x6F
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_OEM_MIN 0x70
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_OEM_MAX 0x7F
|
||||||
|
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_IS_UNSPECIFIED(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_READING_TYPE_CODE_UNSPECIFIED) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_IS_THRESHOLD(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_READING_TYPE_CODE_THRESHOLD) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_IS_GENERIC(__val) \
|
||||||
|
(((__val) >= IPMI_EVENT_READING_TYPE_CODE_TRANSITION_STATE \
|
||||||
|
&& (__val) <= IPMI_EVENT_READING_TYPE_CODE_ACPI_POWER_STATE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_IS_SENSOR_SPECIFIC(__val) \
|
||||||
|
(((__val) == IPMI_EVENT_READING_TYPE_CODE_SENSOR_SPECIFIC) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_EVENT_READING_TYPE_CODE_IS_OEM(__val) \
|
||||||
|
(((__val) >= IPMI_EVENT_READING_TYPE_CODE_OEM_MIN \
|
||||||
|
&& (__val) <= IPMI_EVENT_READING_TYPE_CODE_OEM_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_EVENT_READING_TYPE_CODE_SPEC_H */
|
|
@ -0,0 +1,103 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Copyright (C) 2007 The Regents of the University of California.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* UCRL-CODE-232183
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-fru, a tool used for retrieving
|
||||||
|
* motherboard field replaceable unit (FRU) information. For details,
|
||||||
|
* see http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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 Ipmi-fru. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_FRU_CHASSIS_TYPES_SPEC_H
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPES_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* achu:
|
||||||
|
*
|
||||||
|
* Not in IPMI spec. In "Platform Management FRU Information Storage
|
||||||
|
* Definition" document.
|
||||||
|
*
|
||||||
|
* Starting w/ FRU Revision 1.2, this table is defined by SMBIOS
|
||||||
|
* specification, Table 16 - "System Enclosure or Chassis Types"
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_OTHER 0x01
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_UNKNOWN 0x02
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_DESKTOP 0x03
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_LOW_PROFILE_DESKTOP 0x04
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_PIZZA_BOX 0x05
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_MINI_TOWER 0x06
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_TOWER 0x07
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_PORTABLE 0x08
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_LAPTOP 0x09
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_NOTEBOOK 0x0a
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_HAND_HELD 0x0b
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_DOCKING_STATION 0x0c
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_ALL_IN_ONE 0x0d
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_SUB_NOTEBOOK 0x0e
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_SPACE_SAVING 0x0f
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_LUNCH_BOX 0x10
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_MAIN_SERVER_CHASSIS 0x11
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_EXPANSION_CHASSIS 0x12
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_SUBCHASSIS 0x13
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_BUS_EXPANSION_CHASSIS 0x14
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_PERIPHERAL_CHASSIS 0x15
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_RAID_CHASSIS 0x16
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_RACK_MOUNT_CHASSIS 0x17
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_SEALED_CASE_PC 0x18
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_MULTI_SYSTEM_CHASSIS 0x19
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_COMPACT_PCI 0x1A
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_ADVANCED_TCA 0x1B
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_BLADE 0x1C
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_BLADE_ENCLOSURE 0x1D
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_FRU_CHASSIS_TYPE_VALID(__chassis_type) \
|
||||||
|
(((__chassis_type + 1) >= (IPMI_FRU_CHASSIS_TYPE_OTHER + 1) \
|
||||||
|
&& (__chassis_type) <= IPMI_FRU_CHASSIS_TYPE_BLADE_ENCLOSURE) ? 1 : 0)
|
||||||
|
|
||||||
|
extern const char *const ipmi_fru_chassis_types[];
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_CHASSIS_TYPES_SPEC_H */
|
|
@ -0,0 +1,210 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*****************************************************************************\
|
||||||
|
* Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.
|
||||||
|
* Copyright (C) 2007 The Regents of the University of California.
|
||||||
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
* Written by Albert Chu <chu11@llnl.gov>
|
||||||
|
* UCRL-CODE-232183
|
||||||
|
*
|
||||||
|
* This file is part of Ipmi-fru, a tool used for retrieving
|
||||||
|
* motherboard field replaceable unit (FRU) information. For details,
|
||||||
|
* see http://www.llnl.gov/linux/.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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.
|
||||||
|
*
|
||||||
|
* Ipmi-fru 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 Ipmi-fru. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef IPMI_FRU_LANGUAGE_CODES_SPEC_H
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODES_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/fiid/fiid.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* achu:
|
||||||
|
*
|
||||||
|
* Not in IPMI spec. In "Platform Management FRU Information Storage
|
||||||
|
* Definition" document.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ENGLISH_LEGACY 0
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_AFAR 1
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ABKHAZIAN 2
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_AFRIKAANS 3
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_AMHARIC 4
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ARABIC 5
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ASSAMESE 6
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_AYMARA 7
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_AZERBAIJANI 8
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BASHKIR 9
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BYELORUSSIAN 10
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BULGARIAN 11
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BIHARI 12
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BISLAMA 13
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BENGALI_BANGLA 14
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TIBETAN 15
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BRETON 16
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_CATALAN 17
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_CORSICAN 18
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_CZECH 19
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_WELSH 20
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_DANISH 21
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_GERMAN 22
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BHUTANI 23
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_GREEK 24
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ENGLISH 25
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ESPERANTO 26
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SPANISH 27
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ESTONIAN 28
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BASQUE 29
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_PERSIAN 30
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_FINNISH 31
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_FIJI 32
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_FAEROESE 33
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_FRENCH 34
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_FRISIAN 35
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_IRISH 36
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SCOTS_GAELIC 37
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_GALICIAN 38
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_GUARANI 39
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_GUJARATI 40
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_HAUSA 41
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_HINDI 42
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_CROATIAN 43
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_HUNGARIAN 44
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ARMENIAN 45
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_INTERLINGUA 46
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_INTERLINGUE 47
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_INUPIAK 48
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_INDONESIAN 49
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ICELANDIC 50
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ITALIAN 51
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_HEBREW 52
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_JAPANESE 53
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_YIDDISH 54
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_JAVANESE 55
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_GEORGIAN 56
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KAZAKH 57
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_GREENLANDIC 58
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_CAMBODIAN 59
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KANNADA 60
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KOREAN 61
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KASHMIRI 62
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KURDISH 63
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KIRGHIZ 64
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_LATIN 65
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_LINGALA 66
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_LAOTHIAN 67
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_LITHUANIAN 68
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_LATVIAN_LETTISH 69
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MALAGASY 70
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MAORI 71
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MACEDONIAN 72
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MALAYALAM 73
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MONGOLIAN 74
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MOLDAVIAN 75
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MARATHI 76
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MALAY 77
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_MALTESE 78
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_BURMESE 79
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_NAURU 80
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_NEPALI 81
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_DUTCH 82
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_NORWEGIAN 83
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_OCCITAN 84
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_AFAN_OROMO 85
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ORIYA 86
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_PUNJABI 87
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_POLISH 88
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_PASHTO_PUSHTO 89
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_PORTUGUESE 90
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_QUECHUA 91
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_RHAETO_ROMANCE 92
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KIRUNDI 93
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ROMANIAN 94
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_RUSSIAN 95
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_KINYARWANDA 96
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SANSKRIT 97
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SINDHI 98
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SANGRO 99
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SERBO_CROATION 100
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SINGHALESE 101
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SLOVAK 102
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SLOVENIAN 103
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SAMOAN 104
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SHONA 105
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SOMALI 106
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ALBANIAN 107
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SERBIAN 108
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SISWATI 109
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SESOTHO 110
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SUDANESE 111
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SWEDISH 112
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SWAHILI 113
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TAMIL 114
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TELUGU 115
|
||||||
|
/* Spec has "Tegulu", likely a typo */
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TEGULU IPMI_FRU_LANGUAGE_CODE_TELUGU
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TAJIK 116
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_THAI 117
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TIGRINYA 118
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TURKMEN 119
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TAGALOG 120
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_SETSWANA 121
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TONGA 122
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TURKISH 123
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TSONGA 124
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TATAR 125
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_TWI 126
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_UKRANIAN 127
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_URDU 128
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_UZBEK 129
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_VIETNAMESE 130
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_VOLAPUK 131
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_WOLOF 132
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_XHOSA 133
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_YORUBA 134
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_CHINESE 135
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_ZULU 136
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_FRU_LANGUAGE_CODE_VALID(__language_code) \
|
||||||
|
(((__language_code + 1) >= (IPMI_FRU_LANGUAGE_CODE_ENGLISH_LEGACY + 1) \
|
||||||
|
&& (__language_code) <= IPMI_FRU_LANGUAGE_CODE_ZULU) ? 1 : 0)
|
||||||
|
|
||||||
|
extern const char *const ipmi_fru_language_codes[];
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_FRU_LANGUAGE_CODES_SPEC_H */
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* 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_IANA_ENTERPRISE_NUMBERS_SPEC_H
|
||||||
|
#define IPMI_IANA_ENTERPRISE_NUMBERS_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Convenience macros, will be added as needed in code */
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_IBM 2
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_HP 11
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_SUN_MICROSYSTEMS 42
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_INTEL 343
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_DELL 674
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_MAGNUM_TECHNOLOGIES 5593
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_QUANTA 7244
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_FUJITSU 10368
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_PEPPERCON 10437
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_SUPERMICRO 10876
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_WISTRON 11161
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_INVENTEC 20569
|
||||||
|
|
||||||
|
/* Workarounds for motherboards with invalid enterprise IDs */
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_SUPERMICRO_WORKAROUND 47488
|
||||||
|
|
||||||
|
/* As of this writing min = 0, max = 34214 */
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_VALID(__iana_enterprise_id) \
|
||||||
|
(((__iana_enterprise_id + 1) >= (0 + 1) \
|
||||||
|
&& (__iana_enterprise_id) <= 44603) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_IANA_ENTERPRISE_ID_RECOGNIZED(__iana_enterprise_id) \
|
||||||
|
(IPMI_IANA_ENTERPRISE_ID_VALID((__iana_enterprise_id)) \
|
||||||
|
|| (__iana_enterprise_id) == IPMI_IANA_ENTERPRISE_ID_SUPERMICRO_WORKAROUND)
|
||||||
|
|
||||||
|
/* Some fields can be NULL if they were not assigned/removed by IANA */
|
||||||
|
/* consider using ipmi_iana_enerprise_numbers_string() function to
|
||||||
|
* handle some workaround situations this array will not have.
|
||||||
|
*/
|
||||||
|
extern const char *const ipmi_iana_enterprise_numbers[];
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_IANA_ENTERPRISE_NUMBERS_SPEC_H */
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* 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_IPMB_LUN_SPEC_H
|
||||||
|
#define IPMI_IPMB_LUN_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* BMC IPMI LUNs */
|
||||||
|
|
||||||
|
/* BMC commands and Event Request Messages:
|
||||||
|
Event Request Messages received on this LUN are routed to the Event
|
||||||
|
Receiver function in the BMC, and automatically logged if SEL
|
||||||
|
logging is enabled
|
||||||
|
*/
|
||||||
|
#define IPMI_BMC_IPMB_LUN_BMC 0x00
|
||||||
|
|
||||||
|
/* OEM LUN 1:
|
||||||
|
OEM reserved for BMC implementer / system integrator definition.
|
||||||
|
*/
|
||||||
|
#define IPMI_BMC_IPMB_LUN_OEM_LUN1 0x01
|
||||||
|
|
||||||
|
/* SMS Message LUN (Intended for messages to System Management
|
||||||
|
Software):
|
||||||
|
Messages received on this LUN are routed to the Receive Message
|
||||||
|
Queue and retrieved using a Read Message command. The SMS_Avail
|
||||||
|
flag is set whenever the Receive Message Queue has valid contents.
|
||||||
|
*/
|
||||||
|
#define IPMI_BMC_IPMB_LUN_SMS_MSG_LUN 0x02
|
||||||
|
|
||||||
|
/* OEM LUN 2:
|
||||||
|
OEM reserved for BMC implementer / system integrator definition.
|
||||||
|
*/
|
||||||
|
#define IPMI_BMC_IPMB_LUN_OEM_LUN2 0x03
|
||||||
|
|
||||||
|
#define IPMI_BMC_LUN_VALID(__lun) \
|
||||||
|
(((__lun) == IPMI_BMC_IPMB_LUN_BMC \
|
||||||
|
|| (__lun) == IPMI_BMC_IPMB_LUN_OEM_LUN1 \
|
||||||
|
|| (__lun) == IPMI_BMC_IPMB_LUN_SMS_MSG_LUN \
|
||||||
|
|| (__lun) == IPMI_BMC_IPMB_LUN_OEM_LUN2) ? 1 : 0)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_IPMB_LUN_SPEC_H */
|
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
* 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_JEDEC_MANUFACTURER_IDENTIFICATION_CODE_SPEC_H
|
||||||
|
#define IPMI_JEDEC_MANUFACTURER_IDENTIFICATION_CODE_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define IPMI_JEDEC_MANUFACTURER_CONTINUATION_CODES_MIN 0
|
||||||
|
#define IPMI_JEDEC_MANUFACTURER_CONTINUATION_CODES_MAX 8
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_JEDEC_MANUFACTURER_CONTINUATION_CODES_VALID(__manufacturer_continuation_codes) \
|
||||||
|
(((__manufacturer_continuation_codes + 1) >= (IPMI_JEDEC_MANUFACTURER_CONTINUATION_CODES_MIN + 1) \
|
||||||
|
&& (__manufacturer_continuation_codes) <= IPMI_JEDEC_MANUFACTURER_CONTINUATION_CODES_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
struct ipmi_jedec_manufacturer_id_pair {
|
||||||
|
uint8_t id;
|
||||||
|
char *str;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank1[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank2[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank3[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank4[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank5[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank6[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank7[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank8[];
|
||||||
|
extern const struct ipmi_jedec_manufacturer_id_pair ipmi_jedec_manufacturer_id_bank9[];
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_JEDEC_MANUFACTURER_IDENTIFICATION_CODE_SPEC_H */
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* 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_LAN_CONFIGURATION_PARAMETERS_OEM_SPEC_H
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_OEM_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freeipmi/spec/oem/ipmi-lan-configuration-parameters-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-lan-configuration-parameters-oem-wistron-spec.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_LAN_CONFIGURATION_PARAMETERS_SPEC_H */
|
|
@ -0,0 +1,70 @@
|
||||||
|
/*
|
||||||
|
* 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_LAN_CONFIGURATION_PARAMETERS_SPEC_H
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETERS_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_SET_IN_PROGRESS 0
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_AUTHENTICATION_TYPE_SUPPORT 1
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_AUTHENTICATION_TYPE_ENABLES 2
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_IP_ADDRESS 3
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_IP_ADDRESS_SOURCE 4
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_MAC_ADDRESS 5
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_SUBNET_MASK 6
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_IPV4_HEADER_PARAMETERS 7
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_PRIMARY_RMCP_PORT_NUMBER 8
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_SECONDARY_RMCP_PORT_NUMBER 9
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_BMC_GENERATED_ARP_CONTROL 10
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_GRATUITOUS_ARP_INTERVAL 11
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_DEFAULT_GATEWAY_ADDRESS 12
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_DEFAULT_GATEWAY_MAC_ADDRESS 13
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_BACKUP_GATEWAY_ADDRESS 14
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_BACKUP_GATEWAY_MAC_ADDRESS 15
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_COMMUNITY_STRING 16
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_NUMBER_OF_DESTINATIONS 17
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_DESTINATION_TYPE 18
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_DESTINATION_ADDRESSES 19
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_VLAN_ID 20
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_VLAN_PRIORITY 21
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_RMCPPLUS_MESSAGING_CIPHER_SUITE_ENTRY_SUPPORT 22
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_RMCPPLUS_MESSAGING_CIPHER_SUITE_ENTRIES 23
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_RMCPPLUS_MESSAGING_CIPHER_SUITE_PRIVILEGE_LEVELS 24
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_DESTINATION_ADDRESS_VLAN_TAGS 25
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_BAD_PASSWORD_THRESHOLD 26
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_OEM_MIN 192
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_OEM_MAX 255
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_SELECTOR_VALID(__parameter_selector) \
|
||||||
|
((((__parameter_selector) + 1) > (IPMI_LAN_CONFIGURATION_PARAMETER_SET_IN_PROGRESS + 1) \
|
||||||
|
&& (__parameter_selector) <= IPMI_LAN_CONFIGURATION_PARAMETER_BAD_PASSWORD_THRESHOLD) ? 1 : 0)
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, subtract -1 in comparison */
|
||||||
|
#define IPMI_LAN_CONFIGURATION_PARAMETER_SELECTOR_IS_OEM(__parameter_selector) \
|
||||||
|
(((__parameter_selector) >= IPMI_LAN_CONFIGURATION_PARAMETER_OEM_MIN \
|
||||||
|
&& ((__parameter_selector) - 1) <= (IPMI_LAN_CONFIGURATION_PARAMETER_OEM_MAX - 1)) ? 1 : 0)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_LAN_CONFIGURATION_PARAMETERS_SPEC_H */
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* 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_NETFN_OEM_SPEC_H
|
||||||
|
#define IPMI_NETFN_OEM_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-netfn-oem-spec.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-ibm-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-netfn-oem-wistron-spec.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_NETFN_OEM_SPEC_H */
|
90
source/freeipmi/usr/include/freeipmi/spec/ipmi-netfn-spec.h
Normal file
90
source/freeipmi/usr/include/freeipmi/spec/ipmi-netfn-spec.h
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
/*
|
||||||
|
* 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_NETFN_SPEC_H
|
||||||
|
#define IPMI_NETFN_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Notes:
|
||||||
|
Refer to IPMIv1_5_rev1_1.pdf Table 5-1, Network Function Codes
|
||||||
|
for complete description
|
||||||
|
*/
|
||||||
|
#define IPMI_NET_FN_CHASSIS_RQ 0x00
|
||||||
|
#define IPMI_NET_FN_CHASSIS_RS 0x01
|
||||||
|
#define IPMI_NET_FN_BRIDGE_RQ 0x02
|
||||||
|
#define IPMI_NET_FN_BRIDGE_RS 0x03
|
||||||
|
#define IPMI_NET_FN_SENSOR_EVENT_RQ 0x04
|
||||||
|
#define IPMI_NET_FN_SENSOR_EVENT_RS 0x05
|
||||||
|
#define IPMI_NET_FN_APP_RQ 0x06
|
||||||
|
#define IPMI_NET_FN_APP_RS 0x07
|
||||||
|
#define IPMI_NET_FN_FIRMWARE_RQ 0x08
|
||||||
|
#define IPMI_NET_FN_FIRMWARE_RS 0x09
|
||||||
|
#define IPMI_NET_FN_STORAGE_RQ 0x0A
|
||||||
|
#define IPMI_NET_FN_STORAGE_RS 0x0B
|
||||||
|
#define IPMI_NET_FN_TRANSPORT_RQ 0x0C
|
||||||
|
#define IPMI_NET_FN_TRANSPORT_RS 0x0D
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION_RQ 0x2C
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION_RS 0x2D
|
||||||
|
#define IPMI_NET_FN_OEM_GROUP_RQ 0x2E
|
||||||
|
#define IPMI_NET_FN_OEM_GROUP_RS 0x2F
|
||||||
|
#define IPMI_NET_FN_CONTROLLER_SPECIFIC_OEM_GROUP_MIN 0x30
|
||||||
|
#define IPMI_NET_FN_CONTROLLER_SPECIFIC_OEM_GROUP_MAX 0x3F
|
||||||
|
#define IPMI_NET_FN_RQ_RS_MASK 0x1
|
||||||
|
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION_IDENTIFICATION_PICMG 0x00
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION_IDENTIFICATION_DMTF 0x01
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION_IDENTIFICATION_SSI 0x02
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION_IDENTIFICATION_VITA 0x03
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION_IDENTIFICATION_DCMI 0xDC
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
/* Include checks for possible oem network functions */
|
||||||
|
#define IPMI_NET_FN_VALID(__net_fn) \
|
||||||
|
((((__net_fn+1) >= IPMI_NET_FN_CHASSIS_RS \
|
||||||
|
&& (__net_fn) <= IPMI_NET_FN_TRANSPORT_RS) \
|
||||||
|
|| ((__net_fn) >= IPMI_NET_FN_GROUP_EXTENSION_RQ \
|
||||||
|
&& (__net_fn) <= IPMI_NET_FN_CONTROLLER_SPECIFIC_OEM_GROUP_MAX)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_NET_FN_RQ_VALID(__net_fn) \
|
||||||
|
((IPMI_NET_FN_VALID (__net_fn) \
|
||||||
|
&& (!((__net_fn) & IPMI_NET_FN_RQ_RS_MASK))) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_NET_FN_RS_VALID(__net_fn) \
|
||||||
|
((IPMI_NET_FN_VALID (__net_fn) \
|
||||||
|
&& ((__net_fn) & IPMI_NET_FN_RQ_RS_MASK)) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_NET_FN_GROUP_EXTENSION(__net_fn) \
|
||||||
|
(((__net_fn) == IPMI_NET_FN_GROUP_EXTENSION_RQ \
|
||||||
|
|| (__net_fn) == IPMI_NET_FN_GROUP_EXTENSION_RS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_NET_FN_OEM_GROUP(__net_fn) \
|
||||||
|
(((__net_fn) == IPMI_NET_FN_OEM_GROUP_RQ \
|
||||||
|
|| (__net_fn) == IPMI_NET_FN_OEM_GROUP_RS) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_NET_FN_CONTROLLER_SPECIFIC_OEM_GROUP(__net_fn) \
|
||||||
|
(((__net_fn) >= IPMI_NET_FN_CONTROLLER_SPECIFIC_OEM_GROUP_MIN \
|
||||||
|
&& (__net_fn) <= IPMI_NET_FN_CONTROLLER_SPECIFIC_OEM_GROUP_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_NETFN_SPEC_H */
|
42
source/freeipmi/usr/include/freeipmi/spec/ipmi-oem-spec.h
Normal file
42
source/freeipmi/usr/include/freeipmi/spec/ipmi-oem-spec.h
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* 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_OEM_SPEC_H
|
||||||
|
#define IPMI_OEM_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#warning ipmi-oem-spec.h header file is deprecated
|
||||||
|
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-dell-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-fujitsu-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-ibm-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-intel-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-inventec-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-quanta-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-sun-microsystems-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-supermicro-spec.h>
|
||||||
|
#include <freeipmi/spec/oem/ipmi-oem-wistron-spec.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* IPMI_OEM_SPEC_H */
|
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* 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_PEF_CONFIGURATION_PARAMETERS_OEM_SPEC_H
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_OEM_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* 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_PEF_CONFIGURATION_PARAMETERS_SPEC_H
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETERS_SPEC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_SET_IN_PROGRESS 0
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_PEF_CONTROL 1
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_PEF_ACTION_GLOBAL_CONTROL 2
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_PEF_STARTUP_DELAY 3
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_PEF_ALERT_STARTUP_DELAY 4
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_NUMBER_OF_EVENT_FILTERS 5
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_EVENT_FILTER_TABLE 6
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_EVENT_FILTER_TABLE_DATA_1 7
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_NUMBER_OF_ALERT_POLICY_ENTRIES 8
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_ALERT_POLICY_TABLE 9
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_SYSTEM_GUID 10
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_NUMBER_OF_ALERT_STRINGS 11
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_ALERT_STRING_KEYS 12
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_ALERT_STRINGS 13
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_NUMBER_OF_GROUP_CONTROL_TABLE_ENTRIES 14
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_GROUP_CONTROL_TABLE 15
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_OEM_MIN 96
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_OEM_MAX 127
|
||||||
|
|
||||||
|
/* To avoid gcc warnings, add +1 in comparison */
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_SELECTOR_VALID(__parameter_selector) \
|
||||||
|
((((__parameter_selector) + 1) > (IPMI_PEF_CONFIGURATION_PARAMETER_SET_IN_PROGRESS + 1) \
|
||||||
|
&& (__parameter_selector) <= IPMI_PEF_CONFIGURATION_PARAMETER_GROUP_CONTROL_TABLE) ? 1 : 0)
|
||||||
|
|
||||||
|
#define IPMI_PEF_CONFIGURATION_PARAMETER_SELECTOR_IS_OEM(__parameter_selector) \
|
||||||
|
(((__parameter_selector) >= IPMI_PEF_CONFIGURATION_PARAMETER_OEM_MIN \
|
||||||
|
&& (__parameter_selector) <= IPMI_PEF_CONFIGURATION_PARAMETER_OEM_MAX) ? 1 : 0)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user