mirror of
https://github.com/azure-rtos/netx.git
synced 2023-08-10 07:57:54 +08:00
Release 6.1.10
This commit is contained in:
parent
acbab7219b
commit
12b2638ec7
@ -85,7 +85,7 @@ TX_BLOCK_POOL nx_bsd_socket_block_pool;
|
||||
|
||||
/* Define the memory area for the socket block pool... use TCP socket size, since it is the larger. */
|
||||
|
||||
static UCHAR nx_bsd_socket_pool_memory[NX_BSD_MAX_SOCKETS*(sizeof(NX_TCP_SOCKET)+sizeof(VOID *))];
|
||||
static ULONG nx_bsd_socket_pool_memory[NX_BSD_MAX_SOCKETS * (sizeof(NX_TCP_SOCKET) + sizeof(VOID *)) / sizeof(ULONG)];
|
||||
|
||||
/* Define the block pool that will be used to dynamically allocate addrinfo struct. */
|
||||
|
||||
@ -96,8 +96,8 @@ TX_BLOCK_POOL nx_bsd_addrinfo_block_pool;
|
||||
* Every address may be mapped to 3 socktypes, SOCK_STREAM and SOCK_DGRAM,
|
||||
* 3 blocks for addrinfo) + 1 block for IP adddress = 4 blocks */
|
||||
|
||||
static UCHAR nx_bsd_addrinfo_pool_memory[NX_BSD_IPV4_ADDR_MAX_NUM * 4
|
||||
*(sizeof(struct addrinfo) + sizeof(VOID *))];
|
||||
static ULONG nx_bsd_addrinfo_pool_memory[NX_BSD_IPV4_ADDR_MAX_NUM * 4
|
||||
*(sizeof(struct addrinfo) + sizeof(VOID *)) / sizeof(ULONG)];
|
||||
|
||||
#ifdef NX_BSD_ENABLE_DNS
|
||||
|
||||
@ -109,7 +109,7 @@ extern NX_DNS *_nx_dns_instance_ptr;
|
||||
TX_BLOCK_POOL nx_bsd_cname_block_pool;
|
||||
|
||||
/* Here we just support a CNAME per IP address. */
|
||||
static UCHAR nx_bsd_cname_pool_memory[NX_BSD_IPV4_ADDR_MAX_NUM * (NX_DNS_NAME_MAX + 1)];
|
||||
static ULONG nx_bsd_cname_pool_memory[NX_BSD_IPV4_ADDR_MAX_NUM * (NX_DNS_NAME_MAX + 1) / sizeof(ULONG)];
|
||||
#endif /* NX_DNS_ENABLE_EXTENDED_RR_TYPES */
|
||||
#endif /* NX_BSD_ENABLE_DNS */
|
||||
|
||||
|
@ -155,7 +155,7 @@ UINT status;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_dhcp_create PORTABLE C */
|
||||
/* 6.1.8 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -206,13 +206,18 @@ UINT status;
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 08-02-2021 Yuxin Zhou Modified comment(s), and */
|
||||
/* improved the code, */
|
||||
/* improved the code, */
|
||||
/* resulting in version 6.1.8 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), supported*/
|
||||
/* multiple client instances, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _nx_dhcp_create(NX_DHCP *dhcp_ptr, NX_IP *ip_ptr, CHAR *name_ptr)
|
||||
{
|
||||
|
||||
TX_INTERRUPT_SAVE_AREA
|
||||
|
||||
UINT status;
|
||||
#ifdef NX_DHCP_CLIENT_ENABLE_HOST_NAME_CHECK
|
||||
CHAR *temp_ptr;
|
||||
@ -380,6 +385,8 @@ UINT label_length = 0;
|
||||
nx_udp_socket_delete(&(dhcp_ptr -> nx_dhcp_socket));
|
||||
}
|
||||
|
||||
dhcp_ptr -> nx_dhcp_socket.nx_udp_socket_reserved_ptr = (VOID*)dhcp_ptr;
|
||||
|
||||
/* Create the ThreadX activity timeout timer. This will be used to periodically check to see if
|
||||
a client connection has gone silent and needs to be terminated. */
|
||||
status = tx_timer_create(&(dhcp_ptr -> nx_dhcp_timer), "DHCP Client Timer", _nx_dhcp_timeout_entry,
|
||||
@ -481,12 +488,22 @@ UINT label_length = 0;
|
||||
return(status);
|
||||
}
|
||||
|
||||
/* Otherwise, the DHCP initialization was successful. Place the
|
||||
DHCP control block on the list of created DHCP instances. */
|
||||
TX_DISABLE
|
||||
|
||||
/* Update the dhcp structure ID. */
|
||||
dhcp_ptr -> nx_dhcp_id = NX_DHCP_ID;
|
||||
|
||||
/* Save the DHCP instance. */
|
||||
/* Setup this DHCP's created links. */
|
||||
dhcp_ptr -> nx_dhcp_created_next = _nx_dhcp_created_ptr;
|
||||
|
||||
/* Place the new DHCP control block on the head of created DHCPs. */
|
||||
_nx_dhcp_created_ptr = dhcp_ptr;
|
||||
|
||||
/* Restore previous interrupt posture. */
|
||||
TX_RESTORE
|
||||
|
||||
/* Default enable DHCP on the primary interface (0). */
|
||||
_nx_dhcp_interface_enable(dhcp_ptr, 0);
|
||||
|
||||
@ -1670,7 +1687,7 @@ UINT status;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_dhcp_delete PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -1714,12 +1731,18 @@ UINT status;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), supported*/
|
||||
/* multiple client instances, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _nx_dhcp_delete(NX_DHCP *dhcp_ptr)
|
||||
{
|
||||
|
||||
TX_INTERRUPT_SAVE_AREA
|
||||
|
||||
UINT i;
|
||||
NX_DHCP *dhcp_previous;
|
||||
|
||||
/* Get the DHCP mutex. */
|
||||
tx_mutex_get(&(dhcp_ptr -> nx_dhcp_mutex), TX_WAIT_FOREVER);
|
||||
@ -1769,9 +1792,34 @@ UINT i;
|
||||
/* Delete the DHCP mutex. */
|
||||
tx_mutex_delete(&(dhcp_ptr -> nx_dhcp_mutex));
|
||||
|
||||
/* Disable interrupts. */
|
||||
TX_DISABLE
|
||||
|
||||
/* Clear the dhcp structure ID. */
|
||||
dhcp_ptr -> nx_dhcp_id = 0;
|
||||
|
||||
/* Remove the DHCP instance from the created list. */
|
||||
if (_nx_dhcp_created_ptr == dhcp_ptr)
|
||||
{
|
||||
_nx_dhcp_created_ptr = _nx_dhcp_created_ptr -> nx_dhcp_created_next;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (dhcp_previous = _nx_dhcp_created_ptr;
|
||||
dhcp_previous -> nx_dhcp_created_next;
|
||||
dhcp_previous = dhcp_previous -> nx_dhcp_created_next)
|
||||
{
|
||||
if (dhcp_previous -> nx_dhcp_created_next == dhcp_ptr)
|
||||
{
|
||||
dhcp_previous -> nx_dhcp_created_next = dhcp_ptr -> nx_dhcp_created_next;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Restore interrupts. */
|
||||
TX_RESTORE
|
||||
|
||||
/* Return a successful status. */
|
||||
return(NX_SUCCESS);
|
||||
}
|
||||
@ -4961,7 +5009,7 @@ UINT _nx_dhcp_user_option_add_callback_set(NX_DHCP *dhcp_ptr, UINT (*dhcp_user_
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_dhcp_udp_receive_notify PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -4995,15 +5043,20 @@ UINT _nx_dhcp_user_option_add_callback_set(NX_DHCP *dhcp_ptr, UINT (*dhcp_user_
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), supported*/
|
||||
/* multiple client instances, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
VOID _nx_dhcp_udp_receive_notify(NX_UDP_SOCKET *socket_ptr)
|
||||
{
|
||||
|
||||
NX_PARAMETER_NOT_USED(socket_ptr);
|
||||
NX_DHCP *dhcp_ptr;
|
||||
|
||||
dhcp_ptr = (NX_DHCP *)(socket_ptr -> nx_udp_socket_reserved_ptr);
|
||||
|
||||
/* Set the data received event flag. */
|
||||
tx_event_flags_set(&(_nx_dhcp_created_ptr -> nx_dhcp_events), NX_DHCP_CLIENT_RECEIVE_EVENT, TX_OR);
|
||||
tx_event_flags_set(&(dhcp_ptr -> nx_dhcp_events), NX_DHCP_CLIENT_RECEIVE_EVENT, TX_OR);
|
||||
}
|
||||
|
||||
|
||||
@ -8907,7 +8960,7 @@ NX_DHCP_INTERFACE_RECORD *interface_record = NX_NULL;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_dhcp_ip_conflict PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -8944,21 +8997,44 @@ NX_DHCP_INTERFACE_RECORD *interface_record = NX_NULL;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), supported*/
|
||||
/* multiple client instances, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
VOID _nx_dhcp_ip_conflict(NX_IP *ip_ptr, UINT iface_index, ULONG ip_address, ULONG physical_msw, ULONG physical_lsw)
|
||||
{
|
||||
|
||||
NX_PARAMETER_NOT_USED(ip_ptr);
|
||||
TX_INTERRUPT_SAVE_AREA
|
||||
|
||||
NX_DHCP *dhcp_ptr;
|
||||
|
||||
NX_PARAMETER_NOT_USED(ip_address);
|
||||
NX_PARAMETER_NOT_USED(physical_msw);
|
||||
NX_PARAMETER_NOT_USED(physical_lsw);
|
||||
|
||||
/* Set the interface index. */
|
||||
_nx_dhcp_created_ptr -> nx_dhcp_interface_conflict_flag |= (UINT)(1 << iface_index);
|
||||
/* Disable interrupts. */
|
||||
TX_DISABLE
|
||||
|
||||
/* Find the DHCP client. */
|
||||
for (dhcp_ptr = _nx_dhcp_created_ptr; dhcp_ptr; dhcp_ptr = dhcp_ptr -> nx_dhcp_created_next)
|
||||
{
|
||||
if (dhcp_ptr -> nx_dhcp_ip_ptr == ip_ptr)
|
||||
{
|
||||
|
||||
/* Set the interface index. */
|
||||
dhcp_ptr -> nx_dhcp_interface_conflict_flag |= (UINT)(1 << iface_index);
|
||||
|
||||
/* Set the address conflict event flag. */
|
||||
tx_event_flags_set(&(_nx_dhcp_created_ptr -> nx_dhcp_events), NX_DHCP_CLIENT_CONFLICT_EVENT, TX_OR);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Restore interrupts. */
|
||||
TX_RESTORE
|
||||
|
||||
/* Set the address conflict event flag. */
|
||||
tx_event_flags_set(&(_nx_dhcp_created_ptr -> nx_dhcp_events), NX_DHCP_CLIENT_CONFLICT_EVENT, TX_OR);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||
/* */
|
||||
/* nx_dhcp.h PORTABLE C */
|
||||
/* 6.1.8 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -49,6 +49,9 @@
|
||||
/* adding additional request */
|
||||
/* option in parameter request,*/
|
||||
/* resulting in version 6.1.8 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), supported*/
|
||||
/* multiple client instances, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
@ -510,6 +513,9 @@ typedef struct NX_DHCP_STRUCT
|
||||
/* Define the callback function for adding specific DHCP user option. */
|
||||
UINT (*nx_dhcp_user_option_add)(struct NX_DHCP_STRUCT *dhcp_ptr, UINT iface_index, UINT message_type, UCHAR *user_option_ptr, UINT *user_option_length);
|
||||
|
||||
/* Define the link between other DHCP structures created by the application. */
|
||||
struct NX_DHCP_STRUCT *nx_dhcp_created_next;
|
||||
|
||||
/* This pointer is reserved for application specific use. */
|
||||
void *nx_dhcp_reserved_ptr;
|
||||
|
||||
|
@ -4890,7 +4890,7 @@ UINT authorization_decoded_size;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_http_server_retrieve_basic_authorization PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -4926,6 +4926,10 @@ UINT authorization_decoded_size;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), fixed */
|
||||
/* the HTTP Server state issue */
|
||||
/* with basic authorization, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _nx_http_server_retrieve_basic_authorization(NX_PACKET *packet_ptr, CHAR *authorization_request_ptr)
|
||||
@ -4991,6 +4995,9 @@ CHAR *buffer_ptr;
|
||||
return(length);
|
||||
}
|
||||
|
||||
/* Set the found flag back to false. */
|
||||
found = NX_FALSE;
|
||||
|
||||
/* Now remove any extra blanks. */
|
||||
while ((buffer_ptr < (CHAR *) packet_ptr -> nx_packet_append_ptr) && (*buffer_ptr == ' '))
|
||||
{
|
||||
|
@ -12924,7 +12924,7 @@ UINT _nx_snmp_utility_error_info_set(UCHAR *buffer_ptr, UINT error_code, UINT e
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_snmp_utility_object_id_get PORTABLE C */
|
||||
/* 6.1.8 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -12967,6 +12967,10 @@ UINT _nx_snmp_utility_error_info_set(UCHAR *buffer_ptr, UINT error_code, UINT e
|
||||
/* improved the logic of */
|
||||
/* converting number to string,*/
|
||||
/* resulting in version 6.1.8 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), */
|
||||
/* initialized the sequence */
|
||||
/* byte value, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _nx_snmp_utility_object_id_get(UCHAR *buffer_ptr, UCHAR *object_string, INT buffer_length)
|
||||
@ -12997,9 +13001,6 @@ UINT string_length;
|
||||
/* Initialize the string length to 0. */
|
||||
string_length = 0;
|
||||
|
||||
/* Initialize the sequence byte value to NULL. */
|
||||
value = 0;
|
||||
|
||||
/* First see if the ANS1 object type is present. */
|
||||
if (buffer_ptr[0] != NX_SNMP_ANS1_OBJECT_ID)
|
||||
{
|
||||
@ -13150,6 +13151,9 @@ UINT string_length;
|
||||
while (total)
|
||||
{
|
||||
|
||||
/* Initialize the sequence byte value to NULL. */
|
||||
value = 0;
|
||||
|
||||
/* Move the buffer pointer forward. */
|
||||
byte = *buffer_ptr++;
|
||||
|
||||
|
@ -2229,7 +2229,7 @@ NX_IP_HEADER *ip_header_ptr;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_sntp_client_extract_time_message_from_packet PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -2264,6 +2264,9 @@ NX_IP_HEADER *ip_header_ptr;
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), and */
|
||||
/* verified memcpy use cases, */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), corrected*/
|
||||
/* the Reference Identifier, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _nx_sntp_client_extract_time_message_from_packet(NX_SNTP_CLIENT *client_ptr, NX_PACKET *packet_ptr)
|
||||
@ -2306,7 +2309,6 @@ NX_SNTP_TIME_MESSAGE *time_message_ptr;
|
||||
|
||||
/* Advance to the next 32 bit field and extract the reference clock ID field. */
|
||||
ntp_word_0++;
|
||||
NX_CHANGE_ULONG_ENDIAN(*ntp_word_0);
|
||||
memcpy(time_message_ptr -> reference_clock_id, ntp_word_0, 4); /* Use case of memcpy is verified. */
|
||||
|
||||
/* Advance to the next field (64 bit field) and extract the reference time stamp field. */
|
||||
|
@ -1049,7 +1049,7 @@ ULONG events;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_tftp_server_process_received_data PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -1090,6 +1090,10 @@ ULONG events;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), improved */
|
||||
/* the logic of processing */
|
||||
/* chained packet, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
VOID _nx_tftp_server_process_received_data(NX_TFTP_SERVER *server_ptr)
|
||||
@ -1097,8 +1101,8 @@ VOID _nx_tftp_server_process_received_data(NX_TFTP_SERVER *server_ptr)
|
||||
|
||||
UINT status;
|
||||
NX_PACKET *packet_ptr;
|
||||
UCHAR *buffer_ptr;
|
||||
UCHAR request_code;
|
||||
UCHAR request_code[2];
|
||||
ULONG bytes_copyed;
|
||||
|
||||
|
||||
/* Wait for a request on the TFTP UDP well known port 69. */
|
||||
@ -1125,26 +1129,19 @@ UCHAR request_code;
|
||||
|
||||
/* Otherwise, we have received a packet successfully. */
|
||||
|
||||
/* Setup a pointer to packet buffer area. */
|
||||
buffer_ptr = packet_ptr -> nx_packet_prepend_ptr;
|
||||
/* Pickup up the request code. First one must be zero. */
|
||||
status = nx_packet_data_extract_offset(packet_ptr, 0, request_code, sizeof(request_code), &bytes_copyed);
|
||||
|
||||
/* Pickup up the request code. First one must be zero. */
|
||||
request_code = *buffer_ptr++;
|
||||
|
||||
/* If not zero, abort. */
|
||||
if (request_code)
|
||||
/* Check the return status. */
|
||||
if (status || (request_code[0] != 0))
|
||||
{
|
||||
|
||||
nx_packet_release(packet_ptr);
|
||||
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Now get the actual request code. */
|
||||
request_code = *buffer_ptr++;
|
||||
|
||||
/* Process relative to the TFTP request code. */
|
||||
switch (request_code)
|
||||
switch (request_code[1])
|
||||
{
|
||||
|
||||
case NX_TFTP_CODE_READ:
|
||||
@ -1208,7 +1205,7 @@ UCHAR request_code;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_tftp_server_open_for_read_process PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -1252,6 +1249,14 @@ UCHAR request_code;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), */
|
||||
/* checked the format of the */
|
||||
/* received packet, improved */
|
||||
/* the logic of processing */
|
||||
/* chained packet, fixed the */
|
||||
/* issue of cleaning up the */
|
||||
/* client request entry, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
void _nx_tftp_server_open_for_read_process(NX_TFTP_SERVER *server_ptr, NX_PACKET *packet_ptr)
|
||||
@ -1264,6 +1269,7 @@ UCHAR *buffer_ptr;
|
||||
NX_TFTP_CLIENT_REQUEST *client_request_ptr;
|
||||
NX_PACKET *new_packet = NX_NULL;
|
||||
UINT status;
|
||||
UINT count = 0;
|
||||
|
||||
|
||||
/* Extract the source IP and port numbers. */
|
||||
@ -1302,42 +1308,43 @@ UINT status;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Initialize the client request structure. */
|
||||
client_request_ptr -> nx_tftp_client_request_ip_address = ip_address;
|
||||
|
||||
|
||||
client_request_ptr -> nx_tftp_client_request_port = port;
|
||||
client_request_ptr -> nx_tftp_client_request_block_number = 1;
|
||||
client_request_ptr -> nx_tftp_client_request_open_type = NX_TFTP_STATE_OPEN;
|
||||
client_request_ptr -> nx_tftp_client_request_exact_fit = NX_FALSE;
|
||||
|
||||
#ifdef NX_TFTP_SERVER_RETRANSMIT_ENABLE
|
||||
|
||||
/* Reset the retransmission timeout and retries for the client request. */
|
||||
client_request_ptr -> nx_tftp_client_retransmit_timeout = NX_TFTP_SERVER_RETRANSMIT_TIMEOUT;
|
||||
client_request_ptr -> nx_tftp_client_retransmit_retries = 0;
|
||||
#else
|
||||
|
||||
/* Clear the count of ACK retransmits from the other side. */
|
||||
client_request_ptr -> nx_tftp_client_request_retransmits = 0;
|
||||
|
||||
#endif
|
||||
/* Packet chain isn't supported. */
|
||||
if (packet_ptr -> nx_packet_next)
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Setup a pointer to the file name. */
|
||||
buffer_ptr = (UCHAR *) (packet_ptr -> nx_packet_prepend_ptr + 2);
|
||||
|
||||
if (packet_ptr -> nx_packet_length < 4)
|
||||
/* The format of RRQ/WRQ packet should be:
|
||||
2 bytes string 1 byte string 1 byte
|
||||
------------------------------------------------
|
||||
| Opcode | Filename | 0 | Mode | 0 |
|
||||
------------------------------------------------
|
||||
*/
|
||||
while (buffer_ptr < (packet_ptr -> nx_packet_append_ptr - 1))
|
||||
{
|
||||
if (*buffer_ptr == 0)
|
||||
{
|
||||
count++;
|
||||
if (count == 2)
|
||||
break;
|
||||
}
|
||||
|
||||
buffer_ptr++;
|
||||
}
|
||||
|
||||
/* Check if the format of the termination is correct. */
|
||||
if ((count != 1) || *(UCHAR *)(packet_ptr -> nx_packet_append_ptr - 1))
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check if the packet buffer ends with NULL. */
|
||||
if (*(UCHAR *)(packet_ptr -> nx_packet_append_ptr - 1))
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
/* Reset the pointer to the file name. */
|
||||
buffer_ptr = (UCHAR *) (packet_ptr -> nx_packet_prepend_ptr + 2);
|
||||
|
||||
/* Pickup the file size. */
|
||||
status = fx_directory_information_get(server_ptr -> nx_tftp_server_media_ptr, (CHAR *) buffer_ptr, NX_NULL, &file_size, NX_NULL, NX_NULL, NX_NULL, NX_NULL, NX_NULL, NX_NULL);
|
||||
@ -1394,6 +1401,26 @@ UINT status;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Initialize the client request structure. */
|
||||
client_request_ptr -> nx_tftp_client_request_ip_address = ip_address;
|
||||
|
||||
client_request_ptr -> nx_tftp_client_request_port = port;
|
||||
client_request_ptr -> nx_tftp_client_request_block_number = 1;
|
||||
client_request_ptr -> nx_tftp_client_request_open_type = NX_TFTP_STATE_OPEN;
|
||||
client_request_ptr -> nx_tftp_client_request_exact_fit = NX_FALSE;
|
||||
|
||||
#ifdef NX_TFTP_SERVER_RETRANSMIT_ENABLE
|
||||
|
||||
/* Reset the retransmission timeout and retries for the client request. */
|
||||
client_request_ptr -> nx_tftp_client_retransmit_timeout = NX_TFTP_SERVER_RETRANSMIT_TIMEOUT;
|
||||
client_request_ptr -> nx_tftp_client_retransmit_retries = 0;
|
||||
#else
|
||||
|
||||
/* Clear the count of ACK retransmits from the other side. */
|
||||
client_request_ptr -> nx_tftp_client_request_retransmits = 0;
|
||||
|
||||
#endif
|
||||
|
||||
client_request_ptr -> nx_tftp_client_file_size = file_size;
|
||||
|
||||
/* Read data when length of file is larger then 0. */
|
||||
@ -1415,6 +1442,8 @@ UINT status;
|
||||
/* Unable to read the file, close it and release the packet. */
|
||||
fx_file_close(&(client_request_ptr ->nx_tftp_client_request_file));
|
||||
|
||||
memset(client_request_ptr, 0, sizeof(NX_TFTP_CLIENT_REQUEST));
|
||||
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
@ -1477,7 +1506,7 @@ UINT status;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_tftp_server_open_for_write_process PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -1521,6 +1550,12 @@ UINT status;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), */
|
||||
/* checked the format of the */
|
||||
/* received packet, improved */
|
||||
/* the logic of processing */
|
||||
/* chained packet, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
VOID _nx_tftp_server_open_for_write_process(NX_TFTP_SERVER *server_ptr, NX_PACKET *packet_ptr)
|
||||
@ -1531,6 +1566,7 @@ UCHAR *buffer_ptr;
|
||||
NX_TFTP_CLIENT_REQUEST *client_request_ptr;
|
||||
NX_PACKET *new_packet;
|
||||
UINT status;
|
||||
UINT count = 0;
|
||||
|
||||
|
||||
/* Extract the source IP and port numbers. */
|
||||
@ -1569,21 +1605,43 @@ UINT status;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Packet chain isn't supported. */
|
||||
if (packet_ptr -> nx_packet_next)
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Setup a pointer to the file name. */
|
||||
buffer_ptr = (UCHAR *) (packet_ptr -> nx_packet_prepend_ptr + 2);
|
||||
|
||||
if (packet_ptr -> nx_packet_length < 4)
|
||||
/* The format of RRQ/WRQ packet should be:
|
||||
2 bytes string 1 byte string 1 byte
|
||||
------------------------------------------------
|
||||
| Opcode | Filename | 0 | Mode | 0 |
|
||||
------------------------------------------------
|
||||
*/
|
||||
while (buffer_ptr < (packet_ptr -> nx_packet_append_ptr - 1))
|
||||
{
|
||||
if (*buffer_ptr == 0)
|
||||
{
|
||||
count++;
|
||||
if (count == 2)
|
||||
break;
|
||||
}
|
||||
|
||||
buffer_ptr++;
|
||||
}
|
||||
|
||||
/* Check if the format of the termination is correct. */
|
||||
if ((count != 1) || *(UCHAR *)(packet_ptr -> nx_packet_append_ptr - 1))
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check if the packet buffer ends with NULL. */
|
||||
if (*(UCHAR *)(packet_ptr -> nx_packet_append_ptr - 1))
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
/* Reset the pointer to the file name. */
|
||||
buffer_ptr = (UCHAR *) (packet_ptr -> nx_packet_prepend_ptr + 2);
|
||||
|
||||
/* Perform a file create. This will fail if the file is already present, which we don't care about at this point. */
|
||||
fx_file_delete(server_ptr -> nx_tftp_server_media_ptr, (CHAR *) buffer_ptr);
|
||||
@ -1689,7 +1747,7 @@ UINT status;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_tftp_server_data_process PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -1732,6 +1790,10 @@ UINT status;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), improved */
|
||||
/* the logic of processing */
|
||||
/* chained packet, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
VOID _nx_tftp_server_data_process(NX_TFTP_SERVER *server_ptr, NX_PACKET *packet_ptr)
|
||||
@ -1740,7 +1802,7 @@ VOID _nx_tftp_server_data_process(NX_TFTP_SERVER *server_ptr, NX_PACKET *packet
|
||||
ULONG ip_address;
|
||||
UINT port;
|
||||
USHORT block_number;
|
||||
UCHAR *buffer_ptr;
|
||||
ULONG bytes_copyed;
|
||||
NX_TFTP_CLIENT_REQUEST *client_request_ptr;
|
||||
UINT status;
|
||||
|
||||
@ -1767,18 +1829,18 @@ UINT status;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Setup a pointer to the block number. */
|
||||
buffer_ptr = (UCHAR *) (packet_ptr -> nx_packet_prepend_ptr + 2);
|
||||
/* Pickup the block number. */
|
||||
status = nx_packet_data_extract_offset(packet_ptr, 2, (UCHAR *)&block_number, sizeof(block_number), &bytes_copyed);
|
||||
|
||||
if (packet_ptr -> nx_packet_length < 4)
|
||||
/* Check return status. */
|
||||
if (status || (bytes_copyed != 2))
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Pickup the block number. */
|
||||
block_number = (USHORT)(*buffer_ptr++);
|
||||
block_number = (USHORT)((block_number << 8) | (*buffer_ptr));
|
||||
/* Adjust the endianness. */
|
||||
NX_CHANGE_USHORT_ENDIAN(block_number);
|
||||
|
||||
/* Determine if this block number matches the current client block number. */
|
||||
if (client_request_ptr -> nx_tftp_client_request_block_number != block_number)
|
||||
@ -1937,7 +1999,7 @@ UINT status;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_tftp_server_ack_process PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -1980,6 +2042,10 @@ UINT status;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), improved */
|
||||
/* the logic of processing */
|
||||
/* chained packet, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
VOID _nx_tftp_server_ack_process(NX_TFTP_SERVER *server_ptr, NX_PACKET *packet_ptr)
|
||||
@ -1988,8 +2054,9 @@ VOID _nx_tftp_server_ack_process(NX_TFTP_SERVER *server_ptr, NX_PACKET *packet_
|
||||
ULONG ip_address;
|
||||
UINT port;
|
||||
USHORT block_number;
|
||||
UCHAR *buffer_ptr;
|
||||
ULONG bytes_copyed;
|
||||
NX_TFTP_CLIENT_REQUEST *client_request_ptr;
|
||||
UINT status;
|
||||
|
||||
|
||||
/* Extract the source IP and port numbers. */
|
||||
@ -2014,18 +2081,18 @@ NX_TFTP_CLIENT_REQUEST *client_request_ptr;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Setup a pointer to the block number. */
|
||||
buffer_ptr = (UCHAR *) (packet_ptr -> nx_packet_prepend_ptr + 2);
|
||||
/* Pickup the block number. */
|
||||
status = nx_packet_data_extract_offset(packet_ptr, 2, (UCHAR *)&block_number, sizeof(block_number), &bytes_copyed);
|
||||
|
||||
if (packet_ptr -> nx_packet_length < 4)
|
||||
/* Check return status. */
|
||||
if (status || (bytes_copyed != 2))
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Pickup the block number. */
|
||||
block_number = (USHORT)(*buffer_ptr++);
|
||||
block_number = (USHORT)((block_number << 8) | (*buffer_ptr));
|
||||
/* Adjust the endianness. */
|
||||
NX_CHANGE_USHORT_ENDIAN(block_number);
|
||||
|
||||
/* Determine if this block number matches the request. */
|
||||
if (client_request_ptr -> nx_tftp_client_request_block_number != block_number)
|
||||
@ -2433,7 +2500,7 @@ NX_PACKET *new_packet;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_tftp_server_error_process PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -2467,6 +2534,10 @@ NX_PACKET *new_packet;
|
||||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */
|
||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||
/* resulting in version 6.1 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), improved */
|
||||
/* the logic of processing */
|
||||
/* chained packet, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
VOID _nx_tftp_server_error_process(NX_TFTP_SERVER *server_ptr, NX_PACKET *packet_ptr)
|
||||
@ -2478,16 +2549,16 @@ UINT port;
|
||||
ULONG ip_address;
|
||||
NX_TFTP_CLIENT_REQUEST *client_request_ptr;
|
||||
|
||||
|
||||
/* Pickup a pointer to the error code in the buffer. */
|
||||
buffer_ptr = packet_ptr -> nx_packet_prepend_ptr + 2;
|
||||
|
||||
if (packet_ptr -> nx_packet_length < 4)
|
||||
/* Packet chain isn't supported. */
|
||||
if (packet_ptr -> nx_packet_next)
|
||||
{
|
||||
nx_packet_release(packet_ptr);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Pickup a pointer to the error code in the buffer. */
|
||||
buffer_ptr = packet_ptr -> nx_packet_prepend_ptr + 2;
|
||||
|
||||
/* Set the error code in the server control block. */
|
||||
server_ptr -> nx_tftp_server_error_code = (((UINT) (*buffer_ptr)) << 8);
|
||||
buffer_ptr++;
|
||||
|
@ -26,7 +26,7 @@
|
||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||
/* */
|
||||
/* nx_api.h PORTABLE C */
|
||||
/* 6.1.9 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -76,6 +76,9 @@
|
||||
/* 10-15-2021 Yuxin Zhou Modified comment(s), and */
|
||||
/* updated product constants, */
|
||||
/* resulting in version 6.1.9 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), and */
|
||||
/* updated product constants, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
@ -384,7 +387,7 @@ VOID _nx_trace_event_update(TX_TRACE_BUFFER_ENTRY *event, ULONG timestamp, ULONG
|
||||
#define AZURE_RTOS_NETX
|
||||
#define NETX_MAJOR_VERSION 6
|
||||
#define NETX_MINOR_VERSION 1
|
||||
#define NETX_PATCH_VERSION 9
|
||||
#define NETX_PATCH_VERSION 10
|
||||
|
||||
/* The following symbols are defined for backward compatibility reasons.*/
|
||||
#define EL_PRODUCT_NETX
|
||||
|
@ -472,7 +472,7 @@ UINT step;
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _nx_utility_base64_decode PORTABLE C */
|
||||
/* 6.1.6 */
|
||||
/* 6.1.10 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Yuxin Zhou, Microsoft Corporation */
|
||||
@ -507,6 +507,10 @@ UINT step;
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 04-02-2021 Yuxin Zhou Initial Version 6.1.6 */
|
||||
/* 01-31-2022 Yuxin Zhou Modified comment(s), */
|
||||
/* fixed the issue of reading */
|
||||
/* overflow, */
|
||||
/* resulting in version 6.1.10 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _nx_utility_base64_decode(UCHAR *base64name, UINT base64name_size, UCHAR *name, UINT name_size, UINT *bytes_copied)
|
||||
@ -531,13 +535,14 @@ UINT source_size = base64name_size;
|
||||
/* Adjust the length to represent the ASCII name. */
|
||||
base64name_size = ((base64name_size * 6) / 8);
|
||||
|
||||
if (base64name[source_size - 1] == '=')
|
||||
if ((base64name_size) && (base64name[source_size - 1] == '='))
|
||||
{
|
||||
if (base64name[source_size - 2] == '=')
|
||||
{
|
||||
base64name_size --;
|
||||
}
|
||||
base64name_size--;
|
||||
|
||||
if ((base64name_size) && (base64name[source_size - 2] == '='))
|
||||
{
|
||||
base64name_size--;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check the buffer size. */
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARCv2_EM/MetaWare Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARCv2_EM/MetaWare Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARC_HS/MetaWare Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARC_HS/MetaWare Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARM9/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARM9/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARM9/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARM9/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARM9/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX ARM9/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX C667X/TI Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX C667X/TI Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A15/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A15/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A5/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A5/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A5/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A5/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A5x/AC6 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A5x/AC6 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A7/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A8/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A8/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A8/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A8/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A8/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A8/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-A9/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M0/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M0/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -184,7 +184,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M0/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M0/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -181,7 +181,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M0/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M0/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M23/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M23/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -182,7 +182,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M23/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M23/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -181,7 +181,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M23/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M23/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -183,7 +183,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -181,7 +181,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/Keil Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/Keil Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M33/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M33/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -190,7 +190,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M33/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M33/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -181,7 +181,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M33/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M33/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M4/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M4/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -184,7 +184,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M3/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -181,7 +181,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M4/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M4/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M4/Keil Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M4/Keil Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M7/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M7/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -184,7 +184,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M7/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M7/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -181,7 +181,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M7/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-M7/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -179,7 +179,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/AC6 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/AC6 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -180,7 +180,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R4/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R5/AC5 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R5/AC5 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -180,7 +180,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R5/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R5/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R5/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Cortex-R5/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -200,7 +200,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Linux/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Linux/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -212,7 +212,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX RXv2/CCRX Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX RXv2/CCRX Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX RXv2/GNU Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX RXv2/GNU Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX RXv2/IAR Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX RXv2/IAR Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@
|
||||
|
||||
#ifdef NX_SYSTEM_INIT
|
||||
CHAR _nx_version_id[] =
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Win32/VS2019 Version 6.1.9 *";
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved. * NetX Win32/VS2019 Version 6.1.10 *";
|
||||
#else
|
||||
extern CHAR _nx_version_id[];
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user