Menu Toggle
v2.0.0
cc.h
1
/*
2
* Copyright (c) 2001-2003 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 <
[email protected]
>
30
*
31
*/
32
#ifndef __CC_H__
33
#define __CC_H__
34
35
#include <sys/time.h>
36
37
#ifndef PICO_LWIP_CUSTOM_LOCK_TCPIP_CORE
38
#define PICO_LWIP_CUSTOM_LOCK_TCPIP_CORE 1
39
#endif
40
41
#ifdef __cplusplus
42
extern
"C"
{
43
#endif
44
45
#if NO_SYS
46
// todo really we should just not allow SYS_LIGHTWEIGHT_PROT for nosys mode (it doesn't do anything anyway)
47
typedef
int
sys_prot_t;
48
#elif PICO_LWIP_CUSTOM_LOCK_TCPIP_CORE
49
void
pico_lwip_custom_lock_tcpip_core(
void
);
50
void
pico_lwip_custom_unlock_tcpip_core(
void
);
51
#define LOCK_TCPIP_CORE() pico_lwip_custom_lock_tcpip_core()
52
#define UNLOCK_TCPIP_CORE() pico_lwip_custom_unlock_tcpip_core()
53
#endif
54
55
/* define compiler specific symbols */
56
#if defined (__ICCARM__)
57
58
#define PACK_STRUCT_BEGIN
59
#define PACK_STRUCT_STRUCT
60
#define PACK_STRUCT_END
61
#define PACK_STRUCT_FIELD(x) x
62
#define PACK_STRUCT_USE_INCLUDES
63
64
#elif defined (__CC_ARM)
65
66
#define PACK_STRUCT_BEGIN __packed
67
#define PACK_STRUCT_STRUCT
68
#define PACK_STRUCT_END
69
#define PACK_STRUCT_FIELD(x) x
70
71
#elif defined (__GNUC__)
72
73
#define PACK_STRUCT_BEGIN
74
#define PACK_STRUCT_STRUCT __attribute__ ((__packed__))
75
#define PACK_STRUCT_END
76
#define PACK_STRUCT_FIELD(x) x
77
78
#elif defined (__TASKING__)
79
80
#define PACK_STRUCT_BEGIN
81
#define PACK_STRUCT_STRUCT
82
#define PACK_STRUCT_END
83
#define PACK_STRUCT_FIELD(x) x
84
85
#endif
86
87
#ifndef LWIP_PLATFORM_ASSERT
88
#include "
pico.h
"
89
#define LWIP_PLATFORM_ASSERT(x) panic(x)
90
#endif
91
92
#ifndef LWIP_RAND
93
#include "
pico/rand.h
"
94
// Use the pico_rand library which goes to reasonable lengths to try to provide good entropy
95
#define LWIP_RAND() get_rand_32()
96
#endif
97
98
#ifdef __cplusplus
99
}
100
#endif
101
102
#endif
/* __CC_H__ */
pico.h
rand.h