1c1b66f42SRashmica Gupta /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */ 2c1b66f42SRashmica Gupta #ifndef LIBPLDM_DEMUX_H 3c1b66f42SRashmica Gupta #define LIBPLDM_DEMUX_H 49d2a1c6aSAndrew Jeffery 5c1b66f42SRashmica Gupta #include "libpldm/base.h" 6c1b66f42SRashmica Gupta #include "libpldm/pldm.h" 7c1b66f42SRashmica Gupta 8c1b66f42SRashmica Gupta #ifdef __cplusplus 9c1b66f42SRashmica Gupta extern "C" { 10c1b66f42SRashmica Gupta #endif 11c1b66f42SRashmica Gupta 12c1b66f42SRashmica Gupta struct pldm_transport_mctp_demux; 13c1b66f42SRashmica Gupta 14c1b66f42SRashmica Gupta /* Init the transport backend */ 15c1b66f42SRashmica Gupta int pldm_transport_mctp_demux_init(struct pldm_transport_mctp_demux **ctx); 16c1b66f42SRashmica Gupta 17c1b66f42SRashmica Gupta /* Destroy the transport backend */ 18c1b66f42SRashmica Gupta void pldm_transport_mctp_demux_destroy(struct pldm_transport_mctp_demux *ctx); 19c1b66f42SRashmica Gupta 20c1b66f42SRashmica Gupta /* Get the core pldm transport struct */ 21c1b66f42SRashmica Gupta struct pldm_transport * 22c1b66f42SRashmica Gupta pldm_transport_mctp_demux_core(struct pldm_transport_mctp_demux *ctx); 23c1b66f42SRashmica Gupta 24c1b66f42SRashmica Gupta #ifdef PLDM_HAS_POLL 25c1b66f42SRashmica Gupta struct pollfd; 26c1b66f42SRashmica Gupta /* Init pollfd for async calls */ 27*36402ffbSBonnieLo-wiwynn int pldm_transport_mctp_demux_init_pollfd(struct pldm_transport *t, 28c1b66f42SRashmica Gupta struct pollfd *pollfd); 29c1b66f42SRashmica Gupta #endif 30c1b66f42SRashmica Gupta 31c1b66f42SRashmica Gupta /* Inserts a TID-to-EID mapping into the transport's device map */ 32c1b66f42SRashmica Gupta int pldm_transport_mctp_demux_map_tid(struct pldm_transport_mctp_demux *ctx, 33c1b66f42SRashmica Gupta pldm_tid_t tid, mctp_eid_t eid); 34c1b66f42SRashmica Gupta 35c1b66f42SRashmica Gupta /* Removes a TID-to-EID mapping from the transport's device map */ 36c1b66f42SRashmica Gupta int pldm_transport_mctp_demux_unmap_tid(struct pldm_transport_mctp_demux *ctx, 37c1b66f42SRashmica Gupta pldm_tid_t tid, mctp_eid_t eid); 38c1b66f42SRashmica Gupta 39c1b66f42SRashmica Gupta #ifdef __cplusplus 40c1b66f42SRashmica Gupta } 41c1b66f42SRashmica Gupta #endif 42c1b66f42SRashmica Gupta 439d2a1c6aSAndrew Jeffery #endif /* LIBPLDM_DEMUX_H */ 44