| /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */ |
| #ifndef LIBPLDM_TRANSPORT_TEST_H |
| #define LIBPLDM_TRANSPORT_TEST_H |
| |
| #include "libpldm/base.h" |
| |
| #include <stddef.h> |
| #include <stdint.h> |
| #include <sys/timerfd.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| enum pldm_transport_test_element { |
| PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND, |
| PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV, |
| PLDM_TRANSPORT_TEST_ELEMENT_LATENCY, |
| }; |
| |
| struct pldm_transport_test_msg_send { |
| pldm_tid_t dst; |
| const void *msg; |
| size_t len; |
| }; |
| |
| struct pldm_transport_test_msg_recv { |
| pldm_tid_t src; |
| const void *msg; |
| size_t len; |
| }; |
| |
| struct pldm_transport_test_descriptor { |
| enum pldm_transport_test_element type; |
| union { |
| struct pldm_transport_test_msg_send send_msg; |
| struct pldm_transport_test_msg_recv recv_msg; |
| struct itimerspec latency; |
| }; |
| }; |
| |
| struct pldm_transport_test; |
| |
| int pldm_transport_test_init(struct pldm_transport_test **ctx, |
| const struct pldm_transport_test_descriptor *seq, |
| size_t count); |
| void pldm_transport_test_destroy(struct pldm_transport_test *ctx); |
| struct pldm_transport * |
| pldm_transport_test_core(struct pldm_transport_test *ctx); |
| |
| #if PLDM_HAS_POLL |
| struct pollfd; |
| int pldm_transport_test_init_pollfd(struct pldm_transport *ctx, |
| struct pollfd *pollfd); |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |