blob: d9e5c8fa6ecbcc14cbb8f7907698d1aeb41d2505 [file] [log] [blame]
/*
* 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);