Select one of the symbols to view example projects that use it.
 
Outline
...
...
...
...
...
...
#define NX_PORT_H
#include "nx_user.h"
#define NX_LITTLE_ENDIAN
#define FEATURE_NX_IPV6
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NX_CHANGE_ULONG_ENDIAN
#define NX_CHANGE_USHORT_ENDIAN
#define htonl
#define ntohl
#define htons
#define ntohs
#define NX_CHANGE_ULONG_ENDIAN
#define NX_CHANGE_USHORT_ENDIAN
#define htons
#define ntohs
#define ntohl
#define htonl
_nx_version_id;
Files
loading...
CodeScopeSTM32 Libraries and Samplesnetxduoports/cortex_m4/gnu/inc/nx_port.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**************************************************************************/ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* */ /* This software is licensed under the Microsoft Software License */ /* Terms for Microsoft Azure RTOS. Full text of the license can be */ /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ /* and in the root directory of this software. */ /* */... /**************************************************************************/ ... /**************************************************************************/ /**************************************************************************/ /** */ /** NetX Component */ /** */ /** Port Specific */ /** */... /**************************************************************************/ /**************************************************************************/ ... /**************************************************************************/ /* */ /* PORT SPECIFIC C INFORMATION RELEASE */ /* */ /* nx_port.h Cortex-M4/GNU */ /* 6.1 */ /* */ /* AUTHOR */ /* */ /* Yuxin Zhou, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This file contains data type definitions that make the NetX */ /* real-time TCP/IP function identically on a variety of different */ /* processor architectures. */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Yuxin Zhou Initial Version 6.0 */ /* 09-30-2020 Yuxin Zhou Modified comment(s), and */ /* corrected the code of */ /* getting system state, */ /* resulting in version 6.1 */ /* */... /**************************************************************************/ #ifndef NX_PORT_H #define NX_PORT_H /* Determine if the optional NetX user define file should be used. */ #ifdef NX_INCLUDE_USER_DEFINE_FILE /* Yes, include the user defines in nx_user.h. The defines in this file may alternately be defined on the command line. *//* ... */ #include "nx_user.h" /* ... */#endif /* Default to little endian, since this is what most ARM targets are. */ #define NX_LITTLE_ENDIAN 1 /* By default IPv6 is enabled. */ #ifndef FEATURE_NX_IPV6 #define FEATURE_NX_IPV6 #endif /* FEATURE_NX_IPV6 */ #ifdef NX_DISABLE_IPV6 #undef FEATURE_NX_IPV6 #endif /* !NX_DISABLE_IPV6 */ #include <stdio.h> #include <string.h> #include <stdlib.h> /* Define various constants for the port. */ #ifndef NX_IP_PERIODIC_RATE #define NX_IP_PERIODIC_RATE 100 /* Default IP periodic rate of 1 second for ports with 10ms timer interrupts. This value may be defined instead at the command line and this value will not be used. *//* ... */ /* ... */#endif /* Define macros that swap the endian for little endian ports. */ #ifdef NX_LITTLE_ENDIAN #define NX_CHANGE_ULONG_ENDIAN(arg) (arg) = __builtin_bswap32(arg) #define NX_CHANGE_USHORT_ENDIAN(arg) (arg) = __builtin_bswap16(arg) #ifndef htonl #define htonl(val) __builtin_bswap32(val) #endif /* htonl */ #ifndef ntohl #define ntohl(val) __builtin_bswap32(val) #endif /* htonl */ #ifndef htons #define htons(val) __builtin_bswap16(val) #endif /*htons */ #ifndef ntohs #define ntohs(val) __builtin_bswap16(val) #endif /*htons */ /* ... */ #else #define NX_CHANGE_ULONG_ENDIAN(a) #define NX_CHANGE_USHORT_ENDIAN(a) #ifndef htons #define htons(val) (val) #endif /* htons */ #ifndef ntohs #define ntohs(val) (val) #endif /* ntohs */ #ifndef ntohl #define ntohl(val) (val) #endif #ifndef htonl #define htonl(val) (val) #endif /* htonl *//* ... */ #endif /* Define several macros for the error checking shell in NetX. */ #ifndef TX_TIMER_PROCESS_IN_ISR #define NX_CALLER_CHECKING_EXTERNS extern TX_THREAD *_tx_thread_current_ptr; \ extern TX_THREAD _tx_timer_thread; \ extern volatile ULONG _tx_thread_system_state;... #define NX_THREADS_ONLY_CALLER_CHECKING if ((TX_THREAD_GET_SYSTEM_STATE()) || \ (_tx_thread_current_ptr == TX_NULL) || \ (_tx_thread_current_ptr == &_tx_timer_thread)) \ return(NX_CALLER_ERROR);... #define NX_INIT_AND_THREADS_CALLER_CHECKING if (((TX_THREAD_GET_SYSTEM_STATE()) && (TX_THREAD_GET_SYSTEM_STATE() < ((ULONG) 0xF0F0F0F0))) || \ (_tx_thread_current_ptr == &_tx_timer_thread)) \ return(NX_CALLER_ERROR);... #define NX_NOT_ISR_CALLER_CHECKING if ((TX_THREAD_GET_SYSTEM_STATE()) && (TX_THREAD_GET_SYSTEM_STATE() < ((ULONG) 0xF0F0F0F0))) \ return(NX_CALLER_ERROR);... #define NX_THREAD_WAIT_CALLER_CHECKING if ((wait_option) && \ ((_tx_thread_current_ptr == NX_NULL) || (TX_THREAD_GET_SYSTEM_STATE()) || (_tx_thread_current_ptr == &_tx_timer_thread))) \ return(NX_CALLER_ERROR);... 5 defines /* ... */ #else #define NX_CALLER_CHECKING_EXTERNS extern TX_THREAD *_tx_thread_current_ptr; \ extern volatile ULONG _tx_thread_system_state;... #define NX_THREADS_ONLY_CALLER_CHECKING if ((TX_THREAD_GET_SYSTEM_STATE()) || \ (_tx_thread_current_ptr == TX_NULL)) \ return(NX_CALLER_ERROR);... #define NX_INIT_AND_THREADS_CALLER_CHECKING if (((TX_THREAD_GET_SYSTEM_STATE()) && (TX_THREAD_GET_SYSTEM_STATE() < ((ULONG) 0xF0F0F0F0)))) \ return(NX_CALLER_ERROR);... #define NX_NOT_ISR_CALLER_CHECKING if ((TX_THREAD_GET_SYSTEM_STATE()) && (TX_THREAD_GET_SYSTEM_STATE() < ((ULONG) 0xF0F0F0F0))) \ return(NX_CALLER_ERROR);... #define NX_THREAD_WAIT_CALLER_CHECKING if ((wait_option) && \ ((_tx_thread_current_ptr == NX_NULL) || (TX_THREAD_GET_SYSTEM_STATE()))) \ return(NX_CALLER_ERROR);... 5 defines /* ... */#endif /* Define the version ID of NetX. This may be utilized by the application. */ #ifdef NX_SYSTEM_INIT CHAR _nx_version_id[] = "Copyright (c) Microsoft Corporation. All rights reserved. * NetX Duo Cortex-M4/GNU Version 6.1.10 *";/* ... */ #else extern CHAR _nx_version_id[]; #endif /* ... */ #endif...