1d861a681SAndrew Jeffery // SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2d861a681SAndrew Jeffery #ifndef LIBPLDM_SRC_DSP_BASE_H 3d861a681SAndrew Jeffery #define LIBPLDM_SRC_DSP_BASE_H 4d861a681SAndrew Jeffery 5d861a681SAndrew Jeffery /* Internal functions */ 6d861a681SAndrew Jeffery 70a1be3cbSAndrew Jeffery #include "compiler.h" 8d861a681SAndrew Jeffery #include <libpldm/base.h> 9d861a681SAndrew Jeffery 10d861a681SAndrew Jeffery int pack_pldm_header_errno(const struct pldm_header_info *hdr, 11d861a681SAndrew Jeffery struct pldm_msg_hdr *msg); 12d861a681SAndrew Jeffery 13d861a681SAndrew Jeffery int unpack_pldm_header_errno(const struct pldm_msg_hdr *msg, 14d861a681SAndrew Jeffery struct pldm_header_info *hdr); 15d861a681SAndrew Jeffery 16*eb8bb17fSUnive Tien int encode_pldm_header_only_errno(uint8_t msg_type, uint8_t instance_id, 17*eb8bb17fSUnive Tien uint8_t pldm_type, uint8_t command, 18*eb8bb17fSUnive Tien struct pldm_msg *msg); 19*eb8bb17fSUnive Tien 200a1be3cbSAndrew Jeffery LIBPLDM_CC_ALWAYS_INLINE pldm_msg_has_error(const struct pldm_msg * msg,size_t payload_length)210a1be3cbSAndrew Jefferyint pldm_msg_has_error(const struct pldm_msg *msg, size_t payload_length) 220a1be3cbSAndrew Jeffery { 230a1be3cbSAndrew Jeffery static_assert(PLDM_SUCCESS == 0, "Rework required"); 240a1be3cbSAndrew Jeffery return payload_length < 1 ? 0 : msg->payload[0]; 250a1be3cbSAndrew Jeffery } 260a1be3cbSAndrew Jeffery 27d861a681SAndrew Jeffery #endif 28