MeterLogger
esp-open-lwip
include
lwip
raw.h
Go to the documentation of this file.
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_RAW_H__
33
#define __LWIP_RAW_H__
34
35
#include "
lwip/opt.h
"
36
37
#if LWIP_RAW
/* don't build if not configured for use in lwipopts.h */
38
39
#include "
lwip/pbuf.h
"
40
#include "
lwip/def.h
"
41
#include "
lwip/ip.h
"
42
#include "
lwip/ip_addr.h
"
43
44
#ifdef __cplusplus
45
extern
"C"
{
46
#endif
47
48
struct
raw_pcb;
49
50
/** Function prototype for raw pcb receive callback functions.
51
* @param arg user supplied argument (raw_pcb.recv_arg)
52
* @param pcb the raw_pcb which received data
53
* @param p the packet buffer that was received
54
* @param addr the remote IP address from which the packet was received
55
* @return 1 if the packet was 'eaten' (aka. deleted),
56
* 0 if the packet lives on
57
* If returning 1, the callback is responsible for freeing the pbuf
58
* if it's not used any more.
59
*/
60
typedef
u8_t
(*raw_recv_fn)(
void
*arg,
struct
raw_pcb *pcb,
struct
pbuf
*p,
61
ip_addr_t
*addr);
62
63
struct
raw_pcb {
64
/* Common members of all PCB types */
65
IP_PCB
;
66
67
struct
raw_pcb *next;
68
69
u8_t
protocol;
70
71
/** receive callback function */
72
raw_recv_fn recv;
73
/* user-supplied argument for the recv callback */
74
void
*recv_arg;
75
};
76
77
/* The following functions is the application layer interface to the
78
RAW code. */
79
struct
raw_pcb * raw_new (
u8_t
proto)
ICACHE_FLASH_ATTR
;
80
void
raw_remove (
struct
raw_pcb *pcb)
ICACHE_FLASH_ATTR
;
81
err_t
raw_bind (
struct
raw_pcb *pcb,
ip_addr_t
*ipaddr)
ICACHE_FLASH_ATTR
;
82
err_t
raw_connect (
struct
raw_pcb *pcb,
ip_addr_t
*ipaddr)
ICACHE_FLASH_ATTR
;
83
84
void
raw_recv (
struct
raw_pcb *pcb, raw_recv_fn recv,
void
*recv_arg)
ICACHE_FLASH_ATTR
;
85
err_t
raw_sendto (
struct
raw_pcb *pcb,
struct
pbuf
*p,
ip_addr_t
*ipaddr)
ICACHE_FLASH_ATTR
;
86
err_t
raw_send (
struct
raw_pcb *pcb,
struct
pbuf
*p);
87
88
/* The following functions are the lower layer interface to RAW. */
89
u8_t
raw_input (
struct
pbuf
*p,
struct
netif
*inp)
ICACHE_FLASH_ATTR
;
90
#define raw_init()
/* Compatibility define, not init needed. */
91
92
#ifdef __cplusplus
93
}
94
#endif
95
96
#endif
/* LWIP_RAW */
97
98
#endif
/* __LWIP_RAW_H__ */
def.h
ip.h
IP_PCB
#define IP_PCB
Definition:
ip.h:76
opt.h
ICACHE_FLASH_ATTR
#define ICACHE_FLASH_ATTR
Definition:
c_types.h:99
pbuf
Definition:
pbuf.h:76
err_t
s8_t err_t
Definition:
err.h:47
ip_addr_t
typedefPACK_STRUCT_END struct ip_addr ip_addr_t
Definition:
ip_addr.h:64
netif
Definition:
netif.h:139
ip_addr.h
pbuf.h
u8_t
unsigned char u8_t
Definition:
cc.h:52
Generated by
1.8.13