40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
/*
|
|
* 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);
|