| /* |
| * 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); |