1 /* 2 * Copyright (c) 2022-2022 Huawei Technologies Co., Ltd. All rights reserved. 3 * 4 * UniProton is licensed under Mulan PSL v2. 5 * You can use this software according to the terms and conditions of the Mulan PSL v2. 6 * You may obtain a copy of Mulan PSL v2 at: 7 * http://license.coscl.org.cn/MulanPSL2 8 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 9 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 10 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 11 * See the Mulan PSL v2 for more details. 12 * Create: 2022-09-21 13 * Description: 网络 14 */ 15 16 #ifndef LWIP_PORTING_CC_H 17 #define LWIP_PORTING_CC_H 18 19 #ifdef LITTLE_ENDIAN 20 #undef LITTLE_ENDIAN 21 #endif 22 23 #ifdef BIG_ENDIAN 24 #undef BIG_ENDIAN 25 #endif 26 27 #include <endian.h> 28 #include <stdio.h> 29 #include <stdlib.h> 30 #include "securec.h" 31 32 #ifdef htons 33 #define LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS 34 #endif 35 36 #define SOCKLEN_T_DEFINED 37 #define SA_FAMILY_T_DEFINED 38 #define IN_PORT_T_DEFINED 39 40 #define LWIP_TIMEVAL_PRIVATE 0 41 #define LWIP_ERRNO_STDINCLUDE 42 #define LWIP_SOCKET_STDINCLUDE 43 44 #define LWIP_DNS_API_DEFINE_ERRORS 0 45 #define LWIP_DNS_API_DEFINE_FLAGS 0 46 #define LWIP_DNS_API_DECLARE_STRUCTS 0 47 #define LWIP_DNS_API_DECLARE_H_ERRNO 0 48 49 #ifndef __SIZEOF_POINTER__ 50 #define __SIZEOF_POINTER__ 4 // 32 bit system 51 #endif 52 53 #define OS_TASK_STATUS_DETACHED 0x0100 // reserved 54 55 #if defined(__arm__) && defined(__ARMCC_VERSION) 56 /* Keil uVision4 tools */ 57 #define PACK_STRUCT_BEGIN __packed 58 #define PACK_STRUCT_STRUCT 59 #define PACK_STRUCT_END 60 #define PACK_STRUCT_FIELD(fld) fld 61 #define ALIGNED(n) __align(n) 62 #elif defined (__IAR_SYSTEMS_ICC__) 63 /* IAR Embedded Workbench tools */ 64 #define PACK_STRUCT_BEGIN __packed 65 #define PACK_STRUCT_STRUCT 66 #define PACK_STRUCT_END 67 #define PACK_STRUCT_FIELD(fld) fld 68 // #error NEEDS ALIGNED 69 #else 70 /* GCC tools (CodeSourcery) */ 71 #define PACK_STRUCT_BEGIN 72 #define PACK_STRUCT_STRUCT __attribute__ ((__packed__)) 73 #define PACK_STRUCT_END 74 #define PACK_STRUCT_FIELD(fld) fld 75 #define ALIGNED(n) __attribute__((aligned (n))) 76 #endif 77 78 #define LWIP_RAND rand 79 80 #ifndef LWIP_LOGGER 81 #define LWIP_LOGGER(msg) 82 #endif 83 84 extern void OsLwipLogPrintf(const char *fmt, ...); 85 #define LWIP_PLATFORM_DIAG(vars) OsLwipLogPrintf vars 86 #define LWIP_PLATFORM_ASSERT(x) do { \ 87 LWIP_PLATFORM_DIAG(("Assertion \"%s\" failed at line %d in %s\n", x, __LINE__, __FILE__)); \ 88 } while (0) 89 90 #define init_waitqueue_head(...) 91 #define poll_check_waiters(...) 92 93 #ifndef _BSD_SOURCE 94 #define _BSD_SOURCE 1 95 #endif 96 97 #endif /* LWIP_PORTING_CC_H */ 98