1 #ifndef LIBPLDM_SRC_TRANSPORT_TRANSPORT_H 2 #define LIBPLDM_SRC_TRANSPORT_TRANSPORT_H 3 4 #include "libpldm/base.h" 5 #include "libpldm/requester/pldm.h" 6 struct pollfd; 7 8 /** 9 * @brief Generic PLDM transport struct 10 * 11 * @var name - name of the transport 12 * @var version - version of transport to use 13 * @var recv - pointer to the transport specific function to receive a message 14 * @var send - pointer to the transport specific function to send a message 15 * @var init_pollfd - pointer to the transport specific init_pollfd function 16 */ 17 struct pldm_transport { 18 const char *name; 19 uint8_t version; 20 pldm_requester_rc_t (*recv)(struct pldm_transport *transport, 21 pldm_tid_t tid, void **pldm_resp_msg, 22 size_t *resp_msg_len); 23 pldm_requester_rc_t (*send)(struct pldm_transport *transport, 24 pldm_tid_t tid, const void *pldm_req_msg, 25 size_t req_msg_len); 26 int (*init_pollfd)(struct pldm_transport *transport, 27 struct pollfd *pollfd); 28 }; 29 30 #endif // LIBPLDM_SRC_TRANSPORT_TRANSPORT_H 31