Loading...
Searching...
No Matches
sock_types.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Freie Universität Berlin
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
17
18#include "net/af.h"
19#include "lwip/api.h"
20#ifdef SOCK_HAS_ASYNC
22#endif
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
33
34#ifdef SOCK_HAS_ASYNC
39typedef void (*lwip_sock_cb_t)(lwip_sock_base_t *sock,
41 void *arg);
42#endif /* SOCK_HAS_ASYNC */
43
51 struct netconn *conn;
52#ifdef SOCK_HAS_ASYNC
59 union {
60 lwip_sock_cb_t gen;
61#ifdef MODULE_SOCK_IP
62 sock_ip_cb_t ip;
63#endif
64#ifdef MODULE_SOCK_TCP
65 sock_tcp_cb_t tcp;
69 sock_tcp_queue_cb_t tcp_queue;
70#endif
71#ifdef MODULE_SOCK_UDP
72 sock_udp_cb_t udp;
73#endif
74 } async_cb;
75 void *async_cb_arg;
76#ifdef SOCK_HAS_ASYNC_CTX
77 sock_async_ctx_t async_ctx;
78#endif /* SOCK_HAS_ASYNC_CTX */
79#endif /* SOCK_HAS_ASYNC */
80};
81
91
105
113 struct sock_tcp *array;
115 unsigned short len;
116 unsigned short used;
117};
118
128
129#ifdef __cplusplus
130}
131#endif
132
Global UNIX address family definitions.
void(* sock_tcp_queue_cb_t)(sock_tcp_queue_t *queue, sock_async_flags_t flags, void *arg)
Event callback for sock_tcp_queue_t.
Definition types.h:130
void(* sock_udp_cb_t)(sock_udp_t *sock, sock_async_flags_t flags, void *arg)
Event callback for sock_udp_t.
Definition types.h:154
sock_async_flags_t
Flag types to signify asynchronous sock events.
Definition types.h:34
void(* sock_tcp_cb_t)(sock_tcp_t *sock, sock_async_flags_t flags, void *arg)
Event callback for sock_tcp_t.
Definition types.h:114
void(* sock_ip_cb_t)(sock_ip_t *sock, sock_async_flags_t flags, void *arg)
Event callback for sock_ip_t.
Definition types.h:88
struct lwip_sock_base lwip_sock_base_t
Forward declaration.
Definition sock_types.h:32
Sock base type.
Definition sock_types.h:50
struct netconn * conn
lwIP network connection object
Definition sock_types.h:51
Mutex structure.
Definition mutex.h:36
Asynchronous context for Asynchronous sock with event API.
Raw IP sock type.
Definition sock_types.h:88
lwip_sock_base_t base
parent class
Definition sock_types.h:89
TCP queue type.
Definition sock_types.h:111
lwip_sock_base_t base
parent class
Definition sock_types.h:112
unsigned short len
Length of the struct sock_tcp_queue::array.
Definition sock_types.h:115
struct sock_tcp * array
Allocation array for sock objects to generate.
Definition sock_types.h:113
unsigned short used
Used entries in struct sock_tcp_queue::array.
Definition sock_types.h:116
mutex_t mutex
Mutex to protect the queue.
Definition sock_types.h:114
TCP sock type.
Definition sock_types.h:98
mutex_t mutex
Mutex to protect the sock.
Definition sock_types.h:101
lwip_sock_base_t base
parent class
Definition sock_types.h:99
ssize_t last_offset
Offset in struct sock_tcp::last_buf since last read.
Definition sock_types.h:103
struct sock_tcp_queue * queue
Queue the sock might have been generated from.
Definition sock_types.h:100
struct pbuf * last_buf
Last received data.
Definition sock_types.h:102
UDP sock type.
Definition sock_types.h:125
lwip_sock_base_t base
parent class
Definition sock_types.h:126
Definitions for sock extension for asynchronous access.