picofuse

types.h
1 
6 #pragma once
7 #include <picofuse/sys/io.h>
8 #include <stdint.h>
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
19 #ifndef NET_LISTENER_CAPACITY
20 #define NET_LISTENER_CAPACITY 4
21 #endif
22 
24 // TYPES
25 
30 typedef enum {
33 } net_proto_t;
34 
39 typedef enum {
43 
48 typedef struct {
49  net_addr_family_t family;
50  union {
51  uint8_t v4[4];
52  uint8_t v6[16];
53  } addr;
54 } net_addr_t;
55 
61 
76 typedef void (*net_accept_callback_t)(net_listener_t *listener,
77  sys_iostream_t *conn,
78  const net_addr_t *remote,
79  uint16_t remote_port, void *userdata);
80 
81 #ifdef __cplusplus
82 }
83 #endif
IPv6 - net_addr_t.addr.v6 is valid.
Definition: types.h:41
net_addr_family_t
Address family for a net_addr_t.
Definition: types.h:39
Opaque byte streams for reading, writing, seeking, and readiness notification.
struct sys_iostream_t sys_iostream_t
An opaque byte stream.
Definition: io.h:70
Connectionless, unreliable datagrams.
Definition: types.h:32
struct net_listener_t net_listener_t
Opaque listening socket, from net_listener_init().
Definition: types.h:60
void(* net_accept_callback_t)(net_listener_t *listener, sys_iostream_t *conn, const net_addr_t *remote, uint16_t remote_port, void *userdata)
Called for each accepted TCP connection or received UDP datagram on a listener.
Definition: types.h:76
net_proto_t
Transport protocol for a socket.
Definition: types.h:30
An IPv4 or IPv6 address.
Definition: types.h:48
IPv4 - net_addr_t.addr.v4 is valid.
Definition: types.h:40
Connection-oriented, reliable, ordered byte stream.
Definition: types.h:31
net_addr_family_t family
Which member of addr is valid.
Definition: types.h:49