blob: 34b3f4ed939d319315099434492a266841296660 [file] [log] [blame]
/* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
#ifndef PLATFORM_OEM_IBM_H
#define PLATFORM_OEM_IBM_H
#ifdef __cplusplus
extern "C" {
#endif
#include "base.h"
#include <stddef.h>
#include <stdint.h>
enum pldm_event_types_ibm_oem {
PLDM_EVENT_TYPE_OEM_EVENT_BIOS_ATTRIBUTE_UPDATE = 0xF0,
};
/** @struct pldm_bios_attribute_update_event_req
*
* Structure representing PlatformEventMessage command request data for OEM
* event type BIOS attribute update.
*/
struct pldm_bios_attribute_update_event_req {
uint8_t format_version;
uint8_t tid;
uint8_t event_class;
uint8_t num_handles;
uint8_t bios_attribute_handles[1];
} __attribute__((packed));
/** @brief Encode PlatformEventMessage request data for BIOS attribute update
*
* @param[in] instance_id - Message's instance id
* @param[in] format_version - Version of the event format
* @param[in] tid - Terminus ID for the terminus that originated the event
* message
* @param[in] num_handles - Number of BIOS handles with an update
* @param[in] list_of_handles - Pointer to the list of BIOS attribute handles
* @param[in] payload_length - Length of request message payload
* @param[out] msg - Message will be written to this
*
* @return pldm_completion_codes
*
* @note Caller is responsible for memory alloc and dealloc of param
* 'msg.payload'
*/
int encode_bios_attribute_update_event_req(uint8_t instance_id,
uint8_t format_version, uint8_t tid,
uint8_t num_handles,
const uint8_t *list_of_handles,
size_t payload_length,
struct pldm_msg *msg);
#ifdef __cplusplus
}
#endif
#endif /* PLATFORM_OEM_IBM_H */