xref: /openbmc/libpldm/src/dsp/base.h (revision eb8bb17f10312c3ea4321772d2f4f09dab3de7e1)
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 Jeffery int 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