• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
3  * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 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, this list of
9  *    conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice, this list
12  *    of conditions and the following disclaimer in the documentation and/or other materials
13  *    provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its contributors may be used
16  *    to endorse or promote products derived from this software without specific prior written
17  *    permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
26  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
28  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
29  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef _LWIP_PORTING_CC_H_
33 #define _LWIP_PORTING_CC_H_
34 
35 #ifdef LITTLE_ENDIAN
36 #undef LITTLE_ENDIAN
37 #endif
38 
39 #ifdef BIG_ENDIAN
40 #undef BIG_ENDIAN
41 #endif
42 
43 #include <endian.h>
44 #include <stdio.h>
45 #include <stdlib.h>
46 #include "securec.h"
47 
48 #ifdef htons
49 #define LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS
50 #endif
51 
52 #define SOCKLEN_T_DEFINED
53 #define SA_FAMILY_T_DEFINED
54 #define IN_PORT_T_DEFINED
55 
56 #define LWIP_TIMEVAL_PRIVATE    0
57 #define LWIP_ERRNO_STDINCLUDE
58 #define LWIP_SOCKET_STDINCLUDE
59 
60 #define LWIP_DNS_API_DEFINE_ERRORS    0
61 #define LWIP_DNS_API_DEFINE_FLAGS     0
62 #define LWIP_DNS_API_DECLARE_STRUCTS  0
63 #define LWIP_DNS_API_DECLARE_H_ERRNO  0
64 
65 #ifndef __SIZEOF_POINTER__
66 #define __SIZEOF_POINTER__ 4   // 32 bit system
67 #endif
68 
69 #define LOS_TASK_STATUS_DETACHED   0x0100  // reserved
70 
71 #if defined(__arm__) && defined(__ARMCC_VERSION)
72     /* Keil uVision4 tools */
73     #define PACK_STRUCT_BEGIN __packed
74     #define PACK_STRUCT_STRUCT
75     #define PACK_STRUCT_END
76     #define PACK_STRUCT_FIELD(fld) fld
77     #define ALIGNED(n)  __align(n)
78 #elif defined (__IAR_SYSTEMS_ICC__)
79     /* IAR Embedded Workbench tools */
80     #define PACK_STRUCT_BEGIN __packed
81     #define PACK_STRUCT_STRUCT
82     #define PACK_STRUCT_END
83     #define PACK_STRUCT_FIELD(fld) fld
84     // #error NEEDS ALIGNED
85 #else
86     /* GCC tools (CodeSourcery) */
87     #define PACK_STRUCT_BEGIN
88     #define PACK_STRUCT_STRUCT __attribute__ ((__packed__))
89     #define PACK_STRUCT_END
90     #define PACK_STRUCT_FIELD(fld) fld
91     #define ALIGNED(n)  __attribute__((aligned (n)))
92 #endif
93 
94 #define LWIP_RAND rand
95 
96 #ifndef LWIP_LOGGER
97 #define LWIP_LOGGER(msg)
98 #endif
99 
100 extern void LwipLogPrintf(const char *fmt, ...);
101 #define LWIP_PLATFORM_DIAG(vars) LwipLogPrintf vars
102 #define LWIP_PLATFORM_ASSERT(x) do { \
103         LWIP_PLATFORM_DIAG(("Assertion \"%s\" failed at line %d in %s\n", x, __LINE__, __FILE__)); \
104     } while (0)
105 
106 #define init_waitqueue_head(...)
107 #define poll_check_waiters(...)
108 
109 #ifndef _BSD_SOURCE
110 #define _BSD_SOURCE 1
111 #endif
112 
113 #endif /* _LWIP_PORTING_CC_H_ */
114