ESP8266
Main Page
Related Pages
Modules
Classes
esp8266
libraries
ESP8266WiFi
src
lwip
api_msg.h
1
/*
2
* Copyright (c) 2001-2004 Swedish Institute of Computer Science.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without modification,
6
* are permitted provided that the following conditions are met:
7
*
8
* 1. Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright notice,
11
* this list of conditions and the following disclaimer in the documentation
12
* and/or other materials provided with the distribution.
13
* 3. The name of the author may not be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
19
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
25
* OF SUCH DAMAGE.
26
*
27
* This file is part of the lwIP TCP/IP stack.
28
*
29
* Author: Adam Dunkels <adam@sics.se>
30
*
31
*/
32
#ifndef __LWIP_API_MSG_H__
33
#define __LWIP_API_MSG_H__
34
35
#include "lwip/opt.h"
36
37
#if LWIP_NETCONN
/* don't build if not configured for use in lwipopts.h */
38
39
#include <stddef.h>
/* for size_t */
40
41
#include "lwip/ip_addr.h"
42
#include "lwip/err.h"
43
#include "lwip/sys.h"
44
#include "lwip/igmp.h"
45
#include "lwip/api.h"
46
47
#ifdef __cplusplus
48
extern
"C"
{
49
#endif
50
51
/* For the netconn API, these values are use as a bitmask! */
52
#define NETCONN_SHUT_RD 1
53
#define NETCONN_SHUT_WR 2
54
#define NETCONN_SHUT_RDWR (NETCONN_SHUT_RD | NETCONN_SHUT_WR)
55
56
/* IP addresses and port numbers are expected to be in
57
* the same byte order as in the corresponding pcb.
58
*/
62
struct
api_msg_msg {
65
struct
netconn *conn;
67
err_t err;
69
union
{
71
struct
netbuf
*b;
73
struct
{
74
u8_t proto;
75
} n;
77
struct
{
78
ip_addr_t *ipaddr;
79
u16_t port;
80
} bc;
82
struct
{
83
ip_addr_t *ipaddr;
84
u16_t *port;
85
u8_t local;
86
} ad;
88
struct
{
89
const
void
*dataptr;
90
size_t
len;
91
u8_t apiflags;
92
} w;
94
struct
{
95
u32_t len;
96
} r;
98
struct
{
99
u8_t shut;
100
} sd;
101
#if LWIP_IGMP
102
103
struct
{
104
ip_addr_t *multiaddr;
105
ip_addr_t *netif_addr;
106
enum
netconn_igmp join_or_leave;
107
} jl;
108
#endif
/* LWIP_IGMP */
109
#if TCP_LISTEN_BACKLOG
110
struct
{
111
u8_t backlog;
112
} lb;
113
#endif
/* TCP_LISTEN_BACKLOG */
114
} msg;
115
};
116
120
struct
api_msg {
122
void (*
function
)(
struct
api_msg_msg *msg);
124
struct
api_msg_msg msg;
125
};
126
127
#if LWIP_DNS
128
132
struct
dns_api_msg {
134
const
char
*name;
136
ip_addr_t *addr;
139
sys_sem_t *sem;
141
err_t *err;
142
};
143
#endif
/* LWIP_DNS */
144
145
void
do_newconn (
struct
api_msg_msg *msg);
146
void
do_delconn (
struct
api_msg_msg *msg);
147
void
do_bind (
struct
api_msg_msg *msg);
148
void
do_connect (
struct
api_msg_msg *msg);
149
void
do_disconnect (
struct
api_msg_msg *msg);
150
void
do_listen (
struct
api_msg_msg *msg);
151
void
do_send (
struct
api_msg_msg *msg);
152
void
do_recv (
struct
api_msg_msg *msg);
153
void
do_write (
struct
api_msg_msg *msg);
154
void
do_getaddr (
struct
api_msg_msg *msg);
155
void
do_close (
struct
api_msg_msg *msg);
156
void
do_shutdown (
struct
api_msg_msg *msg);
157
#if LWIP_IGMP
158
void
do_join_leave_group(
struct
api_msg_msg *msg);
159
#endif
/* LWIP_IGMP */
160
161
#if LWIP_DNS
162
void
do_gethostbyname(
void
*arg);
163
#endif
/* LWIP_DNS */
164
165
struct
netconn* netconn_alloc(
enum
netconn_type t, netconn_callback callback);
166
void
netconn_free(
struct
netconn *conn);
167
168
#ifdef __cplusplus
169
}
170
#endif
171
172
#endif
/* LWIP_NETCONN */
173
174
#endif
/* __LWIP_API_MSG_H__ */
netbuf
Definition:
netbuf.h:48
Generated by
1.8.10