Menu Toggle
v1.5.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 <adam@sics.se>
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
#if NO_SYS
42
// todo really we should just not allow SYS_LIGHTWEIGHT_PROT for nosys mode (it doesn't do anything anyway)
43
typedef
int
sys_prot_t;
44
#elif PICO_LWIP_CUSTOM_LOCK_TCPIP_CORE
45
void
pico_lwip_custom_lock_tcpip_core(
void
);
46
void
pico_lwip_custom_unlock_tcpip_core(
void
);
47
#define LOCK_TCPIP_CORE() pico_lwip_custom_lock_tcpip_core()
48
#define UNLOCK_TCPIP_CORE() pico_lwip_custom_unlock_tcpip_core()
49
#endif
50
51
/* define compiler specific symbols */
52
#if defined (__ICCARM__)
53
54
#define PACK_STRUCT_BEGIN
55
#define PACK_STRUCT_STRUCT
56
#define PACK_STRUCT_END
57
#define PACK_STRUCT_FIELD(x) x
58
#define PACK_STRUCT_USE_INCLUDES
59
60
#elif defined (__CC_ARM)
61
62
#define PACK_STRUCT_BEGIN __packed
63
#define PACK_STRUCT_STRUCT
64
#define PACK_STRUCT_END
65
#define PACK_STRUCT_FIELD(x) x
66
67
#elif defined (__GNUC__)
68
69
#define PACK_STRUCT_BEGIN
70
#define PACK_STRUCT_STRUCT __attribute__ ((__packed__))
71
#define PACK_STRUCT_END
72
#define PACK_STRUCT_FIELD(x) x
73
74
#elif defined (__TASKING__)
75
76
#define PACK_STRUCT_BEGIN
77
#define PACK_STRUCT_STRUCT
78
#define PACK_STRUCT_END
79
#define PACK_STRUCT_FIELD(x) x
80
81
#endif
82
83
#ifndef LWIP_PLATFORM_ASSERT
84
#include "
pico.h
"
85
#define LWIP_PLATFORM_ASSERT(x) panic(x)
86
#endif
87
88
#ifndef LWIP_RAND
89
#include "
pico/rand.h
"
90
// Use the pico_rand library which goes to reasonable lengths to try to provide good entropy
91
#define LWIP_RAND() get_rand_32()
92
#endif
93
#endif
/* __CC_H__ */
pico.h
rand.h