/* * Copyright (c) 2020 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #define DLCI_CONTROL 0 #if IS_ENABLED(CONFIG_GSM_MUX) #define DLCI_AT CONFIG_GSM_MUX_DLCI_AT #define DLCI_PPP CONFIG_GSM_MUX_DLCI_PPP #else #define DLCI_AT -1 #define DLCI_PPP -1 #endif struct gsm_mux; struct gsm_dlci; void gsm_mux_recv_buf(struct gsm_mux *mux, uint8_t *buf, int len); int gsm_mux_send(struct gsm_mux *mux, uint8_t dlci_address, const uint8_t *buf, size_t size); struct gsm_mux *gsm_mux_create(const struct device *uart); int gsm_mux_disconnect(struct gsm_mux *mux, k_timeout_t timeout); void gsm_mux_init(void); typedef void (*gsm_mux_dlci_created_cb_t)(struct gsm_dlci *dlci, bool connected, void *user_data); int gsm_dlci_create(struct gsm_mux *mux, const struct device *uart, int dlci_address, gsm_mux_dlci_created_cb_t dlci_created_cb, void *user_data, struct gsm_dlci **dlci); int gsm_dlci_send(struct gsm_dlci *dlci, const uint8_t *buf, size_t size); int gsm_dlci_id(struct gsm_dlci *dlci); void gsm_mux_detach(struct gsm_mux *mux);