10#ifndef ZEPHYR_MODEM_PIPE_
11#define ZEPHYR_MODEM_PIPE_
48typedef int (*modem_pipe_api_open)(
void *
data);
50typedef int (*modem_pipe_api_transmit)(
void *
data,
const uint8_t *buf,
size_t size);
52typedef int (*modem_pipe_api_receive)(
void *
data,
uint8_t *buf,
size_t size);
54typedef int (*modem_pipe_api_close)(
void *
data);
56struct modem_pipe_api {
57 modem_pipe_api_open
open;
58 modem_pipe_api_transmit transmit;
59 modem_pipe_api_receive receive;
60 modem_pipe_api_close
close;
63enum modem_pipe_state {
64 MODEM_PIPE_STATE_CLOSED = 0,
65 MODEM_PIPE_STATE_OPEN,
70 struct modem_pipe_api *api;
73 enum modem_pipe_state
state;
76 bool receive_ready_pending;
86void modem_pipe_init(
struct modem_pipe *
pipe,
void *
data,
struct modem_pipe_api *api);
196void modem_pipe_notify_opened(
struct modem_pipe *
pipe);
205void modem_pipe_notify_closed(
struct modem_pipe *
pipe);
214void modem_pipe_notify_receive_ready(
struct modem_pipe *
pipe);
static int close(int sock)
POSIX wrapper for zsock_close.
Definition socket.h:766
int modem_pipe_open_async(struct modem_pipe *pipe)
Open pipe asynchronously.
int modem_pipe_close(struct modem_pipe *pipe)
Close pipe.
void modem_pipe_attach(struct modem_pipe *pipe, modem_pipe_api_callback callback, void *user_data)
Attach pipe to callback.
int modem_pipe_transmit(struct modem_pipe *pipe, const uint8_t *buf, size_t size)
Transmit data through pipe.
int modem_pipe_close_async(struct modem_pipe *pipe)
Close pipe asynchronously.
int modem_pipe_receive(struct modem_pipe *pipe, uint8_t *buf, size_t size)
Reveive data through pipe.
modem_pipe_event
Modem pipe event.
Definition pipe.h:25
void modem_pipe_release(struct modem_pipe *pipe)
Clear callback.
int modem_pipe_open(struct modem_pipe *pipe)
Open pipe.
void(* modem_pipe_api_callback)(struct modem_pipe *pipe, enum modem_pipe_event event, void *user_data)
Definition pipe.h:41
@ MODEM_PIPE_EVENT_RECEIVE_READY
Definition pipe.h:27
@ MODEM_PIPE_EVENT_OPENED
Definition pipe.h:26
@ MODEM_PIPE_EVENT_CLOSED
Definition pipe.h:28
int open(const char *name, int flags,...)
struct k_condvar condvar
Definition kobject.c:1324
state
Definition parser_state.h:29
static struct k_spinlock lock
Definition spinlock_error_case.c:13
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Mutex Structure.
Definition kernel.h:2911
static fdata_t data[2]
Definition test_fifo_contexts.c:15
static struct k_pipe pipe
Definition test_mutex_error.c:18
static const intptr_t user_data[5]
Definition main.c:588