diff --git a/.github/scripts/core_checker.py b/.github/scripts/core_checker.py
index bcbc53f79e0..c6113dfaf32 100755
--- a/.github/scripts/core_checker.py
+++ b/.github/scripts/core_checker.py
@@ -289,6 +289,7 @@
'.project',
'fyi-another-way-to-ignore-file.txt',
'mbedtls_config.h',
+ 'mbedtls_config_v3.2.1.h',
'requirements.txt',
'run-cbmc-proofs.py',
'.editorconfig',
diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml
index c6b0bcf407b..991cd7528fc 100644
--- a/.github/workflows/auto-release.yml
+++ b/.github/workflows/auto-release.yml
@@ -14,7 +14,7 @@ on:
jobs:
auto-release:
name: Auto Release
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
steps:
- name: Tool Setup
uses: actions/setup-python@v2
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 46bc0ae13aa..5f5d6674f3c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,7 +7,7 @@ on:
jobs:
git-secrets:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
@@ -93,7 +93,7 @@ jobs:
retention-days: 2
spell-check:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
steps:
- name: Checkout Parent Repo
uses: actions/checkout@v2
@@ -125,7 +125,7 @@ jobs:
fi
verify-manifest:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
@@ -143,7 +143,7 @@ jobs:
fail-on-incorrect-version: true
memory-statistics:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
env:
ARM_GCC_TOOLCHAIN_URL: "https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2?revision=05382cca-1721-44e1-ae19-1e7c3dc96118&la=en&hash=D7C9D18FCA2DD9F894FD9F3C3DC9228498FA281A"
steps:
diff --git a/.github/workflows/core-checks.yml b/.github/workflows/core-checks.yml
index 343fa7f339b..25cffd47372 100644
--- a/.github/workflows/core-checks.yml
+++ b/.github/workflows/core-checks.yml
@@ -46,7 +46,7 @@ jobs:
exit $?
build-checker:
name: FreeRTOS Posix Build Check
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
steps:
- name: Clone This Repo
uses: actions/checkout@v2
@@ -65,7 +65,7 @@ jobs:
bash workspace/.github/scripts/posix_network_build_checker.sh workspace
arm-gcc-build-checker:
name: FreeRTOS ARM GCC Build Check
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
env:
ARM_GCC_TOOLCHAIN_URL: "https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2?revision=05382cca-1721-44e1-ae19-1e7c3dc96118&la=en&hash=D7C9D18FCA2DD9F894FD9F3C3DC9228498FA281A"
steps:
diff --git a/.github/workflows/freertos_plus_demos.yml b/.github/workflows/freertos_plus_demos.yml
index a9638ca9d12..1b7b59f8bcf 100644
--- a/.github/workflows/freertos_plus_demos.yml
+++ b/.github/workflows/freertos_plus_demos.yml
@@ -2,19 +2,9 @@ name: Build FreeRTOS+ Demos
on:
push:
branches: ["**"]
- paths:
- - "FreeRTOS/Source"
- - "FreeRTOS-Plus/Source/**"
- - "FreeRTOS-Plus/Demo/Common/**"
- - "FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/**"
pull_request:
branches: [main]
- paths:
- - "FreeRTOS/Source"
- - "FreeRTOS-Plus/Source/**"
- - "FreeRTOS-Plus/Demo/Common/**"
- - "FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/**"
jobs:
winsim_cellular:
@@ -25,7 +15,22 @@ jobs:
uses: actions/checkout@v2
- name: Fetch Submodules
- run: git submodule update --checkout --init --recursive
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \
+ FreeRTOS-Plus/Source/Utilities/backoff_algorithm \
+ FreeRTOS-Plus/Source/coreJSON \
+ FreeRTOS-Plus/Source/corePKCS11 \
+ FreeRTOS-Plus/ThirdParty/mbedtls \
+ FreeRTOS-Plus/ThirdParty/tinycbor
+ git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
@@ -59,6 +64,103 @@ jobs:
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4
run: msbuild mqtt_mutual_auth_demo_with_sara_r4.sln -t:rebuild -property:Configuration=Debug
+ winsim_coreHTTP:
+ name: coreHTTP WinSim Demos
+ runs-on: windows-2019
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Fetch Submodules
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/AWS/sigv4 \
+ FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \
+ FreeRTOS-Plus/Source/Utilities/backoff_algorithm \
+ FreeRTOS-Plus/Source/coreJSON \
+ FreeRTOS-Plus/ThirdParty/mbedtls
+ git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp
+
+ - name: Add msbuild to PATH
+ uses: microsoft/setup-msbuild@v1.1
+
+ - name: Configure coreHTTP Demos
+ shell: bash
+ working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator
+ run: |
+ echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' | tee -a */demo_config.h
+ echo ' #define DEMO_CONFIG_H_TEST_BUILD' | tee -a */demo_config.h
+ echo ' #define democonfigSERVER_HOSTNAME ""' | tee -a */demo_config.h
+ echo ' #define democonfigAWS_IOT_ENDPOINT ""' | tee -a */demo_config.h
+ echo ' #define democonfigROOT_CA_PEM ""' | tee -a */demo_config.h
+ echo ' #define democonfigCLIENT_CERTIFICATE_PEM ""' | tee -a */demo_config.h
+ echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a */demo_config.h
+ echo ' #define democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM ""' | tee -a */demo_config.h
+ echo ' #define democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT ""' | tee -a */demo_config.h
+ echo ' #define democonfigIOT_CREDENTIAL_PROVIDER_ROLE ""' | tee -a */demo_config.h
+ echo ' #define democonfigIOT_THING_NAME ""' | tee -a */demo_config.h
+ echo ' #define democonfigS3_PRESIGNED_GET_URL "ABCDEF"' | tee -a */demo_config.h
+ echo ' #define democonfigS3_PRESIGNED_PUT_URL "ABCDEF"' | tee -a */demo_config.h
+ echo ' #define democonfigS3_ROOT_CA_PEM ""' | tee -a */demo_config.h
+ echo ' #define democonfigS3_BUCKET_NAME ""' | tee -a */demo_config.h
+ echo ' #define democonfigS3_BUCKET_REGION ""' | tee -a */demo_config.h
+ echo ' #define democonfigS3_OBJECT_NAME ""' | tee -a */demo_config.h
+ echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' | tee -a */demo_config.h
+
+ - name: Build HTTP Mutual Auth Demo
+ working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth
+ run: msbuild http_mutual_auth_demo.sln -t:rebuild
+
+ - name: Build HTTP Plain Text Demo
+ working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext
+ run: msbuild http_plain_text_demo.sln -t:rebuild
+
+ - name: Build HTTP S3 Download Demo
+ working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download
+ run: msbuild http_s3_download_demo.sln -t:rebuild
+
+ - name: Build HTTP S3 Download Multithreaded Demo
+ working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded
+ run: msbuild http_s3_download_multithreaded_demo.sln -t:rebuild
+
+ - name: Build HTTP S3 Upload Demo
+ working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload
+ run: msbuild http_s3_upload_demo.sln -t:rebuild
+
+
+ winsim_corePKCS11:
+ name: corePKCS11 WinSim Demos
+ runs-on: windows-2019
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Fetch Submodules
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/AWS/fleet-provisioning \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \
+ FreeRTOS-Plus/Source/Utilities/backoff_algorithm \
+ FreeRTOS-Plus/Source/coreJSON \
+ FreeRTOS-Plus/Source/corePKCS11 \
+ FreeRTOS-Plus/ThirdParty/mbedtls
+
+ git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11
+
+ - name: Add msbuild to PATH
+ uses: microsoft/setup-msbuild@v1.1
+
+ - name: corePKCS11 Demo
+ working-directory: FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator
+ run: msbuild CorePKCS11_Demos.sln -t:rebuild -m
+
winsim_corelibs:
name: core Library Windows Simulator Demos
runs-on: windows-2019
@@ -67,7 +169,34 @@ jobs:
uses: actions/checkout@v2
- name: Fetch Submodules
- run: git submodule update --checkout --init --recursive
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/AWS/device-defender \
+ FreeRTOS-Plus/Source/AWS/device-shadow \
+ FreeRTOS-Plus/Source/AWS/fleet-provisioning \
+ FreeRTOS-Plus/Source/AWS/jobs \
+ FreeRTOS-Plus/Source/AWS/ota \
+ FreeRTOS-Plus/Source/AWS/sigv4 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \
+ FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent \
+ FreeRTOS-Plus/Source/Application-Protocols/coreSNTP \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \
+ FreeRTOS-Plus/Source/Utilities/backoff_algorithm \
+ FreeRTOS-Plus/Source/coreJSON \
+ FreeRTOS-Plus/Source/corePKCS11 \
+ FreeRTOS-Plus/ThirdParty/mbedtls \
+ FreeRTOS-Plus/ThirdParty/tinycbor \
+ FreeRTOS-Plus/ThirdParty/wolfSSL
+
+ git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp
+ git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
@@ -135,11 +264,7 @@ jobs:
- name: Build corePKCS11 + coreMQTT Mutual Auth Demo
working-directory: FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator
- run: msbuild pkcs11_mqtt_mutual_auth_demo.sln -t:rebuild -property:Configuration=Debug -m
-
- - name: corePKCS11 Demo
- working-directory: FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator
- run: msbuild pkcs11_demos.sln -t:rebuild -property:Configuration=Debug -m
+ run: msbuild corePKCS11_MQTT_Mutual_Auth.sln -t:rebuild
- name: Configure coreSNTP_Windows_Simulator
shell: bash
@@ -155,7 +280,7 @@ jobs:
- name: coreSNTP Demo
working-directory: FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator
- run: msbuild core_sntp_demo.sln -t:rebuild -property:Configuration=Debug -m
+ run: msbuild core_sntp_demo.sln -t:rebuild
winsim_aws_iot:
@@ -167,7 +292,34 @@ jobs:
uses: actions/checkout@v2
- name: Fetch Submodules
- run: git submodule update --checkout --init --recursive
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/AWS/device-defender \
+ FreeRTOS-Plus/Source/AWS/device-shadow \
+ FreeRTOS-Plus/Source/AWS/fleet-provisioning \
+ FreeRTOS-Plus/Source/AWS/jobs \
+ FreeRTOS-Plus/Source/AWS/ota \
+ FreeRTOS-Plus/Source/AWS/sigv4 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \
+ FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent \
+ FreeRTOS-Plus/Source/Application-Protocols/coreSNTP \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \
+ FreeRTOS-Plus/Source/Utilities/backoff_algorithm \
+ FreeRTOS-Plus/Source/coreJSON \
+ FreeRTOS-Plus/Source/corePKCS11 \
+ FreeRTOS-Plus/ThirdParty/mbedtls \
+ FreeRTOS-Plus/ThirdParty/tinycbor \
+ FreeRTOS-Plus/ThirdParty/wolfSSL
+
+ git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp
+ git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
@@ -213,7 +365,49 @@ jobs:
working-directory: FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo
run: msbuild ota_over_http_demo.sln -t:rebuild -property:Configuration=Debug -m
- winsim_plus_tcp:
+ plus_tcp_posix:
+ name: FreeRTOS+TCP Posix Simulator Demo
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Fetch Submodules
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP
+
+ - name: Install prerequisite packages
+ run: sudo apt-get install -y git build-essential libpcap-dev
+
+ - name: Build FreeRTOS+TCP Minimal Demo
+ working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix
+ run: make -j
+
+ plus_tcp_arm:
+ name: FreeRTOS+TCP QEMU ARM MPS2 AN385
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v2
+
+ - name: Fetch Submodules
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP
+
+ - name: Install prerequisite packages
+ run: sudo apt-get install -y git make gcc-arm-none-eabi
+
+ - name: Build FreeRTOS+TCP Minimal Demo
+ working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2
+ run: make -j
+
+ plus_tcp_winsim:
name: FreeRTOS+TCP Windows Simulator Demos
runs-on: windows-2019
continue-on-error: true
@@ -222,7 +416,13 @@ jobs:
uses: actions/checkout@v2
- name: Fetch Submodules
- run: git submodule update --checkout --init --recursive
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \
+ FreeRTOS-Plus/ThirdParty/mbedtls \
+ FreeRTOS-Plus/ThirdParty/wolfSSL
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
@@ -252,7 +452,34 @@ jobs:
uses: actions/checkout@v2
- name: Fetch Submodules
- run: git submodule update --checkout --init --recursive
+ shell: bash
+ run: |
+ git submodule update --checkout --init --depth 1 \
+ FreeRTOS/Source \
+ FreeRTOS-Plus/Source/AWS/device-defender \
+ FreeRTOS-Plus/Source/AWS/device-shadow \
+ FreeRTOS-Plus/Source/AWS/fleet-provisioning \
+ FreeRTOS-Plus/Source/AWS/jobs \
+ FreeRTOS-Plus/Source/AWS/ota \
+ FreeRTOS-Plus/Source/AWS/sigv4 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \
+ FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \
+ FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \
+ FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent \
+ FreeRTOS-Plus/Source/Application-Protocols/coreSNTP \
+ FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \
+ FreeRTOS-Plus/Source/Utilities/backoff_algorithm \
+ FreeRTOS-Plus/Source/coreJSON \
+ FreeRTOS-Plus/Source/corePKCS11 \
+ FreeRTOS-Plus/ThirdParty/mbedtls \
+ FreeRTOS-Plus/ThirdParty/tinycbor \
+ FreeRTOS-Plus/ThirdParty/wolfSSL
+
+ git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp
+ git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
diff --git a/.gitignore b/.gitignore
index 932984c1cf1..72f084f465e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,6 +42,10 @@ __pycache__/
*.pem
*.crt
+# Ignore Visual Studio user files
+*.suo
+*.vcxproj.user
+
# Atmel Studio user files
*.atsuo
diff --git a/.gitmodules b/.gitmodules
index 76c5f8ae185..88ad6e43c3a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -21,7 +21,7 @@
url = https://github.com/ThrowTheSwitch/CMock
[submodule "FreeRTOS-Plus/ThirdParty/mbedtls"]
path = FreeRTOS-Plus/ThirdParty/mbedtls
- url = https://github.com/ARMmbed/mbedtls
+ url = https://github.com/Mbed-TLS/mbedtls.git
[submodule "FreeRTOS-Plus/Source/Application-Protocols/corePKCS11"]
path = FreeRTOS-Plus/Source/corePKCS11
url = https://github.com/FreeRTOS/corePKCS11.git
diff --git a/FreeRTOS-Plus/.gitignore b/FreeRTOS-Plus/.gitignore
new file mode 100644
index 00000000000..db660dd4a1c
--- /dev/null
+++ b/FreeRTOS-Plus/.gitignore
@@ -0,0 +1 @@
+*.vcxproj.user
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/DemoTasks/DefenderDemoExample.c b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/DemoTasks/DefenderDemoExample.c
index 9e930d0fd70..771d869e96b 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/DemoTasks/DefenderDemoExample.c
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/DemoTasks/DefenderDemoExample.c
@@ -291,20 +291,6 @@ static bool prvPublishDeviceMetricsReport( size_t xReportLength );
static bool prvValidateDefenderResponse( const char * pcDefenderResponse,
size_t xDefenderResponseLength );
-/**
- * @brief The task used to demonstrate the Defender API.
- *
- * This task collects metrics from the device using the functions in
- * metrics_collector.h and uses them to build a defender report using functions
- * in report_builder.h. Metrics include the number for bytes written and read
- * over the network, open TCP and UDP ports, and open TCP sockets. The
- * generated report is then published to the AWS IoT Device Defender service.
- *
- * @param[in] pvParameters Parameters as passed at the time of task creation.
- * Not used in this example.
- */
-static void prvDefenderDemoTask( void * pvParameters );
-
/*-----------------------------------------------------------*/
static bool prvValidateDefenderResponse( const char * pcDefenderResponse,
@@ -468,7 +454,9 @@ static bool prvCollectDeviceMetrics( void )
{
bool xStatus = false;
eMetricsCollectorStatus eStatus;
- size_t xNumOpenTcpPorts = 0UL, xNumOpenUdpPorts = 0UL, xNumEstablishedConnections = 0UL, i;
+ size_t uxNumOpenTcpPorts = 0UL;
+ size_t uxNumOpenUdpPorts = 0UL;
+ size_t uxNumEstablishedConnections = 0UL;
UBaseType_t uxTasksWritten = { 0 };
UBaseType_t uxNumTasksRunning;
TaskStatus_t pxTaskStatus = { 0 };
@@ -487,8 +475,8 @@ static bool prvCollectDeviceMetrics( void )
if( eStatus == eMetricsCollectorSuccess )
{
eStatus = eGetOpenTcpPorts( &( pusOpenTcpPorts[ 0 ] ),
- democonfigOPEN_TCP_PORTS_ARRAY_SIZE,
- &( xNumOpenTcpPorts ) );
+ democonfigOPEN_TCP_PORTS_ARRAY_SIZE,
+ &( uxNumOpenTcpPorts ) );
if( eStatus != eMetricsCollectorSuccess )
{
@@ -501,8 +489,8 @@ static bool prvCollectDeviceMetrics( void )
if( eStatus == eMetricsCollectorSuccess )
{
eStatus = eGetOpenUdpPorts( &( pusOpenUdpPorts[ 0 ] ),
- democonfigOPEN_UDP_PORTS_ARRAY_SIZE,
- &( xNumOpenUdpPorts ) );
+ democonfigOPEN_UDP_PORTS_ARRAY_SIZE,
+ &( uxNumOpenUdpPorts ) );
if( eStatus != eMetricsCollectorSuccess )
{
@@ -515,8 +503,8 @@ static bool prvCollectDeviceMetrics( void )
if( eStatus == eMetricsCollectorSuccess )
{
eStatus = eGetEstablishedConnections( &( pxEstablishedConnections[ 0 ] ),
- democonfigESTABLISHED_CONNECTIONS_ARRAY_SIZE,
- &( xNumEstablishedConnections ) );
+ democonfigESTABLISHED_CONNECTIONS_ARRAY_SIZE,
+ &( uxNumEstablishedConnections ) );
if( eStatus != eMetricsCollectorSuccess )
{
@@ -546,8 +534,8 @@ static bool prvCollectDeviceMetrics( void )
if( eStatus == eMetricsCollectorSuccess )
{
/* Get the current task's status information. The usStackHighWaterMark
- * field of the task status will be included in the report as a "number"
- * custom metric. */
+ * field of the task status will be included in the report as a "number"
+ * custom metric. */
vTaskGetInfo(
/* Query this task. */
NULL,
@@ -556,6 +544,7 @@ static bool prvCollectDeviceMetrics( void )
pdTRUE,
/* Don't include the task state in the TaskStatus_t structure. */
0 );
+
/* Get the task status information for all running tasks. The task IDs
* of each task is then extracted to include in the report as a "list of
* numbers" custom metric */
@@ -578,11 +567,11 @@ static bool prvCollectDeviceMetrics( void )
xStatus = true;
xDeviceMetrics.pxNetworkStats = &( xNetworkStats );
xDeviceMetrics.pusOpenTcpPortsArray = &( pusOpenTcpPorts[ 0 ] );
- xDeviceMetrics.xOpenTcpPortsArrayLength = xNumOpenTcpPorts;
+ xDeviceMetrics.xOpenTcpPortsArrayLength = uxNumOpenTcpPorts;
xDeviceMetrics.pusOpenUdpPortsArray = &( pusOpenUdpPorts[ 0 ] );
- xDeviceMetrics.xOpenUdpPortsArrayLength = xNumOpenUdpPorts;
+ xDeviceMetrics.xOpenUdpPortsArrayLength = uxNumOpenUdpPorts;
xDeviceMetrics.pxEstablishedConnectionsArray = &( pxEstablishedConnections[ 0 ] );
- xDeviceMetrics.xEstablishedConnectionsArrayLength = xNumEstablishedConnections;
+ xDeviceMetrics.xEstablishedConnectionsArrayLength = uxNumEstablishedConnections;
xDeviceMetrics.ulStackHighWaterMark = pxTaskStatus.usStackHighWaterMark;
xDeviceMetrics.pxTaskStatusArray = pxTaskStatusArray;
xDeviceMetrics.xTaskStatusArrayLength = uxTasksWritten;
@@ -699,30 +688,12 @@ static bool prvPublishDeviceMetricsReport( size_t xReportLength )
}
/*-----------------------------------------------------------*/
-/**
- * @brief Create the task that demonstrates the Device Defender library API via
- * a mutually authenticated MQTT connection with the AWS IoT broker.
- */
-void vStartDefenderDemo( void )
-{
- /* This example uses a single application task, which shows that how to use
- * Device Defender library to generate and validate AWS IoT Device Defender
- * MQTT topics, and use the coreMQTT library to communicate with the AWS
- * IoT Device Defender service. */
- xTaskCreate( prvDefenderDemoTask, /* Function that implements the task. */
- "DemoTask", /* Text name for the task - only used for debugging. */
- democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
- NULL, /* Task parameter - not used in this case. */
- tskIDLE_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
- NULL ); /* Used to pass out a handle to the created task - not used in this case. */
-}
-/*-----------------------------------------------------------*/
-
void prvDefenderDemoTask( void * pvParameters )
{
bool xStatus = false;
BaseType_t xExitStatus = EXIT_FAILURE;
- uint32_t ulReportLength = 0UL, i;
+ size_t uxReportLength = 0UL;
+ size_t uxIdx;
bool xMqttSessionEstablished = false;
UBaseType_t uxDemoRunCount = 0UL;
@@ -740,6 +711,18 @@ void prvDefenderDemoTask( void * pvParameters )
* DEFENDER_MAX_DEMO_LOOP_COUNT times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Set a report ID to be used.
*
* !!!NOTE!!!
@@ -842,7 +825,7 @@ void prvDefenderDemoTask( void * pvParameters )
if( xStatus == true )
{
LogInfo( ( "Generating Device Defender report..." ) );
- xStatus = prvGenerateDeviceMetricsReport( &( ulReportLength ) );
+ xStatus = prvGenerateDeviceMetricsReport( &( uxReportLength ) );
/* Free the allocated array in xDeviceMetrics struct which is not
* used anymore after prvGenerateDeviceMetricsReport(). This code is
@@ -867,7 +850,7 @@ void prvDefenderDemoTask( void * pvParameters )
if( xStatus == true )
{
LogInfo( ( "Publishing Device Defender report..." ) );
- xStatus = prvPublishDeviceMetricsReport( ulReportLength );
+ xStatus = prvPublishDeviceMetricsReport( uxReportLength );
if( xStatus != true )
{
@@ -882,7 +865,7 @@ void prvDefenderDemoTask( void * pvParameters )
* the accepted or rejected topics, it updates xReportStatus. */
if( xStatus == true )
{
- for( i = 0; i < DEFENDER_RESPONSE_WAIT_SECONDS; i++ )
+ for( uxIdx = 0; uxIdx < DEFENDER_RESPONSE_WAIT_SECONDS; uxIdx++ )
{
( void ) xProcessLoop( &xMqttContext, 1000 );
@@ -960,6 +943,8 @@ void prvDefenderDemoTask( void * pvParameters )
LogError( ( "Demo failed." ) );
}
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
+
/* Delete this task. */
LogInfo( ( "Deleting Defender Demo task." ) );
vTaskDelete( NULL );
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/Device_Defender_Demo.vcxproj b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/Device_Defender_Demo.vcxproj
new file mode 100644
index 00000000000..456fb7a0725
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/Device_Defender_Demo.vcxproj
@@ -0,0 +1,198 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {6c548950-0bed-42ef-8039-95a2084a806d}
+ DeviceDefenderDemo
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\AWS\device-defender\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\AWS\device-defender\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\AWS\device-defender\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="medtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\AWS\device-defender\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/Device_Defender_Demo.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/Device_Defender_Demo.vcxproj.filters
new file mode 100644
index 00000000000..c273ca480e4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/Device_Defender_Demo.vcxproj.filters
@@ -0,0 +1,171 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {dd51d59e-5364-4754-8bf8-9d28b504b06d}
+
+
+ {2860744a-0818-43ed-823e-814141580842}
+
+
+ {f9d9acc8-facf-4594-848f-c86e8d4448ed}
+
+
+ {c9e66dd3-1d31-4e7f-91f8-044acb1d500c}
+
+
+ {df5ee1fa-4f3a-47a2-b3f6-5b78ad7b8c90}
+
+
+ {69eea975-6c9c-40bc-b0af-4fb5133106c1}
+
+
+ {432ee803-f901-47d9-94cc-5ca2f95211ea}
+
+
+ {ad937432-b2b1-4c00-81ab-2f89f93fab5e}
+
+
+ {aae732f5-763c-4654-907f-a3b8d3ac59b7}
+
+
+ {4a9d6aa8-5941-465f-9b9c-4ea26cd54f45}
+
+
+ {402f543a-4604-4007-a33e-88a612b1bccd}
+
+
+ {2bc92365-ac9c-4c19-9f72-fb69e25d2b57}
+
+
+ {65d207cd-19f3-4660-9f1a-a8d91a5b4389}
+
+
+ {5f612844-a9d1-495d-9945-78b7502c17eb}
+
+
+ {8d8cb4b4-13f9-4ff1-9465-e1fc9f293fc8}
+
+
+ {bc47cbaf-951c-4b67-8400-2e7d7efe5bf0}
+
+
+ {528452a5-23b0-41fe-b45e-0bb78c435d75}
+
+
+ {a1785447-203d-46e5-aa81-d3e2c5c257be}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\AWS IoT Device Defender
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreJSON
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Additional Libraries\AWS IoT Device Defender\include
+
+
+ Additional Libraries\AWS IoT Device Defender\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\coreJSON\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/WIN32.vcxproj b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/WIN32.vcxproj
deleted file mode 100644
index 238e53304e3..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/WIN32.vcxproj
+++ /dev/null
@@ -1,695 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\Common\WinPCap;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\..\Source\mbedtls_utils;..\..\..\..\ThirdParty\mbedtls\include;..\..\..\..\Source\AWS\device-defender\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;.;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\..\Source\include;..\..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/WIN32.vcxproj.filters
deleted file mode 100644
index 215c2843d35..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,876 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {20aee693-d2dc-480e-ae21-0db2156e54ac}
-
-
- {0dacb84e-5cc3-4eed-8fb1-68b6e4741f77}
-
-
- {21d4cf41-bbdc-46af-8508-1193e3b6595a}
-
-
- {ca4314cd-3b61-4dd8-b5ab-dbc3f1ed004e}
-
-
- {9f1aaf81-1839-4673-b7e3-1501dd0edd02}
-
-
- {35c65887-47a1-496f-b632-8082be580456}
-
-
- {974934dc-7cd5-40f6-b449-3b932adf89ab}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {40de67d3-3815-46f9-a581-c1a01dbacc92}
-
-
- {2bef4675-f45b-4988-9db3-4ddbf60406ac}
-
-
- {ced49869-3746-4f73-ba8d-4513320e5e9b}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON
-
-
-
- DemoTasks
-
-
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\device-defender
-
-
- FreeRTOS+\FreeRTOS+TCP\tcp_utilities
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\device-defender\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\device-defender\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS+TCP\tcp_utilities\include
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/defender_demo.sln b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/defender_demo.sln
index dcfc1fe098d..d5b26f8e42b 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/defender_demo.sln
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/defender_demo.sln
@@ -1,25 +1,79 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.31205.134
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Device_Defender_Demo", "Device_Defender_Demo.vcxproj", "{6C548950-0BED-42EF-8039-95A2084A806D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{DBCD753C-52CF-4671-B979-F19EF96D4303}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Debug|x64.ActiveCfg = Debug|x64
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Debug|x64.Build.0 = Debug|x64
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Debug|x86.ActiveCfg = Debug|Win32
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Debug|x86.Build.0 = Debug|Win32
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Release|x64.ActiveCfg = Release|x64
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Release|x64.Build.0 = Release|x64
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Release|x86.ActiveCfg = Release|Win32
+ {6C548950-0BED-42EF-8039-95A2084A806D}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {DBCD753C-52CF-4671-B979-F19EF96D4303}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {DBCD753C-52CF-4671-B979-F19EF96D4303}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {DBCD753C-52CF-4671-B979-F19EF96D4303}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {DBCD753C-52CF-4671-B979-F19EF96D4303}
EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E8237739-26DE-4179-84E1-70E13623A2ED}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/main.c b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/main.c
index c98b3316c2f..694d28e98e7 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/main.c
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/main.c
@@ -51,77 +51,43 @@
/* Demo Specific configs. */
#include "demo_config.h"
-
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * Defender demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * vStartDefenderDemo() is called from inside vApplicationIPNetworkEventHook().
- */
-extern void vStartDefenderDemo( void );
-
-/*
- * Just seeds the simple pseudo random number generator.
+/**
+ * @brief The task used to demonstrate the Defender API.
*
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
+ * This task collects metrics from the device using the functions in
+ * metrics_collector.h and uses them to build a defender report using functions
+ * in report_builder.h. Metrics include the number for bytes written and read
+ * over the network, open TCP and UDP ports, and open TCP sockets. The
+ * generated report is then published to the AWS IoT Device Defender service.
+ *
+ * @param[in] pvParameters Parameters as passed at the time of task creation.
+ * Not used in this example.
*/
-static void prvMiscInitialisation( void );
+void prvDefenderDemoTask( void * pvParameters );
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
+extern void vPlatformInitIpStack( void );
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
-
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /***
- * See https://www.FreeRTOS.org/iot-device-shadow for configuration and usage instructions.
- ***/
+ vPlatformInitLogging();
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ /*
+ * This example uses a single application task, which shows that how to use
+ * Device Defender library to generate and validate AWS IoT Device Defender
+ * MQTT topics, and use the coreMQTT library to communicate with the AWS
+ * IoT Device Defender service.
+ */
+ xTaskCreate( prvDefenderDemoTask, /* Function that implements the task. */
+ "DemoTask", /* Text name for the task - only used for debugging. */
+ democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
+ NULL, /* Task parameter - not used in this case. */
+ tskIDLE_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
+ NULL ); /* Used to pass out a handle to the created task - not used in this case. */
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ /* Initialize the FreeRTOS+TCP Stack */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -130,256 +96,13 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartDefenderDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n", ulRandomNumbers[ 0 ], ulRandomNumbers[ 1 ], ulRandomNumbers[ 2 ], ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
}
-/*-----------------------------------------------------------*/
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/mbedtls_config.h b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.c b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.c
index 6c5e4514c49..9de54904ce5 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.c
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.c
@@ -82,10 +82,10 @@ eMetricsCollectorStatus eGetNetworkStats( NetworkStats_t * pxOutNetworkStats )
( unsigned long ) xMetrics.xOutput.uxByteCount,
( unsigned long ) xMetrics.xOutput.uxPacketCount ) );
- pxOutNetworkStats->ulBytesReceived = xMetrics.xInput.uxByteCount;
- pxOutNetworkStats->ulPacketsReceived = xMetrics.xInput.uxPacketCount;
- pxOutNetworkStats->ulBytesSent = xMetrics.xOutput.uxByteCount;
- pxOutNetworkStats->ulPacketsSent = xMetrics.xOutput.uxPacketCount;
+ pxOutNetworkStats->uxBytesReceived = xMetrics.xInput.uxByteCount;
+ pxOutNetworkStats->uxPacketsReceived = xMetrics.xInput.uxPacketCount;
+ pxOutNetworkStats->uxBytesSent = xMetrics.xOutput.uxByteCount;
+ pxOutNetworkStats->uxPacketsSent = xMetrics.xOutput.uxPacketCount;
}
return eStatus;
@@ -154,7 +154,7 @@ eMetricsCollectorStatus eGetOpenUdpPorts( uint16_t * pusOutUdpPortsArray,
MetricsType_t xMetrics = { 0 };
BaseType_t xMetricsStatus = 0;
- uint32_t xCopyAmount = 0UL;
+ size_t xCopyAmount = 0UL;
/* pusOutUdpPortsArray can be NULL. */
configASSERT( pxOutNumUdpOpenPorts != NULL );
@@ -210,8 +210,8 @@ eMetricsCollectorStatus eGetEstablishedConnections( Connection_t * pxOutConnecti
MetricsType_t xMetrics = { 0 };
BaseType_t xMetricsStatus = 0;
size_t xCopyAmount = 0UL;
+ size_t uxIdx;
uint32_t ulLocalIp = 0UL;
- uint32_t i;
/* pxOutConnectionsArray can be NULL. */
configASSERT( pxOutNumEstablishedConnections != NULL );
@@ -244,15 +244,15 @@ eMetricsCollectorStatus eGetEstablishedConnections( Connection_t * pxOutConnecti
xCopyAmount = xConnectionsArrayLength;
}
- for( i = 0; i < xCopyAmount; i++ )
+ for( uxIdx = 0; uxIdx < xCopyAmount; uxIdx++ )
{
- pxOutConnectionsArray[ i ].ulLocalIp = ulLocalIp;
- pxOutConnectionsArray[ i ].usLocalPort =
- xMetrics.xTCPSocketList.xTCPList[ i ].usLocalPort;
- pxOutConnectionsArray[ i ].ulRemoteIp =
- xMetrics.xTCPSocketList.xTCPList[ i ].ulRemoteIP;
- pxOutConnectionsArray[ i ].usRemotePort =
- xMetrics.xTCPSocketList.xTCPList[ i ].usRemotePort;
+ pxOutConnectionsArray[ uxIdx ].ulLocalIp = ulLocalIp;
+ pxOutConnectionsArray[ uxIdx ].usLocalPort =
+ xMetrics.xTCPSocketList.xTCPList[ uxIdx ].usLocalPort;
+ pxOutConnectionsArray[ uxIdx ].ulRemoteIp =
+ xMetrics.xTCPSocketList.xTCPList[ uxIdx ].ulRemoteIP;
+ pxOutConnectionsArray[ uxIdx ].usRemotePort =
+ xMetrics.xTCPSocketList.xTCPList[ uxIdx ].usRemotePort;
}
/* Return the number of elements copied to the array. */
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.h b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.h
index 291ab89afeb..76c01621ad2 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.h
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/metrics_collector.h
@@ -51,10 +51,10 @@ typedef enum
*/
typedef struct NetworkStats
{
- uint32_t ulBytesReceived; /**< Number of bytes received. */
- uint32_t ulBytesSent; /**< Number of bytes sent. */
- uint32_t ulPacketsReceived; /**< Number of packets (ethernet frames) received. */
- uint32_t ulPacketsSent; /**< Number of packets (ethernet frames) sent. */
+ size_t uxBytesReceived; /**< Number of bytes received. */
+ size_t uxBytesSent; /**< Number of bytes sent. */
+ size_t uxPacketsReceived; /**< Number of packets (ethernet frames) received. */
+ size_t uxPacketsSent; /**< Number of packets (ethernet frames) sent. */
} NetworkStats_t;
/**
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/report_builder.c b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/report_builder.c
index d9cd07ee9b1..dbbeade41d4 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/report_builder.c
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/report_builder.c
@@ -42,79 +42,9 @@
/* Interface include. */
#include "report_builder.h"
-/* Various JSON characters. */
-#define reportbuilderJSON_ARRAY_OPEN_MARKER '['
-#define reportbuilderJSON_ARRAY_CLOSE_MARKER ']'
-#define reportbuilderJSON_ARRAY_OBJECT_SEPARATOR ','
-
/* Helper macro to check if snprintf was successful. */
#define reportbuilderSNPRINTF_SUCCESS( retVal, bufLen ) ( ( retVal > 0 ) && ( ( uint32_t ) retVal < bufLen ) )
-/* Formats used to generate the JSON report. */
-#define reportbuilderJSON_PORT_OBJECT_FORMAT \
- "{" \
- "\""DEFENDER_REPORT_PORT_KEY"\": %u" \
- "},"
-
-#define reportbuilderJSON_CONNECTION_OBJECT_FORMAT \
- "{" \
- "\""DEFENDER_REPORT_LOCAL_PORT_KEY"\": %u," \
- "\""DEFENDER_REPORT_REMOTE_ADDR_KEY"\": \"%u.%u.%u.%u:%u\"" \
- "},"
-
-#define reportbuilderJSON_REPORT_FORMAT_PART1 \
- "{" \
- "\""DEFENDER_REPORT_HEADER_KEY"\": {" \
- "\""DEFENDER_REPORT_ID_KEY"\": %u," \
- "\""DEFENDER_REPORT_VERSION_KEY"\": \"%u.%u\"" \
- "}," \
- "\""DEFENDER_REPORT_METRICS_KEY"\": {" \
- "\""DEFENDER_REPORT_TCP_LISTENING_PORTS_KEY"\": {" \
- "\""DEFENDER_REPORT_PORTS_KEY"\": "
-
-#define reportbuilderJSON_REPORT_FORMAT_PART2 \
- "," \
- "\""DEFENDER_REPORT_TOTAL_KEY"\": %u" \
- "}," \
- "\""DEFENDER_REPORT_UDP_LISTENING_PORTS_KEY"\": {" \
- "\""DEFENDER_REPORT_PORTS_KEY"\": "
-
-#define reportbuilderJSON_REPORT_FORMAT_PART3 \
- "," \
- "\""DEFENDER_REPORT_TOTAL_KEY"\": %u" \
- "}," \
- "\""DEFENDER_REPORT_NETWORK_STATS_KEY"\": {" \
- "\""DEFENDER_REPORT_BYTES_IN_KEY"\": %u," \
- "\""DEFENDER_REPORT_BYTES_OUT_KEY"\": %u," \
- "\""DEFENDER_REPORT_PKTS_IN_KEY"\": %u," \
- "\""DEFENDER_REPORT_PKTS_OUT_KEY"\": %u" \
- "}," \
- "\""DEFENDER_REPORT_TCP_CONNECTIONS_KEY"\": {" \
- "\""DEFENDER_REPORT_ESTABLISHED_CONNECTIONS_KEY"\": {" \
- "\""DEFENDER_REPORT_CONNECTIONS_KEY"\": "
-
-#define reportbuilderJSON_REPORT_FORMAT_PART4 \
- "," \
- "\""DEFENDER_REPORT_TOTAL_KEY"\": %u" \
- "}" \
- "}" \
- "}," \
- "\""DEFENDER_REPORT_CUSTOM_METRICS_KEY"\": {" \
- "\"stack_high_water_mark\": [" \
- "{" \
- "\""DEFENDER_REPORT_NUMBER_KEY"\": %u" \
- "}" \
- "]," \
- "\"task_numbers\": [" \
- "{" \
- "\""DEFENDER_REPORT_NUMBER_LIST_KEY"\": "
-
-#define reportbuilderJSON_REPORT_FORMAT_PART5 \
- "}" \
- "]" \
- "}" \
- "}"
-
/*-----------------------------------------------------------*/
/**
@@ -197,13 +127,13 @@ static eReportBuilderStatus prvWriteTaskIdArray( char * pcBuffer,
/*-----------------------------------------------------------*/
static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
- uint32_t xBufferLength,
+ size_t xBufferLength,
const uint16_t * pusOpenPortsArray,
- uint32_t xOpenPortsArrayLength,
- uint32_t * pxOutCharsWritten )
+ size_t xOpenPortsArrayLength,
+ size_t * pxOutCharsWritten )
{
char * pcCurrentWritePos = pcBuffer;
- uint32_t i;
+ size_t uxIdx;
size_t xRemainingBufferLength = xBufferLength;
int32_t lCharactersWritten;
eReportBuilderStatus eStatus = eReportBuilderSuccess;
@@ -215,7 +145,7 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
/* Write the JSON array open marker. */
if( xRemainingBufferLength > 1 )
{
- *pcCurrentWritePos = reportbuilderJSON_ARRAY_OPEN_MARKER;
+ *pcCurrentWritePos = '[';
xRemainingBufferLength -= 1;
pcCurrentWritePos += 1;
}
@@ -225,12 +155,14 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
}
/* Write the array elements. */
- for( i = 0; ( ( i < xOpenPortsArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); i++ )
+ for( uxIdx = 0U; ( ( uxIdx < xOpenPortsArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); uxIdx++ )
{
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
- reportbuilderJSON_PORT_OBJECT_FORMAT,
- pusOpenPortsArray[ i ] );
+ "{"
+ "\"" DEFENDER_REPORT_PORT_KEY "\":%u"
+ "},",
+ ( unsigned int ) pusOpenPortsArray[ uxIdx ] );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
@@ -255,7 +187,7 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
/* Write the JSON array close marker. */
if( xRemainingBufferLength > 1 )
{
- *pcCurrentWritePos = reportbuilderJSON_ARRAY_CLOSE_MARKER;
+ *pcCurrentWritePos = ']';
xRemainingBufferLength -= 1;
pcCurrentWritePos += 1;
*pxOutCharsWritten = xBufferLength - xRemainingBufferLength;
@@ -277,7 +209,7 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
size_t * pxOutCharsWritten )
{
char * pcCurrentWritePos = pcBuffer;
- uint32_t i;
+ size_t uxIdx;
size_t xRemainingBufferLength = xBufferLength;
int32_t lCharactersWritten;
eReportBuilderStatus eStatus = eReportBuilderSuccess;
@@ -290,7 +222,7 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
/* Write the JSON array open marker. */
if( xRemainingBufferLength > 1 )
{
- *pcCurrentWritePos = reportbuilderJSON_ARRAY_OPEN_MARKER;
+ *pcCurrentWritePos = '[';
xRemainingBufferLength -= 1;
pcCurrentWritePos += 1;
}
@@ -300,18 +232,21 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
}
/* Write the array elements. */
- for( i = 0; ( ( i < xConnectionsArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); i++ )
+ for( uxIdx = 0; ( ( uxIdx < xConnectionsArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); uxIdx++ )
{
- pxConn = &( pxConnectionsArray[ i ] );
+ pxConn = &( pxConnectionsArray[ uxIdx ] );
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
- reportbuilderJSON_CONNECTION_OBJECT_FORMAT,
- pxConn->usLocalPort,
- ( pxConn->ulRemoteIp >> 24 ) & 0xFF,
- ( pxConn->ulRemoteIp >> 16 ) & 0xFF,
- ( pxConn->ulRemoteIp >> 8 ) & 0xFF,
- ( pxConn->ulRemoteIp ) & 0xFF,
- pxConn->usRemotePort );
+ "{"
+ "\""DEFENDER_REPORT_LOCAL_PORT_KEY"\": %u,"
+ "\""DEFENDER_REPORT_REMOTE_ADDR_KEY"\": \"%u.%u.%u.%u:%u\""
+ "},",
+ ( unsigned int ) pxConn->usLocalPort,
+ ( unsigned int ) ( pxConn->ulRemoteIp >> 24 ) & 0xFF,
+ ( unsigned int ) ( pxConn->ulRemoteIp >> 16 ) & 0xFF,
+ ( unsigned int ) ( pxConn->ulRemoteIp >> 8 ) & 0xFF,
+ ( unsigned int ) ( pxConn->ulRemoteIp ) & 0xFF,
+ ( unsigned int ) pxConn->usRemotePort );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
@@ -336,7 +271,7 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
/* Write the JSON array close marker. */
if( xRemainingBufferLength > 1 )
{
- *pcCurrentWritePos = reportbuilderJSON_ARRAY_CLOSE_MARKER;
+ *pcCurrentWritePos = ']';
xRemainingBufferLength -= 1;
pcCurrentWritePos += 1;
*pxOutCharsWritten = xBufferLength - xRemainingBufferLength;
@@ -358,7 +293,7 @@ static eReportBuilderStatus prvWriteTaskIdArray( char * pcBuffer,
size_t * pxOutCharsWritten )
{
char * pcCurrentWritePos = pcBuffer;
- uint32_t i;
+ size_t uxIdx;
size_t xRemainingBufferLength = xBufferLength;
int32_t lCharactersWritten;
eReportBuilderStatus eStatus = eReportBuilderSuccess;
@@ -370,7 +305,7 @@ static eReportBuilderStatus prvWriteTaskIdArray( char * pcBuffer,
/* Write the JSON array open marker. */
if( xRemainingBufferLength > 1 )
{
- *pcCurrentWritePos = reportbuilderJSON_ARRAY_OPEN_MARKER;
+ *pcCurrentWritePos = '[';
xRemainingBufferLength -= 1;
pcCurrentWritePos += 1;
}
@@ -380,12 +315,12 @@ static eReportBuilderStatus prvWriteTaskIdArray( char * pcBuffer,
}
/* Write the array elements. */
- for( i = 0; ( ( i < xTaskStatusArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); i++ )
+ for( uxIdx = 0; ( ( uxIdx < xTaskStatusArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); uxIdx++ )
{
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
"%u,",
- pxTaskStatusArray[ i ].xTaskNumber );
+ ( unsigned int ) pxTaskStatusArray[ uxIdx ].xTaskNumber );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
@@ -410,7 +345,7 @@ static eReportBuilderStatus prvWriteTaskIdArray( char * pcBuffer,
/* Write the JSON array close marker. */
if( xRemainingBufferLength > 1 )
{
- *pcCurrentWritePos = reportbuilderJSON_ARRAY_CLOSE_MARKER;
+ *pcCurrentWritePos = ']';
xRemainingBufferLength -= 1;
pcCurrentWritePos += 1;
*pxOutCharsWritten = xBufferLength - xRemainingBufferLength;
@@ -435,7 +370,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
{
char * pcCurrentWritePos = pcBuffer;
size_t xRemainingBufferLength = xBufferLength;
- uint32_t bufferWritten;
+ size_t bufferWritten;
eReportBuilderStatus eStatus = eReportBuilderSuccess;
int32_t lCharactersWritten;
@@ -463,10 +398,17 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
{
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
- reportbuilderJSON_REPORT_FORMAT_PART1,
- ulReportId,
- ulMajorReportVersion,
- ulMinorReportVersion );
+ "{"
+ "\""DEFENDER_REPORT_HEADER_KEY"\": {"
+ "\""DEFENDER_REPORT_ID_KEY"\": %u,"
+ "\""DEFENDER_REPORT_VERSION_KEY"\": \"%u.%u\""
+ "},"
+ "\""DEFENDER_REPORT_METRICS_KEY"\": {"
+ "\""DEFENDER_REPORT_TCP_LISTENING_PORTS_KEY"\": {"
+ "\""DEFENDER_REPORT_PORTS_KEY"\": ",
+ ( unsigned int ) ulReportId,
+ ( unsigned int ) ulMajorReportVersion,
+ ( unsigned int ) ulMinorReportVersion );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
@@ -505,8 +447,12 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
{
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
- reportbuilderJSON_REPORT_FORMAT_PART2,
- pxMetrics->xOpenTcpPortsArrayLength );
+ ","
+ "\""DEFENDER_REPORT_TOTAL_KEY"\": %u"
+ "},"
+ "\""DEFENDER_REPORT_UDP_LISTENING_PORTS_KEY"\": {"
+ "\""DEFENDER_REPORT_PORTS_KEY"\": ",
+ ( unsigned int ) pxMetrics->xOpenTcpPortsArrayLength );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
@@ -545,13 +491,23 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
{
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
- reportbuilderJSON_REPORT_FORMAT_PART3,
- pxMetrics->xOpenUdpPortsArrayLength,
- pxMetrics->pxNetworkStats->ulBytesReceived,
- pxMetrics->pxNetworkStats->ulBytesSent,
- pxMetrics->pxNetworkStats->ulPacketsReceived,
- pxMetrics->pxNetworkStats->ulPacketsSent,
- DEFENDER_REPORT_ESTABLISHED_CONNECTIONS_KEY );
+ ","
+ "\""DEFENDER_REPORT_TOTAL_KEY"\": %u"
+ "},"
+ "\""DEFENDER_REPORT_NETWORK_STATS_KEY"\": {"
+ "\""DEFENDER_REPORT_BYTES_IN_KEY"\": %u,"
+ "\""DEFENDER_REPORT_BYTES_OUT_KEY"\": %u,"
+ "\""DEFENDER_REPORT_PKTS_IN_KEY"\": %u,"
+ "\""DEFENDER_REPORT_PKTS_OUT_KEY"\": %u"
+ "},"
+ "\""DEFENDER_REPORT_TCP_CONNECTIONS_KEY"\": {"
+ "\""DEFENDER_REPORT_ESTABLISHED_CONNECTIONS_KEY"\": {"
+ "\""DEFENDER_REPORT_CONNECTIONS_KEY"\": ",
+ ( unsigned int ) pxMetrics->xOpenUdpPortsArrayLength,
+ ( unsigned int ) pxMetrics->pxNetworkStats->uxBytesReceived,
+ ( unsigned int ) pxMetrics->pxNetworkStats->uxBytesSent,
+ ( unsigned int ) pxMetrics->pxNetworkStats->uxPacketsReceived,
+ ( unsigned int ) pxMetrics->pxNetworkStats->uxPacketsSent );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
@@ -590,9 +546,22 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
{
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
- reportbuilderJSON_REPORT_FORMAT_PART4,
- pxMetrics->xEstablishedConnectionsArrayLength,
- pxMetrics->ulStackHighWaterMark );
+ ","
+ "\""DEFENDER_REPORT_TOTAL_KEY"\": %u"
+ "}"
+ "}"
+ "},"
+ "\""DEFENDER_REPORT_CUSTOM_METRICS_KEY"\": {"
+ "\"stack_high_water_mark\": ["
+ "{"
+ "\""DEFENDER_REPORT_NUMBER_KEY"\": %u"
+ "}"
+ "],"
+ "\"task_numbers\": ["
+ "{"
+ "\""DEFENDER_REPORT_NUMBER_LIST_KEY"\": ",
+ ( unsigned int ) pxMetrics->xEstablishedConnectionsArrayLength,
+ ( unsigned int ) pxMetrics->ulStackHighWaterMark );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
@@ -631,7 +600,10 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
{
lCharactersWritten = snprintf( pcCurrentWritePos,
xRemainingBufferLength,
- reportbuilderJSON_REPORT_FORMAT_PART5 );
+ "}"
+ "]"
+ "}"
+ "}" );
if( !reportbuilderSNPRINTF_SUCCESS( lCharactersWritten, xRemainingBufferLength ) )
{
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Common/main.c b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Common/main.c
index bdb550b2c5d..8b2da153153 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Common/main.c
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Common/main.c
@@ -37,7 +37,7 @@
#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
/* TCP/IP stack includes. */
@@ -50,77 +50,31 @@
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * Shadow demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * vStartShadowDemo() is called from inside vApplicationIPNetworkEventHook().
- */
-extern void vStartShadowDemo( void );
-
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
+extern void prvShadowDemoTask( void * pvParameters );
+extern void vPlatformInitIpStack( void );
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /***
- * See https://www.FreeRTOS.org/iot-device-shadow for configuration and usage instructions.
- ***/
+ vPlatformInitLogging();
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ /* This example uses a single application task, which shows that how to
+ * use Device Shadow library to generate and validate AWS IoT Device Shadow
+ * MQTT topics, and use the coreMQTT library to communicate with the AWS IoT
+ * Device Shadow service.
+ */
+ xTaskCreate( prvShadowDemoTask, /* Function that implements the task. */
+ "DemoTask", /* Text name for the task - only used for debugging. */
+ democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
+ NULL, /* Task parameter - not used in this case. */
+ tskIDLE_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
+ NULL ); /* Used to pass out a handle to the created task - not used in this case. */
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ /* Initialize the FreeRTOS+TCP Stack */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -129,256 +83,13 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartShadowDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n", ulRandomNumbers[ 0 ], ulRandomNumbers[ 1 ], ulRandomNumbers[ 2 ], ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
}
-/*-----------------------------------------------------------*/
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/DemoTasks/ShadowDemoMainExample.c b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/DemoTasks/ShadowDemoMainExample.c
index cbe348b156e..f292f518e80 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/DemoTasks/ShadowDemoMainExample.c
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/DemoTasks/ShadowDemoMainExample.c
@@ -207,7 +207,7 @@
/**
* @brief The length of #democonfigTHING_NAME.
*/
-#define THING_NAME_LENGTH ( ( uint16_t ) ( sizeof( democonfigTHING_NAME ) - 1 ) )
+#define THING_NAME_LENGTH ( ( uint16_t ) ( sizeof( democonfigTHING_NAME ) - 1 ) )
/**
* @brief The length of #democonfigSHADOW_NAME.
@@ -216,8 +216,8 @@
/*-----------------------------------------------------------*/
-/**
- * @brief Each compilation unit that consumes the NetworkContext must define it.
+/**
+ * @brief Each compilation unit that consumes the NetworkContext must define it.
* It should contain a single pointer to the type of your desired transport.
* When using multiple transports in the same compilation unit, define this pointer as void *.
*
@@ -348,7 +348,7 @@ static void prvUpdateAcceptedHandler( MQTTPublishInfo_t * pxPublishInfo );
* @param[in] pvParameters Parameters as passed at the time of task creation. Not
* used in this example.
*/
-static void prvShadowDemoTask( void * pvParameters );
+void prvShadowDemoTask( void * pvParameters );
/**
* @brief Process payload from `/delete/rejected` topic.
@@ -768,25 +768,6 @@ static void prvEventCallback( MQTTContext_t * pxMqttContext,
}
/*-----------------------------------------------------------*/
-/*
- * @brief Create the task that demonstrates the Device Shadow library API via a
- * MQTT mutually authenticated network connection with the AWS IoT broker.
- */
-void vStartShadowDemo( void )
-{
- /* This example uses a single application task, which shows that how to
- * use Device Shadow library to generate and validate AWS IoT Device Shadow
- * MQTT topics, and use the coreMQTT library to communicate with the AWS IoT
- * Device Shadow service. */
- xTaskCreate( prvShadowDemoTask, /* Function that implements the task. */
- "DemoTask", /* Text name for the task - only used for debugging. */
- democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
- NULL, /* Task parameter - not used in this case. */
- tskIDLE_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
- NULL ); /* Used to pass out a handle to the created task - not used in this case. */
-}
-/*-----------------------------------------------------------*/
-
/**
* @brief Entry point of shadow demo.
*
@@ -830,6 +811,18 @@ void prvShadowDemoTask( void * pvParameters )
* SHADOW_MAX_DEMO_LOOP_COUNT times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/****************************** Connect. ******************************/
xDemoStatus = xEstablishMqttSession( &xMqttContext,
@@ -1122,6 +1115,8 @@ void prvShadowDemoTask( void * pvParameters )
LogError( ( "Shadow Demo failed." ) );
}
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
+
/* Delete this task. */
LogInfo( ( "Deleting Shadow Demo task." ) );
vTaskDelete( NULL );
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/Device_Shadow_Demo.vcxproj b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/Device_Shadow_Demo.vcxproj
new file mode 100644
index 00000000000..76926f452f3
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/Device_Shadow_Demo.vcxproj
@@ -0,0 +1,194 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {717f029b-ade9-433a-9c05-3136171beaef}
+ DeviceShadowDemo
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\device-shadow\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\device-shadow\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\device-shadow\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\device-shadow\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/Device_Shadow_Demo.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/Device_Shadow_Demo.vcxproj.filters
new file mode 100644
index 00000000000..69802d89667
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/Device_Shadow_Demo.vcxproj.filters
@@ -0,0 +1,159 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {a3c730a6-e260-4aa8-9ac2-34e7b58239aa}
+
+
+ {3162edd4-992f-40be-b044-3f4069fde765}
+
+
+ {2d81cf16-57de-4819-90e6-1a7aa43e1ca7}
+
+
+ {88ec2b7c-46b1-4922-a846-17df01fcc563}
+
+
+ {561e7533-6144-46a2-8d3c-cfae00f253cc}
+
+
+ {5bce4131-4166-4cf0-a174-9501b84a59d1}
+
+
+ {c90b8caf-7b86-4667-a408-616c9de28018}
+
+
+ {ee35951a-05c0-47e4-89b5-0b03d6df4c31}
+
+
+ {0059dfb9-954b-4be9-a039-33bd0d6e59d8}
+
+
+ {5b02b44f-c821-4ccf-8653-d4ee6317fab1}
+
+
+ {8d194642-3f5f-4ad2-aae2-c1822303b0d3}
+
+
+ {a54febab-66c8-49c4-8f14-66b98f5507ad}
+
+
+ {3f9ffdaf-339e-4ec0-8191-dc24bc8cfa78}
+
+
+ {9ef7993e-bc65-4a5d-8004-f7c59786ba20}
+
+
+ {c31d06d1-374f-46ab-b93f-f9a6e7411114}
+
+
+ {cf1a86db-4855-4457-9da6-8fa329e4e85e}
+
+
+ {dc36bf1d-c1a0-49a3-ae7f-e5030fcacf3b}
+
+
+ {bff12cfa-4535-4d9d-8177-c40bf4fd3fb9}
+
+
+
+
+ Additional Libraries\AWS IoT Device Shadow\include
+
+
+ Additional Libraries\AWS IoT Device Shadow\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\coreJSON\include
+
+
+ Header Files
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\AWS IoT Device Shadow
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreJSON
+
+
+ Source Files
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/FreeRTOSIPConfig.h
deleted file mode 100644
index 17f3cecfa84..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/WIN32.vcxproj b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/WIN32.vcxproj
deleted file mode 100644
index 0a73cfa784c..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/WIN32.vcxproj
+++ /dev/null
@@ -1,688 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\Common\WinPCap;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\..\Source\mbedtls_utils;..\..\..\..\ThirdParty\mbedtls\include;..\..\..\..\Source\AWS\device-shadow\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\Mqtt_Demo_Helpers;.;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\..\Source\include;..\..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/WIN32.vcxproj.filters
deleted file mode 100644
index 067748649f5..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,857 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {20aee693-d2dc-480e-ae21-0db2156e54ac}
-
-
- {0dacb84e-5cc3-4eed-8fb1-68b6e4741f77}
-
-
- {3dc3c37b-6417-4a84-a16e-b1acf21c04cf}
-
-
- {8bb5ac40-c7e5-4912-b67f-12f4a1861c9f}
-
-
- {8917ce57-b461-4487-9431-1209cfeab048}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {f8333cbc-1d7c-410a-a5d8-a28be356a0c4}
-
-
- {ef44e456-23be-4051-baf5-d523df57d4be}
-
-
- {2e54e86d-3f5a-4a0b-a216-35e3862a51f7}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\device-shadow
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\device-shadow\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\device-shadow\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/mbedtls_config.h b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/shadow_main_demo.sln b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/shadow_main_demo.sln
index dcfc1fe098d..ff6ec664d0c 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/shadow_main_demo.sln
+++ b/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo/shadow_main_demo.sln
@@ -1,25 +1,79 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.31205.134
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Device_Shadow_Demo", "Device_Shadow_Demo.vcxproj", "{717F029B-ADE9-433A-9C05-3136171BEAEF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{DD2D75A0-EA94-448B-A552-4A68E8336436}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Debug|x64.ActiveCfg = Debug|x64
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Debug|x64.Build.0 = Debug|x64
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Debug|x86.ActiveCfg = Debug|Win32
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Debug|x86.Build.0 = Debug|Win32
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Release|x64.ActiveCfg = Release|x64
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Release|x64.Build.0 = Release|x64
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Release|x86.ActiveCfg = Release|Win32
+ {717F029B-ADE9-433A-9C05-3136171BEAEF}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {DD2D75A0-EA94-448B-A552-4A68E8336436}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {DD2D75A0-EA94-448B-A552-4A68E8336436}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {DD2D75A0-EA94-448B-A552-4A68E8336436}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {DD2D75A0-EA94-448B-A552-4A68E8336436}
EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {03924B69-9775-47B9-9704-9108BBFF7D30}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/convert_credentials_to_der.py b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/convert_credentials_to_der.py
index 2253f8788ec..d52dfef5afd 100755
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/convert_credentials_to_der.py
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/convert_credentials_to_der.py
@@ -1,13 +1,15 @@
#!/usr/bin/env python
+import os
import argparse
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
-KEY_OUT_NAME = "corePKCS11_Claim_Key.dat"
-CERT_OUT_NAME = "corePKCS11_Claim_Certificate.dat"
+KEY_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Claim_Key.dat"
+CERT_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Claim_Certificate.dat"
+script_file_dir_abs_path = os.path.abspath(os.path.dirname(__file__))
def convert_pem_to_der(cert_pem, key_pem):
# Convert certificate from PEM to DER
@@ -18,7 +20,7 @@ def convert_pem_to_der(cert_pem, key_pem):
serialization.PrivateFormat.TraditionalOpenSSL,
serialization.NoEncryption(),
)
- with open(f"../{KEY_OUT_NAME}", "wb") as key_out:
+ with open(f"{KEY_OUT_NAME}", "wb") as key_out:
key_out.write(key_der)
print(
f"Successfully converted key PEM to DER. Output file named: {KEY_OUT_NAME}"
@@ -26,7 +28,7 @@ def convert_pem_to_der(cert_pem, key_pem):
cert = x509.load_pem_x509_certificate(
bytes(cert_pem, "utf-8"), default_backend())
- with open(f"../{CERT_OUT_NAME}", "wb") as cert_out:
+ with open(f"{CERT_OUT_NAME}", "wb") as cert_out:
cert_out.write(cert.public_bytes(serialization.Encoding.DER))
print(
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_cleanup.py b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_cleanup.py
index 8ca86d3f5e4..fc96943617a 100755
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_cleanup.py
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_cleanup.py
@@ -3,13 +3,14 @@
import os
import boto3
import botocore
+import argparse
-KEY_OUT_NAME = "corePKCS11_Claim_Key.dat"
-CERT_OUT_NAME = "corePKCS11_Claim_Certificate.dat"
+KEY_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Claim_Key.dat"
+CERT_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Claim_Certificate.dat"
-THING_PRIVATE_KEY_NAME = "corePKCS11_Key.dat"
-THING_PUBLIC_KEY_NAME = "corePKCS11_PubKey.dat"
-THING_CERT_NAME = "corePKCS11_Certificate.dat"
+THING_PRIVATE_KEY_NAME = f"{os.getcwd()}\\corePKCS11_Key.dat"
+THING_PUBLIC_KEY_NAME = f"{os.getcwd()}\\corePKCS11_PubKey.dat"
+THING_CERT_NAME = f"{os.getcwd()}\\corePKCS11_Certificate.dat"
RESOURCE_STACK_NAME = "FPDemoStack"
@@ -125,37 +126,45 @@ def delete_resources():
# Delete the files created by the demo and reset demo_config.h
def reset_files():
+ script_file_dir_abs_path = os.path.abspath(os.path.dirname(__file__))
# Remove Claim credentials
- if os.path.exists(f"../{KEY_OUT_NAME}"):
- os.remove(f"../{KEY_OUT_NAME}")
- if os.path.exists(f"../{CERT_OUT_NAME}"):
- os.remove(f"../{CERT_OUT_NAME}")
+ if os.path.exists(f"{KEY_OUT_NAME}"):
+ os.remove(f"{KEY_OUT_NAME}")
+ if os.path.exists(f"{CERT_OUT_NAME}"):
+ os.remove(f"{CERT_OUT_NAME}")
# Remove demo-generated Thing credentials
- if os.path.exists(f"../{THING_PRIVATE_KEY_NAME}"):
- os.remove(f"../{THING_PRIVATE_KEY_NAME}")
- if os.path.exists(f"../{THING_PUBLIC_KEY_NAME}"):
- os.remove(f"../{THING_PUBLIC_KEY_NAME}")
- if os.path.exists(f"../{THING_CERT_NAME}"):
- os.remove(f"../{THING_CERT_NAME}")
+ if os.path.exists(f"{THING_PRIVATE_KEY_NAME}"):
+ os.remove(f"{THING_PRIVATE_KEY_NAME}")
+ if os.path.exists(f"{THING_PUBLIC_KEY_NAME}"):
+ os.remove(f"{THING_PUBLIC_KEY_NAME}")
+ if os.path.exists(f"{THING_CERT_NAME}"):
+ os.remove(f"{THING_CERT_NAME}")
# Reset demo_config.h
- template_file = open("demo_config_empty.templ", 'r')
+ template_file = open(f"{script_file_dir_abs_path}/demo_config_empty.templ", 'r')
file_text = template_file.read()
- header_file = open("../demo_config.h", "w")
+ header_file = open(f"{script_file_dir_abs_path}/../demo_config.h", "w")
header_file.write(file_text)
header_file.close()
template_file.close()
print("Credentials removed and demo_config.h reset.")
+# Get arguments
+def get_args():
+ parser = argparse.ArgumentParser(description="Fleet Provisioning Demo setup script.")
+ parser.add_argument("--force", action="store_true", help="Used to skip the user prompt before executing.")
+ args = parser.parse_args()
+ return args
# Parse arguments and execute appropriate functions
def main():
# Check arguments and go appropriately
+ args = get_args();
print("\nThis script will delete ALL Things, credentials, and resources which were created by demo_setup.py and the Fleet Provisioning demo.")
print("It may take several minutes for all of the resources to be deleted.")
- if input("Are you sure you want to do this? (y/n) ") == "y":
+ if args.force or input("Are you sure you want to do this? (y/n) ") == "y":
print()
reset_files()
delete_resources()
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_config.templ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_config.templ
index a4e5473d5d5..325a7c5f09e 100644
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_config.templ
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_config.templ
@@ -129,8 +129,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
*
* #define democonfigROOT_CA_PEM "...insert here..."
*/
-#define democonfigROOT_CA_PEM
- "-----BEGIN CERTIFICATE-----\n" \
+#define democonfigROOT_CA_PEM "-----BEGIN CERTIFICATE-----\n" \
"MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\n" \
"ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\n" \
"b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\n" \
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_setup.py b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_setup.py
index fe6adaed0d3..fc95524148c 100755
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_setup.py
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoSetup/demo_setup.py
@@ -1,14 +1,17 @@
#!/usr/bin/env python
+import os
+import argparse
import boto3
import botocore
from convert_credentials_to_der import convert_pem_to_der
-KEY_OUT_NAME = "corePKCS11_Claim_Key.dat"
-CERT_OUT_NAME = "corePKCS11_Claim_Certificate.dat"
+KEY_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Claim_Key.dat"
+CERT_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Claim_Certificate.dat"
RESOURCE_STACK_NAME = "FPDemoStack"
+script_file_dir_abs_path = os.path.abspath(os.path.dirname(__file__))
cf = boto3.client("cloudformation")
iot = boto3.client("iot")
@@ -44,7 +47,7 @@ def create_resources():
+ "\nView the stack in the CloudFormation console here:\n" + convert_cf_arn_to_link(stack_response["StackId"]))
else:
# Read the cloudformation template file contained in the same directory
- cf_template_file = open("cloudformation_template.json", "r")
+ cf_template_file = open(f"{script_file_dir_abs_path}/cloudformation_template.json", "r")
cf_template = cf_template_file.read()
cf_template_file.close()
@@ -93,24 +96,31 @@ def create_credentials():
def update_demo_config():
endpoint = iot.describe_endpoint(endpointType='iot:Data-ATS')
- template_file = open("demo_config.templ", 'r')
+ template_file = open(f"{script_file_dir_abs_path}/demo_config.templ", 'r')
file_text = template_file.read()
file_text = file_text.replace(
"", "\"" + endpoint["endpointAddress"] + "\"")
- header_file = open("../demo_config.h", "w")
+ header_file = open(f"{script_file_dir_abs_path}/../demo_config.h", "w")
header_file.write(file_text)
header_file.close()
template_file.close()
print("Successfully updated demo_config.h")
+# Get arguments
+def get_args():
+ parser = argparse.ArgumentParser(description="Fleet Provisioning Demo setup script.")
+ parser.add_argument("--force", action="store_true", help="Used to skip the user prompt before executing.")
+ args = parser.parse_args()
+ return args
# Parse arguments and execute appropriate functions
def main():
# Check arguments and go appropriately
+ args = get_args();
print("\nThis script will set up the AWS resources required for the Fleet Provisioning demo.")
print("It may take several minutes for the resources to be provisioned.")
- if input("Are you sure you want to do this? (y/n) ") == "y":
+ if args.force or input("Are you sure you want to do this? (y/n) ") == "y":
print()
create_resources()
create_credentials()
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FleetProvisioningDemoExample.c
similarity index 98%
rename from FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
rename to FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FleetProvisioningDemoExample.c
index 87fb6df0daf..db93e6a5295 100644
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/DemoTasks/FleetProvisioningDemoExample.c
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FleetProvisioningDemoExample.c
@@ -81,7 +81,6 @@
#include "mqtt_pkcs11_demo_helpers.h"
#include "pkcs11_operations.h"
#include "tinycbor_serializer.h"
-#include "using_mbedtls_pkcs11.h"
/**
* These configurations are required. Throw compilation error if it is not
@@ -520,12 +519,6 @@ static bool prvUnsubscribeFromRegisterThingResponseTopics( void )
*/
void vStartFleetProvisioningDemo()
{
- /* Configure mbedTLS to use FreeRTOS specific threading function. */
- mbedtls_threading_set_alt( mbedtls_platform_mutex_init,
- mbedtls_platform_mutex_free,
- mbedtls_platform_mutex_lock,
- mbedtls_platform_mutex_unlock );
-
/* This example uses a single application task, which shows that how to use
* Fleet Provisioning library to generate and sign certificates with AWS IoT
* and create new IoT Things using the AWS IoT Fleet Provisioning API */
@@ -569,6 +562,19 @@ int prvFleetProvisioningTask( void * pvParameters )
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ /* Wait for network to link up. */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Initialize the buffer lengths to their max lengths. */
xCertificateLength = fpdemoCERT_BUFFER_LENGTH;
xCertificateIdLength = fpdemoCERT_ID_BUFFER_LENGTH;
@@ -839,6 +845,7 @@ int prvFleetProvisioningTask( void * pvParameters )
if( xStatus == true )
{
LogInfo( ( "Demo completed successfully." ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
}
/* Delete this task. */
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FreeRTOSConfig.h
deleted file mode 100644
index 0b4128d2fbc..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FreeRTOSConfig.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FreeRTOSIPConfig.h
deleted file mode 100644
index e46609adc44..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/WIN32.vcxproj b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/WIN32.vcxproj
deleted file mode 100644
index b1a8e790372..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/WIN32.vcxproj
+++ /dev/null
@@ -1,718 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\Common\WinPCap;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp;..\..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\using_mbedtls;..\..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\ThirdParty\mbedtls\include;..\..\..\..\Source\AWS\fleet-provisioning\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;.;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\corePKCS11\source\include;..\..\..\..\Source\corePKCS11\source\;..\..\..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;..\..\..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\..\..\Source\Application-Protocols\network_transport\using_mbedtls_pkcs11;..\..\..\..\Source\corePKCS11\source\portable\os;..\..\..\..\ThirdParty\mbedtls\library;..\..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\..\ThirdParty\mbedtls\include\mbedtls;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\..\Source\include;..\..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/WIN32.vcxproj.filters
deleted file mode 100644
index 101ed194f42..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,964 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {20aee693-d2dc-480e-ae21-0db2156e54ac}
-
-
- {0dacb84e-5cc3-4eed-8fb1-68b6e4741f77}
-
-
- {21d4cf41-bbdc-46af-8508-1193e3b6595a}
-
-
- {ca4314cd-3b61-4dd8-b5ab-dbc3f1ed004e}
-
-
- {9f1aaf81-1839-4673-b7e3-1501dd0edd02}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {40de67d3-3815-46f9-a581-c1a01dbacc92}
-
-
- {2bef4675-f45b-4988-9db3-4ddbf60406ac}
-
-
- {ced49869-3746-4f73-ba8d-4513320e5e9b}
-
-
- {0e61bdbc-fd9f-476d-a236-e3610476306c}
-
-
- {981ca12d-82cf-48db-809c-043aadfd212e}
-
-
- {9c5ed328-ee41-4482-a7ee-eef8aab4b9bc}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON
-
-
-
- FreeRTOS+\FreeRTOS+TCP\tcp_utilities
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
-
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\Fleet_Provisioning
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS+TCP\tcp_utilities\include
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include
-
-
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\Fleet_Provisioning
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\Fleet_Provisioning
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
-
-
- FreeRTOS+\mbedtls
-
-
-
-
- FreeRTOS+\mbedtls
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/core_pkcs11_config.h b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/core_pkcs11_config.h
deleted file mode 100644
index f4282e1683e..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/core_pkcs11_config.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/**
- * @file core_pkcs11_config.h
- * @brief PCKS#11 config options.
- */
-
-
-#ifndef _CORE_PKCS11_CONFIG_H_
-#define _CORE_PKCS11_CONFIG_H_
-
-#include "FreeRTOS.h"
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Include logging header files and define logging macros in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for PKCS #11.
- * 3. Include the header file "logging_stack.h", if logging is enabled for PKCS #11.
- */
-#include "logging_levels.h"
-
-/* Logging configuration for the PKCS #11 library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "PKCS11"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_ERROR
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-
-#include "logging_stack.h"
-
-/************ End of logging configuration ****************/
-
-#include
-
-/**
- * @brief Malloc API used by core_pkcs11.h
- */
-#define PKCS11_MALLOC pvPortMalloc
-
-/**
- * @brief Free API used by core_pkcs11.h
- */
-#define PKCS11_FREE vPortFree
-
-/**
- * @brief PKCS #11 default user PIN.
- *
- * The PKCS #11 standard specifies the presence of a user PIN. That feature is
- * sensible for applications that have an interactive user interface and memory
- * protections. However, since typical microcontroller applications lack one or
- * both of those, the user PIN is assumed to be used herein for interoperability
- * purposes only, and not as a security feature.
- *
- * Note: Do not cast this to a pointer! The library calls sizeof to get the length
- * of this string.
- */
-#define configPKCS11_DEFAULT_USER_PIN "0000"
-
-/**
- * @brief Maximum length (in characters) for a PKCS #11 CKA_LABEL
- * attribute.
- */
-#define pkcs11configMAX_LABEL_LENGTH 32UL
-
-/**
- * @brief Maximum number of token objects that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_NUM_OBJECTS 6UL
-
-/**
- * @brief Maximum number of sessions that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_SESSIONS 10UL
-
-/**
- * @brief Set to 1 if a PAL destroy object is implemented.
- *
- * If set to 0, no PAL destroy object is implemented, and this functionality
- * is implemented in the common PKCS #11 layer.
- */
-#define pkcs11configPAL_DESTROY_SUPPORTED 0
-
-/**
- * @brief Set to 1 if OTA image verification via PKCS #11 module is supported.
- *
- * If set to 0, OTA code signing certificate is built in via
- * aws_ota_codesigner_certificate.h.
- */
-#define pkcs11configOTA_SUPPORTED 1
-
-/**
- * @brief Set to 1 if PAL supports storage for JITP certificate,
- * code verify certificate, and trusted server root certificate.
- *
- * If set to 0, PAL does not support storage mechanism for these, and
- * they are accessed via headers compiled into the code.
- */
-#define pkcs11configJITP_CODEVERIFY_ROOT_CERT_SUPPORTED 0
-
-/**
- * @brief The PKCS #11 label for device private key.
- *
- * Private key for connection to AWS IoT endpoint. The corresponding
- * public key should be registered with the AWS IoT endpoint.
- */
-#define pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS ( "Device Priv TLS Key" )
-
-/**
- * @brief The PKCS #11 label for device public key.
- *
- * The public key corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS ( "Device Pub TLS Key" )
-
-/**
- * @brief The PKCS #11 label for the device certificate.
- *
- * Device certificate corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS ( "Device Cert" )
-
-/**
- * @brief The PKCS #11 label for the object to be used for HMAC operations.
- */
-#define pkcs11configLABEL_HMAC_KEY ( "HMAC Key" )
-
-/**
- * @brief The PKCS #11 label for the object to be used for CMAC operations.
- */
-#define pkcs11configLABEL_CMAC_KEY ( "CMAC Key" )
-
-/**
- * @brief The PKCS #11 label for the object to be used for code verification.
- *
- * Used by over-the-air update code to verify an incoming signed image.
- */
-#define pkcs11configLABEL_CODE_VERIFICATION_KEY ( "Code Verify Key" )
-
-/**
- * @brief The PKCS #11 label for the claim certificate for Fleet Provisioning.
- */
-#define pkcs11configLABEL_CLAIM_CERTIFICATE ( "Claim Cert" )
-
-/**
- * @brief The PKCS #11 label for the claim private key for Fleet Provisioning.
- */
-#define pkcs11configLABEL_CLAIM_PRIVATE_KEY ( "Claim Key" )
-
-/**
- * @brief The PKCS #11 label for Just-In-Time-Provisioning.
- *
- * The certificate corresponding to the issuer of the device certificate
- * (pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS) when using the JITR or
- * JITP flow.
- */
-#define pkcs11configLABEL_JITP_CERTIFICATE ( "JITP Cert" )
-
-/**
- * @brief The PKCS #11 label for the AWS Trusted Root Certificate.
- *
- * @see aws_default_root_certificates.h
- */
-#define pkcs11configLABEL_ROOT_CERTIFICATE ( "Root Cert" )
-
-#endif /* _CORE_PKCS11_CONFIG_H_ include guard. */
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.sln b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.sln
index 49642528efd..820c345be46 100644
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.sln
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.sln
@@ -1,25 +1,93 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.31729.503
+VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Fleet Provisioning Demo", "fleet_provisioning_demo.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "corePKCS11", "..\..\..\..\VisualStudio_StaticProjects\corePKCS11\corePKCS11.vcxproj", "{19F0FF1A-3368-491A-9932-A2F089508F51}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{1C742BE7-F270-407A-963E-1B83F000D5AD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x86 = Debug|x86
- Release|x86 = Release|x86
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|x86.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|x86.Build.0 = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x86.ActiveCfg = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.ActiveCfg = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.Build.0 = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.ActiveCfg = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.Build.0 = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.ActiveCfg = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.Build.0 = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.ActiveCfg = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {1C742BE7-F270-407A-963E-1B83F000D5AD}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {1C742BE7-F270-407A-963E-1B83F000D5AD}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {1C742BE7-F270-407A-963E-1B83F000D5AD}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {1C742BE7-F270-407A-963E-1B83F000D5AD}
+ {19F0FF1A-3368-491A-9932-A2F089508F51} = {1C742BE7-F270-407A-963E-1B83F000D5AD}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {573E92F2-7674-4EE8-A7FD-8128A495333D}
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
+ EndGlobalSection
+ GlobalSection(TestCaseManagementSettings) = postSolution
+ CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.vcxproj b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.vcxproj
new file mode 100644
index 00000000000..3441d853f82
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.vcxproj
@@ -0,0 +1,236 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ corePKCS11_MQTT_Mutual_Auth
+ 10.0
+ Fleet Provisioning Demo
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\AWS\fleet-provisioning\source\include;..\..\Mqtt_Demo_Helpers;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\AWS\fleet-provisioning\source\include;..\..\Mqtt_Demo_Helpers;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\AWS\fleet-provisioning\source\include;..\..\Mqtt_Demo_Helpers;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\AWS\fleet-provisioning\source\include;..\..\Mqtt_Demo_Helpers;$(IncludePath)
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ true
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ true
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ true
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ true
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {19f0ff1a-3368-491a-9932-a2f089508f51}
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.vcxproj.filters
new file mode 100644
index 00000000000..6e191516ec4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/fleet_provisioning_demo.vcxproj.filters
@@ -0,0 +1,201 @@
+
+
+
+
+ {546ab88a-56ee-4b6f-ac35-b7b63f49ed2f}
+
+
+ {9049e888-7797-4792-90cb-a1e9e99a92a8}
+
+
+ {2eaca890-15c6-49a3-be88-574abbba0157}
+
+
+ {78540744-1e91-4c12-965c-884a2cf92949}
+
+
+ {9a6a66e0-e0cf-4ffe-9398-a23f26d3d5bb}
+
+
+ {653c873b-f2f7-4848-8db4-4ab67957f4b0}
+
+
+ {56bfdc25-748a-4c0a-a017-1daca6f2b698}
+
+
+ {874d75af-778f-41a1-89dc-076ebf276fea}
+
+
+ {1b25efaf-5b58-403c-9308-b591c4061c9e}
+
+
+ {a8fad8ec-9a5d-42f0-9b8b-4166cca11354}
+
+
+ {17955057-1e46-42cb-aa73-a6eb46abc9f5}
+
+
+ {c69eabd6-7eed-4959-9351-41b8c3b731b8}
+
+
+ {64a78119-97f6-4252-b793-87cb6e7902d1}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {58f51daa-dd72-4e9c-939d-3113f97234ca}
+
+
+ {00849fd3-96f4-4fc3-b84f-fab958b5d5b6}
+
+
+ {9b4954c3-1f90-4e61-bdc1-15e50cbec10a}
+
+
+ {881fa2ff-3816-405f-9906-1f34585f7341}
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + PKCS11 + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + PKCS11 + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + PKCS11 + MbedTLS Transport
+
+
+ Additional Libraries\AWS IoT Fleet Provisioning
+
+
+ Source
+
+
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Headers
+
+
+ Headers
+
+
+ Headers
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + PKCS11 + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + PKCS11 + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + PKCS11 + MbedTLS Transport\include
+
+
+ Additional Libraries\AWS IoT Fleet Provisioning\include
+
+
+ Additional Libraries\AWS IoT Fleet Provisioning\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/main.c b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/main.c
index 2152c18fbe2..cddd409d2f8 100644
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/main.c
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/main.c
@@ -51,73 +51,20 @@
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * Fleet Provisioning demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * vStartFleetProvisioningDemo() is called from inside vApplicationIPNetworkEventHook().
- */
extern void vStartFleetProvisioningDemo( void );
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
-
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ vPlatformInitLogging();
+
+ vStartFleetProvisioningDemo();
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ /* Initialize FreeRTOS+TCP */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -126,256 +73,12 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartFleetProvisioningDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n", ulRandomNumbers[ 0 ], ulRandomNumbers[ 1 ], ulRandomNumbers[ 2 ], ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/mbedtls_config.h b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/mbedtls_config.h
deleted file mode 100644
index c1e9ece3e6d..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/mbedtls_config.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_CMAC_C
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_ENTROPY_HARDWARE_ALT
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PEM_WRITE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_PK_WRITE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-#define MBEDTLS_X509_CREATE_C
-#define MBEDTLS_X509_CSR_WRITE_C
-#define MBEDTLS_CMAC_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
index c397d3aef67..ff141528ad0 100644
--- a/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
+++ b/FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/Fleet_Provisioning_With_CSR_Demo/pkcs11_operations.c
@@ -44,67 +44,16 @@
#include "core_pkcs11_config.h"
#include "core_pki_utils.h"
#include "mbedtls_utils.h"
+#include "mbedtls_pk_pkcs11.h"
/* MbedTLS include. */
-#include "mbedtls/ctr_drbg.h"
-#include "mbedtls/entropy.h"
-#include "mbedtls/entropy_poll.h"
#include "mbedtls/error.h"
#include "mbedtls/oid.h"
#include "mbedtls/pk.h"
-#include "mbedtls/pk_internal.h"
#include "mbedtls/sha256.h"
#include "mbedtls/x509_crt.h"
#include "mbedtls/x509_csr.h"
-/**
- * @brief Represents string to be logged when mbedTLS returned error
- * does not contain a high-level code.
- */
-static const char * pcNoHighLevelMbedTlsCodeStr = "";
-
-/**
- * @brief Represents string to be logged when mbedTLS returned error
- * does not contain a low-level code.
- */
-static const char * pcNoLowLevelMbedTlsCodeStr = "";
-
-/**
- * @brief Utility for converting the high-level code in an mbedTLS error to
- * string, if the code-contains a high-level code; otherwise, using a default
- * string.
- */
-#define mbedtlsHighLevelCodeOrDefault( mbedTlsCode ) \
- ( mbedtls_high_level_strerr( mbedTlsCode ) != NULL ) \
- ? mbedtls_high_level_strerr( mbedTlsCode ) \
- : pcNoHighLevelMbedTlsCodeStr
-
-/**
- * @brief Utility for converting the level-level code in an mbedTLS error to
- * string, if the code-contains a level-level code; otherwise, using a default
- * string.
- */
-#define mbedtlsLowLevelCodeOrDefault( mbedTlsCode ) \
- ( mbedtls_low_level_strerr( mbedTlsCode ) != NULL ) \
- ? mbedtls_low_level_strerr( mbedTlsCode ) \
- : pcNoLowLevelMbedTlsCodeStr
-
-/**
- * @brief Struct containing parameters needed by the signing callback.
- */
-typedef struct SigningCallbackContext
-{
- CK_SESSION_HANDLE p11Session;
- CK_OBJECT_HANDLE p11PrivateKey;
-} SigningCallbackContext_t;
-
-/**
- * @brief Parameters for the signing callback. This needs to be global as
- * MbedTLS passes the key context to the signing function, so we cannot pass
- * our own.
- */
-static SigningCallbackContext_t xSigningContext = { 0 };
-
/*-----------------------------------------------------------*/
/**
@@ -120,51 +69,6 @@ static CK_RV prvDestroyProvidedObjects( CK_SESSION_HANDLE xSession,
CK_OBJECT_CLASS * pxClass,
CK_ULONG xCount );
-/**
- * @brief Read the specified ECDSA public key into the MbedTLS ECDSA context.
- *
- * @param[in] xP11Session The PKCS #11 session.
- * @param[in] pxEcdsaContext The context in which to store the key.
- * @param[in] xPublicKey The public key to read.
- */
-static int prvExtractEcPublicKey( CK_SESSION_HANDLE xP11Session,
- mbedtls_ecdsa_context * pxEcdsaContext,
- CK_OBJECT_HANDLE xPublicKey );
-
-/**
- * @brief MbedTLS callback for signing using the provisioned private key. Used for
- * signing the CSR.
- *
- * @param[in] pxContext Unused.
- * @param[in] xMdAlg Unused.
- * @param[in] pucHash Data to sign.
- * @param[in] xHashLen Length of #pucHash.
- * @param[out] pucSig The signature
- * @param[out] pxSigLen The length of the signature.
- * @param[in] pxRng Unused.
- * @param[in] pxRngContext Unused.
- */
-static int32_t prvPrivateKeySigningCallback( void * pxContext,
- mbedtls_md_type_t xMdAlg,
- const unsigned char * pucHash,
- size_t xHashLen,
- unsigned char * pucSig,
- size_t * pxSigLen,
- int ( * pxRng )( void *, unsigned char *, size_t ),
- void * pxRngContext );
-
-/**
- * @brief MbedTLS random generation callback to generate random values with
- * PKCS #11.
- *
- * @param[in] pxCtx Pointer to the PKCS #11 session handle.
- * @param[out] pucRandom Buffer to write random data to.
- * @param[in] xRandomLength Length of random data to write.
- */
-static int prvRandomCallback( void * pxCtx,
- unsigned char * pucRandom,
- size_t xRandomLength );
-
/**
* @brief Generate a new ECDSA key pair using PKCS #11.
*
@@ -236,184 +140,6 @@ static CK_RV prvDestroyProvidedObjects( CK_SESSION_HANDLE xSession,
/*-----------------------------------------------------------*/
-static int prvExtractEcPublicKey( CK_SESSION_HANDLE xP11Session,
- mbedtls_ecdsa_context * pxEcdsaContext,
- CK_OBJECT_HANDLE xPublicKey )
-{
- CK_ATTRIBUTE xEcTemplate = { 0 };
- int xMbedtlsRet = -1;
- CK_RV xPkcs11ret = CKR_OK;
- CK_BYTE pxEcPoint[ 67 ] = { 0 };
- CK_FUNCTION_LIST_PTR xP11FunctionList;
-
- mbedtls_ecdsa_init( pxEcdsaContext );
- mbedtls_ecp_group_init( &( pxEcdsaContext->grp ) );
-
- xPkcs11ret = C_GetFunctionList( &xP11FunctionList );
-
- if( xPkcs11ret != CKR_OK )
- {
- LogError( ( "Could not get a PKCS #11 function pointer." ) );
- }
- else
- {
- xEcTemplate.type = CKA_EC_POINT;
- xEcTemplate.pValue = pxEcPoint;
- xEcTemplate.ulValueLen = sizeof( pxEcPoint );
- xPkcs11ret = xP11FunctionList->C_GetAttributeValue( xP11Session, xPublicKey, &xEcTemplate, 1 );
-
- if( xPkcs11ret != CKR_OK )
- {
- LogError( ( "Failed to extract EC public key. Could not get attribute value. "
- "C_GetAttributeValue failed with %lu.", xPkcs11ret ) );
- }
- }
-
- if( xPkcs11ret == CKR_OK )
- {
- xMbedtlsRet = mbedtls_ecp_group_load( &( pxEcdsaContext->grp ), MBEDTLS_ECP_DP_SECP256R1 );
-
- if( xMbedtlsRet != 0 )
- {
- LogError( ( "Failed creating an EC key. "
- "mbedtls_ecp_group_load failed: MbedTLS"
- "error = %s : %s.",
- mbedtlsHighLevelCodeOrDefault( xMbedtlsRet ),
- mbedtlsLowLevelCodeOrDefault( xMbedtlsRet ) ) );
- xPkcs11ret = CKR_FUNCTION_FAILED;
- }
- else
- {
- xMbedtlsRet = mbedtls_ecp_point_read_binary( &( pxEcdsaContext->grp ), &( pxEcdsaContext->Q ), &pxEcPoint[ 2 ], xEcTemplate.ulValueLen - 2 );
-
- if( xMbedtlsRet != 0 )
- {
- LogError( ( "Failed creating an EC key. "
- "mbedtls_ecp_group_load failed: MbedTLS"
- "error = %s : %s.",
- mbedtlsHighLevelCodeOrDefault( xMbedtlsRet ),
- mbedtlsLowLevelCodeOrDefault( xMbedtlsRet ) ) );
- xPkcs11ret = CKR_FUNCTION_FAILED;
- }
- }
- }
-
- return xMbedtlsRet;
-}
-
-/*-----------------------------------------------------------*/
-
-static int32_t prvPrivateKeySigningCallback( void * pxContext,
- mbedtls_md_type_t xMdAlg,
- const unsigned char * pucHash,
- size_t xHashLen,
- unsigned char * pucSig,
- size_t * pxSigLen,
- int ( * pxRng )( void *, unsigned char *, size_t ),
- void * pxRngContext )
-{
- CK_RV xRet = CKR_OK;
- int32_t usResult = 0;
- CK_MECHANISM xMech = { 0 };
- CK_BYTE pxToBeSigned[ 256 ];
- CK_ULONG xToBeSignedLen = sizeof( pxToBeSigned );
- CK_FUNCTION_LIST_PTR xFunctionList = NULL;
-
- /* Unreferenced parameters. */
- ( void ) ( pxContext );
- ( void ) ( pxRng );
- ( void ) ( pxRngContext );
- ( void ) ( xMdAlg );
-
- /* Sanity check buffer length. */
- if( xHashLen > sizeof( pxToBeSigned ) )
- {
- xRet = CKR_ARGUMENTS_BAD;
- }
-
- xMech.mechanism = CKM_ECDSA;
- memcpy( pxToBeSigned, pucHash, xHashLen );
- xToBeSignedLen = xHashLen;
-
- if( xRet == CKR_OK )
- {
- xRet = C_GetFunctionList( &xFunctionList );
- }
-
- if( xRet == CKR_OK )
- {
- xRet = xFunctionList->C_SignInit( xSigningContext.p11Session, &xMech,
- xSigningContext.p11PrivateKey );
- }
-
- if( xRet == CKR_OK )
- {
- *pxSigLen = sizeof( pxToBeSigned );
- xRet = xFunctionList->C_Sign( xSigningContext.p11Session, pxToBeSigned,
- xToBeSignedLen, pucSig, ( CK_ULONG_PTR ) pxSigLen );
- }
-
- if( xRet == CKR_OK )
- {
- /* PKCS #11 for P256 returns a 64-byte signature with 32 bytes for R and 32
- * bytes for S. This must be converted to an ASN.1 encoded array. */
- if( *pxSigLen != pkcs11ECDSA_P256_SIGNATURE_LENGTH )
- {
- xRet = CKR_FUNCTION_FAILED;
- LogError( ( "Failed to sign message using PKCS #11. Expected signature "
- "length of %lu, but received %lu.",
- ( unsigned long ) pkcs11ECDSA_P256_SIGNATURE_LENGTH,
- ( unsigned long ) *pxSigLen ) );
- }
-
- if( xRet == CKR_OK )
- {
- PKI_pkcs11SignatureTombedTLSSignature( pucSig, pxSigLen );
- }
- }
-
- if( xRet != CKR_OK )
- {
- LogError( ( "Failed to sign message using PKCS #11 with error code %lu.", xRet ) );
- usResult = -1;
- }
-
- return usResult;
-}
-
-/*-----------------------------------------------------------*/
-
-static int prvRandomCallback( void * pxCtx,
- unsigned char * pucRandom,
- size_t xRandomLength )
-{
- CK_SESSION_HANDLE * pxP11Session = ( CK_SESSION_HANDLE * ) pxCtx;
- CK_RV xRes;
- CK_FUNCTION_LIST_PTR xP11FunctionList;
-
- xRes = C_GetFunctionList( &xP11FunctionList );
-
- if( xRes != CKR_OK )
- {
- LogError( ( "Failed to generate a random number in RNG callback. Could not get a "
- "PKCS #11 function pointer." ) );
- }
- else
- {
- xRes = xP11FunctionList->C_GenerateRandom( *pxP11Session, pucRandom, xRandomLength );
-
- if( xRes != CKR_OK )
- {
- LogError( ( "Failed to generate a random number in RNG callback. "
- "C_GenerateRandom failed with %lu.", ( unsigned long ) xRes ) );
- }
- }
-
- return ( int ) xRes;
-}
-
-/*-----------------------------------------------------------*/
-
static CK_RV prvGenerateKeyPairEC( CK_SESSION_HANDLE xSession,
const char * pcPrivateKeyLabel,
const char * pcPublicKeyLabel,
@@ -488,7 +214,6 @@ bool xGenerateKeyAndCsr( CK_SESSION_HANDLE xP11Session,
CK_OBJECT_HANDLE xPubKeyHandle;
CK_RV xPkcs11Ret = CKR_OK;
mbedtls_pk_context xPrivKey;
- mbedtls_pk_info_t xPrivKeyInfo;
mbedtls_ecdsa_context xEcdsaContext;
mbedtls_x509write_csr xReq;
int32_t ulMbedtlsRet = -1;
@@ -505,6 +230,11 @@ bool xGenerateKeyAndCsr( CK_SESSION_HANDLE xP11Session,
&xPrivKeyHandle,
&xPubKeyHandle );
+ if( xPkcs11Ret == CKR_OK )
+ {
+ xPkcs11Ret = xPKCS11_initMbedtlsPkContext( &xPrivKey, xP11Session, xPrivKeyHandle );
+ }
+
if( xPkcs11Ret == CKR_OK )
{
mbedtls_x509write_csr_init( &xReq );
@@ -524,35 +254,16 @@ bool xGenerateKeyAndCsr( CK_SESSION_HANDLE xP11Session,
if( ulMbedtlsRet == 0 )
{
- mbedtls_pk_init( &xPrivKey );
- }
-
- if( ulMbedtlsRet == 0 )
- {
- ulMbedtlsRet = prvExtractEcPublicKey( xP11Session, &xEcdsaContext, xPubKeyHandle );
- }
-
- if( ulMbedtlsRet == 0 )
- {
- xSigningContext.p11Session = xP11Session;
- xSigningContext.p11PrivateKey = xPrivKeyHandle;
-
- memcpy( &xPrivKeyInfo, pxHeader, sizeof( mbedtls_pk_info_t ) );
-
- xPrivKeyInfo.sign_func = prvPrivateKeySigningCallback;
- xPrivKey.pk_info = &xPrivKeyInfo;
- xPrivKey.pk_ctx = &xEcdsaContext;
-
mbedtls_x509write_csr_set_key( &xReq, &xPrivKey );
ulMbedtlsRet = mbedtls_x509write_csr_pem( &xReq, ( unsigned char * ) pcCsrBuffer,
- xCsrBufferLength, &prvRandomCallback,
+ xCsrBufferLength, &lPKCS11RandomCallback,
&xP11Session );
}
mbedtls_x509write_csr_free( &xReq );
- mbedtls_ecdsa_free( &xEcdsaContext );
- mbedtls_ecp_group_free( &( xEcdsaContext.grp ) );
+
+ lPKCS11PkMbedtlsCloseSessionAndFree( &xPrivKey );
}
*pxOutCsrLength = strlen( pcCsrBuffer );
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/DemoTasks/JobsDemoExample.c b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/DemoTasks/JobsDemoExample.c
index 76f633595a7..2e4da99059a 100644
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/DemoTasks/JobsDemoExample.c
+++ b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/DemoTasks/JobsDemoExample.c
@@ -68,6 +68,7 @@
/* Kernel includes. */
#include "FreeRTOS.h"
#include "task.h"
+#include "queue.h"
/* Jobs library header. */
#include "jobs.h"
@@ -224,6 +225,11 @@
*/
#define DELAY_BETWEEN_DEMO_RETRY_ITERATIONS_TICKS ( pdMS_TO_TICKS( 5000U ) )
+/**
+ * @brief Length of the queue to pass Jobs messages to the job handling task.
+ */
+#define JOBS_MESSAGE_QUEUE_LEN ( 10U )
+
/*-----------------------------------------------------------*/
/**
@@ -311,6 +317,11 @@ static BaseType_t xExitActionJobReceived = pdFALSE;
*/
static BaseType_t xDemoEncounteredError = pdFALSE;
+/**
+ * @brief Queue used to pass incoming Jobs messages to a task to handle them.
+ */
+static QueueHandle_t xJobMessageQueue;
+
/*-----------------------------------------------------------*/
/**
@@ -385,7 +396,7 @@ static void prvProcessJobDocument( char * pcJobId,
* @param[in] pvParameters Parameters as passed at the time of task creation.
* Not used in this example.
*/
-static void prvJobsDemoTask( void * pvParameters );
+void prvJobsDemoTask( void * pvParameters );
/*-----------------------------------------------------------*/
@@ -715,8 +726,52 @@ static void prvEventCallback( MQTTContext_t * pxMqttContext,
/* Upon successful return, the messageType has been filled in. */
if( ( topicType == JobsDescribeSuccess ) || ( topicType == JobsNextJobChanged ) )
{
- /* Handler function to process payload. */
- prvNextJobHandler( pxDeserializedInfo->pPublishInfo );
+ MQTTPublishInfo_t * pxJobMessagePublishInfo = NULL;
+ char * pcTopicName = NULL;
+ char * pcPayload = NULL;
+
+ /* Copy message to pass into queue. */
+ pxJobMessagePublishInfo = ( MQTTPublishInfo_t * ) pvPortMalloc( sizeof( MQTTPublishInfo_t ) );
+ pcTopicName = ( char * ) pvPortMalloc( pxDeserializedInfo->pPublishInfo->topicNameLength );
+ pcPayload = ( char * ) pvPortMalloc( pxDeserializedInfo->pPublishInfo->payloadLength );
+
+ if( ( pxJobMessagePublishInfo == NULL ) || ( pcTopicName == NULL ) || ( pcPayload == NULL ) )
+ {
+ LogError( ( "Malloc failed for copying job publish info." ) );
+
+ if( pxJobMessagePublishInfo != NULL )
+ {
+ vPortFree( pxJobMessagePublishInfo );
+ }
+
+ if( pcTopicName != NULL )
+ {
+ vPortFree( pcTopicName );
+ }
+
+ if( pcPayload != NULL )
+ {
+ vPortFree( pcPayload );
+ }
+ }
+ else
+ {
+ memcpy( pxJobMessagePublishInfo, pxDeserializedInfo->pPublishInfo, sizeof( MQTTPublishInfo_t ) );
+ memcpy( pcTopicName, pxDeserializedInfo->pPublishInfo->pTopicName, pxDeserializedInfo->pPublishInfo->topicNameLength );
+ memcpy( pcPayload, pxDeserializedInfo->pPublishInfo->pPayload, pxDeserializedInfo->pPublishInfo->payloadLength );
+
+ pxJobMessagePublishInfo->pTopicName = pcTopicName;
+ pxJobMessagePublishInfo->pPayload = pcPayload;
+
+ if( xQueueSend( xJobMessageQueue, &pxJobMessagePublishInfo, 0 ) == errQUEUE_FULL )
+ {
+ LogError( ( "Could not enqueue Jobs message." ) );
+
+ vPortFree( pxJobMessagePublishInfo );
+ vPortFree( pcTopicName );
+ vPortFree( pcPayload );
+ }
+ }
}
else if( topicType == JobsUpdateSuccess )
{
@@ -768,25 +823,6 @@ static void prvEventCallback( MQTTContext_t * pxMqttContext,
/*-----------------------------------------------------------*/
-/*
- * @brief Create the task that demonstrates the Jobs library API via a
- * MQTT mutually authenticated network connection with the AWS IoT broker.
- */
-void vStartJobsDemo( void )
-{
- /* This example uses a single application task, which shows that how to
- * use Jobs library to generate and validate AWS IoT Jobs service MQTT topics
- * via coreMQTT library to communicate with the AWS IoT Jobs service. */
- xTaskCreate( prvJobsDemoTask, /* Function that implements the task. */
- "DemoTask", /* Text name for the task - only used for debugging. */
- democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
- NULL, /* Task parameter - not used in this case. */
- tskIDLE_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
- NULL ); /* Used to pass out a handle to the created task - not used in this case. */
-}
-
-/*-----------------------------------------------------------*/
-
/**
* @brief Entry point of the Jobs demo.
*
@@ -816,11 +852,27 @@ void prvJobsDemoTask( void * pvParameters )
/* Set the pParams member of the network context with desired transport. */
xNetworkContext.pParams = &xTlsTransportParams;
+ /* Initialize Jobs message queue. */
+ xJobMessageQueue = xQueueCreate( JOBS_MESSAGE_QUEUE_LEN, sizeof( MQTTPublishInfo_t * ) );
+ configASSERT( xJobMessageQueue != NULL );
+
/* This demo runs a single loop unless there are failures in the demo execution.
* In case of failures in the demo execution, demo loop will be retried for up to
* JOBS_MAX_DEMO_LOOP_COUNT times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Establish an MQTT connection with AWS IoT over a mutually authenticated TLS session. */
xDemoStatus = xEstablishMqttSession( &xMqttContext,
&xNetworkContext,
@@ -904,11 +956,22 @@ void prvJobsDemoTask( void * pvParameters )
( xDemoEncounteredError == pdFALSE ) &&
( xDemoStatus == pdPASS ) )
{
+ MQTTPublishInfo_t * pxJobMessagePublishInfo;
MQTTStatus_t xMqttStatus = MQTTSuccess;
/* Check if we have notification for the next pending job in the queue from the
* NextJobExecutionChanged API of the AWS IoT Jobs service. */
- xMqttStatus = MQTT_ProcessLoop( &xMqttContext, 300U );
+ xMqttStatus = MQTT_ProcessLoop( &xMqttContext );
+
+ /* Receive any incoming Jobs message. */
+ if( xQueueReceive( xJobMessageQueue, &pxJobMessagePublishInfo, 0 ) == pdTRUE )
+ {
+ /* Handler function to process Jobs message payload. */
+ prvNextJobHandler( pxJobMessagePublishInfo );
+ vPortFree( pxJobMessagePublishInfo->pTopicName );
+ vPortFree( pxJobMessagePublishInfo->pPayload );
+ vPortFree( pxJobMessagePublishInfo );
+ }
if( xMqttStatus != MQTTSuccess )
{
@@ -979,6 +1042,8 @@ void prvJobsDemoTask( void * pvParameters )
LogInfo( ( "Demo completed successfully." ) );
}
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
+
/* Delete this demo task. */
LogInfo( ( "Deleting Jobs Demo task." ) );
vTaskDelete( NULL );
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/FreeRTOSIPConfig.h
deleted file mode 100644
index 17f3cecfa84..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/Jobs_Demo.vcxproj b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/Jobs_Demo.vcxproj
new file mode 100644
index 00000000000..d0ed4806a58
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/Jobs_Demo.vcxproj
@@ -0,0 +1,192 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {9a8fd41d-dd8d-42c0-825a-266aebd15c99}
+ JobsDemo
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\AWS\jobs\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\AWS\jobs\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\AWS\jobs\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\..\Mqtt_Demo_Helpers;..\..\..\..\Source\AWS\jobs\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/Jobs_Demo.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/Jobs_Demo.vcxproj.filters
new file mode 100644
index 00000000000..a7f2e34f917
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/Jobs_Demo.vcxproj.filters
@@ -0,0 +1,153 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {77910aca-8b76-4e4d-b7d4-cfe4e56b5b64}
+
+
+ {172d061d-e623-438b-833f-4114ba0abf60}
+
+
+ {7eaed6c6-f58a-45e5-b5ca-deef0173342c}
+
+
+ {baa73419-9309-46d4-b6ed-3d45224d160c}
+
+
+ {966a910d-f680-4fa5-945d-7549e0f00dcf}
+
+
+ {81e3ec32-9c87-43c1-a942-676c8eaf748f}
+
+
+ {b998bcc8-3228-4f9c-a8b2-cbe089f23a8b}
+
+
+ {84f59601-7949-44e5-936c-eea0c72696fc}
+
+
+ {a76094d7-35e4-4d25-a0e3-6f5d41918de7}
+
+
+ {51f46bf6-a773-4e3f-afc4-edbdb1e64274}
+
+
+ {be40f75a-0897-4fa0-b167-41164a4b5767}
+
+
+ {3ad3935f-a395-4b93-9d2e-3a8d964a7293}
+
+
+ {6f4feeea-d54a-4efd-8c7d-702c02e075eb}
+
+
+ {f0cce363-133c-49e3-b12d-0eecd41ec82c}
+
+
+ {50ae4d20-b607-4b93-936c-fc7cc8463930}
+
+
+ {ca775260-7b8f-4425-9259-ffa0fd3fac14}
+
+
+ {34be0896-d864-4bba-96d0-c6076dbb5c62}
+
+
+ {3a2cda24-c8a2-4008-9b35-70b14cc6022c}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\AWS IoT Jobs
+
+
+ Additional Libraries\coreJSON
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Source Files
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+
+
+ Additional Libraries\AWS IoT Jobs\include
+
+
+ Additional Libraries\coreJSON\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Header Files
+
+
+ Config
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/WIN32.vcxproj b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/WIN32.vcxproj
deleted file mode 100644
index 4d84fc081bd..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/WIN32.vcxproj
+++ /dev/null
@@ -1,688 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\Common\WinPCap;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\..\Source\mbedtls_utils;..\..\..\..\ThirdParty\mbedtls\include;..\..\..\..\Source\AWS\jobs\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\Mqtt_Demo_Helpers;.;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\..\Source\include;..\..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/WIN32.vcxproj.filters
deleted file mode 100644
index 41ffd4f6281..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,857 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {20aee693-d2dc-480e-ae21-0db2156e54ac}
-
-
- {0dacb84e-5cc3-4eed-8fb1-68b6e4741f77}
-
-
- {3dc3c37b-6417-4a84-a16e-b1acf21c04cf}
-
-
- {e0b135a9-7746-4fea-baa7-288b070886a4}
-
-
- {d286fe5f-3c24-4a2f-881c-4b458623648d}
-
-
- {c8b7bd64-7a0e-458b-bcaa-8081806e4508}
-
-
- {6c6bc472-3f73-42c1-83e0-ffe6cae93393}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {7de8717e-b494-4eba-ba10-bc8252d9876a}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON
-
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\jobs
-
-
- DemoTasks
-
-
- Logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\jobs\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Logging
-
-
- Logging
-
-
- Logging
-
-
- Config
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/jobs_demo.sln b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/jobs_demo.sln
index dcfc1fe098d..c82ca2fb20e 100644
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/jobs_demo.sln
+++ b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/jobs_demo.sln
@@ -1,25 +1,79 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.31205.134
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Jobs_Demo", "Jobs_Demo.vcxproj", "{9A8FD41D-DD8D-42C0-825A-266AEBD15C99}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{08E4E650-9DDF-4FF4-8DF7-8C6AF2CC51A4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Debug|x64.ActiveCfg = Debug|x64
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Debug|x64.Build.0 = Debug|x64
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Debug|x86.ActiveCfg = Debug|Win32
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Debug|x86.Build.0 = Debug|Win32
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Release|x64.ActiveCfg = Release|x64
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Release|x64.Build.0 = Release|x64
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Release|x86.ActiveCfg = Release|Win32
+ {9A8FD41D-DD8D-42C0-825A-266AEBD15C99}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {08E4E650-9DDF-4FF4-8DF7-8C6AF2CC51A4}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {08E4E650-9DDF-4FF4-8DF7-8C6AF2CC51A4}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {08E4E650-9DDF-4FF4-8DF7-8C6AF2CC51A4}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {08E4E650-9DDF-4FF4-8DF7-8C6AF2CC51A4}
EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {616AA544-F9F0-4165-82DA-7337B0FF599F}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/main.c b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/main.c
index 0f6dcb73ce0..492fcfd9ff6 100644
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/main.c
+++ b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/main.c
@@ -37,7 +37,7 @@
#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
/* TCP/IP stack includes. */
@@ -50,73 +50,31 @@
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * Jobs demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * vStartJobsDemo() is called from inside vApplicationIPNetworkEventHook().
- */
-extern void vStartJobsDemo( void );
-
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
+extern void prvJobsDemoTask( void * pvParameters );
+extern void vPlatformInitLogging( void );
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ vPlatformInitLogging();
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ /*
+ * This example uses a single application task, which shows that how to
+ * use Jobs library to generate and validate AWS IoT Jobs service MQTT topics
+ * via coreMQTT library to communicate with the AWS IoT Jobs service.
+ */
+ xTaskCreate( prvJobsDemoTask, /* Function that implements the task. */
+ "DemoTask", /* Text name for the task - only used for debugging. */
+ democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
+ NULL, /* Task parameter - not used in this case. */
+ tskIDLE_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
+ NULL ); /* Used to pass out a handle to the created task - not used in this case. */
+
+ /* Initialize the FreeRTOS+TCP Stack */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -125,256 +83,13 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartJobsDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n", ulRandomNumbers[ 0 ], ulRandomNumbers[ 1 ], ulRandomNumbers[ 2 ], ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/mbedtls_config.h b/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.c b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.c
index 65daf51d722..c1134731ed1 100644
--- a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.c
+++ b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.c
@@ -54,7 +54,7 @@
#include "backoff_algorithm.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/* Demo specific config. */
#include "demo_config.h"
@@ -142,6 +142,18 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/**
* @brief Maximum number of outgoing publishes maintained in the application
* until an ack is received from the broker.
@@ -234,6 +246,25 @@ static uint16_t globalUnsubscribePacketIdentifier = 0U;
*/
static PublishPackets_t outgoingPublishPackets[ MAX_OUTGOING_PUBLISHES ] = { 0 };
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
+
/*-----------------------------------------------------------*/
/**
@@ -315,6 +346,18 @@ static BaseType_t xHandlePublishResend( MQTTContext_t * pxMqttContext );
*/
static uint32_t prvGetTimeMs( void );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
/*-----------------------------------------------------------*/
static int32_t prvGenerateRandomNumber()
@@ -334,26 +377,25 @@ static TlsTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkContext
#if defined( democonfigCLIENT_USERNAME )
/*
- * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
- * to AWS IoT Core with Custom Authentication on port 443.
- *
- * Custom Authentication uses the contents of the username and password
- * fields of the MQTT CONNECT packet to authenticate the client.
- *
- * For more information, refer to the documentation at:
- * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
- */
+ * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
+ * to AWS IoT Core with Custom Authentication on port 443.
+ *
+ * Custom Authentication uses the contents of the username and password
+ * fields of the MQTT CONNECT packet to authenticate the client.
+ *
+ * For more information, refer to the documentation at:
+ * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
+ */
static const char * ppcAlpnProtocols[] = { "mqtt", NULL };
#if democonfigMQTT_BROKER_PORT != 443U
- #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
+ #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
#else /* if !defined( democonfigCLIENT_USERNAME ) */
/*
- * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
- * x509 Certificate Authentication.
- */
+ * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
+ * x509 Certificate Authentication.
+ */
static const char * ppcAlpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
-
#endif /* !defined( democonfigCLIENT_USERNAME ) */
/*
@@ -366,7 +408,7 @@ static TlsTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkContext
xNetworkCredentials.pAlpnProtos = NULL;
#else /* democonfigMQTT_BROKER_PORT != 8883U */
xNetworkCredentials.pAlpnProtos = NULL;
- #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
+ #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
configASSERT( pxNetworkContext != NULL );
@@ -459,6 +501,37 @@ static BaseType_t prvGetNextFreeIndexForOutgoingPublishes( uint8_t * pucIndex )
return xReturnStatus;
}
+
+/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
/*-----------------------------------------------------------*/
static void vCleanupOutgoingPublishAt( uint8_t ucIndex )
@@ -625,6 +698,7 @@ BaseType_t xEstablishMqttSession( MQTTContext_t * pxMqttContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xMQTTStatus = MQTT_Init( pxMqttContext,
@@ -636,70 +710,85 @@ BaseType_t xEstablishMqttSession( MQTTContext_t * pxMqttContext,
if( xMQTTStatus != MQTTSuccess )
{
xReturnStatus = pdFAIL;
- LogError( ( "MQTT init failed with status %s.",
+ LogError( ( "MQTT_Init failed with status %s.",
MQTT_Status_strerror( xMQTTStatus ) ) );
}
else
{
- /* Establish MQTT session by sending a CONNECT packet. */
-
- /* Many fields not used in this demo so start with everything at 0. */
- ( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
-
- /* Start with a clean session i.e. direct the MQTT broker to discard any
- * previous session data. Also, establishing a connection with clean session
- * will ensure that the broker does not store any data when this client
- * gets disconnected. */
- xConnectInfo.cleanSession = true;
-
- /* The client identifier is used to uniquely identify this MQTT client to
- * the MQTT broker. In a production device the identifier can be something
- * unique, such as a device serial number. */
- xConnectInfo.pClientIdentifier = democonfigCLIENT_IDENTIFIER;
- xConnectInfo.clientIdentifierLength = ( uint16_t ) strlen( democonfigCLIENT_IDENTIFIER );
-
- /* The maximum time interval in seconds which is allowed to elapse
- * between two Control Packets.
- * It is the responsibility of the Client to ensure that the interval between
- * Control Packets being sent does not exceed this Keep Alive value. In the
- * absence of sending any other Control Packets, the Client MUST send a
- * PINGREQ Packet. */
- xConnectInfo.keepAliveSeconds = mqttexampleKEEP_ALIVE_TIMEOUT_SECONDS;
-
- #if defined( democonfigCLIENT_USERNAME )
- /* Append metrics string when connecting to AWS IoT Core with custom auth */
- xConnectInfo.pUserName = democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING;
- xConnectInfo.userNameLength = ( uint16_t ) strlen( democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING );
-
- /* Use the provided password as-is */
- xConnectInfo.pPassword = democonfigCLIENT_PASSWORD;
- xConnectInfo.passwordLength = ( uint16_t ) strlen( democonfigCLIENT_PASSWORD );
- #else
- /* If no username is needed, only send the metrics string */
- xConnectInfo.pUserName = AWS_IOT_METRICS_STRING;
- xConnectInfo.userNameLength = ( uint16_t ) strlen( AWS_IOT_METRICS_STRING );
-
- /* Password for authentication is not used. */
- xConnectInfo.pPassword = NULL;
- xConnectInfo.passwordLength = 0U;
- #endif /* defined( democonfigCLIENT_USERNAME ) */
-
- /* Send MQTT CONNECT packet to broker. */
- xMQTTStatus = MQTT_Connect( pxMqttContext,
- &xConnectInfo,
- NULL,
- mqttexampleCONNACK_RECV_TIMEOUT_MS,
- &sessionPresent );
+ xMQTTStatus = MQTT_InitStatefulQoS( pxMqttContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
if( xMQTTStatus != MQTTSuccess )
{
xReturnStatus = pdFAIL;
- LogError( ( "Connection with MQTT broker failed with status %s.",
+ LogError( ( "MQTT_InitStatefulQos failed with status %s.",
MQTT_Status_strerror( xMQTTStatus ) ) );
}
else
{
- LogInfo( ( "MQTT connection successfully established with broker.\n\n" ) );
+ /* Establish MQTT session by sending a CONNECT packet. */
+
+ /* Many fields not used in this demo so start with everything at 0. */
+ ( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
+
+ /* Start with a clean session i.e. direct the MQTT broker to discard any
+ * previous session data. Also, establishing a connection with clean session
+ * will ensure that the broker does not store any data when this client
+ * gets disconnected. */
+ xConnectInfo.cleanSession = true;
+
+ /* The client identifier is used to uniquely identify this MQTT client to
+ * the MQTT broker. In a production device the identifier can be something
+ * unique, such as a device serial number. */
+ xConnectInfo.pClientIdentifier = democonfigCLIENT_IDENTIFIER;
+ xConnectInfo.clientIdentifierLength = ( uint16_t ) strlen( democonfigCLIENT_IDENTIFIER );
+
+ /* The maximum time interval in seconds which is allowed to elapse
+ * between two Control Packets.
+ * It is the responsibility of the Client to ensure that the interval between
+ * Control Packets being sent does not exceed this Keep Alive value. In the
+ * absence of sending any other Control Packets, the Client MUST send a
+ * PINGREQ Packet. */
+ xConnectInfo.keepAliveSeconds = mqttexampleKEEP_ALIVE_TIMEOUT_SECONDS;
+
+ #if defined( democonfigCLIENT_USERNAME )
+ /* Append metrics string when connecting to AWS IoT Core with custom auth */
+ xConnectInfo.pUserName = democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING;
+ xConnectInfo.userNameLength = ( uint16_t ) strlen( democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING );
+
+ /* Use the provided password as-is */
+ xConnectInfo.pPassword = democonfigCLIENT_PASSWORD;
+ xConnectInfo.passwordLength = ( uint16_t ) strlen( democonfigCLIENT_PASSWORD );
+ #else
+ /* If no username is needed, only send the metrics string */
+ xConnectInfo.pUserName = AWS_IOT_METRICS_STRING;
+ xConnectInfo.userNameLength = ( uint16_t ) strlen( AWS_IOT_METRICS_STRING );
+
+ /* Password for authentication is not used. */
+ xConnectInfo.pPassword = NULL;
+ xConnectInfo.passwordLength = 0U;
+ #endif /* defined( democonfigCLIENT_USERNAME ) */
+
+ /* Send MQTT CONNECT packet to broker. */
+ xMQTTStatus = MQTT_Connect( pxMqttContext,
+ &xConnectInfo,
+ NULL,
+ mqttexampleCONNACK_RECV_TIMEOUT_MS,
+ &sessionPresent );
+
+ if( xMQTTStatus != MQTTSuccess )
+ {
+ xReturnStatus = pdFAIL;
+ LogError( ( "Connection with MQTT broker failed with status %s.",
+ MQTT_Status_strerror( xMQTTStatus ) ) );
+ }
+ else
+ {
+ LogInfo( ( "MQTT connection successfully established with broker.\n\n" ) );
+ }
}
}
@@ -819,7 +908,7 @@ BaseType_t xSubscribeToTopic( MQTTContext_t * pxMqttContext,
* of receiving publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses MQTT_ProcessLoop to
* receive packet from network. */
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
if( xMQTTStatus != MQTTSuccess )
{
@@ -876,7 +965,7 @@ BaseType_t xUnsubscribeFromTopic( MQTTContext_t * pxMqttContext,
pcTopicFilter ) );
/* Process the incoming packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
if( xMQTTStatus != MQTTSuccess )
{
@@ -953,7 +1042,7 @@ BaseType_t xPublishToTopic( MQTTContext_t * pxMqttContext,
* sends ping request to broker if MQTT_KEEP_ALIVE_INTERVAL_SECONDS
* has expired since the last MQTT packet sent and receive
* ping responses. */
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
if( xMQTTStatus != MQTTSuccess )
{
@@ -975,7 +1064,7 @@ BaseType_t xProcessLoop( MQTTContext_t * pxMqttContext,
BaseType_t xReturnStatus = pdFAIL;
MQTTStatus_t xMQTTStatus = MQTTSuccess;
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, ulTimeoutMs );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, ulTimeoutMs );
if( xMQTTStatus != MQTTSuccess )
{
diff --git a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.h b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.h
index 4f28892d751..0deee74386e 100644
--- a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.h
+++ b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_demo_helpers.h
@@ -31,7 +31,7 @@
#include "core_mqtt.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/**
* @brief Establish a MQTT connection.
diff --git a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.c b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.c
index b8ca62dec5a..010b4ed955d 100644
--- a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.c
+++ b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.c
@@ -54,7 +54,7 @@
#include "backoff_algorithm.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls_pkcs11.h"
+#include "transport_mbedtls_pkcs11.h"
/* Demo specific config. */
#include "demo_config.h"
@@ -135,6 +135,18 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/**
* @brief Maximum number of outgoing publishes maintained in the application
* until an ack is received from the broker.
@@ -226,6 +238,25 @@ static uint16_t globalUnsubscribePacketIdentifier = 0U;
*/
static PublishPackets_t outgoingPublishPackets[ MAX_OUTGOING_PUBLISHES ] = { 0 };
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
+
/*-----------------------------------------------------------*/
/**
@@ -311,6 +342,18 @@ static BaseType_t xHandlePublishResend( MQTTContext_t * pxMqttContext );
*/
static uint32_t prvGetTimeMs( void );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
/*-----------------------------------------------------------*/
static int32_t prvGenerateRandomNumber()
@@ -332,26 +375,25 @@ static TlsTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkContext
#if defined( democonfigCLIENT_USERNAME )
/*
- * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
- * to AWS IoT Core with Custom Authentication on port 443.
- *
- * Custom Authentication uses the contents of the username and password
- * fields of the MQTT CONNECT packet to authenticate the client.
- *
- * For more information, refer to the documentation at:
- * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
- */
+ * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
+ * to AWS IoT Core with Custom Authentication on port 443.
+ *
+ * Custom Authentication uses the contents of the username and password
+ * fields of the MQTT CONNECT packet to authenticate the client.
+ *
+ * For more information, refer to the documentation at:
+ * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
+ */
static const char * ppcAlpnProtocols[] = { "mqtt", NULL };
#if democonfigMQTT_BROKER_PORT != 443U
- #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
+ #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
#else /* if !defined( democonfigCLIENT_USERNAME ) */
/*
- * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
- * x509 Certificate Authentication.
- */
+ * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
+ * x509 Certificate Authentication.
+ */
static const char * ppcAlpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
-
#endif /* !defined( democonfigCLIENT_USERNAME ) */
/*
@@ -364,7 +406,7 @@ static TlsTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkContext
xNetworkCredentials.pAlpnProtos = NULL;
#else /* democonfigMQTT_BROKER_PORT != 8883U */
xNetworkCredentials.pAlpnProtos = NULL;
- #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
+ #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
configASSERT( pxNetworkContext != NULL );
@@ -453,6 +495,37 @@ static BaseType_t prvGetNextFreeIndexForOutgoingPublishes( uint8_t * pucIndex )
return xReturnStatus;
}
+
+/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
/*-----------------------------------------------------------*/
static void vCleanupOutgoingPublishAt( uint8_t ucIndex )
@@ -623,6 +696,7 @@ BaseType_t xEstablishMqttSession( MQTTContext_t * pxMqttContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xMQTTStatus = MQTT_Init( pxMqttContext,
@@ -634,102 +708,117 @@ BaseType_t xEstablishMqttSession( MQTTContext_t * pxMqttContext,
if( xMQTTStatus != MQTTSuccess )
{
xReturnStatus = pdFAIL;
- LogError( ( "MQTT init failed with status %s.",
+ LogError( ( "MQTT_Init failed with status %s.",
MQTT_Status_strerror( xMQTTStatus ) ) );
}
else
{
- /* Establish MQTT session by sending a CONNECT packet. */
-
- /* Many fields not used in this demo so start with everything at 0. */
- ( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
-
- /* Start with a clean session i.e. direct the MQTT broker to discard any
- * previous session data. Also, establishing a connection with clean session
- * will ensure that the broker does not store any data when this client
- * gets disconnected. */
- xConnectInfo.cleanSession = true;
-
- /* The client identifier is used to uniquely identify this MQTT client to
- * the MQTT broker. In a production device the identifier can be something
- * unique, such as a device serial number. */
- xConnectInfo.pClientIdentifier = democonfigCLIENT_IDENTIFIER;
- xConnectInfo.clientIdentifierLength = ( uint16_t ) strlen( democonfigCLIENT_IDENTIFIER );
-
- /* The maximum time interval in seconds which is allowed to elapse
- * between two Control Packets.
- * It is the responsibility of the Client to ensure that the interval between
- * Control Packets being sent does not exceed this Keep Alive value. In the
- * absence of sending any other Control Packets, the Client MUST send a
- * PINGREQ Packet. */
- xConnectInfo.keepAliveSeconds = mqttexampleKEEP_ALIVE_TIMEOUT_SECONDS;
-
- #if defined( democonfigCLIENT_USERNAME )
- /* Append metrics string when connecting to AWS IoT Core with custom auth */
- xConnectInfo.pUserName = democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING;
- xConnectInfo.userNameLength = ( uint16_t ) strlen( democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING );
-
- /* Use the provided password as-is */
- xConnectInfo.pPassword = democonfigCLIENT_PASSWORD;
- xConnectInfo.passwordLength = ( uint16_t ) strlen( democonfigCLIENT_PASSWORD );
- #else
- /* If no username is needed, only send the metrics string */
- xConnectInfo.pUserName = AWS_IOT_METRICS_STRING;
- xConnectInfo.userNameLength = ( uint16_t ) strlen( AWS_IOT_METRICS_STRING );
-
- /* Password for authentication is not used. */
- xConnectInfo.pPassword = NULL;
- xConnectInfo.passwordLength = 0U;
- #endif /* defined( democonfigCLIENT_USERNAME ) */
-
- /* Send MQTT CONNECT packet to broker. */
- xMQTTStatus = MQTT_Connect( pxMqttContext,
- &xConnectInfo,
- NULL,
- mqttexampleCONNACK_RECV_TIMEOUT_MS,
- &sessionPresent );
+ xMQTTStatus = MQTT_InitStatefulQoS( pxMqttContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
if( xMQTTStatus != MQTTSuccess )
{
xReturnStatus = pdFAIL;
- LogError( ( "Connection with MQTT broker failed with status %s.",
+ LogError( ( "MQTT_InitStatefulQos failed with status %s.",
MQTT_Status_strerror( xMQTTStatus ) ) );
}
else
{
- LogInfo( ( "MQTT connection successfully established with broker.\n\n" ) );
+ /* Establish MQTT session by sending a CONNECT packet. */
+
+ /* Many fields not used in this demo so start with everything at 0. */
+ ( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
+
+ /* Start with a clean session i.e. direct the MQTT broker to discard any
+ * previous session data. Also, establishing a connection with clean session
+ * will ensure that the broker does not store any data when this client
+ * gets disconnected. */
+ xConnectInfo.cleanSession = true;
+
+ /* The client identifier is used to uniquely identify this MQTT client to
+ * the MQTT broker. In a production device the identifier can be something
+ * unique, such as a device serial number. */
+ xConnectInfo.pClientIdentifier = democonfigCLIENT_IDENTIFIER;
+ xConnectInfo.clientIdentifierLength = ( uint16_t ) strlen( democonfigCLIENT_IDENTIFIER );
+
+ /* The maximum time interval in seconds which is allowed to elapse
+ * between two Control Packets.
+ * It is the responsibility of the Client to ensure that the interval between
+ * Control Packets being sent does not exceed this Keep Alive value. In the
+ * absence of sending any other Control Packets, the Client MUST send a
+ * PINGREQ Packet. */
+ xConnectInfo.keepAliveSeconds = mqttexampleKEEP_ALIVE_TIMEOUT_SECONDS;
+
+ #if defined( democonfigCLIENT_USERNAME )
+ /* Append metrics string when connecting to AWS IoT Core with custom auth */
+ xConnectInfo.pUserName = democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING;
+ xConnectInfo.userNameLength = ( uint16_t ) strlen( democonfigCLIENT_USERNAME AWS_IOT_METRICS_STRING );
+
+ /* Use the provided password as-is */
+ xConnectInfo.pPassword = democonfigCLIENT_PASSWORD;
+ xConnectInfo.passwordLength = ( uint16_t ) strlen( democonfigCLIENT_PASSWORD );
+ #else
+ /* If no username is needed, only send the metrics string */
+ xConnectInfo.pUserName = AWS_IOT_METRICS_STRING;
+ xConnectInfo.userNameLength = ( uint16_t ) strlen( AWS_IOT_METRICS_STRING );
+
+ /* Password for authentication is not used. */
+ xConnectInfo.pPassword = NULL;
+ xConnectInfo.passwordLength = 0U;
+ #endif /* defined( democonfigCLIENT_USERNAME ) */
+
+ /* Send MQTT CONNECT packet to broker. */
+ xMQTTStatus = MQTT_Connect( pxMqttContext,
+ &xConnectInfo,
+ NULL,
+ mqttexampleCONNACK_RECV_TIMEOUT_MS,
+ &sessionPresent );
+
+ if( xMQTTStatus != MQTTSuccess )
+ {
+ xReturnStatus = pdFAIL;
+ LogError( ( "Connection with MQTT broker failed with status %s.",
+ MQTT_Status_strerror( xMQTTStatus ) ) );
+ }
+ else
+ {
+ LogInfo( ( "MQTT connection successfully established with broker.\n\n" ) );
+ }
}
- }
-
- if( xReturnStatus == pdFAIL )
- {
- /* Keep a flag for indicating if MQTT session is established. This
- * flag will mark that an MQTT DISCONNECT has to be sent at the end
- * of the demo even if there are intermediate failures. */
- xMqttSessionEstablished = true;
- }
- if( xReturnStatus == pdFAIL )
- {
- /* Check if session is present and if there are any outgoing publishes
- * that need to resend. This is only valid if the broker is
- * re-establishing a session which was already present. */
- if( sessionPresent == true )
+ if( xReturnStatus == pdFAIL )
{
- LogInfo( ( "An MQTT session with broker is re-established. "
- "Resending unacked publishes." ) );
-
- /* Handle all the resend of publish messages. */
- xReturnStatus = xHandlePublishResend( pxMqttContext );
+ /* Keep a flag for indicating if MQTT session is established. This
+ * flag will mark that an MQTT DISCONNECT has to be sent at the end
+ * of the demo even if there are intermediate failures. */
+ xMqttSessionEstablished = true;
}
- else
- {
- LogInfo( ( "A clean MQTT connection is established."
- " Cleaning up all the stored outgoing publishes.\n\n" ) );
- /* Clean up the outgoing publishes waiting for ack as this new
- * connection doesn't re-establish an existing session. */
- vCleanupOutgoingPublishes();
+ if( xReturnStatus == pdFAIL )
+ {
+ /* Check if session is present and if there are any outgoing publishes
+ * that need to resend. This is only valid if the broker is
+ * re-establishing a session which was already present. */
+ if( sessionPresent == true )
+ {
+ LogInfo( ( "An MQTT session with broker is re-established. "
+ "Resending unacked publishes." ) );
+
+ /* Handle all the resend of publish messages. */
+ xReturnStatus = xHandlePublishResend( pxMqttContext );
+ }
+ else
+ {
+ LogInfo( ( "A clean MQTT connection is established."
+ " Cleaning up all the stored outgoing publishes.\n\n" ) );
+
+ /* Clean up the outgoing publishes waiting for ack as this new
+ * connection doesn't re-establish an existing session. */
+ vCleanupOutgoingPublishes();
+ }
}
}
}
@@ -817,7 +906,7 @@ BaseType_t xSubscribeToTopic( MQTTContext_t * pxMqttContext,
* of receiving publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses MQTT_ProcessLoop to
* receive packet from network. */
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
if( xMQTTStatus != MQTTSuccess )
{
@@ -874,7 +963,7 @@ BaseType_t xUnsubscribeFromTopic( MQTTContext_t * pxMqttContext,
pcTopicFilter ) );
/* Process the incoming packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
if( xMQTTStatus != MQTTSuccess )
{
@@ -951,7 +1040,7 @@ BaseType_t xPublishToTopic( MQTTContext_t * pxMqttContext,
* sends ping request to broker if MQTT_KEEP_ALIVE_INTERVAL_SECONDS
* has expired since the last MQTT packet sent and receive
* ping responses. */
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
if( xMQTTStatus != MQTTSuccess )
{
@@ -973,7 +1062,7 @@ BaseType_t xProcessLoop( MQTTContext_t * pxMqttContext,
BaseType_t xReturnStatus = pdFAIL;
MQTTStatus_t xMQTTStatus = MQTTSuccess;
- xMQTTStatus = MQTT_ProcessLoop( pxMqttContext, ulTimeoutMs );
+ xMQTTStatus = prvProcessLoopWithTimeout( pxMqttContext, ulTimeoutMs );
if( xMQTTStatus != MQTTSuccess )
{
diff --git a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.h b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.h
index 2d37d435124..05a2bc4ad59 100644
--- a/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.h
+++ b/FreeRTOS-Plus/Demo/AWS/Mqtt_Demo_Helpers/mqtt_pkcs11_demo_helpers.h
@@ -31,7 +31,7 @@
#include "core_mqtt.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls_pkcs11.h"
+#include "transport_mbedtls_pkcs11.h"
/**
* @brief Establish a MQTT connection.
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Common/Ota_PAL/Win32/Code_Signature_Verification/code_signature_verification_mbedtls.c b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Common/Ota_PAL/Win32/Code_Signature_Verification/code_signature_verification_mbedtls.c
index af28f1bd0ed..15731918483 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Common/Ota_PAL/Win32/Code_Signature_Verification/code_signature_verification_mbedtls.c
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Common/Ota_PAL/Win32/Code_Signature_Verification/code_signature_verification_mbedtls.c
@@ -40,7 +40,7 @@
/* mbedTLS includes. */
#if !defined( MBEDTLS_CONFIG_FILE )
-#include "mbedtls/config.h"
+#include "mbedtls_config_v3.2.1.h"
#else
#include MBEDTLS_CONFIG_FILE
#endif
@@ -313,7 +313,7 @@ static BaseType_t prvSignatureVerificationStart(void** ppvContext,
* Initialize the requested hash type
*/
mbedtls_sha256_init(&pxCtx->xSHA256Context);
- (void)mbedtls_sha256_starts_ret(&pxCtx->xSHA256Context, 0);
+ (void)mbedtls_sha256_starts(&pxCtx->xSHA256Context, 0);
}
return xResult;
@@ -331,7 +331,7 @@ static void prvSignatureVerificationUpdate(void* pvContext,
/*
* Add the data to the hash of the requested type
*/
- (void)mbedtls_sha256_update_ret(&pxCtx->xSHA256Context, pucData, xDataLength);
+ (void)mbedtls_sha256_update(&pxCtx->xSHA256Context, pucData, xDataLength);
}
@@ -361,7 +361,7 @@ static BaseType_t prvSignatureVerificationFinal(void* pvContext,
/*
* Finish the hash.
*/
- (void)mbedtls_sha256_finish_ret(&pxCtx->xSHA256Context, ucSHA256);
+ (void)mbedtls_sha256_finish(&pxCtx->xSHA256Context, ucSHA256);
pucHash = ucSHA256;
xHashLength = SHA256_DIGEST_BYTES;
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/DemoTasks/OtaOverHttpDemoExample.c b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/DemoTasks/OtaOverHttpDemoExample.c
index d575aa5dffa..09df7018ba7 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/DemoTasks/OtaOverHttpDemoExample.c
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/DemoTasks/OtaOverHttpDemoExample.c
@@ -76,7 +76,7 @@
#include "backoff_algorithm.h"
/* mbedTLS transport interface header.*/
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/* OTA Library include. */
#include "ota.h"
@@ -773,7 +773,7 @@ static void prvOTAAgentTask( void * pvParam );
* It reports OTA update statistics (which includes number of blocks received, processed and dropped),
* at regular intervals.
*/
-static void vOtaDemoTask( void * pvParam );
+void vOtaDemoTask( void * pvParam );
/**
* @brief The function which implements the flow for OTA demo.
@@ -1433,39 +1433,38 @@ static BaseType_t prvSocketConnect( NetworkContext_t * pxNetworkContext )
#if defined( democonfigUSE_AWS_IOT_CORE_BROKER )
#if defined( democonfigCLIENT_USERNAME )
/*
- * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
- * to AWS IoT Core with Custom Authentication on port 443.
- *
- * Custom Authentication uses the contents of the username and password
- * fields of the MQTT CONNECT packet to authenticate the client.
- *
- * For more information, refer to the documentation at:
- * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
- */
+ * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
+ * to AWS IoT Core with Custom Authentication on port 443.
+ *
+ * Custom Authentication uses the contents of the username and password
+ * fields of the MQTT CONNECT packet to authenticate the client.
+ *
+ * For more information, refer to the documentation at:
+ * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
+ */
static const char * ppcAlpnProtocols[] = { "mqtt", NULL };
#if democonfigMQTT_BROKER_PORT != 443U
- #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
+ #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
#else /* if !defined( democonfigCLIENT_USERNAME ) */
/*
- * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
- * x509 Certificate Authentication.
- */
+ * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
+ * x509 Certificate Authentication.
+ */
static const char * ppcAlpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
-
#endif /* !defined( democonfigCLIENT_USERNAME ) */
/*
- * An ALPN identifier is only required when connecting to AWS IoT core on port 443.
- * https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html
- */
+ * An ALPN identifier is only required when connecting to AWS IoT core on port 443.
+ * https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html
+ */
#if democonfigMQTT_BROKER_PORT == 443U
xNetworkCredentials.pAlpnProtos = ppcAlpnProtocols;
#elif democonfigMQTT_BROKER_PORT == 8883U
xNetworkCredentials.pAlpnProtos = NULL;
#else /* democonfigMQTT_BROKER_PORT != 8883U */
xNetworkCredentials.pAlpnProtos = NULL;
- #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
+ #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
#else /* !defined( democonfigUSE_AWS_IOT_CORE_BROKER ) */
xNetworkCredentials.pAlpnProtos = NULL;
@@ -1579,6 +1578,7 @@ static MQTTStatus_t prvMQTTInit( void )
xTransport.pNetworkContext = &xNetworkContextMqtt;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xReturn = MQTTAgent_Init( &xGlobalMqttAgentContext,
@@ -2546,6 +2546,17 @@ void vOtaDemoTask( void * pParam )
xReturnStatus = pdFAIL;
}
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/****************************** Init MQTT ******************************/
if( xReturnStatus == pdPASS )
@@ -2596,22 +2607,3 @@ void vOtaDemoTask( void * pParam )
vSemaphoreDelete( xBufferSemaphore );
}
}
-
-/*
- * @brief Create the task that demonstrates the Ota demo.
- */
-void vStartOtaDemo( void )
-{
- /*
- * vOtaDemoTask() connects to the MQTT broker, creates the
- * MQTT Agent task and calls the Ota demo loop prvRunOTADemo()
- * which creates the OTA Agent task.
- */
-
- xTaskCreate( vOtaDemoTask, /* Function that implements the task. */
- "OTA Demo Task", /* Text name for the task - only used for debugging. */
- democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
- NULL, /* Optional - task parameter - not used in this case. */
- tskIDLE_PRIORITY + 1, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
- NULL ); /* Optional - used to pass out a handle to the created task. */
-}
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/FreeRTOSConfig.h
deleted file mode 100644
index 95be42e82bd..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 5L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/FreeRTOSIPConfig.h
deleted file mode 100644
index 3d62fdcbebd..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/Ota_Over_Http_Demo.vcxproj b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/Ota_Over_Http_Demo.vcxproj
new file mode 100644
index 00000000000..7fefbf5593c
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/Ota_Over_Http_Demo.vcxproj
@@ -0,0 +1,249 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {4be4e103-5bf4-4a85-9656-ec20852a2b8e}
+ OtaOverHttpDemo
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ RTOSDemo
+
+
+ false
+ RTOSDemo
+
+
+ true
+ RTOSDemo
+
+
+ false
+ RTOSDemo
+
+
+
+ Level3
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;_DEBUG;_CONSOLE;WIN32;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ ..\Common\HTTP_Utils;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;WIN32;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ ..\Common\HTTP_Utils;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ ..\Common\HTTP_Utils;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ ..\Common\HTTP_Utils;..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ {ee39fa0f-cefb-4c29-a571-05a28fdd47fd}
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/Ota_Over_Http_Demo.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/Ota_Over_Http_Demo.vcxproj.filters
new file mode 100644
index 00000000000..14cac11af18
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/Ota_Over_Http_Demo.vcxproj.filters
@@ -0,0 +1,339 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {d8a6eab8-52e5-4e4f-a9b9-cd5d8eb3454a}
+
+
+ {18d8589f-6af4-4627-b7fe-e1c9bdfecdd8}
+
+
+ {6eb6582b-1dce-411e-bc0b-841a09741615}
+
+
+ {3d266f56-5fd1-4585-9a72-3eef3ee1ee53}
+
+
+ {96471440-eb47-4085-a08f-8576fa6fac34}
+
+
+ {4e394147-c8cd-4245-b188-0b4827b1875e}
+
+
+ {4e2b22e6-880f-40a0-8b4e-be5e8d3471b2}
+
+
+ {228e794f-fa2d-44ec-ad49-95d6820434a2}
+
+
+ {71c883e5-7eb1-44fe-bbcb-5a2b6c3e4d15}
+
+
+ {b3aeb9e5-1b4f-4652-b24a-49a8c406113e}
+
+
+ {163f3bc7-7054-4400-8c9e-7f8ac07307f8}
+
+
+ {6db5c3a5-4750-40b1-9c8c-38e90fa37f9a}
+
+
+ {2e0ccf6e-a4ca-4349-93ed-5eafa843095b}
+
+
+ {a8c75d87-1984-4285-af5c-15146e3dba37}
+
+
+ {5e99c65f-35d7-4c3d-9055-9c7759e6f26b}
+
+
+ {d90df1a1-4234-4da5-b3c3-46aa7947a06d}
+
+
+ {b4d0329a-2859-4ba6-a690-ce91db59b325}
+
+
+ {86c10d39-5f4e-4818-aad7-c565dd268bef}
+
+
+ {a563c8c2-aada-4f3e-b77a-43db3cf9e26e}
+
+
+ {b89e35af-5342-46c6-84f2-24aa5761e368}
+
+
+ {ed32e5c5-0bcb-49b9-9328-7b01d3becdf3}
+
+
+ {d1acbc8c-cc4d-4c81-8ee0-a68922cc6f1a}
+
+
+ {9df90bb5-248f-42cb-8a1c-4b657078898e}
+
+
+ {2638c698-6c61-4539-a1d6-778586efb3a4}
+
+
+ {db1fff46-e0ac-434a-afbd-fed44d1efcbb}
+
+
+ {0bac4135-5620-46bf-97bc-650637aa824b}
+
+
+ {8c7c47a6-bb49-46a0-b804-f569d3dca0f0}
+
+
+ {d491829c-c97e-4f26-84f4-ebabe1cf94b7}
+
+
+ {1c33fa66-1e0e-45c6-98ad-29b3072f189e}
+
+
+ {691f4cfe-af00-47b6-bc4b-f988da6bedc3}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA\portable
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreJSON
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Port Files\OTA PAL
+
+
+ Port Files\OTA PAL\Code Signature Verification MbedTLS
+
+
+ Port Files\coreMQTT Agent Interface
+
+
+ Port Files\coreMQTT Agent Interface
+
+
+ Source Files
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+
+
+ Header Files
+
+
+ Additional Libraries\AWS IoT OTA\portable
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\coreJSON\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Port Files\OTA PAL\include
+
+
+ Port Files\OTA PAL\Code Signature Verification MbedTLS\include
+
+
+ Port Files\coreMQTT Agent Interface\include
+
+
+ Port Files\coreMQTT Agent Interface\include
+
+
+ Header Files
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/WIN32.vcxproj b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/WIN32.vcxproj
deleted file mode 100644
index e5f9f5ae8cd..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/WIN32.vcxproj
+++ /dev/null
@@ -1,746 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\Common\WinPCap;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\..\Source\mbedtls_utils;..\..\..\..\ThirdParty\mbedtls\include;..\..\..\..\Source\AWS\jobs\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Ota_Over_Http_Demo;..\..\..\..\..\FreeRTOS-Plus\Demo\Common\coreMQTT_Agent_Interface\include;..\..\..\..\..\FreeRTOS-Plus\Source\AWS\ota\source\include;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Common\subscription-manager;..\..\..\..\..\FreeRTOS-Plus\Source\AWS\ota\source\portable\os;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Common\Ota_PAL\Win32;..\..\..\..\..\FreeRTOS-Plus\Source\AWS\ota\source\dependency\3rdparty\tinycbor\src;..\..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\..\..\FreeRTOS-Plus\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\..\..\..\\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Common\Ota_PAL\Win32\Code_Signature_Verification;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Common\HTTP_Utils;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\..\Source\include;..\..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/WIN32.vcxproj.filters
deleted file mode 100644
index af18d1ea0ea..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,1088 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {20aee693-d2dc-480e-ae21-0db2156e54ac}
-
-
- {0dacb84e-5cc3-4eed-8fb1-68b6e4741f77}
-
-
- {d286fe5f-3c24-4a2f-881c-4b458623648d}
-
-
- {c8b7bd64-7a0e-458b-bcaa-8081806e4508}
-
-
- {6c6bc472-3f73-42c1-83e0-ffe6cae93393}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {7de8717e-b494-4eba-ba10-bc8252d9876a}
-
-
- {3cce55b5-995f-476c-a3a5-9c659a977c89}
-
-
- {d6ca6595-6585-4fd8-b0dd-224128fbd230}
-
-
- {044f1490-9d76-41d8-9887-94f5e89cab11}
-
-
- {28ef5930-f7c7-44f3-9189-749dcdf13cdd}
-
-
- {0025af31-a87a-438e-86fd-8048c9f98025}
-
-
- {e7b017ae-316c-4d8b-b427-5df150109d0f}
-
-
- {0d8ed7df-8ac2-4ac0-ba27-ca59624bf363}
-
-
- {b43eb5ed-8c56-41eb-a67a-4ce41403629e}
-
-
- {4650e6af-01d5-46c3-9674-8554dab982ac}
-
-
- {e3a23704-31ed-4869-b74e-6d09f842b336}
-
-
- {b5277e13-3a7f-46ab-a73d-7a8aa2831f98}
-
-
- {6886c3ff-2cf3-4391-827f-6032c74396e7}
-
-
- {479f3dc4-b697-4e74-be3e-60c8f84a1e30}
-
-
- {f076f8c1-267c-445c-8b4e-432cac57c90e}
-
-
- {407f38e3-f238-4922-9442-ac843d507077}
-
-
- {d0d4cb81-9ea9-4235-b30c-c112777f0eda}
-
-
- {48067e94-989e-4056-a173-39b35e17a13f}
-
-
- {8f0251d7-49ee-43d9-93a9-acedfe4f7152}
-
-
- {cc758a0a-4533-4cb6-8854-43f3e7f632ca}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON
-
-
-
- Logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\portable
-
-
- otapal
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- subscription-manager
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\httpparser
-
-
- FreeRTOS+\httpparser
-
-
- FreeRTOS+\httpparser
-
-
- otapal\code_signature_verification
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent
-
-
- http-utils
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Logging
-
-
- Logging
-
-
- Logging
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\portable
-
-
- otapal
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- subscription-manager
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- Config
-
-
- FreeRTOS+\httpparser\include
-
-
- otapal\code_signature_verification\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- http-utils\include
-
-
- otapal\code_signature_verification\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/core_pkcs11_config.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/core_pkcs11_config.h
deleted file mode 100644
index 0eeaa4f8e50..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/core_pkcs11_config.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/**
- * @file core_pkcs11_config.h
- * @brief PCKS#11 config options.
- */
-
-
-#ifndef _CORE_PKCS11_CONFIG_H_
-#define _CORE_PKCS11_CONFIG_H_
-
-#include "FreeRTOS.h"
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Include logging header files and define logging macros in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for PKCS #11.
- * 3. Include the header file "logging_stack.h", if logging is enabled for PKCS #11.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the PKCS #11 library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "PKCS11"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_ERROR
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-
-#include "logging_stack.h"
-
-/**
- * @brief Malloc API used by core_pkcs11.h
- */
-#define PKCS11_MALLOC pvPortMalloc
-
-/**
- * @brief Free API used by core_pkcs11.h
- */
-#define PKCS11_FREE vPortFree
-
-/**
- * @brief PKCS #11 default user PIN.
- *
- * The PKCS #11 standard specifies the presence of a user PIN. That feature is
- * sensible for applications that have an interactive user interface and memory
- * protections. However, since typical microcontroller applications lack one or
- * both of those, the user PIN is assumed to be used herein for interoperability
- * purposes only, and not as a security feature.
- *
- * Note: Do not cast this to a pointer! The library calls sizeof to get the length
- * of this string.
- */
-#define configPKCS11_DEFAULT_USER_PIN "0000"
-
-/**
- * @brief Maximum length (in characters) for a PKCS #11 CKA_LABEL
- * attribute.
- */
-#define pkcs11configMAX_LABEL_LENGTH 32
-
-/**
- * @brief Maximum number of token objects that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_NUM_OBJECTS 6
-
-/**
- * @brief Maximum number of sessions that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_SESSIONS 10
-
-/**
- * @brief Set to 1 if a PAL destroy object is implemented.
- *
- * If set to 0, no PAL destroy object is implemented, and this functionality
- * is implemented in the common PKCS #11 layer.
- */
-#define pkcs11configPAL_DESTROY_SUPPORTED 0
-
-/**
- * @brief Set to 1 if OTA image verification via PKCS #11 module is supported.
- *
- * If set to 0, OTA code signing certificate is built in via
- * aws_ota_codesigner_certificate.h.
- */
-#define pkcs11configOTA_SUPPORTED 0
-
-/**
- * @brief Set to 1 if PAL supports storage for JITP certificate,
- * code verify certificate, and trusted server root certificate.
- *
- * If set to 0, PAL does not support storage mechanism for these, and
- * they are accessed via headers compiled into the code.
- */
-#define pkcs11configJITP_CODEVERIFY_ROOT_CERT_SUPPORTED 0
-
-/**
- * @brief The PKCS #11 label for device private key.
- *
- * Private key for connection to AWS IoT endpoint. The corresponding
- * public key should be registered with the AWS IoT endpoint.
- */
-#define pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS "Device Priv TLS Key"
-
-/**
- * @brief The PKCS #11 label for device public key.
- *
- * The public key corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS "Device Pub TLS Key"
-
-/**
- * @brief The PKCS #11 label for the device certificate.
- *
- * Device certificate corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS "Device Cert"
-
-/**
- * @brief The PKCS #11 label for the object to be used for code verification.
- *
- * Used by over-the-air update code to verify an incoming signed image.
- */
-#define pkcs11configLABEL_CODE_VERIFICATION_KEY "Code Verify Key"
-
-/**
- * @brief The PKCS #11 label for Just-In-Time-Provisioning.
- *
- * The certificate corresponding to the issuer of the device certificate
- * (pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS) when using the JITR or
- * JITP flow.
- */
-#define pkcs11configLABEL_JITP_CERTIFICATE "JITP Cert"
-
-/**
- * @brief The PKCS #11 label for the AWS Trusted Root Certificate.
- *
- * @see aws_default_root_certificates.h
- */
-#define pkcs11configLABEL_ROOT_CERTIFICATE "Root Cert"
-
-#endif /* _CORE_PKCS11_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/main.c b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/main.c
index 501a14f8250..366837d7fb2 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/main.c
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/main.c
@@ -23,6 +23,7 @@
* https://github.com/FreeRTOS
*
*/
+
/***
* See https://www.FreeRTOS.org/coremqtt for configuration and usage instructions.
***/
@@ -31,91 +32,37 @@
#include
#include
-/* Visual studio intrinsics used so the __debugbreak() function is available
- * should an assert get hit. */
-#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
-/* TCP/IP stack includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
/* Demo logging includes. */
#include "logging.h"
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * Ota demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * vStartOtaDemo() is called from inside vApplicationIPNetworkEventHook().
- */
-extern void vStartOtaDemo( void );
-
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
+extern void vOtaDemoTask( void * pvParameters );
+extern void vPlatformInitIpStack( void );
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ vPlatformInitLogging();
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ xTaskCreate( vOtaDemoTask, /* Function that implements the task. */
+ "OTA Demo Task", /* Text name for the task - only used for debugging. */
+ democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
+ NULL, /* Optional - task parameter - not used in this case. */
+ tskIDLE_PRIORITY + 1, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
+ NULL ); /* Optional - used to pass out a handle to the created task. */
+
+ /* Initialize the FreeRTOS+TCP Stack */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -124,260 +71,13 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartOtaDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n",
- ulRandomNumbers[ 0 ],
- ulRandomNumbers[ 1 ],
- ulRandomNumbers[ 2 ],
- ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
}
-/*-----------------------------------------------------------*/
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/mbedtls_config.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/mbedtls_config.h
deleted file mode 100644
index 79eae84a5ba..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/mbedtls_config.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-#define MBEDTLS_X509_CREATE_C
-#define MBEDTLS_PK_WRITE_C
-#define MBEDTLS_X509_CSR_WRITE_C
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/ota_over_http_demo.sln b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/ota_over_http_demo.sln
index dcfc1fe098d..1d3553d509a 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/ota_over_http_demo.sln
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/ota_over_http_demo.sln
@@ -1,25 +1,116 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31205.134
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ota_Over_Http_Demo", "Ota_Over_Http_Demo.vcxproj", "{4BE4E103-5BF4-4A85-9656-EC20852A2B8E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{9799AFF4-25E2-43CD-8829-C066177E3748}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ww", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreHTTP", "..\..\..\..\VisualStudio_StaticProjects\coreHTTP\coreHTTP.vcxproj", "{EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|Win32.Build.0 = Debug|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x64.ActiveCfg = Debug|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x64.Build.0 = Debug|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x86.ActiveCfg = Debug|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x86.Build.0 = Debug|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|Win32.ActiveCfg = Release|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|Win32.Build.0 = Release|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x64.ActiveCfg = Release|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x64.Build.0 = Release|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x86.ActiveCfg = Release|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.ActiveCfg = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.Build.0 = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x86.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x86.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.ActiveCfg = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.Build.0 = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x86.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {03800DFF-BAFA-4654-8E51-C4E654A54416}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/DemoTasks/OtaOverMqttDemoExample.c b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/DemoTasks/OtaOverMqttDemoExample.c
index b06376ad114..c1159019072 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/DemoTasks/OtaOverMqttDemoExample.c
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/DemoTasks/OtaOverMqttDemoExample.c
@@ -72,7 +72,7 @@
#include "backoff_algorithm.h"
/* mbedTLS transport interface header.*/
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/* OTA Library include. */
#include "ota.h"
@@ -632,7 +632,7 @@ static void prvOTAAgentTask( void * pvParam );
*
* @param[in] pvParam Any parameters to be passed to OTA Demo task.
*/
-static void vOtaDemoTask( void * pvParam );
+void vOtaDemoTask( void * pvParam );
/**
* @brief The function which implements the flow for OTA demo.
@@ -1437,6 +1437,7 @@ static MQTTStatus_t prvMQTTInit( void )
xTransport.pNetworkContext = &xNetworkContextMqtt;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xReturn = MQTTAgent_Init( &xGlobalMqttAgentContext,
@@ -2057,7 +2058,7 @@ static BaseType_t prvRunOTADemo( void )
* the OTA agent. If not, it is simply ignored.
*
*/
-static void vOtaDemoTask( void * pvParam )
+void vOtaDemoTask( void * pvParam )
{
/* Return error status. */
BaseType_t xReturnStatus = pdPASS;
@@ -2081,6 +2082,16 @@ static void vOtaDemoTask( void * pvParam )
xReturnStatus = pdFAIL;
}
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/****************************** Init MQTT ******************************/
if( xReturnStatus == pdPASS )
@@ -2131,22 +2142,3 @@ static void vOtaDemoTask( void * pvParam )
vSemaphoreDelete( xBufferSemaphore );
}
}
-
-/*
- * @brief Create the task that demonstrates the Ota demo.
- */
-void vStartOtaDemo( void )
-{
- /*
- * vOtaDemoTask() connects to the MQTT broker, creates the
- * MQTT Agent task and calls the Ota demo loop prvRunOTADemo()
- * which creates the OTA Agent task.
- */
-
- xTaskCreate( vOtaDemoTask, /* Function that implements the task. */
- "OTA Demo Task", /* Text name for the task - only used for debugging. */
- democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
- NULL, /* Optional - task parameter - not used in this case. */
- tskIDLE_PRIORITY + 1, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
- NULL ); /* Optional - used to pass out a handle to the created task. */
-}
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/FreeRTOSIPConfig.h
deleted file mode 100644
index 3d62fdcbebd..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/Ota_Over_Mqtt_Demo.vcxproj b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/Ota_Over_Mqtt_Demo.vcxproj
new file mode 100644
index 00000000000..8a310744de9
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/Ota_Over_Mqtt_Demo.vcxproj
@@ -0,0 +1,245 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {4be4e103-5bf4-4a85-9656-ec20852a2b8e}
+ OtaOverMqttDemo
+ 10.0
+ Ota_Over_Mqtt_Demo
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ RTOSDemo
+
+
+ false
+ RTOSDemo
+
+
+ true
+ RTOSDemo
+
+
+ false
+ RTOSDemo
+
+
+
+ Level3
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;_DEBUG;_CONSOLE;WIN32;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ ..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;WIN32;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ ..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ ..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ false
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;WIN32;__little_endian__=1;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ ..\..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\..\Source\Application-Protocols\network_transport;..\..\..\Common\coreMQTT_Agent_Interface\include;..\..\..\..\ThirdParty\tinycbor\src;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\AWS\ota\source\include;..\..\..\..\Source\AWS\ota\source\portable\os;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\Common\Ota_PAL\Win32\Code_Signature_Verification;..\Common\Ota_PAL\Win32;..\Common\subscription-manager;.\;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/Ota_Over_Mqtt_Demo.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/Ota_Over_Mqtt_Demo.vcxproj.filters
new file mode 100644
index 00000000000..d3b4aeac9a2
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/Ota_Over_Mqtt_Demo.vcxproj.filters
@@ -0,0 +1,330 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {d8a6eab8-52e5-4e4f-a9b9-cd5d8eb3454a}
+
+
+ {18d8589f-6af4-4627-b7fe-e1c9bdfecdd8}
+
+
+ {6eb6582b-1dce-411e-bc0b-841a09741615}
+
+
+ {3d266f56-5fd1-4585-9a72-3eef3ee1ee53}
+
+
+ {96471440-eb47-4085-a08f-8576fa6fac34}
+
+
+ {4e394147-c8cd-4245-b188-0b4827b1875e}
+
+
+ {4e2b22e6-880f-40a0-8b4e-be5e8d3471b2}
+
+
+ {228e794f-fa2d-44ec-ad49-95d6820434a2}
+
+
+ {71c883e5-7eb1-44fe-bbcb-5a2b6c3e4d15}
+
+
+ {b3aeb9e5-1b4f-4652-b24a-49a8c406113e}
+
+
+ {163f3bc7-7054-4400-8c9e-7f8ac07307f8}
+
+
+ {6db5c3a5-4750-40b1-9c8c-38e90fa37f9a}
+
+
+ {2e0ccf6e-a4ca-4349-93ed-5eafa843095b}
+
+
+ {a8c75d87-1984-4285-af5c-15146e3dba37}
+
+
+ {5e99c65f-35d7-4c3d-9055-9c7759e6f26b}
+
+
+ {d90df1a1-4234-4da5-b3c3-46aa7947a06d}
+
+
+ {b4d0329a-2859-4ba6-a690-ce91db59b325}
+
+
+ {86c10d39-5f4e-4818-aad7-c565dd268bef}
+
+
+ {a563c8c2-aada-4f3e-b77a-43db3cf9e26e}
+
+
+ {b89e35af-5342-46c6-84f2-24aa5761e368}
+
+
+ {ed32e5c5-0bcb-49b9-9328-7b01d3becdf3}
+
+
+ {d1acbc8c-cc4d-4c81-8ee0-a68922cc6f1a}
+
+
+ {9df90bb5-248f-42cb-8a1c-4b657078898e}
+
+
+ {9d109ee1-e478-4150-98b3-e76597cecb83}
+
+
+ {146d613c-d6d6-428a-8506-82924c74a9c9}
+
+
+ {7e781ff5-e562-4412-b8e9-8b215c6d7c39}
+
+
+ {b44e49dc-4b85-41cc-a37a-22c6d33950f1}
+
+
+ {041aed9a-2876-41f7-859d-e257a7faf509}
+
+
+ {5fe3deb2-b82c-4366-98c5-51742c6c1228}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA
+
+
+ Additional Libraries\AWS IoT OTA\portable
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreJSON
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Additional Libraries\TinyCBOR
+
+
+ Port Files\OTA PAL
+
+
+ Port Files\OTA PAL\Code Signature Verification MbedTLS
+
+
+ Port Files\coreMQTT Agent Interface
+
+
+ Port Files\coreMQTT Agent Interface
+
+
+ Source Files
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+
+
+ Header Files
+
+
+ Additional Libraries\AWS IoT OTA\portable
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\AWS IoT OTA\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\coreJSON\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Additional Libraries\TinyCBOR\include
+
+
+ Port Files\OTA PAL\include
+
+
+ Port Files\OTA PAL\Code Signature Verification MbedTLS\include
+
+
+ Port Files\coreMQTT Agent Interface\include
+
+
+ Port Files\coreMQTT Agent Interface\include
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/WIN32.vcxproj b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/WIN32.vcxproj
deleted file mode 100644
index 5af3ba322b3..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/WIN32.vcxproj
+++ /dev/null
@@ -1,736 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\Common\WinPCap;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\..\Source\mbedtls_utils;..\..\..\..\ThirdParty\mbedtls\include;..\..\..\..\Source\AWS\jobs\source\include;..\..\..\..\Source\coreJSON\source\include;..\..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Ota_Over_Mqtt_Demo;..\..\..\..\..\FreeRTOS-Plus\Demo\Common\coreMQTT_Agent_Interface\include;..\..\..\..\..\FreeRTOS-Plus\Source\AWS\ota\source\include;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Common\subscription-manager;..\..\..\..\..\FreeRTOS-Plus\Source\AWS\ota\source\portable\os;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Common\Ota_PAL\Win32;..\..\..\..\..\FreeRTOS-Plus\Source\AWS\ota\source\dependency\3rdparty\tinycbor\src;..\..\..\..\..\FreeRTOS-Plus\Demo\AWS\Ota_Windows_Simulator\Common\Ota_PAL\Win32\Code_Signature_Verification;..\..\..\..\..\FreeRTOS-Plus\Source\Application-Protocols\coreMQTT-Agent\source\include;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\..\Source\include;..\..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/WIN32.vcxproj.filters
deleted file mode 100644
index 2491c675387..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,1040 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {20aee693-d2dc-480e-ae21-0db2156e54ac}
-
-
- {0dacb84e-5cc3-4eed-8fb1-68b6e4741f77}
-
-
- {d286fe5f-3c24-4a2f-881c-4b458623648d}
-
-
- {c8b7bd64-7a0e-458b-bcaa-8081806e4508}
-
-
- {6c6bc472-3f73-42c1-83e0-ffe6cae93393}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {7de8717e-b494-4eba-ba10-bc8252d9876a}
-
-
- {3cce55b5-995f-476c-a3a5-9c659a977c89}
-
-
- {d6ca6595-6585-4fd8-b0dd-224128fbd230}
-
-
- {044f1490-9d76-41d8-9887-94f5e89cab11}
-
-
- {28ef5930-f7c7-44f3-9189-749dcdf13cdd}
-
-
- {0025af31-a87a-438e-86fd-8048c9f98025}
-
-
- {e7b017ae-316c-4d8b-b427-5df150109d0f}
-
-
- {0d8ed7df-8ac2-4ac0-ba27-ca59624bf363}
-
-
- {b43eb5ed-8c56-41eb-a67a-4ce41403629e}
-
-
- {4650e6af-01d5-46c3-9674-8554dab982ac}
-
-
- {e3a23704-31ed-4869-b74e-6d09f842b336}
-
-
- {b5277e13-3a7f-46ab-a73d-7a8aa2831f98}
-
-
- {920f406b-9c90-4ea6-8a0b-6e328d6ff095}
-
-
- {9d7ce275-011a-4bdc-bba5-ad569f629872}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON
-
-
-
- Logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\portable
-
-
- otapal
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\tinycbor
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- subscription-manager
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent
-
-
- otapal\code_signature_verification
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Logging
-
-
- Logging
-
-
- Logging
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\include
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\AWS\ota\portable
-
-
- otapal
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\tinycbor\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- subscription-manager
-
-
- otapal\code_signature_verification\include
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- otapal\code_signature_verification\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/core_pkcs11_config.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/core_pkcs11_config.h
deleted file mode 100644
index 0eeaa4f8e50..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/core_pkcs11_config.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/**
- * @file core_pkcs11_config.h
- * @brief PCKS#11 config options.
- */
-
-
-#ifndef _CORE_PKCS11_CONFIG_H_
-#define _CORE_PKCS11_CONFIG_H_
-
-#include "FreeRTOS.h"
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Include logging header files and define logging macros in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for PKCS #11.
- * 3. Include the header file "logging_stack.h", if logging is enabled for PKCS #11.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the PKCS #11 library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "PKCS11"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_ERROR
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-
-#include "logging_stack.h"
-
-/**
- * @brief Malloc API used by core_pkcs11.h
- */
-#define PKCS11_MALLOC pvPortMalloc
-
-/**
- * @brief Free API used by core_pkcs11.h
- */
-#define PKCS11_FREE vPortFree
-
-/**
- * @brief PKCS #11 default user PIN.
- *
- * The PKCS #11 standard specifies the presence of a user PIN. That feature is
- * sensible for applications that have an interactive user interface and memory
- * protections. However, since typical microcontroller applications lack one or
- * both of those, the user PIN is assumed to be used herein for interoperability
- * purposes only, and not as a security feature.
- *
- * Note: Do not cast this to a pointer! The library calls sizeof to get the length
- * of this string.
- */
-#define configPKCS11_DEFAULT_USER_PIN "0000"
-
-/**
- * @brief Maximum length (in characters) for a PKCS #11 CKA_LABEL
- * attribute.
- */
-#define pkcs11configMAX_LABEL_LENGTH 32
-
-/**
- * @brief Maximum number of token objects that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_NUM_OBJECTS 6
-
-/**
- * @brief Maximum number of sessions that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_SESSIONS 10
-
-/**
- * @brief Set to 1 if a PAL destroy object is implemented.
- *
- * If set to 0, no PAL destroy object is implemented, and this functionality
- * is implemented in the common PKCS #11 layer.
- */
-#define pkcs11configPAL_DESTROY_SUPPORTED 0
-
-/**
- * @brief Set to 1 if OTA image verification via PKCS #11 module is supported.
- *
- * If set to 0, OTA code signing certificate is built in via
- * aws_ota_codesigner_certificate.h.
- */
-#define pkcs11configOTA_SUPPORTED 0
-
-/**
- * @brief Set to 1 if PAL supports storage for JITP certificate,
- * code verify certificate, and trusted server root certificate.
- *
- * If set to 0, PAL does not support storage mechanism for these, and
- * they are accessed via headers compiled into the code.
- */
-#define pkcs11configJITP_CODEVERIFY_ROOT_CERT_SUPPORTED 0
-
-/**
- * @brief The PKCS #11 label for device private key.
- *
- * Private key for connection to AWS IoT endpoint. The corresponding
- * public key should be registered with the AWS IoT endpoint.
- */
-#define pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS "Device Priv TLS Key"
-
-/**
- * @brief The PKCS #11 label for device public key.
- *
- * The public key corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS "Device Pub TLS Key"
-
-/**
- * @brief The PKCS #11 label for the device certificate.
- *
- * Device certificate corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS "Device Cert"
-
-/**
- * @brief The PKCS #11 label for the object to be used for code verification.
- *
- * Used by over-the-air update code to verify an incoming signed image.
- */
-#define pkcs11configLABEL_CODE_VERIFICATION_KEY "Code Verify Key"
-
-/**
- * @brief The PKCS #11 label for Just-In-Time-Provisioning.
- *
- * The certificate corresponding to the issuer of the device certificate
- * (pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS) when using the JITR or
- * JITP flow.
- */
-#define pkcs11configLABEL_JITP_CERTIFICATE "JITP Cert"
-
-/**
- * @brief The PKCS #11 label for the AWS Trusted Root Certificate.
- *
- * @see aws_default_root_certificates.h
- */
-#define pkcs11configLABEL_ROOT_CERTIFICATE "Root Cert"
-
-#endif /* _CORE_PKCS11_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/main.c b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/main.c
index c7cf22b0fed..366837d7fb2 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/main.c
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/main.c
@@ -32,91 +32,37 @@
#include
#include
-/* Visual studio intrinsics used so the __debugbreak() function is available
- * should an assert get hit. */
-#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
-/* TCP/IP stack includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
/* Demo logging includes. */
#include "logging.h"
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * Ota demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * vStartOtaDemo() is called from inside vApplicationIPNetworkEventHook().
- */
-extern void vStartOtaDemo( void );
-
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
+extern void vOtaDemoTask( void * pvParameters );
+extern void vPlatformInitIpStack( void );
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ vPlatformInitLogging();
+
+ xTaskCreate( vOtaDemoTask, /* Function that implements the task. */
+ "OTA Demo Task", /* Text name for the task - only used for debugging. */
+ democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
+ NULL, /* Optional - task parameter - not used in this case. */
+ tskIDLE_PRIORITY + 1, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
+ NULL ); /* Optional - used to pass out a handle to the created task. */
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ /* Initialize the FreeRTOS+TCP Stack */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -125,260 +71,13 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartOtaDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n",
- ulRandomNumbers[ 0 ],
- ulRandomNumbers[ 1 ],
- ulRandomNumbers[ 2 ],
- ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
}
-/*-----------------------------------------------------------*/
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/mbedtls_config.h b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/mbedtls_config.h
deleted file mode 100644
index 79eae84a5ba..00000000000
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/mbedtls_config.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-#define MBEDTLS_X509_CREATE_C
-#define MBEDTLS_PK_WRITE_C
-#define MBEDTLS_X509_CSR_WRITE_C
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/ota_over_mqtt_demo.sln b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/ota_over_mqtt_demo.sln
index dcfc1fe098d..18250fab670 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/ota_over_mqtt_demo.sln
+++ b/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/ota_over_mqtt_demo.sln
@@ -1,25 +1,79 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.31205.134
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{9799AFF4-25E2-43CD-8829-C066177E3748}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ota_Over_Mqtt_Demo", "Ota_Over_Mqtt_Demo.vcxproj", "{4BE4E103-5BF4-4A85-9656-EC20852A2B8E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x64.ActiveCfg = Debug|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x64.Build.0 = Debug|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x86.ActiveCfg = Debug|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Debug|x86.Build.0 = Debug|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x64.ActiveCfg = Release|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x64.Build.0 = Release|x64
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x86.ActiveCfg = Release|Win32
+ {4BE4E103-5BF4-4A85-9656-EC20852A2B8E}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {9799AFF4-25E2-43CD-8829-C066177E3748}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {9799AFF4-25E2-43CD-8829-C066177E3748}
EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {03800DFF-BAFA-4654-8E51-C4E654A54416}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/Common/Logging/windows/Logging_WinSim.c b/FreeRTOS-Plus/Demo/Common/Logging/windows/Logging_WinSim.c
index aac191e112e..2a36c5c89dd 100644
--- a/FreeRTOS-Plus/Demo/Common/Logging/windows/Logging_WinSim.c
+++ b/FreeRTOS-Plus/Demo/Common/Logging/windows/Logging_WinSim.c
@@ -20,7 +20,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
@@ -42,7 +42,7 @@
#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
/* FreeRTOS+TCP includes. */
@@ -536,3 +536,9 @@ static void prvLogToFile( const char * pcMessage,
}
}
/*-----------------------------------------------------------*/
+
+void vPlatformInitLogging(void)
+{
+ vLoggingInit(pdTRUE, pdFALSE, pdFALSE, 0U, 0U);
+}
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/PacketData.h b/FreeRTOS-Plus/Demo/Common/WinPCap/PacketData.h
deleted file mode 100644
index b1f166f3fd9..00000000000
--- a/FreeRTOS-Plus/Demo/Common/WinPCap/PacketData.h
+++ /dev/null
@@ -1,267 +0,0 @@
-char pkt1[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x30, 0x09, 0x9c, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x07, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x35, 0x00, 0x00, 0x00, 0x00, 0x70, 0x02,
-0x40, 0x00, 0xdf, 0xab, 0x00, 0x00, 0x02, 0x04,
-0x05, 0xb4, 0x01, 0x01, 0x04, 0x02 };
-
-char pkt2[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa6, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt3[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0x9e, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x0d, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x36, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt4[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x02, 0x27, 0x09, 0x9f, 0x40, 0x00, 0x80, 0x06,
-0x6d, 0x0d, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x36, 0x00, 0x00, 0x06, 0x69, 0x50, 0x18,
-0x42, 0xd8, 0x84, 0x3e, 0x00, 0x00, 0x47, 0x45,
-0x54, 0x20, 0x2f, 0x20, 0x48, 0x54, 0x54, 0x50,
-0x2f, 0x31, 0x2e, 0x31, 0x0d, 0x0a, 0x41, 0x63,
-0x63, 0x65, 0x70, 0x74, 0x3a, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x2c,
-0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78,
-0x2d, 0x78, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70,
-0x2c, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
-0x6a, 0x70, 0x65, 0x67, 0x2c, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x70, 0x6a, 0x70, 0x65,
-0x67, 0x2c, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
-0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
-0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78,
-0x63, 0x65, 0x6c, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x6d, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2c,
-0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
-0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65,
-0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x20,
-0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
-0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73,
-0x2d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x70,
-0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
-0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x78,
-0x62, 0x61, 0x70, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
-0x78, 0x70, 0x73, 0x64, 0x6f, 0x63, 0x75, 0x6d,
-0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x78, 0x61, 0x6d, 0x6c, 0x2b, 0x78, 0x6d,
-0x6c, 0x2c, 0x20, 0x2a, 0x2f, 0x2a, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x4c,
-0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3a,
-0x20, 0x65, 0x6e, 0x2d, 0x67, 0x62, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x45,
-0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x3a,
-0x20, 0x67, 0x7a, 0x69, 0x70, 0x2c, 0x20, 0x64,
-0x65, 0x66, 0x6c, 0x61, 0x74, 0x65, 0x0d, 0x0a,
-0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65,
-0x6e, 0x74, 0x3a, 0x20, 0x4d, 0x6f, 0x7a, 0x69,
-0x6c, 0x6c, 0x61, 0x2f, 0x34, 0x2e, 0x30, 0x20,
-0x28, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69,
-0x62, 0x6c, 0x65, 0x3b, 0x20, 0x4d, 0x53, 0x49,
-0x45, 0x20, 0x36, 0x2e, 0x30, 0x3b, 0x20, 0x57,
-0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x4e,
-0x54, 0x20, 0x35, 0x2e, 0x31, 0x3b, 0x20, 0x53,
-0x56, 0x31, 0x3b, 0x20, 0x47, 0x6f, 0x6f, 0x67,
-0x6c, 0x65, 0x54, 0x35, 0x3b, 0x20, 0x2e, 0x4e,
-0x45, 0x54, 0x20, 0x43, 0x4c, 0x52, 0x20, 0x32,
-0x2e, 0x30, 0x2e, 0x35, 0x30, 0x37, 0x32, 0x37,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x30, 0x2e, 0x30,
-0x34, 0x35, 0x30, 0x36, 0x2e, 0x36, 0x34, 0x38,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x35, 0x2e, 0x32,
-0x31, 0x30, 0x32, 0x32, 0x29, 0x0d, 0x0a, 0x48,
-0x6f, 0x73, 0x74, 0x3a, 0x20, 0x31, 0x39, 0x32,
-0x2e, 0x31, 0x36, 0x38, 0x2e, 0x30, 0x2e, 0x31,
-0x32, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
-0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4b,
-0x65, 0x65, 0x70, 0x2d, 0x41, 0x6c, 0x69, 0x76,
-0x65, 0x0d, 0x0a, 0x0d, 0x0a };
-
-char pkt5[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x02, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa5, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt6[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa1, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x0a, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt7[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x02, 0x27, 0x09, 0xa2, 0x40, 0x00, 0x80, 0x06,
-0x6d, 0x0a, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x36, 0x00, 0x00, 0x06, 0x69, 0x50, 0x18,
-0x42, 0xd8, 0x84, 0x3e, 0x00, 0x00, 0x47, 0x45,
-0x54, 0x20, 0x2f, 0x20, 0x48, 0x54, 0x54, 0x50,
-0x2f, 0x31, 0x2e, 0x31, 0x0d, 0x0a, 0x41, 0x63,
-0x63, 0x65, 0x70, 0x74, 0x3a, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x2c,
-0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78,
-0x2d, 0x78, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70,
-0x2c, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
-0x6a, 0x70, 0x65, 0x67, 0x2c, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x70, 0x6a, 0x70, 0x65,
-0x67, 0x2c, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
-0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
-0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78,
-0x63, 0x65, 0x6c, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x6d, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2c,
-0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
-0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65,
-0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x20,
-0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
-0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73,
-0x2d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x70,
-0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
-0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x78,
-0x62, 0x61, 0x70, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
-0x78, 0x70, 0x73, 0x64, 0x6f, 0x63, 0x75, 0x6d,
-0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x78, 0x61, 0x6d, 0x6c, 0x2b, 0x78, 0x6d,
-0x6c, 0x2c, 0x20, 0x2a, 0x2f, 0x2a, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x4c,
-0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3a,
-0x20, 0x65, 0x6e, 0x2d, 0x67, 0x62, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x45,
-0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x3a,
-0x20, 0x67, 0x7a, 0x69, 0x70, 0x2c, 0x20, 0x64,
-0x65, 0x66, 0x6c, 0x61, 0x74, 0x65, 0x0d, 0x0a,
-0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65,
-0x6e, 0x74, 0x3a, 0x20, 0x4d, 0x6f, 0x7a, 0x69,
-0x6c, 0x6c, 0x61, 0x2f, 0x34, 0x2e, 0x30, 0x20,
-0x28, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69,
-0x62, 0x6c, 0x65, 0x3b, 0x20, 0x4d, 0x53, 0x49,
-0x45, 0x20, 0x36, 0x2e, 0x30, 0x3b, 0x20, 0x57,
-0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x4e,
-0x54, 0x20, 0x35, 0x2e, 0x31, 0x3b, 0x20, 0x53,
-0x56, 0x31, 0x3b, 0x20, 0x47, 0x6f, 0x6f, 0x67,
-0x6c, 0x65, 0x54, 0x35, 0x3b, 0x20, 0x2e, 0x4e,
-0x45, 0x54, 0x20, 0x43, 0x4c, 0x52, 0x20, 0x32,
-0x2e, 0x30, 0x2e, 0x35, 0x30, 0x37, 0x32, 0x37,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x30, 0x2e, 0x30,
-0x34, 0x35, 0x30, 0x36, 0x2e, 0x36, 0x34, 0x38,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x35, 0x2e, 0x32,
-0x31, 0x30, 0x32, 0x32, 0x29, 0x0d, 0x0a, 0x48,
-0x6f, 0x73, 0x74, 0x3a, 0x20, 0x31, 0x39, 0x32,
-0x2e, 0x31, 0x36, 0x38, 0x2e, 0x30, 0x2e, 0x31,
-0x32, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
-0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4b,
-0x65, 0x65, 0x70, 0x2d, 0x41, 0x6c, 0x69, 0x76,
-0x65, 0x0d, 0x0a, 0x0d, 0x0a };
-
-char pkt8[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x03, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa4, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt9[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa3, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x08, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt10[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x04, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa3, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt11[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa6, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x05, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt12[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa7, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x04, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x14,
-0x00, 0x00, 0x43, 0xf4, 0x00, 0x00 };
-
-
-typedef struct
-{
- char *pcData;
- int iDataLen;
-} xPacketData;
-
-xPacketData xAllPackets[] =
-{
- { pkt1, sizeof( pkt1 ) },
-// { pkt2, sizeof( pkt2 ) },
- { pkt3, sizeof( pkt3 ) },
- { pkt4, sizeof( pkt4 ) },
-// { pkt5, sizeof( pkt5 ) },
- { pkt6, sizeof( pkt6 ) },
- { pkt7, sizeof( pkt7 ) },
- { pkt8, sizeof( pkt8 ) },
- { pkt9, sizeof( pkt9 ) },
- { pkt10, sizeof( pkt10 ) },
-// { pkt11, sizeof( pkt11 ) },
-// { pkt12, sizeof( pkt12 ) },
-// { pkt13, sizeof( pkt13 ) },
-// { pkt14, sizeof( pkt14 ) },
-// { pkt15, sizeof( pkt15 ) },
-// { pkt16, sizeof( pkt16 ) },
-};
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/bittypes.h b/FreeRTOS-Plus/Demo/Common/WinPCap/bittypes.h
deleted file mode 100644
index f55fcecfd29..00000000000
--- a/FreeRTOS-Plus/Demo/Common/WinPCap/bittypes.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 1999 WIDE Project.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the project nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _BITTYPES_H
-#define _BITTYPES_H
-
-#ifndef HAVE_U_INT8_T
-
-#if SIZEOF_CHAR == 1
-typedef unsigned char u_int8_t;
-typedef signed char _int8_t;
-#elif SIZEOF_INT == 1
-typedef unsigned int u_int8_t;
-typedef signed int int8_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int8_t"
-#endif
-#define HAVE_U_INT8_T 1
-#define HAVE_INT8_T 1
-
-#endif /* HAVE_U_INT8_T */
-
-#ifndef HAVE_U_INT16_T
-
-#if SIZEOF_SHORT == 2
-typedef unsigned short u_int16_t;
-typedef signed short _int16_t;
-#elif SIZEOF_INT == 2
-typedef unsigned int u_int16_t;
-typedef signed int int16_t;
-#elif SIZEOF_CHAR == 2
-typedef unsigned char u_int16_t;
-typedef signed char int16_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int16_t"
-#endif
-#define HAVE_U_INT16_T 1
-#define HAVE_INT16_T 1
-
-#endif /* HAVE_U_INT16_T */
-
-#ifndef HAVE_U_INT32_T
-
-#if SIZEOF_INT == 4
-typedef unsigned int u_int32_t;
-typedef signed int _int32_t;
-#elif SIZEOF_LONG == 4
-typedef unsigned long u_int32_t;
-typedef signed long int32_t;
-#elif SIZEOF_SHORT == 4
-typedef unsigned short u_int32_t;
-typedef signed short int32_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int32_t"
-#endif
-#define HAVE_U_INT32_T 1
-#define HAVE_INT32_T 1
-
-#endif /* HAVE_U_INT32_T */
-
-#ifndef HAVE_U_INT64_T
-#if SIZEOF_LONG_LONG == 8
-typedef unsigned long long u_int64_t;
-typedef long long int64_t;
-#elif defined(_MSC_EXTENSIONS)
-typedef unsigned _int64 u_int64_t;
-typedef _int64 int64_t;
-#elif SIZEOF_INT == 8
-typedef unsigned int u_int64_t;
-#elif SIZEOF_LONG == 8
-typedef unsigned long u_int64_t;
-#elif SIZEOF_SHORT == 8
-typedef unsigned short u_int64_t;
-#else /* XXX */
-#error "there's no appropriate type for u_int64_t"
-#endif
-
-#endif /* HAVE_U_INT64_T */
-
-#ifndef PRId64
-#ifdef _MSC_EXTENSIONS
-#define PRId64 "I64d"
-#else /* _MSC_EXTENSIONS */
-#define PRId64 "lld"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRId64 */
-
-#ifndef PRIo64
-#ifdef _MSC_EXTENSIONS
-#define PRIo64 "I64o"
-#else /* _MSC_EXTENSIONS */
-#define PRIo64 "llo"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRIo64 */
-
-#ifndef PRIx64
-#ifdef _MSC_EXTENSIONS
-#define PRIx64 "I64x"
-#else /* _MSC_EXTENSIONS */
-#define PRIx64 "llx"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRIx64 */
-
-#ifndef PRIu64
-#ifdef _MSC_EXTENSIONS
-#define PRIu64 "I64u"
-#else /* _MSC_EXTENSIONS */
-#define PRIu64 "llu"
-#endif /* _MSC_EXTENSIONS */
-#endif /* PRIu64 */
-
-#endif /* _BITTYPES_H */
diff --git a/FreeRTOS-Plus/Demo/Common/coreMQTT_Agent_Interface/freertos_command_pool.c b/FreeRTOS-Plus/Demo/Common/coreMQTT_Agent_Interface/freertos_command_pool.c
index a053de7d12e..70347866b36 100644
--- a/FreeRTOS-Plus/Demo/Common/coreMQTT_Agent_Interface/freertos_command_pool.c
+++ b/FreeRTOS-Plus/Demo/Common/coreMQTT_Agent_Interface/freertos_command_pool.c
@@ -79,10 +79,8 @@ void Agent_InitializePool( void )
if( initStatus == QUEUE_NOT_INITIALIZED )
{
memset( ( void * ) commandStructurePool, 0x00, sizeof( commandStructurePool ) );
- commandStructMessageCtx.queue = xQueueCreateStatic( MQTT_COMMAND_CONTEXTS_POOL_SIZE,
- sizeof( MQTTAgentCommand_t * ),
- staticQueueStorageArea,
- &staticQueueStructure );
+ commandStructMessageCtx.queue = xQueueCreate( MQTT_COMMAND_CONTEXTS_POOL_SIZE,
+ sizeof( MQTTAgentCommand_t * ) );
configASSERT( commandStructMessageCtx.queue );
/* Populate the queue. */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/FreeRTOSConfig.h
deleted file mode 100644
index 802a6af235a..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 1L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x6a
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/FreeRTOSIPConfig.h
deleted file mode 100644
index bb6fbdf4fce..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 1
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/MutualAuthMQTTExample.c b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/MutualAuthMQTTExample.c
index 7e8d6b035b6..9c59b076c30 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/MutualAuthMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/MutualAuthMQTTExample.c
@@ -66,7 +66,7 @@
#include "backoff_algorithm.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/*-----------------------------------------------------------*/
@@ -212,6 +212,23 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 5000U )
+/**
+ * @brief Transport timeout in milliseconds for transport send and receive.
+ */
+#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/**
* Provide default values for undefined configuration settings.
*/
@@ -368,6 +385,18 @@ static void prvEventCallback( MQTTContext_t * pxMQTTContext,
MQTTPacketInfo_t * pxPacketInfo,
MQTTDeserializedInfo_t * pxDeserializedInfo );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
/*-----------------------------------------------------------*/
/**
@@ -428,6 +457,24 @@ static MQTTFixedBuffer_t xBuffer =
democonfigNETWORK_BUFFER_SIZE
};
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
/*-----------------------------------------------------------*/
/*
@@ -488,6 +535,7 @@ static void prvMQTTDemoTask( void * pvParameters )
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
/****************************** Connect. ******************************/
/* Attempt to establish TLS session with MQTT broker. If connection fails,
@@ -523,7 +571,7 @@ static void prvMQTTDemoTask( void * pvParameters )
* same topic, the broker will send publish message back to the
* application. */
LogInfo( ( "Attempt to receive publish message from broker.\r\n" ) );
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/* Leave Connection Idle for some time. */
@@ -536,7 +584,7 @@ static void prvMQTTDemoTask( void * pvParameters )
prvMQTTUnsubscribeFromTopic( &xMQTTContext );
/* Process incoming UNSUBACK packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/**************************** Disconnect. *****************************/
@@ -566,6 +614,7 @@ static void prvMQTTDemoTask( void * pvParameters )
"Total free heap is %u.\r\n",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
LogInfo( ( "Short delay before starting the next iteration.... \r\n\r\n" ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS_TICKS );
}
@@ -583,41 +632,40 @@ static TlsTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkCredent
#ifdef democonfigUSE_AWS_IOT_CORE_BROKER
#if defined( democonfigCLIENT_USERNAME )
/*
- * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
- * to AWS IoT Core with Custom Authentication on port 443.
- *
- * Custom Authentication uses the contents of the username and password
- * fields of the MQTT CONNECT packet to authenticate the client.
- *
- * For more information, refer to the documentation at:
- * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
- */
+ * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
+ * to AWS IoT Core with Custom Authentication on port 443.
+ *
+ * Custom Authentication uses the contents of the username and password
+ * fields of the MQTT CONNECT packet to authenticate the client.
+ *
+ * For more information, refer to the documentation at:
+ * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
+ */
static const char * ppcAlpnProtocols[] = { "mqtt", NULL };
#if democonfigMQTT_BROKER_PORT != 443U
- #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
+ #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
#else /* if !defined( democonfigCLIENT_USERNAME ) */
/*
- * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
- * x509 Certificate Authentication.
- */
+ * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
+ * x509 Certificate Authentication.
+ */
static const char * ppcAlpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
-
#endif /* !defined( democonfigCLIENT_USERNAME ) */
/*
- * An ALPN identifier is only required when connecting to AWS IoT core on port 443.
- * https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html
- */
+ * An ALPN identifier is only required when connecting to AWS IoT core on port 443.
+ * https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html
+ */
#if democonfigMQTT_BROKER_PORT == 443U
pxNetworkCredentials->pAlpnProtos = ppcAlpnProtocols;
#elif democonfigMQTT_BROKER_PORT == 8883U
pxNetworkCredentials->pAlpnProtos = NULL;
#else /* democonfigMQTT_BROKER_PORT != 8883U */
pxNetworkCredentials->pAlpnProtos = NULL;
- #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
+ #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
- #else
+ #else /* ifdef democonfigUSE_AWS_IOT_CORE_BROKER */
pxNetworkCredentials->pAlpnProtos = NULL;
#endif /* ifdef democonfigUSE_AWS_IOT_CORE_BROKER */
@@ -701,10 +749,17 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xResult = MQTT_Init( pxMQTTContext, &xTransport, prvGetTimeMs, prvEventCallback, &xBuffer );
configASSERT( xResult == MQTTSuccess );
+ xResult = MQTT_InitStatefulQoS( pxMQTTContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
+ configASSERT( xResult == MQTTSuccess );
/* Some fields are not used in this demo so start with everything at 0. */
( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
@@ -840,7 +895,7 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
* receiving Publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses the generic packet
* processing function everywhere to highlight this fact. */
- xResult = MQTT_ProcessLoop( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xResult = prvProcessLoopWithTimeout( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xResult == MQTTSuccess );
/* Reset flag before checking suback responses. */
@@ -1070,3 +1125,33 @@ static uint32_t prvGetTimeMs( void )
}
/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/main.c
index 3492c10796f..52c240c145a 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/main.c
@@ -30,166 +30,38 @@
/* Standard includes. */
#include
-#include
-
-/* Visual studio intrinsics used so the __debugbreak() function is available
- * should an assert get hit. */
-#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
-/* TCP/IP stack includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
/* Demo logging includes. */
#include "logging.h"
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
+
/* FreeRTOS Cellular Library init and setup cellular network registration. */
extern bool setupCellular( void );
/* The MQTT demo entry function. */
extern void vStartSimpleMQTTDemo( void );
-/* The task function to setup cellular with thread ready environment. */
-static void CellularDemoTask( void * pvParameters );
-
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
+/* Task to handle connecting the cellular module. */
+static void vCellularDemoTask( void * pvParameters );
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
-int main( void )
-{
- /***
- * See https://www.FreeRTOS.org/iot-device-shadow for configuration and usage instructions.
- ***/
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
-
- /* Start the RTOS scheduler. */
- vTaskStartScheduler();
-
- /* If all is well, the scheduler will now be running, and the following
- * line will never be reached. If the following line does execute, then
- * there was insufficient FreeRTOS heap memory available for the idle and/or
- * timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- ( void ) eNetworkEvent;
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvSRand( UBaseType_t ulSeed )
+static void vCellularDemoTask( void * pvParameters )
{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-
-/*-----------------------------------------------------------*/
-
-static void CellularDemoTask( void * pvParameters )
-{
- bool retCellular = true;
-
( void ) pvParameters;
- /* Setup cellular. */
- retCellular = setupCellular();
-
- if( retCellular == false )
- {
- configPRINTF( ( "Cellular failed to initialize.\r\n" ) );
- }
- /* Stop here if we fail to initialize cellular. */
- configASSERT( retCellular == true );
+ /* Setup cellular. */
+ configASSERT( setupCellular() == true );
- /* Run the MQTT demo. */
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
vStartSimpleMQTTDemo();
vTaskDelete( NULL );
@@ -197,148 +69,33 @@ static void CellularDemoTask( void * pvParameters )
/*-----------------------------------------------------------*/
-static void prvMiscInitialisation( void )
+int main( void )
{
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, 0U, configPRINT_PORT );
+ vPlatformInitLogging();
/* FreeRTOS Cellular Library init needs thread ready environment.
* CellularDemoTask invoke setupCellular to init FreeRTOS Cellular Library and register network.
* Then it runs the MQTT demo. */
- xTaskCreate( CellularDemoTask, /* Function that implements the task. */
- "CellularDemo", /* Text name for the task - only used for debugging. */
+ xTaskCreate( vCellularDemoTask, /* Function that implements the task. */
+ "CellularConnect", /* Text name for the task - only used for debugging. */
democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
NULL, /* Task parameter - not used in this case. */
democonfigDEMO_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
NULL ); /* Used to pass out a handle to the created task - not used in this case. */
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-#endif
-/*-----------------------------------------------------------*/
+ /* Start the RTOS scheduler. */
+ vTaskStartScheduler();
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
+ /* If all is well, the scheduler will now be running, and the following
+ * line will never be reached. If the following line does execute, then
+ * there was insufficient FreeRTOS heap memory available for the idle and/or
+ * timer tasks to be created. See the memory management section on the
+ * FreeRTOS web site for more details.
+ */
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/mbedtls_config.h b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/mbedtls_config.h
deleted file mode 100644
index 4d31712bd74..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_cellular_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_cellular_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_cellular_send
-#define MBEDTLS_SSL_RECV mbedtls_cellular_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/WIN32.vcxproj
deleted file mode 100644
index 0ef29628ce1..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/WIN32.vcxproj
+++ /dev/null
@@ -1,558 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\Common\WinPCap;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\Source\mbedtls_utils;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\network_transport\cellular;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\ThirdParty\mbedtls\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\cellular;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/WIN32.vcxproj.filters
deleted file mode 100644
index 5cd08eb43b0..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,941 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {84164849-198e-497b-b135-322242d511cf}
-
-
- {b61fd40e-ae93-4a08-9ee7-5dc8182595be}
-
-
- {0c062983-2e9b-43c4-abd7-daf4e6254d96}
-
-
- {141c3342-468b-4833-a23a-70ac37be207b}
-
-
- {9d52e9bc-39e7-4d8e-a150-64eeeae9410b}
-
-
- {26ee1535-b417-427d-8e72-79c6c859db6b}
-
-
- {5465caea-3879-404b-a54e-753ece92941c}
-
-
- {2559b11d-a741-471f-ad56-e7263dc15046}
-
-
- {553e6fa4-ea81-46c6-bc4e-b694d9fa766e}
-
-
- {a53e6044-6b9b-4e35-aaed-43e6f9dfbdb2}
-
-
- {6c3bcc0b-b831-4567-9ca9-525a5a75427c}
-
-
- {bfecf3e3-7116-4b34-9f78-dc11bc1fbbf3}
-
-
- {aa0ef4b9-5c3e-4a1a-82b1-7938b1a596a7}
-
-
- {d7c1e40c-3e7e-4e0e-b027-697eb7dd60bd}
-
-
- {d61ee4c2-5375-4d96-8904-fd826d63208a}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- Common
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- Module
-
-
- Module
-
-
- Module
-
-
- Module
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
-
-
-
- Common\mbedtls
-
-
- Common\mbedtls
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
-
- Config
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\interface
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- Module
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.sln
index dcfc1fe098d..b57e3595a79 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.sln
@@ -1,25 +1,86 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mqtt_mutual_auth_demo_with_bg96", "mqtt_mutual_auth_demo_with_bg96.vcxproj", "{D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{68385DE7-AC0F-4213-BEEA-D07E484C093E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|Win32.Build.0 = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x64.ActiveCfg = Debug|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x64.Build.0 = Debug|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x86.ActiveCfg = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x86.Build.0 = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|Win32.ActiveCfg = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|Win32.Build.0 = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x64.ActiveCfg = Release|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x64.Build.0 = Release|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x86.ActiveCfg = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1D441E01-8E23-4433-9EF0-63467713C0F0}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.vcxproj
new file mode 100644
index 00000000000..8e358f883b2
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.vcxproj
@@ -0,0 +1,214 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {d5cd24a7-76ba-41ea-afd7-86decf58fbc1}
+ mqttmutualauthdemowithbg96
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ Bcrypt.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ true
+ true
+ Bcrypt.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.vcxproj.filters
new file mode 100644
index 00000000000..57563ced52f
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/mqtt_mutual_auth_demo_with_bg96.vcxproj.filters
@@ -0,0 +1,228 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {fd000e4f-72fc-4793-95d2-5e0fa48b3ba8}
+
+
+ {8c6a2636-5c23-4bdf-8a05-9f95aa04293b}
+
+
+ {4330017d-e8ce-4a33-b4ef-9fe90f2426b4}
+
+
+ {147245f8-ee3f-4145-92b9-a9f07163c51c}
+
+
+ {11d9ce61-9af6-408a-90fd-6978d46c94fc}
+
+
+ {d34ccce7-a7e3-45b3-9ab9-78519144db41}
+
+
+ {26846a50-0d36-4873-968c-cccdc24355b6}
+
+
+ {977bdebd-1f49-47ec-b2b3-67d5f57ff41b}
+
+
+ {f393698c-359c-48d8-a4e5-d53a5500025b}
+
+
+ {2a115a7b-70ed-468c-b3ac-2d584c4ef779}
+
+
+ {86f3f8ab-e834-48a7-b935-036fe029ae73}
+
+
+ {4a4a9a7c-7ba4-4fb0-824b-23c838d77815}
+
+
+ {48ac0c9a-e1c2-47da-b315-0f23e97487c9}
+
+
+ {09ff68d7-878a-443b-9871-c5500b4cb673}
+
+
+ {3824b829-824c-4188-abc7-7304392c558f}
+
+
+ {f0330e9f-1e1a-4907-8acb-8dee46a4cc80}
+
+
+ {c1cf6a38-0503-40dd-a8de-0a37fb58160f}
+
+
+ {74cb620a-700c-4747-ac17-325628423dc0}
+
+
+ {3e89de57-dda5-42f7-839b-a70f06891aed}
+
+
+ {e6dd4447-6a83-4ce8-8742-8973f5884c20}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\cellular
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
+
+ Header Files
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\interface
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/WIN32.vcxproj
deleted file mode 100644
index 9102312d965..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/WIN32.vcxproj
+++ /dev/null
@@ -1,558 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\Common\WinPCap;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\Source\mbedtls_utils;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\network_transport\cellular;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\ThirdParty\mbedtls\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\cellular;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/WIN32.vcxproj.filters
deleted file mode 100644
index ecd954717ac..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,944 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {84164849-198e-497b-b135-322242d511cf}
-
-
- {b61fd40e-ae93-4a08-9ee7-5dc8182595be}
-
-
- {0c062983-2e9b-43c4-abd7-daf4e6254d96}
-
-
- {141c3342-468b-4833-a23a-70ac37be207b}
-
-
- {9d52e9bc-39e7-4d8e-a150-64eeeae9410b}
-
-
- {26ee1535-b417-427d-8e72-79c6c859db6b}
-
-
- {5465caea-3879-404b-a54e-753ece92941c}
-
-
- {2559b11d-a741-471f-ad56-e7263dc15046}
-
-
- {553e6fa4-ea81-46c6-bc4e-b694d9fa766e}
-
-
- {a53e6044-6b9b-4e35-aaed-43e6f9dfbdb2}
-
-
- {6c3bcc0b-b831-4567-9ca9-525a5a75427c}
-
-
- {bfecf3e3-7116-4b34-9f78-dc11bc1fbbf3}
-
-
- {aa0ef4b9-5c3e-4a1a-82b1-7938b1a596a7}
-
-
- {d7c1e40c-3e7e-4e0e-b027-697eb7dd60bd}
-
-
- {ecbccccb-07f7-402c-a775-58bae2032453}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- Common
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
-
- Module
-
-
- Module
-
-
- Module
-
-
- Module
-
-
-
-
-
-
-
- Common\mbedtls
-
-
- Common\mbedtls
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
-
- Config
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\interface
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
-
- Module
-
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.sln
index dcfc1fe098d..f1187f9b88a 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.sln
@@ -1,25 +1,86 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mqtt_mutual_auth_demo_with_hl7802", "mqtt_mutual_auth_demo_with_hl7802.vcxproj", "{D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{68385DE7-AC0F-4213-BEEA-D07E484C093E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|Win32.Build.0 = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x64.ActiveCfg = Debug|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x64.Build.0 = Debug|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x86.ActiveCfg = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x86.Build.0 = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|Win32.ActiveCfg = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|Win32.Build.0 = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x64.ActiveCfg = Release|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x64.Build.0 = Release|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x86.ActiveCfg = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1D441E01-8E23-4433-9EF0-63467713C0F0}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.vcxproj
new file mode 100644
index 00000000000..9869056cd33
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.vcxproj
@@ -0,0 +1,215 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {d5cd24a7-76ba-41ea-afd7-86decf58fbc1}
+ mqttmutualauthdemowithbg96
+ 10.0
+ mqtt_mutual_auth_demo_with_hl7802
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ Bcrypt.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ true
+ true
+ Bcrypt.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.vcxproj.filters
new file mode 100644
index 00000000000..4a8ab122f1c
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802/mqtt_mutual_auth_demo_with_hl7802.vcxproj.filters
@@ -0,0 +1,228 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {fd000e4f-72fc-4793-95d2-5e0fa48b3ba8}
+
+
+ {8c6a2636-5c23-4bdf-8a05-9f95aa04293b}
+
+
+ {4330017d-e8ce-4a33-b4ef-9fe90f2426b4}
+
+
+ {147245f8-ee3f-4145-92b9-a9f07163c51c}
+
+
+ {11d9ce61-9af6-408a-90fd-6978d46c94fc}
+
+
+ {d34ccce7-a7e3-45b3-9ab9-78519144db41}
+
+
+ {26846a50-0d36-4873-968c-cccdc24355b6}
+
+
+ {977bdebd-1f49-47ec-b2b3-67d5f57ff41b}
+
+
+ {f393698c-359c-48d8-a4e5-d53a5500025b}
+
+
+ {2a115a7b-70ed-468c-b3ac-2d584c4ef779}
+
+
+ {86f3f8ab-e834-48a7-b935-036fe029ae73}
+
+
+ {4a4a9a7c-7ba4-4fb0-824b-23c838d77815}
+
+
+ {a5116c0a-c100-45ea-a882-d6165bd7a055}
+
+
+ {85455479-e6b8-4784-a3c5-84b333dafe06}
+
+
+ {36e39a09-53d2-4111-9895-c5e96fe3d6c0}
+
+
+ {38d73a05-735d-4b33-b4d4-bcdc42685a96}
+
+
+ {63387c13-d63e-4ee9-8419-a1a45dbe7d20}
+
+
+ {8cece65f-2b2c-498d-855e-b30c9b015818}
+
+
+ {4ed0088a-6009-4690-94f1-d8350dcb5608}
+
+
+ {3bae7ac0-1bab-4a6f-8267-1240f1867c43}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\cellular
+
+
+
+
+ Header Files
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\interface
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/WIN32.vcxproj
deleted file mode 100644
index 25634cd0db2..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/WIN32.vcxproj
+++ /dev/null
@@ -1,558 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .;..\Common;..\..\Common\WinPCap;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\Source\mbedtls_utils;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\network_transport\cellular;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\ThirdParty\mbedtls\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\cellular;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/WIN32.vcxproj.filters
deleted file mode 100644
index 2dd46fa3c65..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,943 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {84164849-198e-497b-b135-322242d511cf}
-
-
- {b61fd40e-ae93-4a08-9ee7-5dc8182595be}
-
-
- {0c062983-2e9b-43c4-abd7-daf4e6254d96}
-
-
- {141c3342-468b-4833-a23a-70ac37be207b}
-
-
- {9d52e9bc-39e7-4d8e-a150-64eeeae9410b}
-
-
- {26ee1535-b417-427d-8e72-79c6c859db6b}
-
-
- {5465caea-3879-404b-a54e-753ece92941c}
-
-
- {2559b11d-a741-471f-ad56-e7263dc15046}
-
-
- {553e6fa4-ea81-46c6-bc4e-b694d9fa766e}
-
-
- {a53e6044-6b9b-4e35-aaed-43e6f9dfbdb2}
-
-
- {6c3bcc0b-b831-4567-9ca9-525a5a75427c}
-
-
- {bfecf3e3-7116-4b34-9f78-dc11bc1fbbf3}
-
-
- {aa0ef4b9-5c3e-4a1a-82b1-7938b1a596a7}
-
-
- {d7c1e40c-3e7e-4e0e-b027-697eb7dd60bd}
-
-
- {ded2b563-424b-401d-b14d-d790c2a29f66}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- Common
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
-
- Module
-
-
- Module
-
-
- Module
-
-
- Module
-
-
-
-
-
-
-
- Common\mbedtls
-
-
- Common\mbedtls
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
-
- Config
-
-
- Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\interface
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\Common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
-
- Module
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.sln
index dcfc1fe098d..2b3e043e174 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.sln
@@ -1,25 +1,86 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mqtt_mutual_auth_demo_with_sara_r4", "mqtt_mutual_auth_demo_with_sara_r4.vcxproj", "{D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{68385DE7-AC0F-4213-BEEA-D07E484C093E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|Win32.Build.0 = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x64.ActiveCfg = Debug|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x64.Build.0 = Debug|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x86.ActiveCfg = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Debug|x86.Build.0 = Debug|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|Win32.ActiveCfg = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|Win32.Build.0 = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x64.ActiveCfg = Release|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x64.Build.0 = Release|x64
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x86.ActiveCfg = Release|Win32
+ {D5CD24A7-76BA-41EA-AFD7-86DECF58FBC1}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {68385DE7-AC0F-4213-BEEA-D07E484C093E}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1D441E01-8E23-4433-9EF0-63467713C0F0}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.vcxproj
new file mode 100644
index 00000000000..50823aab348
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.vcxproj
@@ -0,0 +1,214 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {d5cd24a7-76ba-41ea-afd7-86decf58fbc1}
+ mqttmutualauthdemowithbg96
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ Bcrypt.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ true
+ true
+ Bcrypt.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.vcxproj.filters
new file mode 100644
index 00000000000..b1d85f14b60
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4/mqtt_mutual_auth_demo_with_sara_r4.vcxproj.filters
@@ -0,0 +1,228 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {fd000e4f-72fc-4793-95d2-5e0fa48b3ba8}
+
+
+ {8c6a2636-5c23-4bdf-8a05-9f95aa04293b}
+
+
+ {4330017d-e8ce-4a33-b4ef-9fe90f2426b4}
+
+
+ {147245f8-ee3f-4145-92b9-a9f07163c51c}
+
+
+ {cbdf44f0-db7f-42c2-ae96-24d259e6e332}
+
+
+ {9cad7110-9e0a-4163-be95-cd4f315981a2}
+
+
+ {6e47bf5b-1377-42ae-8d6c-90f991098e3c}
+
+
+ {4b61408f-b7b6-4429-99c0-e2838783b9d1}
+
+
+ {efefb746-fa37-480c-b69a-3dfd4eba185c}
+
+
+ {49b552ec-46e2-4c6f-9319-bab996222351}
+
+
+ {29660682-b7ab-4477-976e-624fcab8a457}
+
+
+ {0bd56135-b029-4437-92a2-be306153fd72}
+
+
+ {11d9ce61-9af6-408a-90fd-6978d46c94fc}
+
+
+ {d34ccce7-a7e3-45b3-9ab9-78519144db41}
+
+
+ {26846a50-0d36-4873-968c-cccdc24355b6}
+
+
+ {977bdebd-1f49-47ec-b2b3-67d5f57ff41b}
+
+
+ {f393698c-359c-48d8-a4e5-d53a5500025b}
+
+
+ {2a115a7b-70ed-468c-b3ac-2d584c4ef779}
+
+
+ {86f3f8ab-e834-48a7-b935-036fe029ae73}
+
+
+ {4a4a9a7c-7ba4-4fb0-824b-23c838d77815}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\FreeRTOS Cellular Interface
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\cellular
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
+
+ Header Files
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\common
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\include\private
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\interface
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\FreeRTOS Cellular Interface\module
+
+
+ Config
+
+
+ Config
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/CLI-commands.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/CLI-commands.c
index 5496b7414d6..b329112c2c5 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/CLI-commands.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/CLI-commands.c
@@ -24,6 +24,9 @@
*
*/
+/* Standard Includes */
+#include
+
/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "task.h"
@@ -31,6 +34,10 @@
/* FreeRTOS+CLI includes. */
#include "FreeRTOS_CLI.h"
+/* FreeRTOS+Trace includes.*/
+#include "trcDefines.h"
+#include "trcRecorder.h"
+
/*
* Writes trace data to a disk file when the trace recording is stopped.
* This function will simply overwrite any trace files that already exist.
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index 46d355ec960..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-#include
-
-/*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- * https://www.FreeRTOS.org/a00110.html
- *----------------------------------------------------------*/
-
-#define configUSE_PREEMPTION 1
-#define configUSE_IDLE_HOOK 1
-#define configUSE_TICK_HOOK 0
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) 0 ) /* This parameter has no effect when heap_3.c is included in the project. */
-#define configMAX_TASK_NAME_LEN ( 7 )
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY 2
-#define configTIMER_QUEUE_LENGTH 20
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-#define configMAX_PRIORITIES ( 7 )
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-
-/* This demo makes use of one or more example stats formatting functions. These
-format the raw data provided by the uxTaskGetSystemState() function in to human
-readable ASCII form. See the notes in the implementation of vTaskList() within
-FreeRTOS/Source/tasks.c for limitations. */
-#define configUSE_STATS_FORMATTING_FUNCTIONS 1
-
-/* Run time stats gathering definitions. */
-unsigned long ulGetRunTimeCounterValue( void );
-void vConfigureTimerForRunTimeStats( void );
-#define configGENERATE_RUN_TIME_STATS 1
-#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats()
-#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()
-
-extern void vAssertCalled( void );
-#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled()
-
-/* The UDP port to use for incoming command inputs. The outgoing port is
-set to ( configUDP_CLI_PORT_NUMBER + 1 ). */
-#define configUDP_CLI_PORT_NUMBER 5001
-
-/* The size of the global output buffer that is available for use when there
-are multiple command interpreters running at once (for example, one on a UART
-and one on TCP/IP). This is done to prevent an output buffer being defined by
-each implementation - which would waste RAM. In this case, there is only one
-command interpreter running, and it has its own local output buffer, so the
-global buffer is just set to be one byte long as it is not used and should not
-take up unnecessary RAM. */
-#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1
-
-
-/* Include the FreeRTOS+Trace FreeRTOS trace macro definitions. */
-#include "trcRecorder.h"
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace.sln
index c2852da5c96..e2b3aaadf1e 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace.sln
@@ -1,25 +1,86 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator", "FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator.vcxproj", "{F135BC22-C210-45F7-9973-119C839C46D4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{26B7BF31-6E46-462B-8D48-C049C2D6DB7D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Debug|Win32.Build.0 = Debug|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Debug|x64.ActiveCfg = Debug|x64
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Debug|x64.Build.0 = Debug|x64
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Debug|x86.ActiveCfg = Debug|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Debug|x86.Build.0 = Debug|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Release|Win32.ActiveCfg = Release|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Release|Win32.Build.0 = Release|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Release|x64.ActiveCfg = Release|x64
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Release|x64.Build.0 = Release|x64
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Release|x86.ActiveCfg = Release|Win32
+ {F135BC22-C210-45F7-9973-119C839C46D4}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {26B7BF31-6E46-462B-8D48-C049C2D6DB7D}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {26B7BF31-6E46-462B-8D48-C049C2D6DB7D}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {26B7BF31-6E46-462B-8D48-C049C2D6DB7D}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {F78FDCED-CBDF-4B81-B6E3-78A0A2989E82}
+ SolutionGuid = {278BF1CD-A433-4631-B9A5-B91D7AB559EF}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator.vcxproj
new file mode 100644
index 00000000000..39e19ec8413
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator.vcxproj
@@ -0,0 +1,181 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {f135bc22-c210-45f7-9973-119c839c46d4}
+ FreeRTOSPlusCLIwithTraceVisualStudio_StaticProjects
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\Source\FreeRTOS-Plus-CLI;.\Trace_Recorder_Configuration;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\Source\FreeRTOS-Plus-CLI;.\Trace_Recorder_Configuration;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\Source\FreeRTOS-Plus-CLI;.\Trace_Recorder_Configuration;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\Source\FreeRTOS-Plus-CLI;.\Trace_Recorder_Configuration;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator.vcxproj.filters
new file mode 100644
index 00000000000..8c5bd95fc39
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator.vcxproj.filters
@@ -0,0 +1,84 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {b25fcce9-c411-4467-a887-409c4ec86ef6}
+
+
+ {c2a6c951-9758-44fc-b428-cc9645243216}
+
+
+ {06ab7e65-d618-4f1a-9d40-fca3fa2afa6a}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ FreeRTOS+Trace
+
+
+ FreeRTOS+Trace
+
+
+ FreeRTOS+Trace
+
+
+ FreeRTOS+CLI
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ FreeRTOS+CLI
+
+
+ FreeRTOS+Trace\include
+
+
+ FreeRTOS+Trace\include
+
+
+ FreeRTOS+Trace\include
+
+
+ FreeRTOS+Trace\include
+
+
+ FreeRTOS+Trace\include
+
+
+ FreeRTOS+Trace\include
+
+
+ FreeRTOS+Trace\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcConfig.h
index 0b0933a1c75..701e3685dc8 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcConfig.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcConfig.h
@@ -52,6 +52,8 @@
extern "C" {
#endif
+#include "trcDefines.h"
+
/******************************************************************************
* Include of processor header file
*
@@ -97,6 +99,32 @@ extern "C" {
******************************************************************************/
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_SNAPSHOT
+/******************************************************************************
+ * TRC_CFG_FREERTOS_VERSION
+ *
+ * Specify what version of FreeRTOS that is used (don't change unless using the
+ * trace recorder library with an older version of FreeRTOS).
+ *
+ * TRC_FREERTOS_VERSION_7_3_X If using FreeRTOS v7.3.X
+ * TRC_FREERTOS_VERSION_7_4_X If using FreeRTOS v7.4.X
+ * TRC_FREERTOS_VERSION_7_5_X If using FreeRTOS v7.5.X
+ * TRC_FREERTOS_VERSION_7_6_X If using FreeRTOS v7.6.X
+ * TRC_FREERTOS_VERSION_8_X_X If using FreeRTOS v8.X.X
+ * TRC_FREERTOS_VERSION_9_0_0 If using FreeRTOS v9.0.0
+ * TRC_FREERTOS_VERSION_9_0_1 If using FreeRTOS v9.0.1
+ * TRC_FREERTOS_VERSION_9_0_2 If using FreeRTOS v9.0.2
+ * TRC_FREERTOS_VERSION_10_0_0 If using FreeRTOS v10.0.0
+ * TRC_FREERTOS_VERSION_10_0_1 If using FreeRTOS v10.0.1
+ * TRC_FREERTOS_VERSION_10_1_0 If using FreeRTOS v10.1.0
+ * TRC_FREERTOS_VERSION_10_1_1 If using FreeRTOS v10.1.1
+ * TRC_FREERTOS_VERSION_10_2_0 If using FreeRTOS v10.2.0
+ * TRC_FREERTOS_VERSION_10_2_1 If using FreeRTOS v10.2.1
+ * TRC_FREERTOS_VERSION_10_3_0 If using FreeRTOS v10.3.0
+ * TRC_FREERTOS_VERSION_10_3_1 If using FreeRTOS v10.3.1
+ * TRC_FREERTOS_VERSION_10_4_0 If using FreeRTOS v10.4.0 or later
+ *****************************************************************************/
+#define TRC_CFG_FREERTOS_VERSION TRC_FREERTOS_VERSION_10_4_0
+
/*******************************************************************************
* TRC_CFG_SCHEDULING_ONLY
*
@@ -196,6 +224,17 @@ extern "C" {
*****************************************************************************/
#define TRC_CFG_INCLUDE_OSTICK_EVENTS 1
+ /*****************************************************************************
+ * TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS
+ *
+ * Macro which should be defined as either zero (0) or one (1).
+ *
+ * If this is zero (0), the trace will exclude any "event group" events.
+ *
+ * Default value is 0 (excluded) since dependent on event_groups.c
+ *****************************************************************************/
+#define TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS 0
+
/*****************************************************************************
* TRC_CFG_INCLUDE_TIMER_EVENTS
*
@@ -219,6 +258,18 @@ extern "C" {
*****************************************************************************/
#define TRC_CFG_INCLUDE_PEND_FUNC_CALL_EVENTS 1
+/*******************************************************************************
+ * Configuration Macro: TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS
+ *
+ * Macro which should be defined as either zero (0) or one (1).
+ *
+ * If this is zero (0), the trace will exclude any stream buffer or message
+ * buffer events.
+ *
+ * Default value is 0 since dependent on stream_buffer.c (new in FreeRTOS v10)
+ ******************************************************************************/
+#define TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS 0
+
/******************************************************************************
* TRC_CFG_ENABLE_STACK_MONITOR
*
@@ -336,19 +387,17 @@ extern "C" {
*****************************************************************************/
#define TRC_CFG_MAX_ISR_NESTING 8
- /**
- * @def TRC_CFG_RECORDER_DATA_ATTRIBUTE
- * @brief When setting TRC_CFG_RECORDER_DATA_INIT to 0, you might also need to make
- * sure certain recorder data is placed in a specific RAM section to avoid being
- * zeroed out after initialization. Define TRC_CFG_RECORDER_DATA_ATTRIBUTE as
- * that attribute.
- *
- * Example:
- * #define TRC_CFG_RECORDER_DATA_ATTRIBUTE __attribute__((section(".bss.trace_recorder_data")))
- *
- * Default value is empty.
- */
-#define TRC_CFG_RECORDER_DATA_ATTRIBUTE
+/******************************************************************************
+ * TRC_CFG_ACKNOWLEDGE_QUEUE_SET_SEND
+ *
+ * When using FreeRTOS v10.3.0 or v10.3.1, please make sure that the trace
+ * point in prvNotifyQueueSetContainer() in queue.c is renamed from
+ * traceQUEUE_SEND to traceQUEUE_SET_SEND in order to tell them apart from
+ * other traceQUEUE_SEND trace points. Then set this to TRC_ACKNOWLEDGED.
+ *****************************************************************************/
+#define TRC_CFG_ACKNOWLEDGE_QUEUE_SET_SEND TRC_ACKNOWLEDGED /* 0 or TRC_ACKNOWLEDGED */
+
+#define TRC_CFG_RECORDER_DATA_ATTRIBUTE
/* Specific configuration, depending on Streaming/Snapshot mode */
#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_SNAPSHOT)
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcSnapshotConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcSnapshotConfig.h
index 3a8eaceecc8..aa22293465d 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcSnapshotConfig.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/Trace_Recorder_Configuration/trcSnapshotConfig.h
@@ -84,6 +84,39 @@
******************************************************************************/
#define TRC_CFG_EVENT_BUFFER_SIZE 15000
+/*******************************************************************************
+ * TRC_CFG_NTASK, TRC_CFG_NISR, TRC_CFG_NQUEUE, TRC_CFG_NSEMAPHORE...
+ *
+ * A group of macros which should be defined as integer values, zero or larger.
+ *
+ * These define the capacity of the Object Property Table, i.e., the maximum
+ * number of objects active at any given point, within each object class (e.g.,
+ * task, queue, semaphore, ...).
+ *
+ * If tasks or other objects are deleted in your system, this
+ * setting does not limit the total amount of objects created, only the number
+ * of objects that have been successfully created but not yet deleted.
+ *
+ * Using too small values will cause vTraceError to be called, which stores an
+ * error message in the trace that is shown when opening the trace file. The
+ * error message can also be retrieved using xTraceGetLastError.
+ *
+ * It can be wise to start with large values for these constants,
+ * unless you are very confident on these numbers. Then do a recording and
+ * check the actual usage by selecting View menu -> Trace Details ->
+ * Resource Usage -> Object Table.
+ ******************************************************************************/
+#define TRC_CFG_NTASK 150
+#define TRC_CFG_NISR 90
+#define TRC_CFG_NQUEUE 90
+#define TRC_CFG_NSEMAPHORE 90
+#define TRC_CFG_NMUTEX 90
+#define TRC_CFG_NTIMER 250
+#define TRC_CFG_NEVENTGROUP 90
+#define TRC_CFG_NSTREAMBUFFER 50
+#define TRC_CFG_NMESSAGEBUFFER 50
+
+
/******************************************************************************
* TRC_CFG_INCLUDE_FLOAT_SUPPORT
*
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/WIN32.vcxproj.user
deleted file mode 100644
index 695b5c78b91..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/WIN32.vcxproj.user
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/main.c
index 7c2d13f2500..11010d964d0 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator/main.c
@@ -78,6 +78,10 @@
#include "task.h"
#include "queue.h"
+/* FreeRTOS+Trace includes. */
+#include "trcDefines.h"
+#include "trcRecorder.h"
+
/* Priorities at which the tasks are created. */
#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
@@ -230,18 +234,6 @@ const unsigned long ulMSToSleep = 5;
}
/*-----------------------------------------------------------*/
-void vAssertCalled( void )
-{
-const unsigned long ulLongSleep = 1000UL;
-
- taskDISABLE_INTERRUPTS();
- for( ;; )
- {
- Sleep( ulLongSleep );
- }
-}
-/*-----------------------------------------------------------*/
-
static uint32_t ulEntryTime = 0;
void vTraceTimerReset( void )
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/ConfigurationFiles/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/ConfigurationFiles/FreeRTOSConfig.h
deleted file mode 100644
index 5e095720c9c..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/ConfigurationFiles/FreeRTOSConfig.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- * https://www.FreeRTOS.org/a00110.html
- *
- * The bottom of this file contains some constants specific to running the UDP
- * stack in this demo. Constants specific to FreeRTOS+UDP itself (rather than
- * the demo) are contained in FreeRTOSIPConfig.h.
- *----------------------------------------------------------*/
-
-#define configUSE_PREEMPTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 32U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 7 )
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 1
-#define configUSE_MALLOC_FAILED_HOOK 1
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Run time stats gathering definitions. */
-unsigned long ulGetRunTimeCounterValue( void );
-void vConfigureTimerForRunTimeStats( void );
-#define configGENERATE_RUN_TIME_STATS 1
-#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats()
-#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_xTaskGetCurrentTaskHandle 1
-
-/* This demo makes use of one or more example stats formatting functions. These
-format the raw data provided by the uxTaskGetSystemState() function in to human
-readable ASCII form. See the notes in the implementation of vTaskList() within
-FreeRTOS/Source/tasks.c for limitations. */
-#define configUSE_STATS_FORMATTING_FUNCTIONS 1
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char *pcFile, unsigned long ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* The UDP port to use for incoming command inputs. The outgoing port is
-set to ( configUDP_CLI_PORT_NUMBER + 1 ). */
-#define configUDP_CLI_PORT_NUMBER 5001
-
-/* The size of the global output buffer that is available for use when there
-are multiple command interpreters running at once (for example, one on a UART
-and one on TCP/IP). This is done to prevent an output buffer being defined by
-each implementation - which would waste RAM. In this case, there is only one
-command interpreter running, and it has its own local output buffer, so the
-global buffer is just set to be one byte long as it is not used and should not
-take up unnecessary RAM. */
-#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.sln
index 3f819af17f3..c51954c573a 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.sln
@@ -1,20 +1,86 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C++ Express 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WIN32", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS_Plus_Reliance_Edge_with_CLI", "FreeRTOS_Plus_Reliance_Edge_with_CLI.vcxproj", "{292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{BB78C687-07C7-4DFA-A8B0-80547662AC5D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Debug|Win32.ActiveCfg = Debug|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Debug|Win32.Build.0 = Debug|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Debug|x64.ActiveCfg = Debug|x64
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Debug|x64.Build.0 = Debug|x64
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Debug|x86.ActiveCfg = Debug|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Debug|x86.Build.0 = Debug|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Release|Win32.ActiveCfg = Release|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Release|Win32.Build.0 = Release|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Release|x64.ActiveCfg = Release|x64
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Release|x64.Build.0 = Release|x64
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Release|x86.ActiveCfg = Release|Win32
+ {292E0A6B-B7FA-4AF5-BD35-D3EE63CED2FF}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {BB78C687-07C7-4DFA-A8B0-80547662AC5D}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {BB78C687-07C7-4DFA-A8B0-80547662AC5D}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {BB78C687-07C7-4DFA-A8B0-80547662AC5D}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {88FCBE63-FE27-42E6-8F61-FD500B17B15F}
+ EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.vcxproj
new file mode 100644
index 00000000000..fd8885db600
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.vcxproj
@@ -0,0 +1,206 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {292e0a6b-b7fa-4af5-bd35-d3ee63ced2ff}
+ FreeRTOSPlusRelianceEdgewithCLI
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\Reliance-Edge\os\freertos\include;..\..\Source\Reliance-Edge\projects\freertos\win32-demo;..\..\Source\Reliance-Edge\core\include;..\..\Source\Reliance-Edge\include;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\Source\FreeRTOS-Plus-CLI;.;.\ConfigurationFiles;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.vcxproj.filters
new file mode 100644
index 00000000000..5783d4d6c8b
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/FreeRTOS_Plus_Reliance_Edge_with_CLI.vcxproj.filters
@@ -0,0 +1,177 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {65b8e9c3-41b9-4e36-a792-ae820cb5720d}
+
+
+ {a66ccd52-20db-4311-8edf-6e2927dfcd84}
+
+
+ {688b3585-58c1-48f8-925d-7b79c9997765}
+
+
+ {a3485680-f5cc-4464-b049-8dd26ebbf34a}
+
+
+ {c68304b0-febc-41aa-b063-c98236ca911a}
+
+
+ {e6ca7a10-ab7a-4f37-a360-9fe1fc7d2012}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ FreeRTOS+CLI
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\util
+
+
+ FreeRTOS+Reliance Edge\util
+
+
+ FreeRTOS+Reliance Edge\util
+
+
+ FreeRTOS+Reliance Edge\util
+
+
+ FreeRTOS+Reliance Edge\util
+
+
+ FreeRTOS+Reliance Edge\util
+
+
+ FreeRTOS+Reliance Edge\util
+
+
+ FreeRTOS+Reliance Edge\test
+
+
+ FreeRTOS+Reliance Edge\test
+
+
+ FreeRTOS+Reliance Edge\test
+
+
+ FreeRTOS+Reliance Edge\test
+
+
+ FreeRTOS+Reliance Edge\test
+
+
+ FreeRTOS+Reliance Edge\test
+
+
+ FreeRTOS+Reliance Edge\test
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\driver
+
+
+ FreeRTOS+Reliance Edge\port
+
+
+ FreeRTOS+Reliance Edge\port
+
+
+ FreeRTOS+Reliance Edge\port
+
+
+ FreeRTOS+Reliance Edge\port
+
+
+ FreeRTOS+Reliance Edge\port
+
+
+ FreeRTOS+Reliance Edge\port
+
+
+ FreeRTOS+Reliance Edge\port
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ FreeRTOS+CLI
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj
deleted file mode 100644
index 0e46002ea72..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\Source\Reliance-Edge\os\freertos\include;..\..\Source\Reliance-Edge\projects\freertos\win32-demo;..\..\Source\Reliance-Edge\core\include;..\..\Source\Reliance-Edge\include;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\Source\FreeRTOS-Plus-CLI;.;.\ConfigurationFiles;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- %(AdditionalDependencies)
- .\WinPCap
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(AdditionalIncludeDirectories)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj.filters
deleted file mode 100644
index 7d355d1e2f0..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,219 +0,0 @@
-
-
-
-
- {38712199-cebf-4124-bf15-398f7c3419ea}
- ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {fd43c0ed-fdbc-437f-a5a3-c50399690bd7}
-
-
- {c5889fe2-af0f-4cea-927f-6a6935ec5e14}
-
-
- {19ff1a34-36de-4c48-9d10-3fb1fa0d1fa4}
- h;hpp;hxx;hm;inl
-
-
- {ab23827c-126c-4e5a-bc99-8efa44d8a8bd}
-
-
- {9c9c3b2d-6958-407d-b742-23fbf73678ed}
-
-
- {e47b8f1d-1582-4e56-9c2f-ca2cdbea1b86}
-
-
- {9ecfe142-5bd2-472b-9568-243fa6169874}
-
-
- {28ee3d7e-231b-4094-8a10-ad89fc82f705}
-
-
- {a955d01e-1f95-4c34-9558-14c52b75576f}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+CLI
-
-
-
-
-
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\test
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\test
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\test
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\port
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\port
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\port
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\port
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\port
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\port
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\port
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\driver
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\util
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\util
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\util
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\util
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\util
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\util
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\util
-
-
-
- Configuration Files
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\test
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\test
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\test
-
-
- FreeRTOS+\FreeRTOS+Reliance Edge\test
-
-
-
-
- FreeRTOS+\FreeRTOS+CLI\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- Configuration Files
-
-
- Configuration Files
-
-
- Configuration Files
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj.user
deleted file mode 100644
index 695b5c78b91..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/WIN32.vcxproj.user
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/main.c
index 896bea39dc7..f694ebbf3f7 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator/main.c
@@ -1,6 +1,6 @@
/*
* FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
@@ -20,7 +20,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
@@ -125,24 +125,6 @@ const unsigned long ulMSToSleep = 5;
}
/*-----------------------------------------------------------*/
-void vAssertCalled( const char *pcFile, unsigned long ulLine )
-{
-volatile uint32_t ulSetToNonZeroToExitLoop = 0;
-
- printf( "ASSERT FAILED: File %s, line %u\r\n", pcFile, ulLine );
-
- taskENTER_CRITICAL();
- {
- while( ulSetToNonZeroToExitLoop == 0 )
- {
- /* Do not leave the assert function unless the debugger is used to
- set ulSetToNonZeroToExitLoop to a non-zero value. */
- }
- }
- taskEXIT_CRITICAL();
-}
-/*-----------------------------------------------------------*/
-
void vApplicationMallocFailedHook( void )
{
/* vApplicationMallocFailedHook() will only be called if
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/.gitignore b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/.gitignore
new file mode 100644
index 00000000000..f65519e3cc8
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/.gitignore
@@ -0,0 +1 @@
+build/**
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/FreeRTOSConfig.h
index e625e8e5e95..d1ef4fc9ecd 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/FreeRTOSConfig.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/FreeRTOSConfig.h
@@ -46,7 +46,7 @@
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 70 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the win32 thread. */
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 65 * 1024 ) )
#define configMAX_TASK_NAME_LEN ( 12 )
-#define configUSE_TRACE_FACILITY 1
+#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
#define configUSE_MUTEXES 1
@@ -76,10 +76,6 @@ unsigned long ulGetRunTimeCounterValue( void ); /* Prototype of function that re
void vConfigureTimerForRunTimeStats( void ); /* Prototype of function that initialises the run time counter. */
#define configGENERATE_RUN_TIME_STATS 1
-/* Co-routine related configuration options. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
/* This demo can use of one or more example stats formatting functions. These
format the raw data provided by the uxTaskGetSystemState() function in to human
readable ASCII form. See the notes in the implementation of vTaskList() within
@@ -126,32 +122,15 @@ used with multiple project configurations. If it is
#error projCOVERAGE_TEST should be defined to 1 or 0 on the command line.
#endif
-#if( projCOVERAGE_TEST == 1 )
- /* Insert NOPs in empty decision paths to ensure both true and false paths
- are being tested. */
- #define mtCOVERAGE_TEST_MARKER() __asm volatile( "NOP" )
-
- /* Ensure the tick count overflows during the coverage test. */
- #define configINITIAL_TICK_COUNT 0xffffd800UL
-
- /* Allows tests of trying to allocate more than the heap has free. */
- #define configUSE_MALLOC_FAILED_HOOK 0
+/* Insert NOPs in empty decision paths to ensure both true and false paths
+are being tested. */
+#define mtCOVERAGE_TEST_MARKER() __asm volatile( "NOP" )
- /* To test builds that remove the static qualifier for debug builds. */
- #define portREMOVE_STATIC_QUALIFIER
-#else
- /* It is a good idea to define configASSERT() while developing. configASSERT()
- uses the same semantics as the standard C assert() macro. Don't define
- configASSERT() when performing code coverage tests though, as it is not
- intended to asserts() to fail, some some code is intended not to run if no
- errors are present. */
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
+/* Ensure the tick count overflows during the coverage test. */
+#define configINITIAL_TICK_COUNT 0xffffd800UL
- #define configUSE_MALLOC_FAILED_HOOK 1
-
- /* Include the FreeRTOS+Trace FreeRTOS trace macro definitions. */
- #include "trcRecorder.h"
-#endif
+/* Allows tests of trying to allocate more than the heap has free. */
+#define configUSE_MALLOC_FAILED_HOOK 0
/* networking definitions */
#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/Makefile b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/Makefile
index 54f594e3768..dcdd3bfee3e 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/Makefile
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/Makefile
@@ -1,5 +1,5 @@
CC := gcc
-BIN := posix_demo
+BIN := posix_tcp_demo
BUILD_DIR := build
@@ -14,67 +14,61 @@ INCLUDE_DIRS += -I${FREERTOS_DIR}/Source/include
INCLUDE_DIRS += -I${FREERTOS_DIR}/Source/portable/ThirdParty/GCC/Posix
INCLUDE_DIRS += -I${FREERTOS_DIR}/Source/portable/ThirdParty/GCC/Posix/utils
INCLUDE_DIRS += -I${FREERTOS_DIR}/Demo/Common/include
-INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-Trace/Include
-INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/portable/NetworkInterface/linux/
-INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/include/
-INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/portable/Compiler/GCC/
-INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-Trace/config
-
-SOURCE_FILES := $(wildcard *.c)
-SOURCE_FILES += $(wildcard ${FREERTOS_DIR}/Source/*.c)
-# Memory manager (use malloc() / free() )
-SOURCE_FILES += ${FREERTOS_DIR}/Source/portable/MemMang/heap_3.c
-# posix port
+INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/linux/
+INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/include/
+INCLUDE_DIRS += -I${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/portable/Compiler/GCC/
+
+# FreeRTOS Kernel source files
+SOURCE_FILES :=
+SOURCE_FILES += ${FREERTOS_DIR}/Source/event_groups.c
+SOURCE_FILES += ${FREERTOS_DIR}/Source/list.c
+SOURCE_FILES += ${FREERTOS_DIR}/Source/queue.c
+SOURCE_FILES += ${FREERTOS_DIR}/Source/stream_buffer.c
+SOURCE_FILES += ${FREERTOS_DIR}/Source/tasks.c
+SOURCE_FILES += ${FREERTOS_DIR}/Source/timers.c
+
+# FreeRTOS Kernel POSIX Port
SOURCE_FILES += ${FREERTOS_DIR}/Source/portable/ThirdParty/GCC/Posix/utils/wait_for_event.c
SOURCE_FILES += ${FREERTOS_DIR}/Source/portable/ThirdParty/GCC/Posix/port.c
-# FreeRTOS TCP
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_DNS.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_DHCP.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_ARP.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_TCP_WIN.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_Stream_Buffer.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/portable/BufferManagement/BufferAllocation_2.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_IP.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_TCP_IP.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_UDP_IP.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/FreeRTOS_Sockets.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/portable/NetworkInterface/linux/NetworkInterface.c
-
-# Demo library.
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/AbortDelay.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/BlockQ.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/blocktim.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/countsem.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/death.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/dynamic.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/EventGroupsDemo.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/flop.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/GenQTest.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/integer.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/IntSemTest.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/MessageBufferAMP.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/MessageBufferDemo.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/PollQ.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/QPeek.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/QueueOverwrite.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/QueueSet.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/QueueSetPolling.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/recmutex.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/semtest.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/StaticAllocation.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/StreamBufferDemo.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/StreamBufferInterrupt.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/TaskNotify.c
-SOURCE_FILES += ${FREERTOS_DIR}/Demo/Common/Minimal/TimerDemo.c
-
-# Trace library.
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-Trace/trcKernelPort.c
-SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-Trace/trcSnapshotRecorder.c
-
-CFLAGS := -ggdb3 -O0
-CPPFLAGS := -DprojCOVERAGE_TEST=0 -D_DEFAULT_SOURCE -D_WINDOWS_ -DTRACE_ON_ENTER=0
+# FreeRTOS+TCP demo source file
+SOURCE_FILES += SimpleTCPEchoServer.c
+SOURCE_FILES += TCPEchoClient_SingleTasks.c
+SOURCE_FILES += console.c
+SOURCE_FILES += main.c
+SOURCE_FILES += main_networking.c
+SOURCE_FILES += runtime_stats_hooks.c
+
+# Memory manager (use malloc() / free() )
+SOURCE_FILES += ${FREERTOS_DIR}/Source/portable/MemMang/heap_3.c
+
+# FreeRTOS TCP
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_ARP.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_DHCP.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Cache.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Callback.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Networking.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS_Parser.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_ICMP.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_IP.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_IP_Timers.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_IP_Utils.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_Sockets.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_Stream_Buffer.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_IP.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Reception.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_State_Handling.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Transmission.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_Utils.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_TCP_WIN.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_Tiny_TCP.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/FreeRTOS_UDP_IP.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/portable/BufferManagement/BufferAllocation_2.c
+SOURCE_FILES += ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/linux/NetworkInterface.c
+
+CFLAGS := -ggdb3 -O0 -DprojCOVERAGE_TEST=0 -D_WINDOWS_
LDFLAGS := -ggdb3 -O0 -pthread -lpcap
OBJ_FILES = $(SOURCE_FILES:%.c=$(BUILD_DIR)/%.o)
@@ -85,16 +79,16 @@ ${BIN} : $(BUILD_DIR)/$(BIN)
${BUILD_DIR}/${BIN} : ${OBJ_FILES}
-mkdir -p ${@D}
- $(CC) $^ ${LDFLAGS} -o $@
+ $(CC) $^ $(CFLAGS) $(INCLUDE_DIRS) ${LDFLAGS} -o $@
+
-include ${DEP_FILE}
-${BUILD_DIR}/%.o : %.c Makefile
+${BUILD_DIR}/%.o : %.c
-mkdir -p $(@D)
- $(CC) $(CFLAGS) ${CPPFLAGS} ${INCLUDE_DIRS} -MMD -c $< -o $@
+ $(CC) $(CFLAGS) ${INCLUDE_DIRS} -MMD -c $< -o $@
.PHONY: clean
clean:
-rm -rf $(BUILD_DIR)
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/main.c
index 162068ab45f..d48d339ac24 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/main.c
@@ -51,8 +51,6 @@
#include
#include
#include
-#include
-#include
/* FreeRTOS kernel includes. */
#include "FreeRTOS.h"
@@ -61,8 +59,6 @@
/* Local includes. */
#include "console.h"
-#include
-
#define ECHO_CLIENT_DEMO 0
#define mainSELECTED_APPLICATION ECHO_CLIENT_DEMO
@@ -71,7 +67,7 @@
/*-----------------------------------------------------------*/
extern void main_tcp_echo_client_tasks( void );
-static void traceOnEnter( void );
+// static void traceOnEnter( void );
/*
* Prototypes for the standard FreeRTOS application hook (callback) functions
@@ -93,7 +89,7 @@ void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer,
* Writes trace data to a disk file when the trace recording is stopped.
* This function will simply overwrite any trace files that already exist.
*/
-static void prvSaveTraceFile( void );
+// static void prvSaveTraceFile( void );
/*-----------------------------------------------------------*/
@@ -105,31 +101,12 @@ in a different file. */
StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
/* Notes if the trace is running or not. */
-static BaseType_t xTraceRunning = pdTRUE;
-
-static clockid_t cid = CLOCK_THREAD_CPUTIME_ID;
-
-static uint32_t frequency;
+// static BaseType_t xTraceRunning = pdTRUE;
/*-----------------------------------------------------------*/
int main( void )
{
- /* Do not include trace code when performing a code coverage analysis. */
- #if ( projCOVERAGE_TEST != 1 )
- {
- /* Initialise the trace recorder. Use of the trace recorder is optional.
- See http://www.FreeRTOS.org/trace for more information. */
- vTraceEnable( TRC_START );
-
- /* Start the trace recording - the recording is written to a file if
- configASSERT() is called. */
- printf( "\r\nTrace started.\r\nThe trace will be dumped to disk if a call to configASSERT() fails.\r\n" );
- printf( "\r\nThe trace will be dumped to disk if Enter is hit.\r\n" );
- traceSTART();
- }
- #endif
-
console_init();
#if ( mainSELECTED_APPLICATION == ECHO_CLIENT_DEMO )
{
@@ -178,7 +155,7 @@ void vApplicationIdleHook( void )
usleep(15000);
- traceOnEnter();
+ // traceOnEnter();
}
/*-----------------------------------------------------------*/
@@ -206,26 +183,6 @@ void vApplicationTickHook( void )
functions can be used (those that end in FromISR()). */
}
-void traceOnEnter()
-{
- int ret;
- struct timeval tv = { 0L, 0L };
- fd_set fds;
- FD_ZERO(&fds);
- FD_SET(0, &fds);
- ret = select(1, &fds, NULL, NULL, &tv);
- if ( ret > 0 )
- {
- if( xTraceRunning == pdTRUE )
- {
- prvSaveTraceFile();
- }
- /* clear the buffer */
- char buffer[200];
- read(1, &buffer, 200);
- }
-}
-
void vLoggingPrintf( const char *pcFormat,
... )
{
@@ -249,67 +206,18 @@ void vApplicationDaemonTaskStartupHook( void )
void vAssertCalled( const char * const pcFileName,
unsigned long ulLine )
{
-static BaseType_t xPrinted = pdFALSE;
-volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0;
-/* Copy the parameters to local volatile variables, just for debugging */
-volatile char * pcFile = ( volatile char * ) pcFileName;
-volatile uint32_t ulLineNumber = ulLine;
+ static BaseType_t xPrinted = pdFALSE;
+ volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0;
+ /* Copy the parameters to local volatile variables, just for debugging */
+ volatile char * pcFile = ( volatile char * ) pcFileName;
+ volatile uint32_t ulLineNumber = ulLine;
/* Called if an assertion passed to configASSERT() fails. See
http://www.freertos.org/a00110.html#configASSERT for more information. */
printf( "vAssertCalled( %s, %u )\n", pcFileName, ulLine );
+ exit(1);
- taskENTER_CRITICAL();
- {
- /* Stop the trace recording. */
- if( xPrinted == pdFALSE )
- {
- xPrinted = pdTRUE;
-
- if( xTraceRunning == pdTRUE )
- {
- prvSaveTraceFile();
- }
- }
-
- /* You can step out of this function to debug the assertion by using
- the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero
- value. */
- while( ulSetToNonZeroInDebuggerToContinue == 0 )
- {
- __asm volatile ( "NOP" );
- __asm volatile ( "NOP" );
- }
- }
- taskEXIT_CRITICAL();
-}
-/*-----------------------------------------------------------*/
-
-static void prvSaveTraceFile( void )
-{
- /* Tracing is not used when code coverage analysis is being performed. */
- #if ( projCOVERAGE_TEST != 1 )
- {
- FILE * pxOutputFile;
- extern RecorderDataType * RecorderDataPtr;
-
- vTraceStop();
-
- pxOutputFile = fopen( "Trace.dump", "wb" );
-
- if( pxOutputFile != NULL )
- {
- fwrite( RecorderDataPtr, sizeof( RecorderDataType ), 1, pxOutputFile );
- fclose( pxOutputFile );
- printf( "\r\nTrace output saved to Trace.dump\r\n" );
- }
- else
- {
- printf( "\r\nFailed to create trace dump file\r\n" );
- }
- }
- #endif /* if ( projCOVERAGE_TEST != 1 ) */
}
/*-----------------------------------------------------------*/
@@ -364,57 +272,3 @@ the stack and so not exists after this function exits. */
configMINIMAL_STACK_SIZE is specified in words, not bytes. */
*pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
}
-
-void vTraceTimerReset( void )
-{
- int xRet;
- struct timespec ts;
- ts.tv_sec = 0;
- ts.tv_nsec = 0;
-
- xRet = clock_settime( cid, &ts );
- if( xRet != 0 )
- {
- printf( "Could not reset time: %s\n", strerror( errno ) );
- }
-}
-
-uint32_t uiTraceTimerGetFrequency( void )
-{
- struct timespec res;
- int xRet;
-
- res.tv_nsec = 0;
- res.tv_sec = 0;
-
- xRet = clock_getres( cid, &res );
- if( xRet == 0 )
- {
- // calculate frequency from timer definition
- frequency = (uint64_t) 1000000000 / res.tv_nsec;
- }
- else
- {
- printf( "Could not get clock frequency: %s\n", strerror( errno ) );
- }
- return frequency;
-}
-
-uint32_t uiTraceTimerGetValue( void )
-{
- int xRet;
- struct timespec tp;
- uint32_t result = 0;
-
- xRet = clock_gettime( cid, &tp );
- if( xRet == 0 )
- {
- result = tp.tv_nsec / frequency;
- result += (tp.tv_sec * 1000000000) / frequency;
- }
- else
- {
- printf( "Could not get time: %s\n", strerror( errno ) );
- }
- return result;
-}
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/run-time-stats-utils.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/runtime_stats_hooks.c
similarity index 100%
rename from FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/run-time-stats-utils.c
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/runtime_stats_hooks.c
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/.gitignore b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/.gitignore
new file mode 100644
index 00000000000..e390b124a6b
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/.gitignore
@@ -0,0 +1 @@
+build/**
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/FreeRTOSConfig.h
index b9f2fc1c2dc..d2d3648751e 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/FreeRTOSConfig.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/FreeRTOSConfig.h
@@ -24,8 +24,8 @@
*
*/
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
+#ifndef FREERTOS_CONFIG_H
+#define FREERTOS_CONFIG_H
/*-----------------------------------------------------------
* Application specific definitions.
@@ -38,7 +38,7 @@
*
* See https://www.freertos.org/a00110.html
*----------------------------------------------------------*/
-
+
#define configASSERT_DEFINED 1
extern void vAssertCalled( void );
#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( )
@@ -56,19 +56,16 @@ extern void vAssertCalled( void );
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0
-#define configUSE_CO_ROUTINES 0
-
#define configMAX_PRIORITIES ( 10 )
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
#define configTIMER_QUEUE_LENGTH 20
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 3 )
#define configUSE_COUNTING_SEMAPHORES 1
#define configSUPPORT_DYNAMIC_ALLOCATION 1
#define configNUM_TX_DESCRIPTORS 15
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-
+
+/* Set the following definitions to 1 to include the API function, or zero
+to exclude the API function. */
+
#define configUSE_MALLOC_FAILED_HOOK 1
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
@@ -151,4 +148,4 @@ ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
/* The UDP port to which print messages are sent. */
#define configPRINT_PORT ( 15000 )
-#endif /* FREERTOS_CONFIG_H */
+#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/Makefile b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/Makefile
index f4bfdc43eb6..cde316760bc 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/Makefile
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/Makefile
@@ -1,5 +1,5 @@
CC = arm-none-eabi-gcc
-BIN := RTOSDemo.axf
+BIN := freertos_tcp_mps2_demo.axf
BUILD_DIR := build
@@ -10,46 +10,70 @@ KERNEL_DIR := $(FREERTOS_DIR)/Source
FREERTOS_PLUS_DIR_REL := ../../../FreeRTOS-Plus
FREERTOS_PLUS_DIR := $(abspath $(FREERTOS_PLUS_DIR_REL))
-SOURCE_FILES += init/startup.c syscall.c main.c
-SOURCE_FILES += $(KERNEL_DIR)/portable/GCC/ARM_CM3/port.c
+INCLUDE_DIRS += -I.
+
+FREERTOS_TCP = ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP
+
+# Demo Source Files
+SOURCE_FILES += startup.c
+SOURCE_FILES += syscalls.c
+SOURCE_FILES += main.c
+SOURCE_FILES += main_networking.c
+SOURCE_FILES += TCPEchoClient_SingleTasks.c
+
+INCLUDE_DIRS += -ICMSIS
+
+# FreeRTOS Kernel
+INCLUDE_DIRS += -I$(KERNEL_DIR)/include
+
SOURCE_FILES += $(KERNEL_DIR)/tasks.c
SOURCE_FILES += $(KERNEL_DIR)/list.c
SOURCE_FILES += $(KERNEL_DIR)/queue.c
SOURCE_FILES += $(KERNEL_DIR)/timers.c
SOURCE_FILES += $(KERNEL_DIR)/event_groups.c
-SOURCE_FILES += ${KERNEL_DIR}/portable/MemMang/heap_3.c
-INCLUDE_DIRS += -I$(FREERTOS_PLUS_DIR)/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2
-INCLUDE_DIRS += -I$(FREERTOS_PLUS_DIR)/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/CMSIS
-INCLUDE_DIRS += -I$(KERNEL_DIR)/include
+# FreeRTOS Kernel ARM Cortex-M3 Port
INCLUDE_DIRS += -I$(KERNEL_DIR)/portable/GCC/ARM_CM3
-INCLUDE_DIRS += -I.
-
-FREERTOS_TCP = ${FREERTOS_PLUS_DIR}/Source/FreeRTOS-Plus-TCP
-# FreeRTOS networking header directories
-INCLUDE_DIRS += -I${FREERTOS_TCP}/include/
-INCLUDE_DIRS += -I${FREERTOS_TCP}/portable/Compiler/GCC/
-
-# FreeRTOS networking sources
-SOURCE_FILES += main_networking.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_DNS.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_DHCP.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_ARP.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_TCP_WIN.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_Stream_Buffer.c
-SOURCE_FILES += ${FREERTOS_TCP}/portable/BufferManagement/BufferAllocation_2.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_IP.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_TCP_IP.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_UDP_IP.c
-SOURCE_FILES += ${FREERTOS_TCP}/FreeRTOS_Sockets.c
-SOURCE_FILES += ${FREERTOS_TCP}/portable/NetworkInterface/MPS2_AN385/NetworkInterface.c
-SOURCE_FILES += TCPEchoClient_SingleTasks.c
-SOURCE_FILES += ${FREERTOS_TCP}/portable/NetworkInterface/MPS2_AN385/ether_lan9118/smsc9220_eth_drv.c
-
-DEFINES := -DprojCOVERAGE_TEST -DQEMU_SOC_MPS2 -DHEAP3
+SOURCE_FILES += $(KERNEL_DIR)/portable/GCC/ARM_CM3/port.c
+SOURCE_FILES += ${KERNEL_DIR}/portable/MemMang/heap_3.c
-LDFLAGS = -T ./scripts/mps2_m3.ld -specs=nano.specs --specs=rdimon.specs -lc -lrdimon
+# FreeRTOS+TCP
+INCLUDE_DIRS += -I${FREERTOS_TCP}/source/include/
+
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_ARP.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_DHCP.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_DNS.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_DNS_Cache.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_DNS_Callback.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_DNS_Networking.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_DNS_Parser.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_ICMP.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_IP.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_IP_Timers.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_IP_Utils.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_Sockets.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_Stream_Buffer.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_TCP_IP.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_TCP_Reception.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_TCP_State_Handling.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_TCP_Transmission.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_TCP_Utils.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_TCP_WIN.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_Tiny_TCP.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/FreeRTOS_UDP_IP.c
+
+# FreeRTOS+TCP Port for ARM MPS2 SoC
+INCLUDE_DIRS += -I${FREERTOS_TCP}/source/portable/NetworkInterface/MPS2_AN385/ether_lan9118
+INCLUDE_DIRS += -I${FREERTOS_TCP}/source/portable/Compiler/GCC
+
+SOURCE_FILES += ${FREERTOS_TCP}/source/portable/BufferManagement/BufferAllocation_2.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/portable/NetworkInterface/MPS2_AN385/NetworkInterface.c
+SOURCE_FILES += ${FREERTOS_TCP}/source/portable/NetworkInterface/MPS2_AN385/ether_lan9118/smsc9220_eth_drv.c
+
+DEFINES := -DQEMU_SOC_MPS2 -DHEAP3
+
+LDFLAGS = -T mps2_m3.ld -specs=nano.specs --specs=rdimon.specs -lc -lrdimon
LDFLAGS += -Xlinker -Map=${BUILD_DIR}/output.map
CFLAGS += -nostartfiles -mthumb -mcpu=cortex-m3 -Wno-error=implicit-function-declaration
@@ -87,4 +111,3 @@ ${BUILD_DIR}/%.o : %.c Makefile
clean:
-rm -rf build
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/scripts/mps2_m3.ld b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/mps2_m3.ld
similarity index 100%
rename from FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/scripts/mps2_m3.ld
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/mps2_m3.ld
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/init/startup.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/startup.c
similarity index 100%
rename from FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/init/startup.c
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/startup.c
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/syscall.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/syscalls.c
similarity index 100%
rename from FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/syscall.c
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/syscalls.c
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/DemoTasks/TCPEchoClient_SingleTasks.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/DemoTasks/TCPEchoClient_SingleTasks.c
index db7a9b9e8ec..3094057acdb 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/DemoTasks/TCPEchoClient_SingleTasks.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/DemoTasks/TCPEchoClient_SingleTasks.c
@@ -50,6 +50,8 @@
#include "FreeRTOS_IP.h"
#include "FreeRTOS_Sockets.h"
+#include "tcp_echo_config.h"
+
/* Exclude the whole file if FreeRTOSIPConfig.h is configured to use UDP only. */
#if( ipconfigUSE_TCP == 1 )
@@ -151,10 +153,7 @@ TickType_t xTimeOnEntering;
server is configured by the constants configECHO_SERVER_ADDR0 to
configECHO_SERVER_ADDR3 in FreeRTOSConfig.h. */
xEchoServerAddress.sin_port = FreeRTOS_htons( echoECHO_PORT );
- xEchoServerAddress.sin_addr = FreeRTOS_inet_addr_quick( configECHO_SERVER_ADDR0,
- configECHO_SERVER_ADDR1,
- configECHO_SERVER_ADDR2,
- configECHO_SERVER_ADDR3 );
+ xEchoServerAddress.sin_addr = FreeRTOS_inet_addr( configECHO_SERVER_ADDR );
for( ;; )
{
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index 3174b8ca07a..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- * https://www.FreeRTOS.org/a00110.html
- *
- * The bottom of this file contains some constants specific to running the UDP
- * stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
- * the demo) are contained in FreeRTOSIPConfig.h.
- *----------------------------------------------------------*/
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 3 /* FreeRTOS+FAT requires 2 pointers if a CWD is supported. */
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 1
-#define configUSE_MALLOC_FAILED_HOOK 1
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering definitions. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-
-/* This demo makes use of one or more example stats formatting functions. These
-format the raw data provided by the uxTaskGetSystemState() function in to human
-readable ASCII form. See the notes in the implementation of vTaskList() within
-FreeRTOS/Source/tasks.c for limitations. configUSE_STATS_FORMATTING_FUNCTIONS
-is set to 2 so the formatting functions are included without the stdio.h being
-included in tasks.c. That is because this project defines its own sprintf()
-functions. */
-#define configUSE_STATS_FORMATTING_FUNCTIONS 1
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char *pcFile, uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* If configINCLUDE_DEMO_DEBUG_STATS is set to one, then a few basic IP trace
-macros are defined to gather some UDP stack statistics that can then be viewed
-through the CLI interface. */
-#define configINCLUDE_DEMO_DEBUG_STATS 1
-
-/* The size of the global output buffer that is available for use when there
-are multiple command interpreters running at once (for example, one on a UART
-and one on TCP/IP). This is done to prevent an output buffer being defined by
-each implementation - which would waste RAM. In this case, there is only one
-command interpreter running, and it has its own local output buffer, so the
-global buffer is just set to be one byte long as it is not used and should not
-take up unnecessary RAM. */
-#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
-priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
-or WiFi data to and from a real network connection. Many computers have more
-than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
-the demo which real port should be used to create the virtual port. The ports
-available are displayed on the console when the application is executed. For
-example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
-results in the wired network being used, while setting
-configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
-used. */
-#define configNETWORK_INTERFACE_TO_USE 2L
-
-/* The address of an echo server that will be used by the two demo echo client
-tasks.
-http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Echo_Clients.html
-http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/UDP_Echo_Clients.html */
-#define configECHO_SERVER_ADDR0 192
-#define configECHO_SERVER_ADDR1 168
-#define configECHO_SERVER_ADDR2 0
-#define configECHO_SERVER_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
-connection that uses this MAC address by accessing the raw Ethernet/WiFi data
-to and from a real network connection on the host PC. See the
-configNETWORK_INTERFACE_TO_USE definition above for information on how to
-configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x22
-#define configMAC_ADDR3 0x33
-#define configMAC_ADDR4 0x44
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
-ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
-0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
-208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
-to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
-ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-#if( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-#endif /* FREERTOS_CONFIG_H */
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOSIPConfig.h
deleted file mode 100644
index b68bc09327c..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-
-/*****************************************************************************
- *
- * See the following URL for configuration information.
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
- *
- *****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
-console before the network is connected then a UDP port after the network has
-connected. */
-extern void vLoggingPrintf( const char *pcFormatString, ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
-1 then FreeRTOS_debug_printf should be defined to the function used to print
-out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf(X) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
-FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
-then FreeRTOS_printf should be set to the function used to print out the
-messages. */
-#define ipconfigHAS_PRINTF 1
-#if( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf(X) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
-on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
-then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
-stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
-performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
-set per socket, using setsockopt(). If not set, the times below will be
-used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 5000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
-(non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 1 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 1 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
-useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
-and also DNS may use small timeouts. If a DNS reply comes in after the DNS
-socket has been destroyed, the result will be stored into the cache. The next
-call to FreeRTOS_gethostbyname() will return immediately, without even creating
-a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 16 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
-use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
-sets the priority of the task that executes the IP stack. The priority is a
-standard FreeRTOS task priority so can take any value from 0 (the lowest
-priority) to (configMAX_PRIORITIES - 1) (the highest priority).
-configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
-FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
-the priority assigned to the task executing the IP stack relative to the
-priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
-task. This setting is less important when the FreeRTOS Win32 simulator is used
-as the Win32 simulator only stores a fixed amount of information on the task
-stack. FreeRTOS includes optional stack overflow detection, see:
-http://www.freertos.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
-things such as a DHCP transaction number or initial sequence number. Random
-number generation is performed via this macro to allow applications to use their
-own random number generation method. For example, it might be possible to
-generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
-network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
-is not set to 1 then the network event hook will never be called. See
-http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
-*/
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
-a network buffer cannot be obtained then the calling task is held in the Blocked
-state (so other tasks can continue to executed) until either a network buffer
-becomes available or the send block time expires. If the send block time expires
-then the send operation is aborted. The maximum allowable send block time is
-capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
-maximum allowable send block time prevents prevents a deadlock occurring when
-all the network buffers are in use and the tasks that process (and subsequently
-free) the network buffers are themselves blocked waiting for a network buffer.
-ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
-milliseconds can be converted to a time in ticks by dividing the time in
-milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000U / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
-address, netmask, DNS server address and gateway address from a DHCP server. If
-ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
-stack will revert to using the static IP address even when ipconfigUSE_DHCP is
-set to 1 if a valid configuration cannot be obtained from a DHCP server for any
-reason. The static configuration used is that passed into the stack by the
-FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
-increasing time intervals until either a reply is received from a DHCP server
-and accepted, or the interval between transmissions reaches
-ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
-static IP address passed as a parameter to FreeRTOS_IPInit() if the
-re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
-a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000U / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
-stack can only send a UDP message to a remove IP address if it knowns the MAC
-address associated with the IP address, or the MAC address of the router used to
-contact the remote IP address. When a UDP message is received from a remote IP
-address the MAC address and IP address are added to the ARP cache. When a UDP
-message is sent to a remote IP address that does not already appear in the ARP
-cache then the UDP message is replaced by a ARP message that solicits the
-required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
-number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
-maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
-aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
-table being created or refreshed and the entry being removed because it is stale.
-New ARP requests are sent for ARP cache entries that are nearing their maximum
-age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
-equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
-routines, which are relatively large. To save code space the full
-FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
-alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
-takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
-FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
-(for example, 192, 168, 0, 1) as its parameters. If
-ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
-FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
-not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
-are available to the IP stack. The total number of network buffers is limited
-to ensure the total amount of RAM that can be consumed by the IP stack is capped
-to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
-stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
-be queued for processing at any one time. The event queue must be a minimum of
-5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
-number. FreeRTOS_bind() is used to manually allocate a port number to a socket
-(to 'bind' the socket to a port), but manual binding is not normally necessary
-for client sockets (those sockets that initiate outgoing connections rather than
-wait for incoming connections on a known port number). If
-ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
-FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
-stack automatically binding the socket to a port number from the range
-socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
-ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
-on a socket that has not yet been bound will result in the send operation being
-aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
-contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
-lower value can save RAM, depending on the buffer management scheme used. If
-ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
-be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200U
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
-through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
-generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
-FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
-(and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
-that are not in Ethernet II format will be dropped. This option is included for
-potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
-responsibility of the Ethernet interface to filter out packets that are of no
-interest. If the Ethernet interface does not implement this functionality, then
-set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
-perform the filtering instead (it is much less efficient for the stack to do it
-because the packet will already have been passed into the stack). If the
-Ethernet driver does all the necessary filtering in hardware then software
-filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
-block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
-32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
-This has to do with the contents of the IP-packets: all 32-bit fields are
-32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2U
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
-TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
-outstanding packets (for Rx and Tx). When using up to 10 TP sockets
-simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
-maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 1000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
-real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS(x) ( (x) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
-disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.sln
index b362f36c5f9..acecc464f90 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.sln
@@ -1,23 +1,71 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.33027.164
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS_Plus_TCP_Minimal", "FreeRTOS_Plus_TCP_Minimal.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{190A6643-3DE4-49DC-96AA-7867C5E0A835}"
EndProject
Global
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {190A6643-3DE4-49DC-96AA-7867C5E0A835}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {190A6643-3DE4-49DC-96AA-7867C5E0A835}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {190A6643-3DE4-49DC-96AA-7867C5E0A835}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
+ EndGlobalSection
+ GlobalSection(TestCaseManagementSettings) = postSolution
+ CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.vcxproj
new file mode 100644
index 00000000000..29bc70b3845
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.vcxproj
@@ -0,0 +1,170 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ FreeRTOSPlusTCPMinimal
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\..\Source\Utilities\logging;DemoTasks\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\..\Source\Utilities\logging;DemoTasks\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\..\Source\Utilities\logging;DemoTasks\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\..\Source\Utilities\logging;DemoTasks\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.vcxproj.filters
new file mode 100644
index 00000000000..deeab7a5aec
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/FreeRTOS_Plus_TCP_Minimal.vcxproj.filters
@@ -0,0 +1,36 @@
+
+
+
+
+ {8aa950a5-e2c0-4c9b-ba94-f66d96fdc70d}
+ c
+
+
+ {81f2ab97-f9d2-4dbe-a790-939e4bb7f7ae}
+
+
+
+
+ DemoTasks
+
+
+ DemoTasks
+
+
+ DemoTasks
+
+
+
+
+
+ DemoTasks\Include
+
+
+ DemoTasks\Include
+
+
+ DemoTasks\Include
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj
deleted file mode 100644
index 1a9e8ded15c..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj
+++ /dev/null
@@ -1,199 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\Source\FreeRTOS-Plus-FAT\include;..\..\Source\FreeRTOS-Plus-FAT\portable\common;..\..\Source\FreeRTOS-Plus-TCP\protocols\include;..\..\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;.\DemoTasks\include;..\..\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;.\WinPCap;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\Source\FreeRTOS-Plus-CLI;.\TraceMacros\Example1;..\..\Source\FreeRTOS-Plus-TCP\include;..\..\Source\Utilities\logging;.;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- .\WinPCap
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;..\..\Source\Utilities\logging;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(AdditionalIncludeDirectories)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj.filters
deleted file mode 100644
index ad5835a5d22..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
-
- {38712199-cebf-4124-bf15-398f7c3419ea}
- ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
-
- DemoTasks
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj.user
deleted file mode 100644
index 88a550947ed..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WIN32.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/Packet32.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/Packet32.h
deleted file mode 100644
index 1e0eacd77d1..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/Packet32.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy)
- * Copyright (c) 2005 - 2007 CACE Technologies, Davis (California)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Politecnico di Torino, CACE Technologies
- * nor the names of its contributors may be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-/** @ingroup packetapi
- * @{
- */
-
-/** @defgroup packet32h Packet.dll definitions and data structures
- * Packet32.h contains the data structures and the definitions used by packet.dll.
- * The file is used both by the Win9x and the WinNTx versions of packet.dll, and can be included
- * by the applications that use the functions of this library
- * @{
- */
-
-#ifndef __PACKET32
-#define __PACKET32
-
-#include
-
-#ifdef HAVE_AIRPCAP_API
-#include
-#else
-#if !defined(AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_)
-#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
-typedef struct _AirpcapHandle *PAirpcapHandle;
-#endif /* AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_ */
-#endif /* HAVE_AIRPCAP_API */
-
-#ifdef HAVE_DAG_API
-#include
-#endif /* HAVE_DAG_API */
-
-// Working modes
-#define PACKET_MODE_CAPT 0x0 ///< Capture mode
-#define PACKET_MODE_STAT 0x1 ///< Statistical mode
-#define PACKET_MODE_MON 0x2 ///< Monitoring mode
-#define PACKET_MODE_DUMP 0x10 ///< Dump mode
-#define PACKET_MODE_STAT_DUMP MODE_DUMP | MODE_STAT ///< Statistical dump Mode
-
-
-/// Alignment macro. Defines the alignment size.
-#define Packet_ALIGNMENT sizeof(int)
-/// Alignment macro. Rounds up to the next even multiple of Packet_ALIGNMENT.
-#define Packet_WORDALIGN(x) (((x)+(Packet_ALIGNMENT-1))&~(Packet_ALIGNMENT-1))
-
-#define NdisMediumNull -1 ///< Custom linktype: NDIS doesn't provide an equivalent
-#define NdisMediumCHDLC -2 ///< Custom linktype: NDIS doesn't provide an equivalent
-#define NdisMediumPPPSerial -3 ///< Custom linktype: NDIS doesn't provide an equivalent
-#define NdisMediumBare80211 -4 ///< Custom linktype: NDIS doesn't provide an equivalent
-#define NdisMediumRadio80211 -5 ///< Custom linktype: NDIS doesn't provide an equivalent
-#define NdisMediumPpi -6 ///< Custom linktype: NDIS doesn't provide an equivalent
-
-// Loopback behaviour definitions
-#define NPF_DISABLE_LOOPBACK 1 ///< Drop the packets sent by the NPF driver
-#define NPF_ENABLE_LOOPBACK 2 ///< Capture the packets sent by the NPF driver
-
-/*!
- \brief Network type structure.
-
- This structure is used by the PacketGetNetType() function to return information on the current adapter's type and speed.
-*/
-typedef struct NetType
-{
- UINT LinkType; ///< The MAC of the current network adapter (see function PacketGetNetType() for more information)
- ULONGLONG LinkSpeed; ///< The speed of the network in bits per second
-}NetType;
-
-
-//some definitions stolen from libpcap
-
-#ifndef BPF_MAJOR_VERSION
-
-/*!
- \brief A BPF pseudo-assembly program.
-
- The program will be injected in the kernel by the PacketSetBPF() function and applied to every incoming packet.
-*/
-struct bpf_program
-{
- UINT bf_len; ///< Indicates the number of instructions of the program, i.e. the number of struct bpf_insn that will follow.
- struct bpf_insn *bf_insns; ///< A pointer to the first instruction of the program.
-};
-
-/*!
- \brief A single BPF pseudo-instruction.
-
- bpf_insn contains a single instruction for the BPF register-machine. It is used to send a filter program to the driver.
-*/
-struct bpf_insn
-{
- USHORT code; ///< Instruction type and addressing mode.
- UCHAR jt; ///< Jump if true
- UCHAR jf; ///< Jump if false
- int k; ///< Generic field used for various purposes.
-};
-
-/*!
- \brief Structure that contains a couple of statistics values on the current capture.
-
- It is used by packet.dll to return statistics about a capture session.
-*/
-struct bpf_stat
-{
- UINT bs_recv; ///< Number of packets that the driver received from the network adapter
- ///< from the beginning of the current capture. This value includes the packets
- ///< lost by the driver.
- UINT bs_drop; ///< number of packets that the driver lost from the beginning of a capture.
- ///< Basically, a packet is lost when the the buffer of the driver is full.
- ///< In this situation the packet cannot be stored and the driver rejects it.
- UINT ps_ifdrop; ///< drops by interface. XXX not yet supported
- UINT bs_capt; ///< number of packets that pass the filter, find place in the kernel buffer and
- ///< thus reach the application.
-};
-
-/*!
- \brief Packet header.
-
- This structure defines the header associated with every packet delivered to the application.
-*/
-struct bpf_hdr
-{
- struct timeval bh_tstamp; ///< The timestamp associated with the captured packet.
- ///< It is stored in a TimeVal structure.
- UINT bh_caplen; ///< Length of captured portion. The captured portion can be different
- ///< from the original packet, because it is possible (with a proper filter)
- ///< to instruct the driver to capture only a portion of the packets.
- UINT bh_datalen; ///< Original length of packet
- USHORT bh_hdrlen; ///< Length of bpf header (this struct plus alignment padding). In some cases,
- ///< a padding could be added between the end of this structure and the packet
- ///< data for performance reasons. This filed can be used to retrieve the actual data
- ///< of the packet.
-};
-
-/*!
- \brief Dump packet header.
-
- This structure defines the header associated with the packets in a buffer to be used with PacketSendPackets().
- It is simpler than the bpf_hdr, because it corresponds to the header associated by WinPcap and libpcap to a
- packet in a dump file. This makes straightforward sending WinPcap dump files to the network.
-*/
-struct dump_bpf_hdr{
- struct timeval ts; ///< Time stamp of the packet
- UINT caplen; ///< Length of captured portion. The captured portion can smaller than the
- ///< the original packet, because it is possible (with a proper filter) to
- ///< instruct the driver to capture only a portion of the packets.
- UINT len; ///< Length of the original packet (off wire).
-};
-
-
-#endif
-
-struct bpf_stat;
-
-#define DOSNAMEPREFIX TEXT("Packet_") ///< Prefix added to the adapters device names to create the WinPcap devices
-#define MAX_LINK_NAME_LENGTH 64 //< Maximum length of the devices symbolic links
-#define NMAX_PACKET 65535
-
-/*!
- \brief Addresses of a network adapter.
-
- This structure is used by the PacketGetNetInfoEx() function to return the IP addresses associated with
- an adapter.
-*/
-typedef struct npf_if_addr {
- struct sockaddr_storage IPAddress; ///< IP address.
- struct sockaddr_storage SubnetMask; ///< Netmask for that address.
- struct sockaddr_storage Broadcast; ///< Broadcast address.
-}npf_if_addr;
-
-
-#define ADAPTER_NAME_LENGTH 256 + 12 ///< Maximum length for the name of an adapter. The value is the same used by the IP Helper API.
-#define ADAPTER_DESC_LENGTH 128 ///< Maximum length for the description of an adapter. The value is the same used by the IP Helper API.
-#define MAX_MAC_ADDR_LENGTH 8 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
-#define MAX_NETWORK_ADDRESSES 16 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
-
-
-typedef struct WAN_ADAPTER_INT WAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
-typedef WAN_ADAPTER *PWAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
-
-#define INFO_FLAG_NDIS_ADAPTER 0 ///< Flag for ADAPTER_INFO: this is a traditional ndis adapter
-#define INFO_FLAG_NDISWAN_ADAPTER 1 ///< Flag for ADAPTER_INFO: this is a NdisWan adapter, and it's managed by WANPACKET
-#define INFO_FLAG_DAG_CARD 2 ///< Flag for ADAPTER_INFO: this is a DAG card
-#define INFO_FLAG_DAG_FILE 6 ///< Flag for ADAPTER_INFO: this is a DAG file
-#define INFO_FLAG_DONT_EXPORT 8 ///< Flag for ADAPTER_INFO: when this flag is set, the adapter will not be listed or openend by winpcap. This allows to prevent exporting broken network adapters, like for example FireWire ones.
-#define INFO_FLAG_AIRPCAP_CARD 16 ///< Flag for ADAPTER_INFO: this is an airpcap card
-#define INFO_FLAG_NPFIM_DEVICE 32
-
-/*!
- \brief Describes an opened network adapter.
-
- This structure is the most important for the functioning of packet.dll, but the great part of its fields
- should be ignored by the user, since the library offers functions that avoid to cope with low-level parameters
-*/
-typedef struct _ADAPTER {
- HANDLE hFile; ///< \internal Handle to an open instance of the NPF driver.
- CHAR SymbolicLink[MAX_LINK_NAME_LENGTH]; ///< \internal A string containing the name of the network adapter currently opened.
- int NumWrites; ///< \internal Number of times a packets written on this adapter will be repeated
- ///< on the wire.
- HANDLE ReadEvent; ///< A notification event associated with the read calls on the adapter.
- ///< It can be passed to standard Win32 functions (like WaitForSingleObject
- ///< or WaitForMultipleObjects) to wait until the driver's buffer contains some
- ///< data. It is particularly useful in GUI applications that need to wait
- ///< concurrently on several events. In Windows NT/2000 the PacketSetMinToCopy()
- ///< function can be used to define the minimum amount of data in the kernel buffer
- ///< that will cause the event to be signalled.
-
- UINT ReadTimeOut; ///< \internal The amount of time after which a read on the driver will be released and
- ///< ReadEvent will be signaled, also if no packets were captured
- CHAR Name[ADAPTER_NAME_LENGTH];
- PWAN_ADAPTER pWanAdapter;
- UINT Flags; ///< Adapter's flags. Tell if this adapter must be treated in a different way, using the Netmon API or the dagc API.
-
-#ifdef HAVE_AIRPCAP_API
- PAirpcapHandle AirpcapAd;
-#endif // HAVE_AIRPCAP_API
-
-#ifdef HAVE_NPFIM_API
- void* NpfImHandle;
-#endif // HAVE_NPFIM_API
-
-#ifdef HAVE_DAG_API
- dagc_t *pDagCard; ///< Pointer to the dagc API adapter descriptor for this adapter
- PCHAR DagBuffer; ///< Pointer to the buffer with the packets that is received from the DAG card
- struct timeval DagReadTimeout; ///< Read timeout. The dagc API requires a timeval structure
- unsigned DagFcsLen; ///< Length of the frame check sequence attached to any packet by the card. Obtained from the registry
- DWORD DagFastProcess; ///< True if the user requests fast capture processing on this card. Higher level applications can use this value to provide a faster but possibly unprecise capture (for example, libpcap doesn't convert the timestamps).
-#endif // HAVE_DAG_API
-} ADAPTER, *LPADAPTER;
-
-/*!
- \brief Structure that contains a group of packets coming from the driver.
-
- This structure defines the header associated with every packet delivered to the application.
-*/
-typedef struct _PACKET {
- HANDLE hEvent; ///< \deprecated Still present for compatibility with old applications.
- OVERLAPPED OverLapped; ///< \deprecated Still present for compatibility with old applications.
- PVOID Buffer; ///< Buffer with containing the packets. See the PacketReceivePacket() for
- ///< details about the organization of the data in this buffer
- UINT Length; ///< Length of the buffer
- DWORD ulBytesReceived; ///< Number of valid bytes present in the buffer, i.e. amount of data
- ///< received by the last call to PacketReceivePacket()
- BOOLEAN bIoComplete; ///< \deprecated Still present for compatibility with old applications.
-} PACKET, *LPPACKET;
-
-/*!
- \brief Structure containing an OID request.
-
- It is used by the PacketRequest() function to send an OID to the interface card driver.
- It can be used, for example, to retrieve the status of the error counters on the adapter, its MAC address,
- the list of the multicast groups defined on it, and so on.
-*/
-struct _PACKET_OID_DATA {
- ULONG Oid; ///< OID code. See the Microsoft DDK documentation or the file ntddndis.h
- ///< for a complete list of valid codes.
- ULONG Length; ///< Length of the data field
- UCHAR Data[1]; ///< variable-lenght field that contains the information passed to or received
- ///< from the adapter.
-};
-typedef struct _PACKET_OID_DATA PACKET_OID_DATA, *PPACKET_OID_DATA;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @}
- */
-
-/*
-BOOLEAN QueryWinPcapRegistryStringA(CHAR *SubKeyName,
- CHAR *Value,
- UINT *pValueLen,
- CHAR *DefaultVal);
-
-BOOLEAN QueryWinPcapRegistryStringW(WCHAR *SubKeyName,
- WCHAR *Value,
- UINT *pValueLen,
- WCHAR *DefaultVal);
-*/
-
-//---------------------------------------------------------------------------
-// EXPORTED FUNCTIONS
-//---------------------------------------------------------------------------
-
-PCHAR PacketGetVersion();
-PCHAR PacketGetDriverVersion();
-BOOLEAN PacketSetMinToCopy(LPADAPTER AdapterObject,int nbytes);
-BOOLEAN PacketSetNumWrites(LPADAPTER AdapterObject,int nwrites);
-BOOLEAN PacketSetMode(LPADAPTER AdapterObject,int mode);
-BOOLEAN PacketSetReadTimeout(LPADAPTER AdapterObject,int timeout);
-BOOLEAN PacketSetBpf(LPADAPTER AdapterObject,struct bpf_program *fp);
-BOOLEAN PacketSetLoopbackBehavior(LPADAPTER AdapterObject, UINT LoopbackBehavior);
-INT PacketSetSnapLen(LPADAPTER AdapterObject,int snaplen);
-BOOLEAN PacketGetStats(LPADAPTER AdapterObject,struct bpf_stat *s);
-BOOLEAN PacketGetStatsEx(LPADAPTER AdapterObject,struct bpf_stat *s);
-BOOLEAN PacketSetBuff(LPADAPTER AdapterObject,int dim);
-BOOLEAN PacketGetNetType (LPADAPTER AdapterObject,NetType *type);
-LPADAPTER PacketOpenAdapter(PCHAR AdapterName);
-BOOLEAN PacketSendPacket(LPADAPTER AdapterObject,LPPACKET pPacket,BOOLEAN Sync);
-INT PacketSendPackets(LPADAPTER AdapterObject,PVOID PacketBuff,ULONG Size, BOOLEAN Sync);
-LPPACKET PacketAllocatePacket(void);
-VOID PacketInitPacket(LPPACKET lpPacket,PVOID Buffer,UINT Length);
-VOID PacketFreePacket(LPPACKET lpPacket);
-BOOLEAN PacketReceivePacket(LPADAPTER AdapterObject,LPPACKET lpPacket,BOOLEAN Sync);
-BOOLEAN PacketSetHwFilter(LPADAPTER AdapterObject,ULONG Filter);
-BOOLEAN PacketGetAdapterNames(PTSTR pStr,PULONG BufferSize);
-BOOLEAN PacketGetNetInfoEx(PCHAR AdapterName, npf_if_addr* buffer, PLONG NEntries);
-BOOLEAN PacketRequest(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData);
-HANDLE PacketGetReadEvent(LPADAPTER AdapterObject);
-BOOLEAN PacketSetDumpName(LPADAPTER AdapterObject, void *name, int len);
-BOOLEAN PacketSetDumpLimits(LPADAPTER AdapterObject, UINT maxfilesize, UINT maxnpacks);
-BOOLEAN PacketIsDumpEnded(LPADAPTER AdapterObject, BOOLEAN sync);
-BOOL PacketStopDriver();
-VOID PacketCloseAdapter(LPADAPTER lpAdapter);
-BOOLEAN PacketStartOem(PCHAR errorString, UINT errorStringLength);
-BOOLEAN PacketStartOemEx(PCHAR errorString, UINT errorStringLength, ULONG flags);
-PAirpcapHandle PacketGetAirPcapHandle(LPADAPTER AdapterObject);
-
-//
-// Used by PacketStartOemEx
-//
-#define PACKET_START_OEM_NO_NETMON 0x00000001
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif //__PACKET32
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/PacketData.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/PacketData.h
deleted file mode 100644
index 8124db66d8b..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/PacketData.h
+++ /dev/null
@@ -1,267 +0,0 @@
-char pkt1[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x30, 0x09, 0x9c, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x07, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x35, 0x00, 0x00, 0x00, 0x00, 0x70, 0x02,
-0x40, 0x00, 0xdf, 0xab, 0x00, 0x00, 0x02, 0x04,
-0x05, 0xb4, 0x01, 0x01, 0x04, 0x02 };
-
-char pkt2[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa6, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt3[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0x9e, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x0d, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x36, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt4[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x02, 0x27, 0x09, 0x9f, 0x40, 0x00, 0x80, 0x06,
-0x6d, 0x0d, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x36, 0x00, 0x00, 0x06, 0x69, 0x50, 0x18,
-0x42, 0xd8, 0x84, 0x3e, 0x00, 0x00, 0x47, 0x45,
-0x54, 0x20, 0x2f, 0x20, 0x48, 0x54, 0x54, 0x50,
-0x2f, 0x31, 0x2e, 0x31, 0x0d, 0x0a, 0x41, 0x63,
-0x63, 0x65, 0x70, 0x74, 0x3a, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x2c,
-0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78,
-0x2d, 0x78, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70,
-0x2c, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
-0x6a, 0x70, 0x65, 0x67, 0x2c, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x70, 0x6a, 0x70, 0x65,
-0x67, 0x2c, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
-0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
-0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78,
-0x63, 0x65, 0x6c, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x6d, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2c,
-0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
-0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65,
-0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x20,
-0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
-0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73,
-0x2d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x70,
-0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
-0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x78,
-0x62, 0x61, 0x70, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
-0x78, 0x70, 0x73, 0x64, 0x6f, 0x63, 0x75, 0x6d,
-0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x78, 0x61, 0x6d, 0x6c, 0x2b, 0x78, 0x6d,
-0x6c, 0x2c, 0x20, 0x2a, 0x2f, 0x2a, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x4c,
-0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3a,
-0x20, 0x65, 0x6e, 0x2d, 0x67, 0x62, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x45,
-0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x3a,
-0x20, 0x67, 0x7a, 0x69, 0x70, 0x2c, 0x20, 0x64,
-0x65, 0x66, 0x6c, 0x61, 0x74, 0x65, 0x0d, 0x0a,
-0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65,
-0x6e, 0x74, 0x3a, 0x20, 0x4d, 0x6f, 0x7a, 0x69,
-0x6c, 0x6c, 0x61, 0x2f, 0x34, 0x2e, 0x30, 0x20,
-0x28, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69,
-0x62, 0x6c, 0x65, 0x3b, 0x20, 0x4d, 0x53, 0x49,
-0x45, 0x20, 0x36, 0x2e, 0x30, 0x3b, 0x20, 0x57,
-0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x4e,
-0x54, 0x20, 0x35, 0x2e, 0x31, 0x3b, 0x20, 0x53,
-0x56, 0x31, 0x3b, 0x20, 0x47, 0x6f, 0x6f, 0x67,
-0x6c, 0x65, 0x54, 0x35, 0x3b, 0x20, 0x2e, 0x4e,
-0x45, 0x54, 0x20, 0x43, 0x4c, 0x52, 0x20, 0x32,
-0x2e, 0x30, 0x2e, 0x35, 0x30, 0x37, 0x32, 0x37,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x30, 0x2e, 0x30,
-0x34, 0x35, 0x30, 0x36, 0x2e, 0x36, 0x34, 0x38,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x35, 0x2e, 0x32,
-0x31, 0x30, 0x32, 0x32, 0x29, 0x0d, 0x0a, 0x48,
-0x6f, 0x73, 0x74, 0x3a, 0x20, 0x31, 0x39, 0x32,
-0x2e, 0x31, 0x36, 0x38, 0x2e, 0x30, 0x2e, 0x31,
-0x32, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
-0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4b,
-0x65, 0x65, 0x70, 0x2d, 0x41, 0x6c, 0x69, 0x76,
-0x65, 0x0d, 0x0a, 0x0d, 0x0a };
-
-char pkt5[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x02, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa5, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt6[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa1, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x0a, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt7[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x02, 0x27, 0x09, 0xa2, 0x40, 0x00, 0x80, 0x06,
-0x6d, 0x0a, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc7, 0x36, 0x00, 0x00, 0x06, 0x69, 0x50, 0x18,
-0x42, 0xd8, 0x84, 0x3e, 0x00, 0x00, 0x47, 0x45,
-0x54, 0x20, 0x2f, 0x20, 0x48, 0x54, 0x54, 0x50,
-0x2f, 0x31, 0x2e, 0x31, 0x0d, 0x0a, 0x41, 0x63,
-0x63, 0x65, 0x70, 0x74, 0x3a, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x2c,
-0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78,
-0x2d, 0x78, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70,
-0x2c, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
-0x6a, 0x70, 0x65, 0x67, 0x2c, 0x20, 0x69, 0x6d,
-0x61, 0x67, 0x65, 0x2f, 0x70, 0x6a, 0x70, 0x65,
-0x67, 0x2c, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
-0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
-0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78,
-0x63, 0x65, 0x6c, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x6d, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2c,
-0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
-0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65,
-0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x20,
-0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
-0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73,
-0x2d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
-0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x70,
-0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
-0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x78,
-0x62, 0x61, 0x70, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
-0x78, 0x70, 0x73, 0x64, 0x6f, 0x63, 0x75, 0x6d,
-0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x70, 0x70,
-0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-0x2f, 0x78, 0x61, 0x6d, 0x6c, 0x2b, 0x78, 0x6d,
-0x6c, 0x2c, 0x20, 0x2a, 0x2f, 0x2a, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x4c,
-0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3a,
-0x20, 0x65, 0x6e, 0x2d, 0x67, 0x62, 0x0d, 0x0a,
-0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x45,
-0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x3a,
-0x20, 0x67, 0x7a, 0x69, 0x70, 0x2c, 0x20, 0x64,
-0x65, 0x66, 0x6c, 0x61, 0x74, 0x65, 0x0d, 0x0a,
-0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65,
-0x6e, 0x74, 0x3a, 0x20, 0x4d, 0x6f, 0x7a, 0x69,
-0x6c, 0x6c, 0x61, 0x2f, 0x34, 0x2e, 0x30, 0x20,
-0x28, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69,
-0x62, 0x6c, 0x65, 0x3b, 0x20, 0x4d, 0x53, 0x49,
-0x45, 0x20, 0x36, 0x2e, 0x30, 0x3b, 0x20, 0x57,
-0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x4e,
-0x54, 0x20, 0x35, 0x2e, 0x31, 0x3b, 0x20, 0x53,
-0x56, 0x31, 0x3b, 0x20, 0x47, 0x6f, 0x6f, 0x67,
-0x6c, 0x65, 0x54, 0x35, 0x3b, 0x20, 0x2e, 0x4e,
-0x45, 0x54, 0x20, 0x43, 0x4c, 0x52, 0x20, 0x32,
-0x2e, 0x30, 0x2e, 0x35, 0x30, 0x37, 0x32, 0x37,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x30, 0x2e, 0x30,
-0x34, 0x35, 0x30, 0x36, 0x2e, 0x36, 0x34, 0x38,
-0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43,
-0x4c, 0x52, 0x20, 0x33, 0x2e, 0x35, 0x2e, 0x32,
-0x31, 0x30, 0x32, 0x32, 0x29, 0x0d, 0x0a, 0x48,
-0x6f, 0x73, 0x74, 0x3a, 0x20, 0x31, 0x39, 0x32,
-0x2e, 0x31, 0x36, 0x38, 0x2e, 0x30, 0x2e, 0x31,
-0x32, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
-0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4b,
-0x65, 0x65, 0x70, 0x2d, 0x41, 0x6c, 0x69, 0x76,
-0x65, 0x0d, 0x0a, 0x0d, 0x0a };
-
-char pkt8[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x03, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa4, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt9[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa3, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x08, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt10[] = {
-0x00, 0x14, 0x22, 0xcb, 0x18, 0x2d, 0x00, 0x01,
-0x02, 0x45, 0x09, 0x11, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x2c, 0x00, 0x04, 0x00, 0x00, 0x40, 0x06,
-0xf8, 0xa3, 0xc0, 0xa8, 0x00, 0x0c, 0xc0, 0xa8,
-0x00, 0xc8, 0x00, 0x50, 0x0f, 0xe2, 0x00, 0x00,
-0x06, 0x68, 0x09, 0xe7, 0xc7, 0x36, 0x60, 0x12,
-0x05, 0x92, 0x28, 0xca, 0x00, 0x00, 0x02, 0x04,
-0x05, 0x92 };
-
-char pkt11[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa6, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x05, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x10,
-0x42, 0xd8, 0x82, 0x3f, 0x00, 0x00 };
-
-char pkt12[] = {
-0x00, 0x01, 0x02, 0x45, 0x09, 0x11, 0x00, 0x14,
-0x22, 0xcb, 0x18, 0x2d, 0x08, 0x00, 0x45, 0x00,
-0x00, 0x28, 0x09, 0xa7, 0x40, 0x00, 0x80, 0x06,
-0x6f, 0x04, 0xc0, 0xa8, 0x00, 0xc8, 0xc0, 0xa8,
-0x00, 0x0c, 0x0f, 0xe2, 0x00, 0x50, 0x09, 0xe7,
-0xc9, 0x35, 0x00, 0x00, 0x06, 0x69, 0x50, 0x14,
-0x00, 0x00, 0x43, 0xf4, 0x00, 0x00 };
-
-
-typedef struct
-{
- char *pcData;
- int iDataLen;
-} xPacketData;
-
-xPacketData xAllPackets[] =
-{
- { pkt1, sizeof( pkt1 ) },
-// { pkt2, sizeof( pkt2 ) },
- { pkt3, sizeof( pkt3 ) },
- { pkt4, sizeof( pkt4 ) },
-// { pkt5, sizeof( pkt5 ) },
- { pkt6, sizeof( pkt6 ) },
- { pkt7, sizeof( pkt7 ) },
- { pkt8, sizeof( pkt8 ) },
- { pkt9, sizeof( pkt9 ) },
- { pkt10, sizeof( pkt10 ) },
-// { pkt11, sizeof( pkt11 ) },
-// { pkt12, sizeof( pkt12 ) },
-// { pkt13, sizeof( pkt13 ) },
-// { pkt14, sizeof( pkt14 ) },
-// { pkt15, sizeof( pkt15 ) },
-// { pkt16, sizeof( pkt16 ) },
-};
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/Win32-Extensions.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/Win32-Extensions.h
deleted file mode 100644
index be71c85e96a..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/Win32-Extensions.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy)
- * Copyright (c) 2005 - 2006 CACE Technologies, Davis (California)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Politecnico di Torino, CACE Technologies
- * nor the names of its contributors may be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-
-#ifndef __WIN32_EXTENSIONS_H__
-#define __WIN32_EXTENSIONS_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Definitions */
-
-/*!
- \brief A queue of raw packets that will be sent to the network with pcap_sendqueue_transmit().
-*/
-struct pcap_send_queue
-{
- u_int maxlen; ///< Maximum size of the the queue, in bytes. This variable contains the size of the buffer field.
- u_int len; ///< Current size of the queue, in bytes.
- char *buffer; ///< Buffer containing the packets to be sent.
-};
-
-typedef struct pcap_send_queue pcap_send_queue;
-
-/*!
- \brief This typedef is a support for the pcap_get_airpcap_handle() function
-*/
-#if !defined(AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_)
-#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
-typedef struct _AirpcapHandle *PAirpcapHandle;
-#endif
-
-#define BPF_MEM_EX_IMM 0xc0
-#define BPF_MEM_EX_IND 0xe0
-
-/*used for ST*/
-#define BPF_MEM_EX 0xc0
-#define BPF_TME 0x08
-
-#define BPF_LOOKUP 0x90
-#define BPF_EXECUTE 0xa0
-#define BPF_INIT 0xb0
-#define BPF_VALIDATE 0xc0
-#define BPF_SET_ACTIVE 0xd0
-#define BPF_RESET 0xe0
-#define BPF_SET_MEMORY 0x80
-#define BPF_GET_REGISTER_VALUE 0x70
-#define BPF_SET_REGISTER_VALUE 0x60
-#define BPF_SET_WORKING 0x50
-#define BPF_SET_ACTIVE_READ 0x40
-#define BPF_SET_AUTODELETION 0x30
-#define BPF_SEPARATION 0xff
-
-/* Prototypes */
-pcap_send_queue* pcap_sendqueue_alloc(u_int memsize);
-
-void pcap_sendqueue_destroy(pcap_send_queue* queue);
-
-int pcap_sendqueue_queue(pcap_send_queue* queue, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data);
-
-u_int pcap_sendqueue_transmit(pcap_t *p, pcap_send_queue* queue, int sync);
-
-HANDLE pcap_getevent(pcap_t *p);
-
-struct pcap_stat *pcap_stats_ex(pcap_t *p, int *pcap_stat_size);
-
-int pcap_setuserbuffer(pcap_t *p, int size);
-
-int pcap_live_dump(pcap_t *p, char *filename, int maxsize, int maxpacks);
-
-int pcap_live_dump_ended(pcap_t *p, int sync);
-
-int pcap_offline_filter(struct bpf_program *prog, const struct pcap_pkthdr *header, const u_char *pkt_data);
-
-int pcap_start_oem(char* err_str, int flags);
-
-PAirpcapHandle pcap_get_airpcap_handle(pcap_t *p);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif //__WIN32_EXTENSIONS_H__
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/arch.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/arch.c
deleted file mode 100644
index 585cf7b75d7..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/arch.c
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-/* WinPCap includes. */
-#include "pcap.h"
-#include "remote-ext.h"
-
-/* uIP includes. */
-#include "net/uip.h"
-#include "net/uip_arp.h"
-#include "net/clock-arch.h"
-
-/* FreeRTOS includes. */
-#include "FreeRTOS.h"
-#include "task.h"
-#include "queue.h"
-
-/*
- * Query the computer the simulation is being executed on to find the network
- * interfaces it has installed.
- */
-static pcap_if_t * prvPrintAvailableNetworkInterfaces( void );
-
-/*
- * Open the network interface. The number of the interface to be opened is set
- * by the configNETWORK_INTERFACE_TO_USE constant in FreeRTOSConfig.h.
- */
-static void prvOpenSelectedNetworkInterface( pcap_if_t *pxAllNetworkInterfaces );
-
-/*
- * Configure the capture filter to allow blocking reads, and to filter out
- * packets that are not of interest to this demo.
- */
-static void prvConfigureCaptureBehaviour( void );
-
-pcap_t *pxOpenedInterfaceHandle = NULL;
-LARGE_INTEGER freq, sys_start_time;
-
-#define archNUM_BUFFERS 5
-#define archNUM_BUFFER_POINTERS ( archNUM_BUFFERS - 1 )
-
-static void prvInterruptSimulator( void *pvParameters );
-
-static unsigned char ucEthernetBuffer[ archNUM_BUFFERS ][ UIP_CONF_BUFFER_SIZE ];
-static unsigned char *pucEthernetBufferPointers[ archNUM_BUFFER_POINTERS ];
-
-static long lLengthOfDataInBuffer[ archNUM_BUFFER_POINTERS ] = { 0 };
-static unsigned char ucNextBufferToFill = 0U, ucNextBufferToProcess = 0U;
-
-unsigned char *uip_buf = NULL;
-char cErrorBuffer[PCAP_ERRBUF_SIZE];
-
-void vNetifTx( void )
-{
- pcap_sendpacket( pxOpenedInterfaceHandle, uip_buf, uip_len );
- pcap_sendpacket( pxOpenedInterfaceHandle, uip_buf, uip_len );
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxNetifRx( void )
-{
-UBaseType_t xDataLen;
-unsigned char *pucTemp;
-
- /* Check there is really data available. */
- xDataLen = lLengthOfDataInBuffer[ ucNextBufferToProcess ];
- if( xDataLen != 0L )
- {
-
- /* The buffer pointed to by uip_buf is going to change. Remember which
- buffer uip_buf is currently pointing to. */
- pucTemp = uip_buf;
-
- /* Point uip_buf at the next buffer that contains data. */
- uip_buf = pucEthernetBufferPointers[ ucNextBufferToProcess ];
-
- /* The buffer pointed to by
- pucEthernetBufferPointeres[ ucNextBufferToProcess ] is now in use by
- uip_buf, but the buffer uip_buf was pointing to on entry to this
- function is free. Set
- pucEthernetBufferPointeres[ ucNextBufferToProcess ] to the free
- buffer. */
- pucEthernetBufferPointers[ ucNextBufferToProcess ] = pucTemp;
- lLengthOfDataInBuffer[ ucNextBufferToProcess ] = 0L;
-
- ucNextBufferToProcess++;
- if( ucNextBufferToProcess >= archNUM_BUFFER_POINTERS )
- {
- ucNextBufferToProcess = 0L;
- }
- }
-
- return xDataLen;
-}
-/*-----------------------------------------------------------*/
-
-BaseType_t xNetifInit( void )
-{
-BaseType_t x;
-pcap_if_t *pxAllNetworkInterfaces;
-
- /* Allocate a free buffer to each buffer pointer. */
- for( x = 0; x < sizeof( pucEthernetBufferPointers ) / sizeof( unsigned char * ); x++ )
- {
- pucEthernetBufferPointers[ x ] = &( ucEthernetBuffer[ x ][ 0 ] );
- }
-
- /* Start with uip_buf pointing to a buffer that is not referenced from the
- pucEthernetBufferPointers[] array. */
- uip_buf = &( ucEthernetBuffer[ archNUM_BUFFERS - 1 ][ 0 ] );
-
- /* Query the computer the simulation is being executed on to find the
- network interfaces it has installed. */
- pxAllNetworkInterfaces = prvPrintAvailableNetworkInterfaces();
-
- /* Open the network interface. The number of the interface to be opened is
- set by the configNETWORK_INTERFACE_TO_USE constant in FreeRTOSConfig.h.
- Calling this function will set the pxOpenedInterfaceHandle variable. If,
- after calling this function, pxOpenedInterfaceHandle is equal to NULL, then
- the interface could not be opened. */
- if( pxAllNetworkInterfaces != NULL )
- {
- prvOpenSelectedNetworkInterface( pxAllNetworkInterfaces );
- }
-
-
- return x;
-}
-/*-----------------------------------------------------------*/
-
-static pcap_if_t * prvPrintAvailableNetworkInterfaces( void )
-{
-pcap_if_t * pxAllNetworkInterfaces = NULL, *xInterface;
-long lInterfaceNumber = 1;
-
- if( pcap_findalldevs_ex( PCAP_SRC_IF_STRING, NULL, &pxAllNetworkInterfaces, cErrorBuffer ) == -1 )
- {
- printf( "\r\nCould not obtain a list of network interfaces\r\n%s\r\n", cErrorBuffer );
- pxAllNetworkInterfaces = NULL;
- }
-
- if( pxAllNetworkInterfaces != NULL )
- {
- /* Print out the list of network interfaces. The first in the list
- is interface '1', not interface '0'. */
- for( xInterface = pxAllNetworkInterfaces; xInterface != NULL; xInterface = xInterface->next )
- {
- printf( "%d. %s", lInterfaceNumber, xInterface->name );
-
- if( xInterface->description != NULL )
- {
- printf( " (%s)\r\n", xInterface->description );
- }
- else
- {
- printf( " (No description available)\r\n") ;
- }
-
- lInterfaceNumber++;
- }
- }
-
- if( lInterfaceNumber == 1 )
- {
- /* The interface number was never incremented, so the above for() loop
- did not execute meaning no interfaces were found. */
- printf( " \r\nNo network interfaces were found.\r\n" );
- pxAllNetworkInterfaces = NULL;
- }
-
- printf( "\r\nThe interface that will be opened is set by configNETWORK_INTERFACE_TO_USE which should be defined in FreeRTOSConfig.h\r\n" );
- printf( "Attempting to open interface number %d.\r\n", configNETWORK_INTERFACE_TO_USE );
-
- if( ( configNETWORK_INTERFACE_TO_USE < 1L ) || ( configNETWORK_INTERFACE_TO_USE > lInterfaceNumber ) )
- {
- printf("\r\nconfigNETWORK_INTERFACE_TO_USE is not in the valid range.\r\n" );
-
- if( pxAllNetworkInterfaces != NULL )
- {
- /* Free the device list, as no devices are going to be opened. */
- pcap_freealldevs( pxAllNetworkInterfaces );
- pxAllNetworkInterfaces = NULL;
- }
- }
-
- return pxAllNetworkInterfaces;
-}
-/*-----------------------------------------------------------*/
-
-static void prvOpenSelectedNetworkInterface( pcap_if_t *pxAllNetworkInterfaces )
-{
-pcap_if_t *xInterface;
-long x;
-
- /* Walk the list of devices until the selected device is located. */
- xInterface = pxAllNetworkInterfaces;
- for( x = 0L; x < ( configNETWORK_INTERFACE_TO_USE - 1L ); x++ )
- {
- xInterface = xInterface->next;
- }
-
- /* Open the selected interface. */
- pxOpenedInterfaceHandle = pcap_open( xInterface->name, /* The name of the selected interface. */
- UIP_CONF_BUFFER_SIZE, /* The size of the packet to capture. */
- PCAP_OPENFLAG_PROMISCUOUS, /* Open in promiscious mode as the MAC and
- IP address is going to be "simulated", and
- not be the real MAC and IP address. This allows
- trafic to the simulated IP address to be routed
- to uIP, and trafic to the real IP address to be
- routed to the Windows TCP/IP stack. */
- 0xfffffffL, /* The read time out. This is going to block
- until data is available. */
- NULL, /* No authentication is required as this is
- not a remote capture session. */
- cErrorBuffer
- );
-
- if ( pxOpenedInterfaceHandle == NULL )
- {
- printf( "\r\n%s is not supported by WinPcap and cannot be opened\r\n", xInterface->name );
- }
- else
- {
- /* Configure the capture filter to allow blocking reads, and to filter
- out packets that are not of interest to this demo. */
- prvConfigureCaptureBehaviour();
- }
-
- /* The device list is no longer required. */
- pcap_freealldevs( pxAllNetworkInterfaces );
-}
-/*-----------------------------------------------------------*/
-
-static void prvConfigureCaptureBehaviour( void )
-{
-struct bpf_program xFilterCode;
-const long lMinBytesToCopy = 10L, lBlocking = 0L;
-unsigned long ulNetMask;
-
- /* Unblock a read as soon as anything is received. */
- pcap_setmintocopy( pxOpenedInterfaceHandle, lMinBytesToCopy );
-
- /* Allow blocking. */
- pcap_setnonblock( pxOpenedInterfaceHandle, lBlocking, cErrorBuffer );
-
- /* Set up a filter so only the packets of interest are passed to the uIP
- stack. cErrorBuffer is used for convenience to create the string. Don't
- confuse this with an error message. */
- sprintf( cErrorBuffer, "broadcast or multicast or host %d.%d.%d.%d", configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 );
-
- ulNetMask = ( configNET_MASK3 << 24UL ) | ( configNET_MASK2 << 16UL ) | ( configNET_MASK1 << 8L ) | configNET_MASK0;
-
- if( pcap_compile(pxOpenedInterfaceHandle, &xFilterCode, cErrorBuffer, 1, ulNetMask ) < 0 )
- {
- printf("\r\nThe packet filter string is invalid\r\n" );
- }
- else
- {
- if( pcap_setfilter( pxOpenedInterfaceHandle, &xFilterCode ) < 0 )
- {
- printf( "\r\nAn error occurred setting the packet filter.\r\n" );
- }
- }
-
- /* Create a task that simulates an interrupt in a real system. This will
- block waiting for packets, then send a message to the uIP task when data
- is available. */
- xTaskCreate( prvInterruptSimulator, ( signed char * ) "MAC_ISR", configMINIMAL_STACK_SIZE, NULL, ( configuIP_TASK_PRIORITY - 1 ), NULL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvInterruptSimulator( void *pvParameters )
-{
-static struct pcap_pkthdr *pxHeader;
-const unsigned char *pucPacketData;
-extern QueueHandle_t xEMACEventQueue;
-const unsigned long ulRxEvent = uipETHERNET_RX_EVENT;
-long lResult;
-
- /* Just to kill the compiler warning. */
- ( void ) pvParameters;
-
- for( ;; )
- {
- /* Get the next packet. */
- lResult = pcap_next_ex( pxOpenedInterfaceHandle, &pxHeader, &pucPacketData );
- if( lResult )
- {
- /* Is the next buffer into which data should be placed free? */
- if( lLengthOfDataInBuffer[ ucNextBufferToFill ] == 0L )
- {
- /* Copy the data from the captured packet into the buffer. */
- memcpy( pucEthernetBufferPointers[ ucNextBufferToFill ], pucPacketData, pxHeader->len );
-
- /* Note the amount of data that was copied. */
- lLengthOfDataInBuffer[ ucNextBufferToFill ] = pxHeader->len;
-
- /* Move onto the next buffer, wrapping around if necessary. */
- ucNextBufferToFill++;
- if( ucNextBufferToFill >= archNUM_BUFFER_POINTERS )
- {
- ucNextBufferToFill = 0U;
- }
-
- /* Data was received and stored. Send a message to the uIP task
- to let it know. */
- xQueueSendToBack( xEMACEventQueue, &ulRxEvent, portMAX_DELAY );
- }
- }
- }
-}
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/ip6_misc.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/ip6_misc.h
deleted file mode 100644
index 562fa6184e7..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/ip6_misc.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 1993, 1994, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- * the University nor the names of its contributors may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/Win32/Include/ip6_misc.h,v 1.5 2006-01-22 18:02:18 gianluca Exp $ (LBL)
- */
-
-/*
- * This file contains a collage of declarations for IPv6 from FreeBSD not present in Windows
- */
-
-#include
-
-#include
-
-#ifndef __MINGW32__
-#define IN_MULTICAST(a) IN_CLASSD(a)
-#endif
-
-#define IN_EXPERIMENTAL(a) ((((u_int32_t) (a)) & 0xf0000000) == 0xf0000000)
-
-#define IN_LOOPBACKNET 127
-
-#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
-/* IPv6 address */
-struct in6_addr
- {
- union
- {
- u_int8_t u6_addr8[16];
- u_int16_t u6_addr16[8];
- u_int32_t u6_addr32[4];
- } in6_u;
-#define s6_addr in6_u.u6_addr8
-#define s6_addr16 in6_u.u6_addr16
-#define s6_addr32 in6_u.u6_addr32
-#define s6_addr64 in6_u.u6_addr64
- };
-
-#define IN6ADDR_ANY_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
-#define IN6ADDR_LOOPBACK_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }
-#endif /* __MINGW32__ */
-
-
-#if (defined _MSC_VER) || (defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF))
-typedef unsigned short sa_family_t;
-#endif
-
-
-#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
-
-#define __SOCKADDR_COMMON(sa_prefix) \
- sa_family_t sa_prefix##family
-
-/* Ditto, for IPv6. */
-struct sockaddr_in6
- {
- __SOCKADDR_COMMON (sin6_);
- u_int16_t sin6_port; /* Transport layer port # */
- u_int32_t sin6_flowinfo; /* IPv6 flow information */
- struct in6_addr sin6_addr; /* IPv6 address */
- };
-
-#define IN6_IS_ADDR_V4MAPPED(a) \
- ((((u_int32_t *) (a))[0] == 0) && (((u_int32_t *) (a))[1] == 0) && \
- (((u_int32_t *) (a))[2] == htonl (0xffff)))
-
-#define IN6_IS_ADDR_MULTICAST(a) (((u_int8_t *) (a))[0] == 0xff)
-
-#define IN6_IS_ADDR_LINKLOCAL(a) \
- ((((u_int32_t *) (a))[0] & htonl (0xffc00000)) == htonl (0xfe800000))
-
-#define IN6_IS_ADDR_LOOPBACK(a) \
- (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \
- ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1))
-#endif /* __MINGW32__ */
-
-#define ip6_vfc ip6_ctlun.ip6_un2_vfc
-#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
-#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
-#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-#define nd_rd_type nd_rd_hdr.icmp6_type
-#define nd_rd_code nd_rd_hdr.icmp6_code
-#define nd_rd_cksum nd_rd_hdr.icmp6_cksum
-#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]
-
-/*
- * IPV6 extension headers
- */
-#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
-#define IPPROTO_IPV6 41 /* IPv6 header. */
-#define IPPROTO_ROUTING 43 /* IPv6 routing header */
-#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
-#define IPPROTO_ESP 50 /* encapsulating security payload */
-#define IPPROTO_AH 51 /* authentication header */
-#define IPPROTO_ICMPV6 58 /* ICMPv6 */
-#define IPPROTO_NONE 59 /* IPv6 no next header */
-#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
-#define IPPROTO_PIM 103 /* Protocol Independent Multicast. */
-
-#define IPV6_RTHDR_TYPE_0 0
-
-/* Option types and related macros */
-#define IP6OPT_PAD1 0x00 /* 00 0 00000 */
-#define IP6OPT_PADN 0x01 /* 00 0 00001 */
-#define IP6OPT_JUMBO 0xC2 /* 11 0 00010 = 194 */
-#define IP6OPT_JUMBO_LEN 6
-#define IP6OPT_ROUTER_ALERT 0x05 /* 00 0 00101 */
-
-#define IP6OPT_RTALERT_LEN 4
-#define IP6OPT_RTALERT_MLD 0 /* Datagram contains an MLD message */
-#define IP6OPT_RTALERT_RSVP 1 /* Datagram contains an RSVP message */
-#define IP6OPT_RTALERT_ACTNET 2 /* contains an Active Networks msg */
-#define IP6OPT_MINLEN 2
-
-#define IP6OPT_BINDING_UPDATE 0xc6 /* 11 0 00110 */
-#define IP6OPT_BINDING_ACK 0x07 /* 00 0 00111 */
-#define IP6OPT_BINDING_REQ 0x08 /* 00 0 01000 */
-#define IP6OPT_HOME_ADDRESS 0xc9 /* 11 0 01001 */
-#define IP6OPT_EID 0x8a /* 10 0 01010 */
-
-#define IP6OPT_TYPE(o) ((o) & 0xC0)
-#define IP6OPT_TYPE_SKIP 0x00
-#define IP6OPT_TYPE_DISCARD 0x40
-#define IP6OPT_TYPE_FORCEICMP 0x80
-#define IP6OPT_TYPE_ICMP 0xC0
-
-#define IP6OPT_MUTABLE 0x20
-
-
-#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
-#ifndef EAI_ADDRFAMILY
-struct addrinfo {
- int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
- int ai_family; /* PF_xxx */
- int ai_socktype; /* SOCK_xxx */
- int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
- size_t ai_addrlen; /* length of ai_addr */
- char *ai_canonname; /* canonical name for hostname */
- struct sockaddr *ai_addr; /* binary address */
- struct addrinfo *ai_next; /* next structure in linked list */
-};
-#endif
-#endif /* __MINGW32__ */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/netif.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/netif.h
deleted file mode 100644
index 4d265348e1b..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/netif.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-#ifndef NET_IF_H
-#define NET_IF_H
-
-/*
- * Send uip_len bytes from uip_buf to the network interface selected by the
- * configNETWORK_INTERFACE_TO_USE constant (defined in FreeRTOSConfig.h).
- */
-void vNetifTx( void );
-
-/*
- * Receive bytes from the network interface selected by the
- * configNETWORK_INTERFACE_TO_USE constant (defined in FreeRTOSConfig.h). The
- * bytes are placed in uip_buf. The number of bytes copied into uip_buf is
- * returned.
- */
-UBaseType_t uxNetifRx( void );
-
-/*
- * Prepare a packet capture session. This will print out all the network
- * interfaces available, and the one actually used is set by the
- * configNETWORK_INTERFACE_TO_USE constant that is defined in
- * FreeRTOSConfig.h. */
-BaseType_t xNetifInit( void );
-
-#endif /* NET_IF_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-bpf.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-bpf.h
deleted file mode 100644
index 5fe129dbb49..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-bpf.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from the Stanford/CMU enet packet filter,
- * (net/enet.c) distributed as part of 4.3BSD, and code contributed
- * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
- * Berkeley Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap-bpf.h,v 1.50 2007/04/01 21:43:55 guy Exp $ (LBL)
- */
-
-/*
- * For backwards compatibility.
- *
- * Note to OS vendors: do NOT get rid of this file! Some applications
- * might expect to be able to include .
- */
-#include
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-namedb.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-namedb.h
deleted file mode 100644
index 80a2f004012..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-namedb.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 1994, 1996
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Computer Systems
- * Engineering Group at Lawrence Berkeley Laboratory.
- * 4. Neither the name of the University nor of the Laboratory may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap-namedb.h,v 1.13 2006/10/04 18:13:32 guy Exp $ (LBL)
- */
-
-/*
- * For backwards compatibility.
- *
- * Note to OS vendors: do NOT get rid of this file! Some applications
- * might expect to be able to include .
- */
-#include
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-stdinc.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-stdinc.h
deleted file mode 100644
index cbd62d169e0..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap-stdinc.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2002 - 2005 NetGroup, Politecnico di Torino (Italy)
- * Copyright (c) 2005 - 2009 CACE Technologies, Inc. Davis (California)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Politecnico di Torino nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap-stdinc.h,v 1.10.2.1 2008-10-06 15:38:39 gianluca Exp $ (LBL)
- */
-
-#define SIZEOF_CHAR 1
-#define SIZEOF_SHORT 2
-#define SIZEOF_INT 4
-#ifndef _MSC_EXTENSIONS
-#define SIZEOF_LONG_LONG 8
-#endif
-
-/*
- * Avoids a compiler warning in case this was already defined
- * (someone defined _WINSOCKAPI_ when including 'windows.h', in order
- * to prevent it from including 'winsock.h')
- */
-#ifdef _WINSOCKAPI_
-#undef _WINSOCKAPI_
-#endif
-#include
-
-#include
-
-#include "bittypes.h"
-#include
-#include
-
-#ifndef __MINGW32__
-#include "IP6_misc.h"
-#endif
-
-#define caddr_t char*
-
-#if _MSC_VER < 1500
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#define strdup _strdup
-#endif
-
-#define inline __inline
-
-#ifdef __MINGW32__
-#include
-#else /*__MINGW32__*/
-/* MSVC compiler */
-#ifndef _UINTPTR_T_DEFINED
-#ifdef _WIN64
-typedef unsigned __int64 uintptr_t;
-#else
-typedef _W64 unsigned int uintptr_t;
-#endif
-#define _UINTPTR_T_DEFINED
-#endif
-
-#ifndef _INTPTR_T_DEFINED
-#ifdef _WIN64
-typedef __int64 intptr_t;
-#else
-typedef _W64 int intptr_t;
-#endif
-#define _INTPTR_T_DEFINED
-#endif
-
-#endif /*__MINGW32__*/
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap.h
deleted file mode 100644
index 935f9494c10..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1993, 1994, 1995, 1996, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Computer Systems
- * Engineering Group at Lawrence Berkeley Laboratory.
- * 4. Neither the name of the University nor of the Laboratory may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.59 2006/10/04 18:09:22 guy Exp $ (LBL)
- */
-
-/*
- * For backwards compatibility.
- *
- * Note to OS vendors: do NOT get rid of this file! Many applications
- * expect to be able to include , and at least some of them
- * go through contortions in their configure scripts to try to detect
- * OSes that have "helpfully" moved pcap.h to without
- * leaving behind a file.
- */
-#include
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/bluetooth.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/bluetooth.h
deleted file mode 100644
index 7bf65df034f..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/bluetooth.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2006 Paolo Abeni (Italy)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * bluetooth data struct
- * By Paolo Abeni
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/bluetooth.h,v 1.1 2007/09/22 02:10:17 guy Exp $
- */
-
-#ifndef _PCAP_BLUETOOTH_STRUCTS_H__
-#define _PCAP_BLUETOOTH_STRUCTS_H__
-
-/*
- * Header prepended libpcap to each bluetooth h:4 frame.
- * fields are in network byte order
- */
-typedef struct _pcap_bluetooth_h4_header {
- u_int32_t direction; /* if first bit is set direction is incoming */
-} pcap_bluetooth_h4_header;
-
-
-#endif
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/bpf.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/bpf.h
deleted file mode 100644
index 9f4ca33e350..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/bpf.h
+++ /dev/null
@@ -1,934 +0,0 @@
-/*-
- * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from the Stanford/CMU enet packet filter,
- * (net/enet.c) distributed as part of 4.3BSD, and code contributed
- * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
- * Berkeley Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)bpf.h 7.1 (Berkeley) 5/7/91
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/bpf.h,v 1.19.2.8 2008-09-22 20:16:01 guy Exp $ (LBL)
- */
-
-/*
- * This is libpcap's cut-down version of bpf.h; it includes only
- * the stuff needed for the code generator and the userland BPF
- * interpreter, and the libpcap APIs for setting filters, etc..
- *
- * "pcap-bpf.c" will include the native OS version, as it deals with
- * the OS's BPF implementation.
- *
- * XXX - should this all just be moved to "pcap.h"?
- */
-
-#ifndef BPF_MAJOR_VERSION
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* BSD style release date */
-#define BPF_RELEASE 199606
-
-#ifdef MSDOS /* must be 32-bit */
-typedef long bpf_int32;
-typedef unsigned long bpf_u_int32;
-#else
-typedef int bpf_int32;
-typedef u_int bpf_u_int32;
-#endif
-
-/*
- * Alignment macros. BPF_WORDALIGN rounds up to the next
- * even multiple of BPF_ALIGNMENT.
- */
-#ifndef __NetBSD__
-#define BPF_ALIGNMENT sizeof(bpf_int32)
-#else
-#define BPF_ALIGNMENT sizeof(long)
-#endif
-#define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1))
-
-#define BPF_MAXBUFSIZE 0x8000
-#define BPF_MINBUFSIZE 32
-
-/*
- * Structure for "pcap_compile()", "pcap_setfilter()", etc..
- */
-struct bpf_program {
- u_int bf_len;
- struct bpf_insn *bf_insns;
-};
-
-/*
- * Struct return by BIOCVERSION. This represents the version number of
- * the filter language described by the instruction encodings below.
- * bpf understands a program iff kernel_major == filter_major &&
- * kernel_minor >= filter_minor, that is, if the value returned by the
- * running kernel has the same major number and a minor number equal
- * equal to or less than the filter being downloaded. Otherwise, the
- * results are undefined, meaning an error may be returned or packets
- * may be accepted haphazardly.
- * It has nothing to do with the source code version.
- */
-struct bpf_version {
- u_short bv_major;
- u_short bv_minor;
-};
-/* Current version number of filter architecture. */
-#define BPF_MAJOR_VERSION 1
-#define BPF_MINOR_VERSION 1
-
-/*
- * Data-link level type codes.
- *
- * Do *NOT* add new values to this list without asking
- * "tcpdump-workers@lists.tcpdump.org" for a value. Otherwise, you run
- * the risk of using a value that's already being used for some other
- * purpose, and of having tools that read libpcap-format captures not
- * being able to handle captures with your new DLT_ value, with no hope
- * that they will ever be changed to do so (as that would destroy their
- * ability to read captures using that value for that other purpose).
- */
-
-/*
- * These are the types that are the same on all platforms, and that
- * have been defined by for ages.
- */
-#define DLT_NULL 0 /* BSD loopback encapsulation */
-#define DLT_EN10MB 1 /* Ethernet (10Mb) */
-#define DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */
-#define DLT_AX25 3 /* Amateur Radio AX.25 */
-#define DLT_PRONET 4 /* Proteon ProNET Token Ring */
-#define DLT_CHAOS 5 /* Chaos */
-#define DLT_IEEE802 6 /* 802.5 Token Ring */
-#define DLT_ARCNET 7 /* ARCNET, with BSD-style header */
-#define DLT_SLIP 8 /* Serial Line IP */
-#define DLT_PPP 9 /* Point-to-point Protocol */
-#define DLT_FDDI 10 /* FDDI */
-
-/*
- * These are types that are different on some platforms, and that
- * have been defined by for ages. We use #ifdefs to
- * detect the BSDs that define them differently from the traditional
- * libpcap
- *
- * XXX - DLT_ATM_RFC1483 is 13 in BSD/OS, and DLT_RAW is 14 in BSD/OS,
- * but I don't know what the right #define is for BSD/OS.
- */
-#define DLT_ATM_RFC1483 11 /* LLC-encapsulated ATM */
-
-#ifdef __OpenBSD__
-#define DLT_RAW 14 /* raw IP */
-#else
-#define DLT_RAW 12 /* raw IP */
-#endif
-
-/*
- * Given that the only OS that currently generates BSD/OS SLIP or PPP
- * is, well, BSD/OS, arguably everybody should have chosen its values
- * for DLT_SLIP_BSDOS and DLT_PPP_BSDOS, which are 15 and 16, but they
- * didn't. So it goes.
- */
-#if defined(__NetBSD__) || defined(__FreeBSD__)
-#ifndef DLT_SLIP_BSDOS
-#define DLT_SLIP_BSDOS 13 /* BSD/OS Serial Line IP */
-#define DLT_PPP_BSDOS 14 /* BSD/OS Point-to-point Protocol */
-#endif
-#else
-#define DLT_SLIP_BSDOS 15 /* BSD/OS Serial Line IP */
-#define DLT_PPP_BSDOS 16 /* BSD/OS Point-to-point Protocol */
-#endif
-
-/*
- * 17 is used for DLT_OLD_PFLOG in OpenBSD;
- * OBSOLETE: DLT_PFLOG is 117 in OpenBSD now as well. See below.
- * 18 is used for DLT_PFSYNC in OpenBSD; don't use it for anything else.
- */
-
-#define DLT_ATM_CLIP 19 /* Linux Classical-IP over ATM */
-
-/*
- * Apparently Redback uses this for its SmartEdge 400/800. I hope
- * nobody else decided to use it, too.
- */
-#define DLT_REDBACK_SMARTEDGE 32
-
-/*
- * These values are defined by NetBSD; other platforms should refrain from
- * using them for other purposes, so that NetBSD savefiles with link
- * types of 50 or 51 can be read as this type on all platforms.
- */
-#define DLT_PPP_SERIAL 50 /* PPP over serial with HDLC encapsulation */
-#define DLT_PPP_ETHER 51 /* PPP over Ethernet */
-
-/*
- * The Axent Raptor firewall - now the Symantec Enterprise Firewall - uses
- * a link-layer type of 99 for the tcpdump it supplies. The link-layer
- * header has 6 bytes of unknown data, something that appears to be an
- * Ethernet type, and 36 bytes that appear to be 0 in at least one capture
- * I've seen.
- */
-#define DLT_SYMANTEC_FIREWALL 99
-
-/*
- * Values between 100 and 103 are used in capture file headers as
- * link-layer types corresponding to DLT_ types that differ
- * between platforms; don't use those values for new DLT_ new types.
- */
-
-/*
- * This value was defined by libpcap 0.5; platforms that have defined
- * it with a different value should define it here with that value -
- * a link type of 104 in a save file will be mapped to DLT_C_HDLC,
- * whatever value that happens to be, so programs will correctly
- * handle files with that link type regardless of the value of
- * DLT_C_HDLC.
- *
- * The name DLT_C_HDLC was used by BSD/OS; we use that name for source
- * compatibility with programs written for BSD/OS.
- *
- * libpcap 0.5 defined it as DLT_CHDLC; we define DLT_CHDLC as well,
- * for source compatibility with programs written for libpcap 0.5.
- */
-#define DLT_C_HDLC 104 /* Cisco HDLC */
-#define DLT_CHDLC DLT_C_HDLC
-
-#define DLT_IEEE802_11 105 /* IEEE 802.11 wireless */
-
-/*
- * 106 is reserved for Linux Classical IP over ATM; it's like DLT_RAW,
- * except when it isn't. (I.e., sometimes it's just raw IP, and
- * sometimes it isn't.) We currently handle it as DLT_LINUX_SLL,
- * so that we don't have to worry about the link-layer header.)
- */
-
-/*
- * Frame Relay; BSD/OS has a DLT_FR with a value of 11, but that collides
- * with other values.
- * DLT_FR and DLT_FRELAY packets start with the Q.922 Frame Relay header
- * (DLCI, etc.).
- */
-#define DLT_FRELAY 107
-
-/*
- * OpenBSD DLT_LOOP, for loopback devices; it's like DLT_NULL, except
- * that the AF_ type in the link-layer header is in network byte order.
- *
- * DLT_LOOP is 12 in OpenBSD, but that's DLT_RAW in other OSes, so
- * we don't use 12 for it in OSes other than OpenBSD.
- */
-#ifdef __OpenBSD__
-#define DLT_LOOP 12
-#else
-#define DLT_LOOP 108
-#endif
-
-/*
- * Encapsulated packets for IPsec; DLT_ENC is 13 in OpenBSD, but that's
- * DLT_SLIP_BSDOS in NetBSD, so we don't use 13 for it in OSes other
- * than OpenBSD.
- */
-#ifdef __OpenBSD__
-#define DLT_ENC 13
-#else
-#define DLT_ENC 109
-#endif
-
-/*
- * Values between 110 and 112 are reserved for use in capture file headers
- * as link-layer types corresponding to DLT_ types that might differ
- * between platforms; don't use those values for new DLT_ types
- * other than the corresponding DLT_ types.
- */
-
-/*
- * This is for Linux cooked sockets.
- */
-#define DLT_LINUX_SLL 113
-
-/*
- * Apple LocalTalk hardware.
- */
-#define DLT_LTALK 114
-
-/*
- * Acorn Econet.
- */
-#define DLT_ECONET 115
-
-/*
- * Reserved for use with OpenBSD ipfilter.
- */
-#define DLT_IPFILTER 116
-
-/*
- * OpenBSD DLT_PFLOG; DLT_PFLOG is 17 in OpenBSD, but that's DLT_LANE8023
- * in SuSE 6.3, so we can't use 17 for it in capture-file headers.
- *
- * XXX: is there a conflict with DLT_PFSYNC 18 as well?
- */
-#ifdef __OpenBSD__
-#define DLT_OLD_PFLOG 17
-#define DLT_PFSYNC 18
-#endif
-#define DLT_PFLOG 117
-
-/*
- * Registered for Cisco-internal use.
- */
-#define DLT_CISCO_IOS 118
-
-/*
- * For 802.11 cards using the Prism II chips, with a link-layer
- * header including Prism monitor mode information plus an 802.11
- * header.
- */
-#define DLT_PRISM_HEADER 119
-
-/*
- * Reserved for Aironet 802.11 cards, with an Aironet link-layer header
- * (see Doug Ambrisko's FreeBSD patches).
- */
-#define DLT_AIRONET_HEADER 120
-
-/*
- * Reserved for Siemens HiPath HDLC.
- */
-#define DLT_HHDLC 121
-
-/*
- * This is for RFC 2625 IP-over-Fibre Channel.
- *
- * This is not for use with raw Fibre Channel, where the link-layer
- * header starts with a Fibre Channel frame header; it's for IP-over-FC,
- * where the link-layer header starts with an RFC 2625 Network_Header
- * field.
- */
-#define DLT_IP_OVER_FC 122
-
-/*
- * This is for Full Frontal ATM on Solaris with SunATM, with a
- * pseudo-header followed by an AALn PDU.
- *
- * There may be other forms of Full Frontal ATM on other OSes,
- * with different pseudo-headers.
- *
- * If ATM software returns a pseudo-header with VPI/VCI information
- * (and, ideally, packet type information, e.g. signalling, ILMI,
- * LANE, LLC-multiplexed traffic, etc.), it should not use
- * DLT_ATM_RFC1483, but should get a new DLT_ value, so tcpdump
- * and the like don't have to infer the presence or absence of a
- * pseudo-header and the form of the pseudo-header.
- */
-#define DLT_SUNATM 123 /* Solaris+SunATM */
-
-/*
- * Reserved as per request from Kent Dahlgren
- * for private use.
- */
-#define DLT_RIO 124 /* RapidIO */
-#define DLT_PCI_EXP 125 /* PCI Express */
-#define DLT_AURORA 126 /* Xilinx Aurora link layer */
-
-/*
- * Header for 802.11 plus a number of bits of link-layer information
- * including radio information, used by some recent BSD drivers as
- * well as the madwifi Atheros driver for Linux.
- */
-#define DLT_IEEE802_11_RADIO 127 /* 802.11 plus radiotap radio header */
-
-/*
- * Reserved for the TZSP encapsulation, as per request from
- * Chris Waters
- * TZSP is a generic encapsulation for any other link type,
- * which includes a means to include meta-information
- * with the packet, e.g. signal strength and channel
- * for 802.11 packets.
- */
-#define DLT_TZSP 128 /* Tazmen Sniffer Protocol */
-
-/*
- * BSD's ARCNET headers have the source host, destination host,
- * and type at the beginning of the packet; that's what's handed
- * up to userland via BPF.
- *
- * Linux's ARCNET headers, however, have a 2-byte offset field
- * between the host IDs and the type; that's what's handed up
- * to userland via PF_PACKET sockets.
- *
- * We therefore have to have separate DLT_ values for them.
- */
-#define DLT_ARCNET_LINUX 129 /* ARCNET */
-
-/*
- * Juniper-private data link types, as per request from
- * Hannes Gredler . The DLT_s are used
- * for passing on chassis-internal metainformation such as
- * QOS profiles, etc..
- */
-#define DLT_JUNIPER_MLPPP 130
-#define DLT_JUNIPER_MLFR 131
-#define DLT_JUNIPER_ES 132
-#define DLT_JUNIPER_GGSN 133
-#define DLT_JUNIPER_MFR 134
-#define DLT_JUNIPER_ATM2 135
-#define DLT_JUNIPER_SERVICES 136
-#define DLT_JUNIPER_ATM1 137
-
-/*
- * Apple IP-over-IEEE 1394, as per a request from Dieter Siegmund
- * . The header that's presented is an Ethernet-like
- * header:
- *
- * #define FIREWIRE_EUI64_LEN 8
- * struct firewire_header {
- * u_char firewire_dhost[FIREWIRE_EUI64_LEN];
- * u_char firewire_shost[FIREWIRE_EUI64_LEN];
- * u_short firewire_type;
- * };
- *
- * with "firewire_type" being an Ethernet type value, rather than,
- * for example, raw GASP frames being handed up.
- */
-#define DLT_APPLE_IP_OVER_IEEE1394 138
-
-/*
- * Various SS7 encapsulations, as per a request from Jeff Morriss
- * and subsequent discussions.
- */
-#define DLT_MTP2_WITH_PHDR 139 /* pseudo-header with various info, followed by MTP2 */
-#define DLT_MTP2 140 /* MTP2, without pseudo-header */
-#define DLT_MTP3 141 /* MTP3, without pseudo-header or MTP2 */
-#define DLT_SCCP 142 /* SCCP, without pseudo-header or MTP2 or MTP3 */
-
-/*
- * DOCSIS MAC frames.
- */
-#define DLT_DOCSIS 143
-
-/*
- * Linux-IrDA packets. Protocol defined at http://www.irda.org.
- * Those packets include IrLAP headers and above (IrLMP...), but
- * don't include Phy framing (SOF/EOF/CRC & byte stuffing), because Phy
- * framing can be handled by the hardware and depend on the bitrate.
- * This is exactly the format you would get capturing on a Linux-IrDA
- * interface (irdaX), but not on a raw serial port.
- * Note the capture is done in "Linux-cooked" mode, so each packet include
- * a fake packet header (struct sll_header). This is because IrDA packet
- * decoding is dependant on the direction of the packet (incomming or
- * outgoing).
- * When/if other platform implement IrDA capture, we may revisit the
- * issue and define a real DLT_IRDA...
- * Jean II
- */
-#define DLT_LINUX_IRDA 144
-
-/*
- * Reserved for IBM SP switch and IBM Next Federation switch.
- */
-#define DLT_IBM_SP 145
-#define DLT_IBM_SN 146
-
-/*
- * Reserved for private use. If you have some link-layer header type
- * that you want to use within your organization, with the capture files
- * using that link-layer header type not ever be sent outside your
- * organization, you can use these values.
- *
- * No libpcap release will use these for any purpose, nor will any
- * tcpdump release use them, either.
- *
- * Do *NOT* use these in capture files that you expect anybody not using
- * your private versions of capture-file-reading tools to read; in
- * particular, do *NOT* use them in products, otherwise you may find that
- * people won't be able to use tcpdump, or snort, or Ethereal, or... to
- * read capture files from your firewall/intrusion detection/traffic
- * monitoring/etc. appliance, or whatever product uses that DLT_ value,
- * and you may also find that the developers of those applications will
- * not accept patches to let them read those files.
- *
- * Also, do not use them if somebody might send you a capture using them
- * for *their* private type and tools using them for *your* private type
- * would have to read them.
- *
- * Instead, ask "tcpdump-workers@lists.tcpdump.org" for a new DLT_ value,
- * as per the comment above, and use the type you're given.
- */
-#define DLT_USER0 147
-#define DLT_USER1 148
-#define DLT_USER2 149
-#define DLT_USER3 150
-#define DLT_USER4 151
-#define DLT_USER5 152
-#define DLT_USER6 153
-#define DLT_USER7 154
-#define DLT_USER8 155
-#define DLT_USER9 156
-#define DLT_USER10 157
-#define DLT_USER11 158
-#define DLT_USER12 159
-#define DLT_USER13 160
-#define DLT_USER14 161
-#define DLT_USER15 162
-
-/*
- * For future use with 802.11 captures - defined by AbsoluteValue
- * Systems to store a number of bits of link-layer information
- * including radio information:
- *
- * http://www.shaftnet.org/~pizza/software/capturefrm.txt
- *
- * but it might be used by some non-AVS drivers now or in the
- * future.
- */
-#define DLT_IEEE802_11_RADIO_AVS 163 /* 802.11 plus AVS radio header */
-
-/*
- * Juniper-private data link type, as per request from
- * Hannes Gredler . The DLT_s are used
- * for passing on chassis-internal metainformation such as
- * QOS profiles, etc..
- */
-#define DLT_JUNIPER_MONITOR 164
-
-/*
- * Reserved for BACnet MS/TP.
- */
-#define DLT_BACNET_MS_TP 165
-
-/*
- * Another PPP variant as per request from Karsten Keil .
- *
- * This is used in some OSes to allow a kernel socket filter to distinguish
- * between incoming and outgoing packets, on a socket intended to
- * supply pppd with outgoing packets so it can do dial-on-demand and
- * hangup-on-lack-of-demand; incoming packets are filtered out so they
- * don't cause pppd to hold the connection up (you don't want random
- * input packets such as port scans, packets from old lost connections,
- * etc. to force the connection to stay up).
- *
- * The first byte of the PPP header (0xff03) is modified to accomodate
- * the direction - 0x00 = IN, 0x01 = OUT.
- */
-#define DLT_PPP_PPPD 166
-
-/*
- * Names for backwards compatibility with older versions of some PPP
- * software; new software should use DLT_PPP_PPPD.
- */
-#define DLT_PPP_WITH_DIRECTION DLT_PPP_PPPD
-#define DLT_LINUX_PPP_WITHDIRECTION DLT_PPP_PPPD
-
-/*
- * Juniper-private data link type, as per request from
- * Hannes Gredler . The DLT_s are used
- * for passing on chassis-internal metainformation such as
- * QOS profiles, cookies, etc..
- */
-#define DLT_JUNIPER_PPPOE 167
-#define DLT_JUNIPER_PPPOE_ATM 168
-
-#define DLT_GPRS_LLC 169 /* GPRS LLC */
-#define DLT_GPF_T 170 /* GPF-T (ITU-T G.7041/Y.1303) */
-#define DLT_GPF_F 171 /* GPF-F (ITU-T G.7041/Y.1303) */
-
-/*
- * Requested by Oolan Zimmer for use in Gcom's T1/E1 line
- * monitoring equipment.
- */
-#define DLT_GCOM_T1E1 172
-#define DLT_GCOM_SERIAL 173
-
-/*
- * Juniper-private data link type, as per request from
- * Hannes Gredler . The DLT_ is used
- * for internal communication to Physical Interface Cards (PIC)
- */
-#define DLT_JUNIPER_PIC_PEER 174
-
-/*
- * Link types requested by Gregor Maier of Endace
- * Measurement Systems. They add an ERF header (see
- * http://www.endace.com/support/EndaceRecordFormat.pdf) in front of
- * the link-layer header.
- */
-#define DLT_ERF_ETH 175 /* Ethernet */
-#define DLT_ERF_POS 176 /* Packet-over-SONET */
-
-/*
- * Requested by Daniele Orlandi for raw LAPD
- * for vISDN (http://www.orlandi.com/visdn/). Its link-layer header
- * includes additional information before the LAPD header, so it's
- * not necessarily a generic LAPD header.
- */
-#define DLT_LINUX_LAPD 177
-
-/*
- * Juniper-private data link type, as per request from
- * Hannes Gredler .
- * The DLT_ are used for prepending meta-information
- * like interface index, interface name
- * before standard Ethernet, PPP, Frelay & C-HDLC Frames
- */
-#define DLT_JUNIPER_ETHER 178
-#define DLT_JUNIPER_PPP 179
-#define DLT_JUNIPER_FRELAY 180
-#define DLT_JUNIPER_CHDLC 181
-
-/*
- * Multi Link Frame Relay (FRF.16)
- */
-#define DLT_MFR 182
-
-/*
- * Juniper-private data link type, as per request from
- * Hannes Gredler .
- * The DLT_ is used for internal communication with a
- * voice Adapter Card (PIC)
- */
-#define DLT_JUNIPER_VP 183
-
-/*
- * Arinc 429 frames.
- * DLT_ requested by Gianluca Varenni .
- * Every frame contains a 32bit A429 label.
- * More documentation on Arinc 429 can be found at
- * http://www.condoreng.com/support/downloads/tutorials/ARINCTutorial.pdf
- */
-#define DLT_A429 184
-
-/*
- * Arinc 653 Interpartition Communication messages.
- * DLT_ requested by Gianluca Varenni .
- * Please refer to the A653-1 standard for more information.
- */
-#define DLT_A653_ICM 185
-
-/*
- * USB packets, beginning with a USB setup header; requested by
- * Paolo Abeni .
- */
-#define DLT_USB 186
-
-/*
- * Bluetooth HCI UART transport layer (part H:4); requested by
- * Paolo Abeni.
- */
-#define DLT_BLUETOOTH_HCI_H4 187
-
-/*
- * IEEE 802.16 MAC Common Part Sublayer; requested by Maria Cruz
- * .
- */
-#define DLT_IEEE802_16_MAC_CPS 188
-
-/*
- * USB packets, beginning with a Linux USB header; requested by
- * Paolo Abeni .
- */
-#define DLT_USB_LINUX 189
-
-/*
- * Controller Area Network (CAN) v. 2.0B packets.
- * DLT_ requested by Gianluca Varenni .
- * Used to dump CAN packets coming from a CAN Vector board.
- * More documentation on the CAN v2.0B frames can be found at
- * http://www.can-cia.org/downloads/?269
- */
-#define DLT_CAN20B 190
-
-/*
- * IEEE 802.15.4, with address fields padded, as is done by Linux
- * drivers; requested by Juergen Schimmer.
- */
-#define DLT_IEEE802_15_4_LINUX 191
-
-/*
- * Per Packet Information encapsulated packets.
- * DLT_ requested by Gianluca Varenni .
- */
-#define DLT_PPI 192
-
-/*
- * Header for 802.16 MAC Common Part Sublayer plus a radiotap radio header;
- * requested by Charles Clancy.
- */
-#define DLT_IEEE802_16_MAC_CPS_RADIO 193
-
-/*
- * Juniper-private data link type, as per request from
- * Hannes Gredler .
- * The DLT_ is used for internal communication with a
- * integrated service module (ISM).
- */
-#define DLT_JUNIPER_ISM 194
-
-/*
- * IEEE 802.15.4, exactly as it appears in the spec (no padding, no
- * nothing); requested by Mikko Saarnivala .
- */
-#define DLT_IEEE802_15_4 195
-
-/*
- * Various link-layer types, with a pseudo-header, for SITA
- * (http://www.sita.aero/); requested by Fulko Hew (fulko.hew@gmail.com).
- */
-#define DLT_SITA 196
-
-/*
- * Various link-layer types, with a pseudo-header, for Endace DAG cards;
- * encapsulates Endace ERF records. Requested by Stephen Donnelly
- * .
- */
-#define DLT_ERF 197
-
-/*
- * Special header prepended to Ethernet packets when capturing from a
- * u10 Networks board. Requested by Phil Mulholland
- * .
- */
-#define DLT_RAIF1 198
-
-/*
- * IPMB packet for IPMI, beginning with the I2C slave address, followed
- * by the netFn and LUN, etc.. Requested by Chanthy Toeung
- * .
- */
-#define DLT_IPMB 199
-
-/*
- * Juniper-private data link type, as per request from
- * Hannes Gredler .
- * The DLT_ is used for capturing data on a secure tunnel interface.
- */
-#define DLT_JUNIPER_ST 200
-
-/*
- * Bluetooth HCI UART transport layer (part H:4), with pseudo-header
- * that includes direction information; requested by Paolo Abeni.
- */
-#define DLT_BLUETOOTH_HCI_H4_WITH_PHDR 201
-
-/*
- * AX.25 packet with a 1-byte KISS header; see
- *
- * http://www.ax25.net/kiss.htm
- *
- * as per Richard Stearn .
- */
-#define DLT_AX25_KISS 202
-
-/*
- * LAPD packets from an ISDN channel, starting with the address field,
- * with no pseudo-header.
- * Requested by Varuna De Silva .
- */
-#define DLT_LAPD 203
-
-/*
- * Variants of various link-layer headers, with a one-byte direction
- * pseudo-header prepended - zero means "received by this host",
- * non-zero (any non-zero value) means "sent by this host" - as per
- * Will Barker .
- */
-#define DLT_PPP_WITH_DIR 204 /* PPP - don't confuse with DLT_PPP_WITH_DIRECTION */
-#define DLT_C_HDLC_WITH_DIR 205 /* Cisco HDLC */
-#define DLT_FRELAY_WITH_DIR 206 /* Frame Relay */
-#define DLT_LAPB_WITH_DIR 207 /* LAPB */
-
-/*
- * 208 is reserved for an as-yet-unspecified proprietary link-layer
- * type, as requested by Will Barker.
- */
-
-/*
- * IPMB with a Linux-specific pseudo-header; as requested by Alexey Neyman
- * .
- */
-#define DLT_IPMB_LINUX 209
-
-/*
- * FlexRay automotive bus - http://www.flexray.com/ - as requested
- * by Hannes Kaelber .
- */
-#define DLT_FLEXRAY 210
-
-/*
- * Media Oriented Systems Transport (MOST) bus for multimedia
- * transport - http://www.mostcooperation.com/ - as requested
- * by Hannes Kaelber .
- */
-#define DLT_MOST 211
-
-/*
- * Local Interconnect Network (LIN) bus for vehicle networks -
- * http://www.lin-subbus.org/ - as requested by Hannes Kaelber
- * .
- */
-#define DLT_LIN 212
-
-/*
- * X2E-private data link type used for serial line capture,
- * as requested by Hannes Kaelber .
- */
-#define DLT_X2E_SERIAL 213
-
-/*
- * X2E-private data link type used for the Xoraya data logger
- * family, as requested by Hannes Kaelber .
- */
-#define DLT_X2E_XORAYA 214
-
-/*
- * IEEE 802.15.4, exactly as it appears in the spec (no padding, no
- * nothing), but with the PHY-level data for non-ASK PHYs (4 octets
- * of 0 as preamble, one octet of SFD, one octet of frame length+
- * reserved bit, and then the MAC-layer data, starting with the
- * frame control field).
- *
- * Requested by Max Filippov .
- */
-#define DLT_IEEE802_15_4_NONASK_PHY 215
-
-
-/*
- * DLT and savefile link type values are split into a class and
- * a member of that class. A class value of 0 indicates a regular
- * DLT_/LINKTYPE_ value.
- */
-#define DLT_CLASS(x) ((x) & 0x03ff0000)
-
-/*
- * NetBSD-specific generic "raw" link type. The class value indicates
- * that this is the generic raw type, and the lower 16 bits are the
- * address family we're dealing with. Those values are NetBSD-specific;
- * do not assume that they correspond to AF_ values for your operating
- * system.
- */
-#define DLT_CLASS_NETBSD_RAWAF 0x02240000
-#define DLT_NETBSD_RAWAF(af) (DLT_CLASS_NETBSD_RAWAF | (af))
-#define DLT_NETBSD_RAWAF_AF(x) ((x) & 0x0000ffff)
-#define DLT_IS_NETBSD_RAWAF(x) (DLT_CLASS(x) == DLT_CLASS_NETBSD_RAWAF)
-
-
-/*
- * The instruction encodings.
- */
-/* instruction classes */
-#define BPF_CLASS(code) ((code) & 0x07)
-#define BPF_LD 0x00
-#define BPF_LDX 0x01
-#define BPF_ST 0x02
-#define BPF_STX 0x03
-#define BPF_ALU 0x04
-#define BPF_JMP 0x05
-#define BPF_RET 0x06
-#define BPF_MISC 0x07
-
-/* ld/ldx fields */
-#define BPF_SIZE(code) ((code) & 0x18)
-#define BPF_W 0x00
-#define BPF_H 0x08
-#define BPF_B 0x10
-#define BPF_MODE(code) ((code) & 0xe0)
-#define BPF_IMM 0x00
-#define BPF_ABS 0x20
-#define BPF_IND 0x40
-#define BPF_MEM 0x60
-#define BPF_LEN 0x80
-#define BPF_MSH 0xa0
-
-/* alu/jmp fields */
-#define BPF_OP(code) ((code) & 0xf0)
-#define BPF_ADD 0x00
-#define BPF_SUB 0x10
-#define BPF_MUL 0x20
-#define BPF_DIV 0x30
-#define BPF_OR 0x40
-#define BPF_AND 0x50
-#define BPF_LSH 0x60
-#define BPF_RSH 0x70
-#define BPF_NEG 0x80
-#define BPF_JA 0x00
-#define BPF_JEQ 0x10
-#define BPF_JGT 0x20
-#define BPF_JGE 0x30
-#define BPF_JSET 0x40
-#define BPF_SRC(code) ((code) & 0x08)
-#define BPF_K 0x00
-#define BPF_X 0x08
-
-/* ret - BPF_K and BPF_X also apply */
-#define BPF_RVAL(code) ((code) & 0x18)
-#define BPF_A 0x10
-
-/* misc */
-#define BPF_MISCOP(code) ((code) & 0xf8)
-#define BPF_TAX 0x00
-#define BPF_TXA 0x80
-
-/*
- * The instruction data structure.
- */
-struct bpf_insn {
- u_short code;
- u_char jt;
- u_char jf;
- bpf_u_int32 k;
-};
-
-/*
- * Macros for insn array initializers.
- */
-#define BPF_STMT(code, k) { (u_short)(code), 0, 0, k }
-#define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k }
-
-#if __STDC__ || defined(__cplusplus)
-extern int bpf_validate(const struct bpf_insn *, int);
-extern u_int bpf_filter(const struct bpf_insn *, const u_char *, u_int, u_int);
-#else
-extern int bpf_validate();
-extern u_int bpf_filter();
-#endif
-
-/*
- * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST).
- */
-#define BPF_MEMWORDS 16
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/namedb.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/namedb.h
deleted file mode 100644
index 9002c750937..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/namedb.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 1994, 1996
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Computer Systems
- * Engineering Group at Lawrence Berkeley Laboratory.
- * 4. Neither the name of the University nor of the Laboratory may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/namedb.h,v 1.1 2006/10/04 18:09:22 guy Exp $ (LBL)
- */
-
-#ifndef lib_pcap_namedb_h
-#define lib_pcap_namedb_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * As returned by the pcap_next_etherent()
- * XXX this stuff doesn't belong in this interface, but this
- * library already must do name to address translation, so
- * on systems that don't have support for /etc/ethers, we
- * export these hooks since they'll
- */
-struct pcap_etherent {
- u_char addr[6];
- char name[122];
-};
-#ifndef PCAP_ETHERS_FILE
-#define PCAP_ETHERS_FILE "/etc/ethers"
-#endif
-struct pcap_etherent *pcap_next_etherent(FILE *);
-u_char *pcap_ether_hostton(const char*);
-u_char *pcap_ether_aton(const char *);
-
-bpf_u_int32 **pcap_nametoaddr(const char *);
-#ifdef INET6
-struct addrinfo *pcap_nametoaddrinfo(const char *);
-#endif
-bpf_u_int32 pcap_nametonetaddr(const char *);
-
-int pcap_nametoport(const char *, int *, int *);
-int pcap_nametoportrange(const char *, int *, int *, int *);
-int pcap_nametoproto(const char *);
-int pcap_nametoeproto(const char *);
-int pcap_nametollc(const char *);
-/*
- * If a protocol is unknown, PROTO_UNDEF is returned.
- * Also, pcap_nametoport() returns the protocol along with the port number.
- * If there are ambiguous entried in /etc/services (i.e. domain
- * can be either tcp or udp) PROTO_UNDEF is returned.
- */
-#define PROTO_UNDEF -1
-
-/* XXX move these to pcap-int.h? */
-int __pcap_atodn(const char *, bpf_u_int32 *);
-int __pcap_atoin(const char *, bpf_u_int32 *);
-u_short __pcap_nametodnaddr(const char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/pcap.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/pcap.h
deleted file mode 100644
index ad8fc40ac1f..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/pcap.h
+++ /dev/null
@@ -1,407 +0,0 @@
-/* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */
-/*
- * Copyright (c) 1993, 1994, 1995, 1996, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Computer Systems
- * Engineering Group at Lawrence Berkeley Laboratory.
- * 4. Neither the name of the University nor of the Laboratory may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/pcap.h,v 1.4.2.11 2008-10-06 15:38:39 gianluca Exp $ (LBL)
- */
-
-#ifndef lib_pcap_pcap_h
-#define lib_pcap_pcap_h
-
-#if defined(WIN32)
- #include
-#elif defined(MSDOS)
- #include
- #include /* u_int, u_char etc. */
-#else /* UN*X */
- #include
- #include
-#endif /* WIN32/MSDOS/UN*X */
-
-#ifndef PCAP_DONT_INCLUDE_PCAP_BPF_H
-#include
-#endif
-
-#include
-
-#ifdef HAVE_REMOTE
- // We have to define the SOCKET here, although it has been defined in sockutils.h
- // This is to avoid the distribution of the 'sockutils.h' file around
- // (for example in the WinPcap developer's pack)
- #ifndef SOCKET
- #ifdef WIN32
- #define SOCKET unsigned int
- #else
- #define SOCKET int
- #endif
- #endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define PCAP_VERSION_MAJOR 2
-#define PCAP_VERSION_MINOR 4
-
-#define PCAP_ERRBUF_SIZE 256
-
-/*
- * Compatibility for systems that have a bpf.h that
- * predates the bpf typedefs for 64-bit support.
- */
-#if BPF_RELEASE - 0 < 199406
-typedef int bpf_int32;
-typedef u_int bpf_u_int32;
-#endif
-
-typedef struct pcap pcap_t;
-typedef struct pcap_dumper pcap_dumper_t;
-typedef struct pcap_if pcap_if_t;
-typedef struct pcap_addr pcap_addr_t;
-
-/*
- * The first record in the file contains saved values for some
- * of the flags used in the printout phases of tcpdump.
- * Many fields here are 32 bit ints so compilers won't insert unwanted
- * padding; these files need to be interchangeable across architectures.
- *
- * Do not change the layout of this structure, in any way (this includes
- * changes that only affect the length of fields in this structure).
- *
- * Also, do not change the interpretation of any of the members of this
- * structure, in any way (this includes using values other than
- * LINKTYPE_ values, as defined in "savefile.c", in the "linktype"
- * field).
- *
- * Instead:
- *
- * introduce a new structure for the new format, if the layout
- * of the structure changed;
- *
- * send mail to "tcpdump-workers@lists.tcpdump.org", requesting
- * a new magic number for your new capture file format, and, when
- * you get the new magic number, put it in "savefile.c";
- *
- * use that magic number for save files with the changed file
- * header;
- *
- * make the code in "savefile.c" capable of reading files with
- * the old file header as well as files with the new file header
- * (using the magic number to determine the header format).
- *
- * Then supply the changes as a patch at
- *
- * http://sourceforge.net/projects/libpcap/
- *
- * so that future versions of libpcap and programs that use it (such as
- * tcpdump) will be able to read your new capture file format.
- */
-struct pcap_file_header {
- bpf_u_int32 magic;
- u_short version_major;
- u_short version_minor;
- bpf_int32 thiszone; /* gmt to local correction */
- bpf_u_int32 sigfigs; /* accuracy of timestamps */
- bpf_u_int32 snaplen; /* max length saved portion of each pkt */
- bpf_u_int32 linktype; /* data link type (LINKTYPE_*) */
-};
-
-/*
- * Macros for the value returned by pcap_datalink_ext().
- *
- * If LT_FCS_LENGTH_PRESENT(x) is true, the LT_FCS_LENGTH(x) macro
- * gives the FCS length of packets in the capture.
- */
-#define LT_FCS_LENGTH_PRESENT(x) ((x) & 0x04000000)
-#define LT_FCS_LENGTH(x) (((x) & 0xF0000000) >> 28)
-#define LT_FCS_DATALINK_EXT(x) ((((x) & 0xF) << 28) | 0x04000000)
-
-typedef enum {
- PCAP_D_INOUT = 0,
- PCAP_D_IN,
- PCAP_D_OUT
-} pcap_direction_t;
-
-/*
- * Generic per-packet information, as supplied by libpcap.
- *
- * The time stamp can and should be a "struct timeval", regardless of
- * whether your system supports 32-bit tv_sec in "struct timeval",
- * 64-bit tv_sec in "struct timeval", or both if it supports both 32-bit
- * and 64-bit applications. The on-disk format of savefiles uses 32-bit
- * tv_sec (and tv_usec); this structure is irrelevant to that. 32-bit
- * and 64-bit versions of libpcap, even if they're on the same platform,
- * should supply the appropriate version of "struct timeval", even if
- * that's not what the underlying packet capture mechanism supplies.
- */
-struct pcap_pkthdr {
- struct timeval ts; /* time stamp */
- bpf_u_int32 caplen; /* length of portion present */
- bpf_u_int32 len; /* length this packet (off wire) */
-};
-
-/*
- * As returned by the pcap_stats()
- */
-struct pcap_stat {
- u_int ps_recv; /* number of packets received */
- u_int ps_drop; /* number of packets dropped */
- u_int ps_ifdrop; /* drops by interface XXX not yet supported */
-#ifdef HAVE_REMOTE
- u_int ps_capt; /* number of packets that are received by the application; please get rid off the Win32 ifdef */
- u_int ps_sent; /* number of packets sent by the server on the network */
- u_int ps_netdrop; /* number of packets lost on the network */
-#endif /* HAVE_REMOTE */
-};
-
-#ifdef MSDOS
-/*
- * As returned by the pcap_stats_ex()
- */
-struct pcap_stat_ex {
- u_long rx_packets; /* total packets received */
- u_long tx_packets; /* total packets transmitted */
- u_long rx_bytes; /* total bytes received */
- u_long tx_bytes; /* total bytes transmitted */
- u_long rx_errors; /* bad packets received */
- u_long tx_errors; /* packet transmit problems */
- u_long rx_dropped; /* no space in Rx buffers */
- u_long tx_dropped; /* no space available for Tx */
- u_long multicast; /* multicast packets received */
- u_long collisions;
-
- /* detailed rx_errors: */
- u_long rx_length_errors;
- u_long rx_over_errors; /* receiver ring buff overflow */
- u_long rx_crc_errors; /* recv'd pkt with crc error */
- u_long rx_frame_errors; /* recv'd frame alignment error */
- u_long rx_fifo_errors; /* recv'r fifo overrun */
- u_long rx_missed_errors; /* recv'r missed packet */
-
- /* detailed tx_errors */
- u_long tx_aborted_errors;
- u_long tx_carrier_errors;
- u_long tx_fifo_errors;
- u_long tx_heartbeat_errors;
- u_long tx_window_errors;
- };
-#endif
-
-/*
- * Item in a list of interfaces.
- */
-struct pcap_if {
- struct pcap_if *next;
- char *name; /* name to hand to "pcap_open_live()" */
- char *description; /* textual description of interface, or NULL */
- struct pcap_addr *addresses;
- bpf_u_int32 flags; /* PCAP_IF_ interface flags */
-};
-
-#define PCAP_IF_LOOPBACK 0x00000001 /* interface is loopback */
-
-/*
- * Representation of an interface address.
- */
-struct pcap_addr {
- struct pcap_addr *next;
- struct sockaddr *addr; /* address */
- struct sockaddr *netmask; /* netmask for that address */
- struct sockaddr *broadaddr; /* broadcast address for that address */
- struct sockaddr *dstaddr; /* P2P destination address for that address */
-};
-
-typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *,
- const u_char *);
-
-/*
- * Error codes for the pcap API.
- * These will all be negative, so you can check for the success or
- * failure of a call that returns these codes by checking for a
- * negative value.
- */
-#define PCAP_ERROR -1 /* generic error code */
-#define PCAP_ERROR_BREAK -2 /* loop terminated by pcap_breakloop */
-#define PCAP_ERROR_NOT_ACTIVATED -3 /* the capture needs to be activated */
-#define PCAP_ERROR_ACTIVATED -4 /* the operation can't be performed on already activated captures */
-#define PCAP_ERROR_NO_SUCH_DEVICE -5 /* no such device exists */
-#define PCAP_ERROR_RFMON_NOTSUP -6 /* this device doesn't support rfmon (monitor) mode */
-#define PCAP_ERROR_NOT_RFMON -7 /* operation supported only in monitor mode */
-#define PCAP_ERROR_PERM_DENIED -8 /* no permission to open the device */
-#define PCAP_ERROR_IFACE_NOT_UP -9 /* interface isn't up */
-
-/*
- * Warning codes for the pcap API.
- * These will all be positive and non-zero, so they won't look like
- * errors.
- */
-#define PCAP_WARNING 1 /* generic warning code */
-#define PCAP_WARNING_PROMISC_NOTSUP 2 /* this device doesn't support promiscuous mode */
-
-char *pcap_lookupdev(char *);
-int pcap_lookupnet(const char *, bpf_u_int32 *, bpf_u_int32 *, char *);
-
-pcap_t *pcap_create(const char *, char *);
-int pcap_set_snaplen(pcap_t *, int);
-int pcap_set_promisc(pcap_t *, int);
-int pcap_can_set_rfmon(pcap_t *);
-int pcap_set_rfmon(pcap_t *, int);
-int pcap_set_timeout(pcap_t *, int);
-int pcap_set_buffer_size(pcap_t *, int);
-int pcap_activate(pcap_t *);
-
-pcap_t *pcap_open_live(const char *, int, int, int, char *);
-pcap_t *pcap_open_dead(int, int);
-pcap_t *pcap_open_offline(const char *, char *);
-#if defined(WIN32)
-pcap_t *pcap_hopen_offline(intptr_t, char *);
-#if !defined(LIBPCAP_EXPORTS)
-#define pcap_fopen_offline(f,b) \
- pcap_hopen_offline(_get_osfhandle(_fileno(f)), b)
-#else /*LIBPCAP_EXPORTS*/
-static pcap_t *pcap_fopen_offline(FILE *, char *);
-#endif
-#else /*WIN32*/
-pcap_t *pcap_fopen_offline(FILE *, char *);
-#endif /*WIN32*/
-
-void pcap_close(pcap_t *);
-int pcap_loop(pcap_t *, int, pcap_handler, u_char *);
-int pcap_dispatch(pcap_t *, int, pcap_handler, u_char *);
-const u_char*
- pcap_next(pcap_t *, struct pcap_pkthdr *);
-int pcap_next_ex(pcap_t *, struct pcap_pkthdr **, const u_char **);
-void pcap_breakloop(pcap_t *);
-int pcap_stats(pcap_t *, struct pcap_stat *);
-int pcap_setfilter(pcap_t *, struct bpf_program *);
-int pcap_setdirection(pcap_t *, pcap_direction_t);
-int pcap_getnonblock(pcap_t *, char *);
-int pcap_setnonblock(pcap_t *, int, char *);
-int pcap_inject(pcap_t *, const void *, size_t);
-int pcap_sendpacket(pcap_t *, const u_char *, int);
-const char *pcap_statustostr(int);
-const char *pcap_strerror(int);
-char *pcap_geterr(pcap_t *);
-void pcap_perror(pcap_t *, char *);
-int pcap_compile(pcap_t *, struct bpf_program *, const char *, int,
- bpf_u_int32);
-int pcap_compile_nopcap(int, int, struct bpf_program *,
- const char *, int, bpf_u_int32);
-void pcap_freecode(struct bpf_program *);
-int pcap_offline_filter(struct bpf_program *, const struct pcap_pkthdr *,
- const u_char *);
-int pcap_datalink(pcap_t *);
-int pcap_datalink_ext(pcap_t *);
-int pcap_list_datalinks(pcap_t *, int **);
-int pcap_set_datalink(pcap_t *, int);
-void pcap_free_datalinks(int *);
-int pcap_datalink_name_to_val(const char *);
-const char *pcap_datalink_val_to_name(int);
-const char *pcap_datalink_val_to_description(int);
-int pcap_snapshot(pcap_t *);
-int pcap_is_swapped(pcap_t *);
-int pcap_major_version(pcap_t *);
-int pcap_minor_version(pcap_t *);
-
-/* XXX */
-FILE *pcap_file(pcap_t *);
-int pcap_fileno(pcap_t *);
-
-pcap_dumper_t *pcap_dump_open(pcap_t *, const char *);
-pcap_dumper_t *pcap_dump_fopen(pcap_t *, FILE *fp);
-FILE *pcap_dump_file(pcap_dumper_t *);
-long pcap_dump_ftell(pcap_dumper_t *);
-int pcap_dump_flush(pcap_dumper_t *);
-void pcap_dump_close(pcap_dumper_t *);
-void pcap_dump(u_char *, const struct pcap_pkthdr *, const u_char *);
-
-int pcap_findalldevs(pcap_if_t **, char *);
-void pcap_freealldevs(pcap_if_t *);
-
-const char *pcap_lib_version(void);
-
-/* XXX this guy lives in the bpf tree */
-u_int bpf_filter(const struct bpf_insn *, const u_char *, u_int, u_int);
-int bpf_validate(const struct bpf_insn *f, int len);
-char *bpf_image(const struct bpf_insn *, int);
-void bpf_dump(const struct bpf_program *, int);
-
-#if defined(WIN32)
-
-/*
- * Win32 definitions
- */
-
-int pcap_setbuff(pcap_t *p, int dim);
-int pcap_setmode(pcap_t *p, int mode);
-int pcap_setmintocopy(pcap_t *p, int size);
-
-#ifdef WPCAP
-/* Include file with the wpcap-specific extensions */
-#include
-#endif /* WPCAP */
-
-#define MODE_CAPT 0
-#define MODE_STAT 1
-#define MODE_MON 2
-
-#elif defined(MSDOS)
-
-/*
- * MS-DOS definitions
- */
-
-int pcap_stats_ex (pcap_t *, struct pcap_stat_ex *);
-void pcap_set_wait (pcap_t *p, void (*yield)(void), int wait);
-u_long pcap_mac_packets (void);
-
-#else /* UN*X */
-
-/*
- * UN*X definitions
- */
-
-int pcap_get_selectable_fd(pcap_t *);
-
-#endif /* WIN32/MSDOS/UN*X */
-
-#ifdef HAVE_REMOTE
-/* Includes most of the public stuff that is needed for the remote capture */
-#include
-#endif /* HAVE_REMOTE */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/sll.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/sll.h
deleted file mode 100644
index e9d5452af7d..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/sll.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*-
- * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from the Stanford/CMU enet packet filter,
- * (net/enet.c) distributed as part of 4.3BSD, and code contributed
- * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
- * Berkeley Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/sll.h,v 1.2.2.1 2008-05-30 01:36:06 guy Exp $ (LBL)
- */
-
-/*
- * For captures on Linux cooked sockets, we construct a fake header
- * that includes:
- *
- * a 2-byte "packet type" which is one of:
- *
- * LINUX_SLL_HOST packet was sent to us
- * LINUX_SLL_BROADCAST packet was broadcast
- * LINUX_SLL_MULTICAST packet was multicast
- * LINUX_SLL_OTHERHOST packet was sent to somebody else
- * LINUX_SLL_OUTGOING packet was sent *by* us;
- *
- * a 2-byte Ethernet protocol field;
- *
- * a 2-byte link-layer type;
- *
- * a 2-byte link-layer address length;
- *
- * an 8-byte source link-layer address, whose actual length is
- * specified by the previous value.
- *
- * All fields except for the link-layer address are in network byte order.
- *
- * DO NOT change the layout of this structure, or change any of the
- * LINUX_SLL_ values below. If you must change the link-layer header
- * for a "cooked" Linux capture, introduce a new DLT_ type (ask
- * "tcpdump-workers@lists.tcpdump.org" for one, so that you don't give it
- * a value that collides with a value already being used), and use the
- * new header in captures of that type, so that programs that can
- * handle DLT_LINUX_SLL captures will continue to handle them correctly
- * without any change, and so that capture files with different headers
- * can be told apart and programs that read them can dissect the
- * packets in them.
- */
-
-#ifndef lib_pcap_sll_h
-#define lib_pcap_sll_h
-
-/*
- * A DLT_LINUX_SLL fake link-layer header.
- */
-#define SLL_HDR_LEN 16 /* total header length */
-#define SLL_ADDRLEN 8 /* length of address field */
-
-struct sll_header {
- u_int16_t sll_pkttype; /* packet type */
- u_int16_t sll_hatype; /* link-layer address type */
- u_int16_t sll_halen; /* link-layer address length */
- u_int8_t sll_addr[SLL_ADDRLEN]; /* link-layer address */
- u_int16_t sll_protocol; /* protocol */
-};
-
-/*
- * The LINUX_SLL_ values for "sll_pkttype"; these correspond to the
- * PACKET_ values on Linux, but are defined here so that they're
- * available even on systems other than Linux, and so that they
- * don't change even if the PACKET_ values change.
- */
-#define LINUX_SLL_HOST 0
-#define LINUX_SLL_BROADCAST 1
-#define LINUX_SLL_MULTICAST 2
-#define LINUX_SLL_OTHERHOST 3
-#define LINUX_SLL_OUTGOING 4
-
-/*
- * The LINUX_SLL_ values for "sll_protocol"; these correspond to the
- * ETH_P_ values on Linux, but are defined here so that they're
- * available even on systems other than Linux. We assume, for now,
- * that the ETH_P_ values won't change in Linux; if they do, then:
- *
- * if we don't translate them in "pcap-linux.c", capture files
- * won't necessarily be readable if captured on a system that
- * defines ETH_P_ values that don't match these values;
- *
- * if we do translate them in "pcap-linux.c", that makes life
- * unpleasant for the BPF code generator, as the values you test
- * for in the kernel aren't the values that you test for when
- * reading a capture file, so the fixup code run on BPF programs
- * handed to the kernel ends up having to do more work.
- *
- * Add other values here as necessary, for handling packet types that
- * might show up on non-Ethernet, non-802.x networks. (Not all the ones
- * in the Linux "if_ether.h" will, I suspect, actually show up in
- * captures.)
- */
-#define LINUX_SLL_P_802_3 0x0001 /* Novell 802.3 frames without 802.2 LLC header */
-#define LINUX_SLL_P_802_2 0x0004 /* 802.2 frames (not D/I/X Ethernet) */
-
-#endif
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/usb.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/usb.h
deleted file mode 100644
index adcd19c0584..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/usb.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2006 Paolo Abeni (Italy)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Basic USB data struct
- * By Paolo Abeni
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/usb.h,v 1.6 2007/09/22 02:06:08 guy Exp $
- */
-
-#ifndef _PCAP_USB_STRUCTS_H__
-#define _PCAP_USB_STRUCTS_H__
-
-/*
- * possible transfer mode
- */
-#define URB_TRANSFER_IN 0x80
-#define URB_ISOCHRONOUS 0x0
-#define URB_INTERRUPT 0x1
-#define URB_CONTROL 0x2
-#define URB_BULK 0x3
-
-/*
- * possible event type
- */
-#define URB_SUBMIT 'S'
-#define URB_COMPLETE 'C'
-#define URB_ERROR 'E'
-
-/*
- * USB setup header as defined in USB specification.
- * Appears at the front of each packet in DLT_USB captures.
- */
-typedef struct _usb_setup {
- u_int8_t bmRequestType;
- u_int8_t bRequest;
- u_int16_t wValue;
- u_int16_t wIndex;
- u_int16_t wLength;
-} pcap_usb_setup;
-
-
-/*
- * Header prepended by linux kernel to each event.
- * Appears at the front of each packet in DLT_USB_LINUX captures.
- */
-typedef struct _usb_header {
- u_int64_t id;
- u_int8_t event_type;
- u_int8_t transfer_type;
- u_int8_t endpoint_number;
- u_int8_t device_address;
- u_int16_t bus_id;
- char setup_flag;/*if !=0 the urb setup header is not present*/
- char data_flag; /*if !=0 no urb data is present*/
- int64_t ts_sec;
- int32_t ts_usec;
- int32_t status;
- u_int32_t urb_len;
- u_int32_t data_len; /* amount of urb data really present in this event*/
- pcap_usb_setup setup;
-} pcap_usb_header;
-
-
-#endif
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/vlan.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/vlan.h
deleted file mode 100644
index b0cb7949be1..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/pcap/vlan.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/vlan.h,v 1.1.2.2 2008-08-06 07:45:59 guy Exp $
- */
-
-#ifndef lib_pcap_vlan_h
-#define lib_pcap_vlan_h
-
-struct vlan_tag {
- u_int16_t vlan_tpid; /* ETH_P_8021Q */
- u_int16_t vlan_tci; /* VLAN TCI */
-};
-
-#define VLAN_TAG_LEN 4
-
-#endif
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/remote-ext.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/remote-ext.h
deleted file mode 100644
index 9f54d6974cd..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/remote-ext.h
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * Copyright (c) 2002 - 2003
- * NetGroup, Politecnico di Torino (Italy)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Politecnico di Torino nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-
-#ifndef __REMOTE_EXT_H__
-#define __REMOTE_EXT_H__
-
-
-#ifndef HAVE_REMOTE
-#error Please do not include this file directly. Just define HAVE_REMOTE and then include pcap.h
-#endif
-
-// Definition for Microsoft Visual Studio
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
- \file remote-ext.h
-
- The goal of this file it to include most of the new definitions that should be
- placed into the pcap.h file.
-
- It includes all new definitions (structures and functions like pcap_open().
- Some of the functions are not really a remote feature, but, right now,
- they are placed here.
-*/
-
-
-
-// All this stuff is public
-/*! \addtogroup remote_struct
- \{
-*/
-
-
-
-
-/*!
- \brief Defines the maximum buffer size in which address, port, interface names are kept.
-
- In case the adapter name or such is larger than this value, it is truncated.
- This is not used by the user; however it must be aware that an hostname / interface
- name longer than this value will be truncated.
-*/
-#define PCAP_BUF_SIZE 1024
-
-
-/*! \addtogroup remote_source_ID
- \{
-*/
-
-
-/*!
- \brief Internal representation of the type of source in use (file,
- remote/local interface).
-
- This indicates a file, i.e. the user want to open a capture from a local file.
-*/
-#define PCAP_SRC_FILE 2
-/*!
- \brief Internal representation of the type of source in use (file,
- remote/local interface).
-
- This indicates a local interface, i.e. the user want to open a capture from
- a local interface. This does not involve the RPCAP protocol.
-*/
-#define PCAP_SRC_IFLOCAL 3
-/*!
- \brief Internal representation of the type of source in use (file,
- remote/local interface).
-
- This indicates a remote interface, i.e. the user want to open a capture from
- an interface on a remote host. This does involve the RPCAP protocol.
-*/
-#define PCAP_SRC_IFREMOTE 4
-
-/*!
- \}
-*/
-
-
-
-/*! \addtogroup remote_source_string
-
- The formats allowed by the pcap_open() are the following:
- - file://path_and_filename [opens a local file]
- - rpcap://devicename [opens the selected device devices available on the local host, without using the RPCAP protocol]
- - rpcap://host/devicename [opens the selected device available on a remote host]
- - rpcap://host:port/devicename [opens the selected device available on a remote host, using a non-standard port for RPCAP]
- - adaptername [to open a local adapter; kept for compability, but it is strongly discouraged]
- - (NULL) [to open the first local adapter; kept for compability, but it is strongly discouraged]
-
- The formats allowed by the pcap_findalldevs_ex() are the following:
- - file://folder/ [lists all the files in the given folder]
- - rpcap:// [lists all local adapters]
- - rpcap://host:port/ [lists the devices available on a remote host]
-
- Referring to the 'host' and 'port' paramters, they can be either numeric or literal. Since
- IPv6 is fully supported, these are the allowed formats:
-
- - host (literal): e.g. host.foo.bar
- - host (numeric IPv4): e.g. 10.11.12.13
- - host (numeric IPv4, IPv6 style): e.g. [10.11.12.13]
- - host (numeric IPv6): e.g. [1:2:3::4]
- - port: can be either numeric (e.g. '80') or literal (e.g. 'http')
-
- Here you find some allowed examples:
- - rpcap://host.foo.bar/devicename [everything literal, no port number]
- - rpcap://host.foo.bar:1234/devicename [everything literal, with port number]
- - rpcap://10.11.12.13/devicename [IPv4 numeric, no port number]
- - rpcap://10.11.12.13:1234/devicename [IPv4 numeric, with port number]
- - rpcap://[10.11.12.13]:1234/devicename [IPv4 numeric with IPv6 format, with port number]
- - rpcap://[1:2:3::4]/devicename [IPv6 numeric, no port number]
- - rpcap://[1:2:3::4]:1234/devicename [IPv6 numeric, with port number]
- - rpcap://[1:2:3::4]:http/devicename [IPv6 numeric, with literal port number]
-
- \{
-*/
-
-
-/*!
- \brief String that will be used to determine the type of source in use (file,
- remote/local interface).
-
- This string will be prepended to the interface name in order to create a string
- that contains all the information required to open the source.
-
- This string indicates that the user wants to open a capture from a local file.
-*/
-#define PCAP_SRC_FILE_STRING "file://"
-/*!
- \brief String that will be used to determine the type of source in use (file,
- remote/local interface).
-
- This string will be prepended to the interface name in order to create a string
- that contains all the information required to open the source.
-
- This string indicates that the user wants to open a capture from a network interface.
- This string does not necessarily involve the use of the RPCAP protocol. If the
- interface required resides on the local host, the RPCAP protocol is not involved
- and the local functions are used.
-*/
-#define PCAP_SRC_IF_STRING "rpcap://"
-
-/*!
- \}
-*/
-
-
-
-
-
-/*!
- \addtogroup remote_open_flags
- \{
-*/
-
-/*!
- \brief Defines if the adapter has to go in promiscuous mode.
-
- It is '1' if you have to open the adapter in promiscuous mode, '0' otherwise.
- Note that even if this parameter is false, the interface could well be in promiscuous
- mode for some other reason (for example because another capture process with
- promiscuous mode enabled is currently using that interface).
- On on Linux systems with 2.2 or later kernels (that have the "any" device), this
- flag does not work on the "any" device; if an argument of "any" is supplied,
- the 'promisc' flag is ignored.
-*/
-#define PCAP_OPENFLAG_PROMISCUOUS 1
-
-/*!
- \brief Defines if the data trasfer (in case of a remote
- capture) has to be done with UDP protocol.
-
- If it is '1' if you want a UDP data connection, '0' if you want
- a TCP data connection; control connection is always TCP-based.
- A UDP connection is much lighter, but it does not guarantee that all
- the captured packets arrive to the client workstation. Moreover,
- it could be harmful in case of network congestion.
- This flag is meaningless if the source is not a remote interface.
- In that case, it is simply ignored.
-*/
-#define PCAP_OPENFLAG_DATATX_UDP 2
-
-
-/*!
- \brief Defines if the remote probe will capture its own generated traffic.
-
- In case the remote probe uses the same interface to capture traffic and to send
- data back to the caller, the captured traffic includes the RPCAP traffic as well.
- If this flag is turned on, the RPCAP traffic is excluded from the capture, so that
- the trace returned back to the collector is does not include this traffic.
-*/
-#define PCAP_OPENFLAG_NOCAPTURE_RPCAP 4
-
-/*!
- \brief Defines if the local adapter will capture its own generated traffic.
-
- This flag tells the underlying capture driver to drop the packets that were sent by itself.
- This is usefult when building applications like bridges, that should ignore the traffic
- they just sent.
-*/
-#define PCAP_OPENFLAG_NOCAPTURE_LOCAL 8
-
-/*!
- \brief This flag configures the adapter for maximum responsiveness.
-
- In presence of a large value for nbytes, WinPcap waits for the arrival of several packets before
- copying the data to the user. This guarantees a low number of system calls, i.e. lower processor usage,
- i.e. better performance, which is good for applications like sniffers. If the user sets the
- PCAP_OPENFLAG_MAX_RESPONSIVENESS flag, the capture driver will copy the packets as soon as the application
- is ready to receive them. This is suggested for real time applications (like, for example, a bridge)
- that need the best responsiveness.*/
-#define PCAP_OPENFLAG_MAX_RESPONSIVENESS 16
-
-/*!
- \}
-*/
-
-
-/*!
- \addtogroup remote_samp_methods
- \{
-*/
-
-/*!
- \brief No sampling has to be done on the current capture.
-
- In this case, no sampling algorithms are applied to the current capture.
-*/
-#define PCAP_SAMP_NOSAMP 0
-
-/*!
- \brief It defines that only 1 out of N packets must be returned to the user.
-
- In this case, the 'value' field of the 'pcap_samp' structure indicates the
- number of packets (minus 1) that must be discarded before one packet got accepted.
- In other words, if 'value = 10', the first packet is returned to the caller, while
- the following 9 are discarded.
-*/
-#define PCAP_SAMP_1_EVERY_N 1
-
-/*!
- \brief It defines that we have to return 1 packet every N milliseconds.
-
- In this case, the 'value' field of the 'pcap_samp' structure indicates the 'waiting
- time' in milliseconds before one packet got accepted.
- In other words, if 'value = 10', the first packet is returned to the caller; the next
- returned one will be the first packet that arrives when 10ms have elapsed.
-*/
-#define PCAP_SAMP_FIRST_AFTER_N_MS 2
-
-/*!
- \}
-*/
-
-
-/*!
- \addtogroup remote_auth_methods
- \{
-*/
-
-/*!
- \brief It defines the NULL authentication.
-
- This value has to be used within the 'type' member of the pcap_rmtauth structure.
- The 'NULL' authentication has to be equal to 'zero', so that old applications
- can just put every field of struct pcap_rmtauth to zero, and it does work.
-*/
-#define RPCAP_RMTAUTH_NULL 0
-/*!
- \brief It defines the username/password authentication.
-
- With this type of authentication, the RPCAP protocol will use the username/
- password provided to authenticate the user on the remote machine. If the
- authentication is successful (and the user has the right to open network devices)
- the RPCAP connection will continue; otherwise it will be dropped.
-
- This value has to be used within the 'type' member of the pcap_rmtauth structure.
-*/
-#define RPCAP_RMTAUTH_PWD 1
-
-/*!
- \}
-*/
-
-
-
-
-/*!
-
- \brief This structure keeps the information needed to autheticate
- the user on a remote machine.
-
- The remote machine can either grant or refuse the access according
- to the information provided.
- In case the NULL authentication is required, both 'username' and
- 'password' can be NULL pointers.
-
- This structure is meaningless if the source is not a remote interface;
- in that case, the functions which requires such a structure can accept
- a NULL pointer as well.
-*/
-struct pcap_rmtauth
-{
- /*!
- \brief Type of the authentication required.
-
- In order to provide maximum flexibility, we can support different types
- of authentication based on the value of this 'type' variable. The currently
- supported authentication methods are defined into the
- \link remote_auth_methods Remote Authentication Methods Section\endlink.
-
- */
- int type;
- /*!
- \brief Zero-terminated string containing the username that has to be
- used on the remote machine for authentication.
-
- This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
- and it can be NULL.
- */
- char *username;
- /*!
- \brief Zero-terminated string containing the password that has to be
- used on the remote machine for authentication.
-
- This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
- and it can be NULL.
- */
- char *password;
-};
-
-
-/*!
- \brief This structure defines the information related to sampling.
-
- In case the sampling is requested, the capturing device should read
- only a subset of the packets coming from the source. The returned packets depend
- on the sampling parameters.
-
- \warning The sampling process is applied after the filtering process.
- In other words, packets are filtered first, then the sampling process selects a
- subset of the 'filtered' packets and it returns them to the caller.
-*/
-struct pcap_samp
-{
- /*!
- Method used for sampling. Currently, the supported methods are listed in the
- \link remote_samp_methods Sampling Methods Section\endlink.
- */
- int method;
-
- /*!
- This value depends on the sampling method defined. For its meaning, please check
- at the \link remote_samp_methods Sampling Methods Section\endlink.
- */
- int value;
-};
-
-
-
-
-//! Maximum lenght of an host name (needed for the RPCAP active mode)
-#define RPCAP_HOSTLIST_SIZE 1024
-
-
-/*!
- \}
-*/ // end of public documentation
-
-
-// Exported functions
-
-
-
-/** \name New WinPcap functions
-
- This section lists the new functions that are able to help considerably in writing
- WinPcap programs because of their easiness of use.
- */
-//\{
-pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf);
-int pcap_createsrcstr(char *source, int type, const char *host, const char *port, const char *name, char *errbuf);
-int pcap_parsesrcstr(const char *source, int *type, char *host, char *port, char *name, char *errbuf);
-int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf);
-struct pcap_samp *pcap_setsampling(pcap_t *p);
-
-//\}
-// End of new winpcap functions
-
-
-
-/** \name Remote Capture functions
- */
-//\{
-SOCKET pcap_remoteact_accept(const char *address, const char *port, const char *hostlist, char *connectinghost, struct pcap_rmtauth *auth, char *errbuf);
-int pcap_remoteact_list(char *hostlist, char sep, int size, char *errbuf);
-int pcap_remoteact_close(const char *host, char *errbuf);
-void pcap_remoteact_cleanup();
-//\}
-// End of remote capture functions
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/wpcap.lib b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/wpcap.lib
deleted file mode 100644
index f832e0445b5..00000000000
Binary files a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/wpcap.lib and /dev/null differ
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/main.c
index 865ccde500b..edf3b7a7ae8 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/main.c
@@ -39,6 +39,8 @@
#include
#include "task.h"
+#include "FreeRTOSIPConfig.h"
+
/* Demo application includes. */
#include "FreeRTOS_IP.h"
#include "FreeRTOS_Sockets.h"
@@ -113,12 +115,9 @@ static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configD
/* Set the following constant to pdTRUE to log using the method indicated by the
* name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the echo server
- * address (see the configECHO_SERVER_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
+ * name of the constant. Options include to standard out (xLogToStdout) and to a
+ * file on disk (xLogToFile). */
+const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE;
/* Default MAC address configuration. The demo creates a virtual network
* connection that uses this MAC address by accessing the raw Ethernet data
@@ -184,31 +183,6 @@ void vApplicationIdleHook( void )
}
/*-----------------------------------------------------------*/
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- const uint32_t ulLongSleep = 1000UL;
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- FreeRTOS_debug_printf( ( "vAssertCalled( %s, %ld\r\n", pcFile, ulLine ) );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- Sleep( ulLongSleep );
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
* events are only received if implemented in the MAC driver. */
@@ -278,16 +252,6 @@ void vApplicationMallocFailedHook( void )
}
/*-----------------------------------------------------------*/
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /* Utility function to generate a pseudo random number. */
-
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
static void prvSRand( UBaseType_t ulSeed )
{
@@ -299,11 +263,9 @@ static void prvSRand( UBaseType_t ulSeed )
static void prvMiscInitialisation( void )
{
time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
uint32_t ulRandomNumbers[ 4 ];
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configECHO_SERVER_ADDR0, configECHO_SERVER_ADDR1, configECHO_SERVER_ADDR2, configECHO_SERVER_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
+ vLoggingInit( xLogToStdout, xLogToFile, pdFALSE, 0, 0 );
/* Seed the random number generator. */
time( &xTimeNow );
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/printf-stdarg.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/printf-stdarg.c
deleted file mode 100644
index 5505535c171..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/printf-stdarg.c
+++ /dev/null
@@ -1,667 +0,0 @@
-/*
- Copyright 2001, 2002 Georges Menie (www.menie.org)
- stdarg version contributed by Christian Ettinger
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- Changes for the FreeRTOS ports:
-
- - The dot in "%-8.8s"
- - The specifiers 'l' (long) and 'L' (long long)
- - The specifier 'u' for unsigned
- - Dot notation for IP addresses:
- sprintf("IP = %xip\n", 0xC0A80164);
- will produce "IP = 192.168.1.100\n"
-*/
-
-#include
-#include
-#include
-#include
-
-#include "FreeRTOS.h"
-
-#define PAD_RIGHT 1
-#define PAD_ZERO 2
-
-/*
- * Return 1 for readable, 2 for writeable, 3 for both.
- * Function must be provided by the application.
- */
-extern BaseType_t xApplicationMemoryPermissions( uint32_t aAddress );
-
-extern void vOutputChar( const char cChar, const TickType_t xTicksToWait );
-static const TickType_t xTicksToWait = pdMS_TO_TICKS( 20 );
-
-struct xPrintFlags
-{
- int base;
- int width;
- int printLimit;
- unsigned
- pad : 8,
- letBase : 8,
- isSigned : 1,
- isNumber : 1,
- long32 : 1,
- long64 : 1;
-};
-
-struct SStringBuf
-{
- char *str;
- const char *orgStr;
- const char *nulPos;
- int curLen;
- struct xPrintFlags flags;
-};
-
-static void strbuf_init( struct SStringBuf *apStr, char *apBuf, const char *apMaxStr )
-{
- apStr->str = apBuf;
- apStr->orgStr = apBuf;
- apStr->nulPos = apMaxStr-1;
- apStr->curLen = 0;
-
- memset( &apStr->flags, '\0', sizeof( apStr->flags ) );
-}
-/*-----------------------------------------------------------*/
-
-static BaseType_t strbuf_printchar( struct SStringBuf *apStr, int c )
-{
- if( apStr->str == NULL )
- {
- vOutputChar( ( char ) c, xTicksToWait );
- apStr->curLen++;
- return pdTRUE;
- }
- if( apStr->str < apStr->nulPos )
- {
- *( apStr->str++ ) = c;
- apStr->curLen++;
- return pdTRUE;
- }
- if( apStr->str == apStr->nulPos )
- {
- *( apStr->str++ ) = '\0';
- }
- return pdFALSE;
-}
-/*-----------------------------------------------------------*/
-
-static portINLINE BaseType_t strbuf_printchar_inline( struct SStringBuf *apStr, int c )
-{
- if( apStr->str == NULL )
- {
- vOutputChar( ( char ) c, xTicksToWait );
- if( c == 0 )
- {
- return pdFALSE;
- }
- apStr->curLen++;
- return pdTRUE;
- }
- if( apStr->str < apStr->nulPos )
- {
- *(apStr->str++) = c;
- if( c == 0 )
- {
- return pdFALSE;
- }
- apStr->curLen++;
- return pdTRUE;
- }
- if( apStr->str == apStr->nulPos )
- {
- *( apStr->str++ ) = '\0';
- }
- return pdFALSE;
-}
-/*-----------------------------------------------------------*/
-
-static portINLINE int i2hex( int aCh )
-{
-int iResult;
-
- if( aCh < 10 )
- {
- iResult = '0' + aCh;
- }
- else
- {
- iResult = 'A' + aCh - 10;
- }
-
- return iResult;
-}
-/*-----------------------------------------------------------*/
-
-static BaseType_t prints(struct SStringBuf *apBuf, const char *apString )
-{
- register int padchar = ' ';
- int i,len;
-
- if( xApplicationMemoryPermissions( ( uint32_t )apString ) == 0 )
- {
- /* The user has probably made a mistake with the parameter
- for '%s', the memory is not readbale. */
- apString = "INV_MEM";
- }
-
- if( apBuf->flags.width > 0 )
- {
- register int len = 0;
- register const char *ptr;
- for( ptr = apString; *ptr; ++ptr )
- {
- ++len;
- }
-
- if( len >= apBuf->flags.width )
- {
- apBuf->flags.width = 0;
- }
- else
- {
- apBuf->flags.width -= len;
- }
-
- if( apBuf->flags.pad & PAD_ZERO )
- {
- padchar = '0';
- }
- }
- if( ( apBuf->flags.pad & PAD_RIGHT ) == 0 )
- {
- for( ; apBuf->flags.width > 0; --apBuf->flags.width )
- {
- if( strbuf_printchar( apBuf, padchar ) == 0 )
- {
- return pdFALSE;
- }
- }
- }
- if( ( apBuf->flags.isNumber == pdTRUE ) && ( apBuf->flags.pad == pdTRUE ) )
- {
- /* The string to print represents an integer number.
- * In this case, printLimit is the min number of digits to print
- * If the length of the number to print is less than the min nb of i
- * digits to display, we add 0 before printing the number
- */
- len = strlen( apString );
-
- if( len < apBuf->flags.printLimit )
- {
- i = apBuf->flags.printLimit - len;
- for( ; i; i-- )
- {
- if( strbuf_printchar( apBuf, '0' ) == 0 )
- {
- return pdFALSE;
- }
- }
- }
- }
- /* The string to print is not the result of a number conversion to ascii.
- * For a string, printLimit is the max number of characters to display
- */
- for( ; apBuf->flags.printLimit && *apString ; ++apString, --apBuf->flags.printLimit )
- {
- if( !strbuf_printchar( apBuf, *apString ) )
- {
- return pdFALSE;
- }
- }
-
- for( ; apBuf->flags.width > 0; --apBuf->flags.width )
- {
- if( !strbuf_printchar( apBuf, padchar ) )
- {
- return pdFALSE;
- }
- }
-
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-
-/* the following should be enough for 32 bit int */
-#define PRINT_BUF_LEN 12 /* to print 4294967296 */
-
-#if SPRINTF_LONG_LONG
-#warning 64-bit libraries will be included as well
-static BaseType_t printll( struct SStringBuf *apBuf, long long i )
-{
- char print_buf[ 2 * PRINT_BUF_LEN ];
- register char *s;
- register int t, neg = 0;
- register unsigned long long u = i;
- lldiv_t lldiv_result;
-
-/* typedef struct
- * {
- * long long int quot; // quotient
- * long long int rem; // remainder
- * } lldiv_t;
- */
-
- apBuf->flags.isNumber = pdTRUE; /* Parameter for prints */
- if( i == 0LL )
- {
- print_buf[ 0 ] = '0';
- print_buf[ 1 ] = '\0';
- return prints( apBuf, print_buf );
- }
-
- if( ( apBuf->flags.isSigned == pdTRUE ) && ( apBuf->flags.base == 10 ) && ( i < 0LL ) )
- {
- neg = 1;
- u = -i;
- }
-
- s = print_buf + sizeof( print_buf ) - 1;
-
- *s = '\0';
- /* 18446744073709551616 */
- while( u != 0 )
- {
- lldiv_result = lldiv( u, ( unsigned long long ) apBuf->flags.base );
- t = lldiv_result.rem;
- if( t >= 10 )
- {
- t += apBuf->flags.letBase - '0' - 10;
- }
- *( --s ) = t + '0';
- u = lldiv_result.quot;
- }
-
- if( neg != 0 )
- {
- if( ( apBuf->flags.width != 0 ) && ( apBuf->flags.pad & PAD_ZERO ) )
- {
- if( !strbuf_printchar( apBuf, '-' ) )
- {
- return pdFALSE;
- }
- --apBuf->flags.width;
- }
- else
- {
- *( --s ) = '-';
- }
- }
-
- return prints( apBuf, s );
-}
-#endif /* SPRINTF_LONG_LONG */
-/*-----------------------------------------------------------*/
-
-static BaseType_t printi( struct SStringBuf *apBuf, int i )
-{
- char print_buf[ PRINT_BUF_LEN ];
- register char *s;
- register int t, neg = 0;
- register unsigned int u = i;
- register unsigned base = apBuf->flags.base;
-
- apBuf->flags.isNumber = pdTRUE; /* Parameter for prints */
-
- if( i == 0 )
- {
- print_buf[ 0 ] = '0';
- print_buf[ 1 ] = '\0';
- return prints( apBuf, print_buf );
- }
-
- if( ( apBuf->flags.isSigned == pdTRUE ) && ( base == 10 ) && ( i < 0 ) )
- {
- neg = 1;
- u = -i;
- }
-
- s = print_buf + sizeof( print_buf ) - 1;
-
- *s = '\0';
- switch( base )
- {
- case 16:
- while( u != 0 )
- {
- t = u & 0xF;
- if( t >= 10 )
- {
- t += apBuf->flags.letBase - '0' - 10;
- }
- *( --s ) = t + '0';
- u >>= 4;
- }
- break;
-
- case 8:
- case 10:
- /* GCC compiles very efficient */
- while( u )
- {
- t = u % base;
- *( --s ) = t + '0';
- u /= base;
- }
- break;
-/*
- // The generic case, not yet in use
- default:
- while( u )
- {
- t = u % base;
- if( t >= 10)
- {
- t += apBuf->flags.letBase - '0' - 10;
- }
- *( --s ) = t + '0';
- u /= base;
- }
- break;
-*/
- }
-
- if( neg != 0 )
- {
- if( apBuf->flags.width && (apBuf->flags.pad & PAD_ZERO ) )
- {
- if( strbuf_printchar( apBuf, '-' ) == 0 )
- {
- return pdFALSE;
- }
- --apBuf->flags.width;
- }
- else
- {
- *( --s ) = '-';
- }
- }
-
- return prints( apBuf, s );
-}
-/*-----------------------------------------------------------*/
-
-static BaseType_t printIp(struct SStringBuf *apBuf, unsigned i )
-{
- char print_buf[16];
-
- sprintf( print_buf, "%u.%u.%u.%u",
- i >> 24,
- ( i >> 16 ) & 0xff,
- ( i >> 8 ) & 0xff,
- i & 0xff );
- apBuf->flags.isNumber = pdTRUE; /* Parameter for prints */
- prints( apBuf, print_buf );
-
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-
-static void tiny_print( struct SStringBuf *apBuf, const char *format, va_list args )
-{
- char scr[2];
-
- for( ; ; )
- {
- int ch = *( format++ );
-
- if( ch != '%' )
- {
- do
- {
- /* Put the most like flow in a small loop */
- if( strbuf_printchar_inline( apBuf, ch ) == 0 )
- {
- return;
- }
- ch = *( format++ );
- } while( ch != '%' );
- }
- ch = *( format++ );
- /* Now ch has character after '%', format pointing to next */
-
- if( ch == '\0' )
- {
- break;
- }
- if( ch == '%' )
- {
- if( strbuf_printchar( apBuf, ch ) == 0 )
- {
- return;
- }
- continue;
- }
- memset( &apBuf->flags, '\0', sizeof( apBuf->flags ) );
-
- if( ch == '-' )
- {
- ch = *( format++ );
- apBuf->flags.pad = PAD_RIGHT;
- }
- while( ch == '0' )
- {
- ch = *( format++ );
- apBuf->flags.pad |= PAD_ZERO;
- }
- if( ch == '*' )
- {
- ch = *( format++ );
- apBuf->flags.width = va_arg( args, int );
- }
- else
- {
- while( ch >= '0' && ch <= '9' )
- {
- apBuf->flags.width *= 10;
- apBuf->flags.width += ch - '0';
- ch = *( format++ );
- }
- }
- if( ch == '.' )
- {
- ch = *( format++ );
- if( ch == '*' )
- {
- apBuf->flags.printLimit = va_arg( args, int );
- ch = *( format++ );
- }
- else
- {
- while( ch >= '0' && ch <= '9' )
- {
- apBuf->flags.printLimit *= 10;
- apBuf->flags.printLimit += ch - '0';
- ch = *( format++ );
- }
- }
- }
- if( apBuf->flags.printLimit == 0 )
- {
- apBuf->flags.printLimit--; /* -1: make it unlimited */
- }
- if( ch == 's' )
- {
- register char *s = ( char * )va_arg( args, int );
- if( prints( apBuf, s ? s : "(null)" ) == 0 )
- {
- break;
- }
- continue;
- }
- if( ch == 'c' )
- {
- /* char are converted to int then pushed on the stack */
- scr[0] = ( char ) va_arg( args, int );
-
- if( strbuf_printchar( apBuf, scr[0] ) == 0 )
- {
- return;
- }
-
- continue;
- }
- if( ch == 'l' )
- {
- ch = *( format++ );
- apBuf->flags.long32 = 1;
- /* Makes not difference as u32 == long */
- }
- if( ch == 'L' )
- {
- ch = *( format++ );
- apBuf->flags.long64 = 1;
- /* Does make a difference */
- }
- apBuf->flags.base = 10;
- apBuf->flags.letBase = 'a';
-
- if( ch == 'd' || ch == 'u' )
- {
- apBuf->flags.isSigned = ( ch == 'd' );
-#if SPRINTF_LONG_LONG
- if( apBuf->flags.long64 != pdFALSE )
- {
- if( printll( apBuf, va_arg( args, long long ) ) == 0 )
- {
- break;
- }
- } else
-#endif /* SPRINTF_LONG_LONG */
- if( printi( apBuf, va_arg( args, int ) ) == 0 )
- {
- break;
- }
- continue;
- }
-
- apBuf->flags.base = 16; /* From here all hexadecimal */
-
- if( ch == 'x' && format[0] == 'i' && format[1] == 'p' )
- {
- format += 2; /* eat the "xi" of "xip" */
- /* Will use base 10 again */
- if( printIp( apBuf, va_arg( args, int ) ) == 0 )
- {
- break;
- }
- continue;
- }
- if( ch == 'x' || ch == 'X' || ch == 'p' || ch == 'o' )
- {
- if( ch == 'X' )
- {
- apBuf->flags.letBase = 'A';
- }
- else if( ch == 'o' )
- {
- apBuf->flags.base = 8;
- }
-#if SPRINTF_LONG_LONG
- if( apBuf->flags.long64 != pdFALSE )
- {
- if( printll( apBuf, va_arg( args, long long ) ) == 0 )
- {
- break;
- }
- } else
-#endif /* SPRINTF_LONG_LONG */
- if( printi( apBuf, va_arg( args, int ) ) == 0 )
- {
- break;
- }
- continue;
- }
- }
- strbuf_printchar( apBuf, '\0' );
-}
-/*-----------------------------------------------------------*/
-
-int vsnprintf( char *apBuf, size_t aMaxLen, const char *apFmt, va_list args )
-{
- struct SStringBuf strBuf;
- strbuf_init( &strBuf, apBuf, ( const char* )apBuf + aMaxLen );
- tiny_print( &strBuf, apFmt, args );
-
- return strBuf.curLen;
-}
-/*-----------------------------------------------------------*/
-
-int snprintf( char *apBuf, size_t aMaxLen, const char *apFmt, ... )
-{
- va_list args;
-
- va_start( args, apFmt );
- struct SStringBuf strBuf;
- strbuf_init( &strBuf, apBuf, ( const char* )apBuf + aMaxLen );
- tiny_print( &strBuf, apFmt, args );
- va_end( args );
-
- return strBuf.curLen;
-}
-/*-----------------------------------------------------------*/
-
-int sprintf( char *apBuf, const char *apFmt, ... )
-{
- va_list args;
-
- va_start( args, apFmt );
- struct SStringBuf strBuf;
- strbuf_init( &strBuf, apBuf, ( const char * )apBuf + 1024 );
- tiny_print( &strBuf, apFmt, args );
- va_end( args );
-
- return strBuf.curLen;
-}
-/*-----------------------------------------------------------*/
-
-int vsprintf( char *apBuf, const char *apFmt, va_list args )
-{
- struct SStringBuf strBuf;
- strbuf_init( &strBuf, apBuf, ( const char* ) apBuf + 1024 );
- tiny_print( &strBuf, apFmt, args );
-
- return strBuf.curLen;
-}
-/*-----------------------------------------------------------*/
-
-const char *mkSize (unsigned long long aSize, char *apBuf, int aLen)
-{
-static char retString[33];
-size_t gb, mb, kb, sb;
-
- if (apBuf == NULL) {
- apBuf = retString;
- aLen = sizeof( retString );
- }
- gb = aSize / (1024*1024*1024);
- aSize -= gb * (1024*1024*1024);
- mb = aSize / (1024*1024);
- aSize -= mb * (1024*1024);
- kb = aSize / (1024);
- aSize -= kb * (1024);
- sb = aSize;
- if( gb )
- {
- snprintf (apBuf, aLen, "%u.%02u GB", ( unsigned ) gb, ( unsigned ) ( ( 100 * mb ) / 1024ul ) );
- }
- else if( mb )
- {
- snprintf (apBuf, aLen, "%u.%02u MB", ( unsigned ) mb, ( unsigned ) ( ( 100 * kb) / 1024ul ) );
- }
- else if( kb != 0ul )
- {
- snprintf (apBuf, aLen, "%u.%02u KB", ( unsigned ) kb, ( unsigned ) ( ( 100 * sb) / 1024ul ) );
- }
- else
- {
- snprintf (apBuf, aLen, "%u bytes", ( unsigned ) sb);
- }
- return apBuf;
-}
diff --git a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/core_http_config.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/tcp_echo_config.h
similarity index 57%
rename from FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/core_http_config.h
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/tcp_echo_config.h
index 8450ce3c980..b84c59b9a6f 100644
--- a/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo/core_http_config.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/tcp_echo_config.h
@@ -24,34 +24,12 @@
*
*/
-#ifndef CORE_HTTP_CONFIG_H_
-#define CORE_HTTP_CONFIG_H_
+/* TCP Echo Demo configuration */
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
+#ifndef TCP_ECHO_CONFIG_H_
+#define TCP_ECHO_CONFIG_H_
-/* Logging config definition and header files inclusion are required in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for HTTP.
- * 3. Include the header file "logging_stack.h", if logging is enabled for HTTP.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the HTTP library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "HTTP"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_INFO
-#endif
-
-#include "logging_stack.h"
-
-
-/************ End of logging configuration ****************/
+#define configECHO_SERVER_ADDR "127.0.0.1"
+#define configECHO_SERVER_PORT ( 9000U )
-#endif /* ifndef CORE_HTTP_CONFIG_H_ */
+#endif /* TCP_ECHO_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/DemoTasks/TwoEchoClients.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/DemoTasks/TwoEchoClients.c
index 6b757e7d5bd..bde77d91c3c 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/DemoTasks/TwoEchoClients.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/DemoTasks/TwoEchoClients.c
@@ -47,6 +47,9 @@
#include "FreeRTOS_IP.h"
#include "FreeRTOS_Sockets.h"
+/* Demo Includes */
+#include "user_settings.h"
+
/* Small delay used between attempts to obtain a zero copy buffer. */
#define echoTINY_DELAY ( ( portTickType ) 2 )
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/netif.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/DemoTasks/include/user_settings.h
similarity index 60%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/netif.h
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/DemoTasks/include/user_settings.h
index 447db918295..72bca8a6ade 100644
--- a/FreeRTOS-Plus/Demo/Common/WinPCap/netif.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/DemoTasks/include/user_settings.h
@@ -20,32 +20,23 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
-#ifndef NET_IF_H
-#define NET_IF_H
+#ifndef USER_SETTINGS_H_
+#define USER_SETTINGS_H_
-/*
- * Send uip_len bytes from uip_buf to the network interface selected by the
- * configNETWORK_INTERFACE_TO_USE constant (defined in FreeRTOSConfig.h).
- */
-void vNetifTx( void );
-/*
- * Receive bytes from the network interface selected by the
- * configNETWORK_INTERFACE_TO_USE constant (defined in FreeRTOSConfig.h). The
- * bytes are placed in uip_buf. The number of bytes copied into uip_buf is
- * returned.
- */
-UBaseType_t uxNetifRx( void );
-/*
- * Prepare a packet capture session. This will print out all the network
- * interfaces available, and the one actually used is set by the
- * configNETWORK_INTERFACE_TO_USE constant that is defined in
- * FreeRTOSConfig.h. */
-BaseType_t xNetifInit( void );
+ /* The address of an echo server that will be used by the two demo echo client
+ tasks.
+ http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Echo_Clients.html
+ http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/UDP_Echo_Clients.html */
+
+#define configECHO_SERVER_ADDR0 172
+#define configECHO_SERVER_ADDR1 19
+#define configECHO_SERVER_ADDR2 195
+#define configECHO_SERVER_ADDR3 36
-#endif /* NET_IF_H */
+#endif /* ifndef USER_SETTINGS_H_ */
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index d3664921deb..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
- /*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- * https://www.FreeRTOS.org/a00110.html
- *
- * The bottom of this file contains some constants specific to running the UDP
- * stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
- * the demo) are contained in FreeRTOSIPConfig.h.
- *----------------------------------------------------------*/
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 3 /* FreeRTOS+FAT requires 2 pointers if a CWD is supported. */
-
- /* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 1
-#define configUSE_MALLOC_FAILED_HOOK 1
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering definitions. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-
-/* This demo makes use of one or more example stats formatting functions. These
-format the raw data provided by the uxTaskGetSystemState() function in to human
-readable ASCII form. See the notes in the implementation of vTaskList() within
-FreeRTOS/Source/tasks.c for limitations. configUSE_STATS_FORMATTING_FUNCTIONS
-is set to 2 so the formatting functions are included without the stdio.h being
-included in tasks.c. That is because this project defines its own sprintf()
-functions. */
-#define configUSE_STATS_FORMATTING_FUNCTIONS 1
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
-extern void vAssertCalled(const char* pcFile, uint32_t ulLine);
-#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* If configINCLUDE_DEMO_DEBUG_STATS is set to one, then a few basic IP trace
-macros are defined to gather some UDP stack statistics that can then be viewed
-through the CLI interface. */
-#define configINCLUDE_DEMO_DEBUG_STATS 0
-
-/* The size of the global output buffer that is available for use when there
-are multiple command interpreters running at once (for example, one on a UART
-and one on TCP/IP). This is done to prevent an output buffer being defined by
-each implementation - which would waste RAM. In this case, there is only one
-command interpreter running, and it has its own local output buffer, so the
-global buffer is just set to be one byte long as it is not used and should not
-take up unnecessary RAM. */
-#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
-priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
-or WiFi data to and from a real network connection. Many computers have more
-than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
-the demo which real port should be used to create the virtual port. The ports
-available are displayed on the console when the application is executed. For
-example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
-results in the wired network being used, while setting
-configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
-used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address of an echo server that will be used by the two demo echo client
-tasks.
-http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Echo_Clients.html
-http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/UDP_Echo_Clients.html */
-#define configECHO_SERVER_ADDR0 192
-#define configECHO_SERVER_ADDR1 168
-#define configECHO_SERVER_ADDR2 0
-#define configECHO_SERVER_ADDR3 17
-
-/* Default MAC address configuration. The demo creates a virtual network
-connection that uses this MAC address by accessing the raw Ethernet/WiFi data
-to and from a real network connection on the host PC. See the
-configNETWORK_INTERFACE_TO_USE definition above for information on how to
-configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x22
-#define configMAC_ADDR3 0x33
-#define configMAC_ADDR4 0x44
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
-ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 192
-#define configIP_ADDR1 168
-#define configIP_ADDR2 0
-#define configIP_ADDR3 20
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
-0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
-208.67.220.220. Used if ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
-to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
-ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-#if( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOSIPConfig.h
deleted file mode 100644
index 2c907b492bc..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
- /*****************************************************************************
- *
- * See the following URL for configuration information.
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
- *
- *****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
- /* Prototype for the function used to print out. In this case it prints to the
- console before the network is connected then a UDP port after the network has
- connected. */
-extern void vLoggingPrintf(const char* pcFormatString, ...);
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
-1 then FreeRTOS_debug_printf should be defined to the function used to print
-out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 1
-#if( ipconfigHAS_DEBUG_PRINTF == 1 )
-#define FreeRTOS_debug_printf(X) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
-FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
-then FreeRTOS_printf should be set to the function used to print out the
-messages. */
-#define ipconfigHAS_PRINTF 1
-#if( ipconfigHAS_PRINTF == 1 )
-#define FreeRTOS_printf(X) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
-on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
-then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
-stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
-performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
-set per socket, using setsockopt(). If not set, the times below will be
-used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 5000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
-(non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 1 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 1 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
-useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
-and also DNS may use small timeouts. If a DNS reply comes in after the DNS
-socket has been destroyed, the result will be stored into the cache. The next
-call to FreeRTOS_gethostbyname() will return immediately, without even creating
-a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 16 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
-use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
-sets the priority of the task that executes the IP stack. The priority is a
-standard FreeRTOS task priority so can take any value from 0 (the lowest
-priority) to (configMAX_PRIORITIES - 1) (the highest priority).
-configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
-FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
-the priority assigned to the task executing the IP stack relative to the
-priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
-task. This setting is less important when the FreeRTOS Win32 simulator is used
-as the Win32 simulator only stores a fixed amount of information on the task
-stack. FreeRTOS includes optional stack overflow detection, see:
-http://www.freertos.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
-things such as a DHCP transaction number or initial sequence number. Random
-number generation is performed via this macro to allow applications to use their
-own random number generation method. For example, it might be possible to
-generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
-network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
-is not set to 1 then the network event hook will never be called. See
-http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
-*/
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
-a network buffer cannot be obtained then the calling task is held in the Blocked
-state (so other tasks can continue to executed) until either a network buffer
-becomes available or the send block time expires. If the send block time expires
-then the send operation is aborted. The maximum allowable send block time is
-capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
-maximum allowable send block time prevents prevents a deadlock occurring when
-all the network buffers are in use and the tasks that process (and subsequently
-free) the network buffers are themselves blocked waiting for a network buffer.
-ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
-milliseconds can be converted to a time in ticks by dividing the time in
-milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000U / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
-address, netmask, DNS server address and gateway address from a DHCP server. If
-ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
-stack will revert to using the static IP address even when ipconfigUSE_DHCP is
-set to 1 if a valid configuration cannot be obtained from a DHCP server for any
-reason. The static configuration used is that passed into the stack by the
-FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
-increasing time intervals until either a reply is received from a DHCP server
-and accepted, or the interval between transmissions reaches
-ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
-static IP address passed as a parameter to FreeRTOS_IPInit() if the
-re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
-a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000U / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
-stack can only send a UDP message to a remove IP address if it knowns the MAC
-address associated with the IP address, or the MAC address of the router used to
-contact the remote IP address. When a UDP message is received from a remote IP
-address the MAC address and IP address are added to the ARP cache. When a UDP
-message is sent to a remote IP address that does not already appear in the ARP
-cache then the UDP message is replaced by a ARP message that solicits the
-required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
-number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
-maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
-aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
-table being created or refreshed and the entry being removed because it is stale.
-New ARP requests are sent for ARP cache entries that are nearing their maximum
-age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
-equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
-routines, which are relatively large. To save code space the full
-FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
-alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
-takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
-FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
-(for example, 192, 168, 0, 1) as its parameters. If
-ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
-FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
-not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
-are available to the IP stack. The total number of network buffers is limited
-to ensure the total amount of RAM that can be consumed by the IP stack is capped
-to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
-stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
-be queued for processing at any one time. The event queue must be a minimum of
-5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
-number. FreeRTOS_bind() is used to manually allocate a port number to a socket
-(to 'bind' the socket to a port), but manual binding is not normally necessary
-for client sockets (those sockets that initiate outgoing connections rather than
-wait for incoming connections on a known port number). If
-ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
-FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
-stack automatically binding the socket to a port number from the range
-socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
-ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
-on a socket that has not yet been bound will result in the send operation being
-aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 0 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 0 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
-contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
-lower value can save RAM, depending on the buffer management scheme used. If
-ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
-be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200U
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
-through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
-generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
-FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
-(and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
-that are not in Ethernet II format will be dropped. This option is included for
-potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
-responsibility of the Ethernet interface to filter out packets that are of no
-interest. If the Ethernet interface does not implement this functionality, then
-set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
-perform the filtering instead (it is much less efficient for the stack to do it
-because the packet will already have been passed into the stack). If the
-Ethernet driver does all the necessary filtering in hardware then software
-filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
-block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
-32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
-This has to do with the contents of the IP-packets: all 32-bit fields are
-32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2U
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
-TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
-outstanding packets (for Rx and Tx). When using up to 10 TP sockets
-simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
-maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 1000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
-real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS(x) ( (x) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
-disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.sln
index 6504706481f..c822868cd8a 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.sln
@@ -1,20 +1,86 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C++ Express 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WIN32", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS_Plus_UDP_with_CLI", "FreeRTOS_Plus_UDP_with_CLI.vcxproj", "{66422066-D458-449A-AE2A-0A44D4BDE94B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{19F0A285-8705-4308-AAD2-7E2108B05F0D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Debug|Win32.Build.0 = Debug|Win32
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Debug|x64.ActiveCfg = Debug|x64
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Debug|x64.Build.0 = Debug|x64
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Debug|x86.ActiveCfg = Debug|Win32
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Debug|x86.Build.0 = Debug|Win32
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Release|Win32.ActiveCfg = Release|Win32
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Release|Win32.Build.0 = Release|Win32
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Release|x64.ActiveCfg = Release|x64
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Release|x64.Build.0 = Release|x64
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Release|x86.ActiveCfg = Release|Win32
+ {66422066-D458-449A-AE2A-0A44D4BDE94B}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {19F0A285-8705-4308-AAD2-7E2108B05F0D}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {19F0A285-8705-4308-AAD2-7E2108B05F0D}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {19F0A285-8705-4308-AAD2-7E2108B05F0D}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C258A7A3-BDFD-4E7F-87B4-760A5DC5F447}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.suo b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.suo
deleted file mode 100644
index 640eae6baaf..00000000000
Binary files a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.suo and /dev/null differ
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.vcxproj
new file mode 100644
index 00000000000..fd9146a50b3
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.vcxproj
@@ -0,0 +1,175 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {66422066-d458-449a-ae2a-0a44d4bde94b}
+ FreeRTOSPlusUDPwithCLI
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\DemoTasks\include;..\Common\WinPCap;..\..\Source\FreeRTOS-Plus-CLI;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\DemoTasks\include;..\Common\WinPCap;..\..\Source\FreeRTOS-Plus-CLI;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\DemoTasks\include;..\Common\WinPCap;..\..\Source\FreeRTOS-Plus-CLI;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ .\DemoTasks\include;..\Common\WinPCap;..\..\Source\FreeRTOS-Plus-CLI;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.vcxproj.filters
new file mode 100644
index 00000000000..3a75f2eb4cc
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/FreeRTOS_Plus_UDP_with_CLI.vcxproj.filters
@@ -0,0 +1,60 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {ccb4f243-ddf3-4801-b9ad-120ec89ce7d5}
+
+
+
+
+ FreeRTOS+CLI
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ FreeRTOS+CLI
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj
deleted file mode 100644
index 3972419560d..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj
+++ /dev/null
@@ -1,195 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\Source\Utilities\logging;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\Source\FreeRTOS-Plus-TCP\include;.\DemoTasks\include;..\Common\WinPCap;..\..\Source\FreeRTOS-Plus-CLI;.;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDebug
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- ..\Common\WinPCap
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(AdditionalIncludeDirectories)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj.filters
deleted file mode 100644
index 48f1ce979dc..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,212 +0,0 @@
-
-
-
-
- {34567deb-d5ab-4a56-8640-0aaec609521a}
- cpp;c;cxx;rc;def;r;odl;idl;hpj;bat
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {fd43c0ed-fdbc-437f-a5a3-c50399690bd7}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {19ff1a34-36de-4c48-9d10-3fb1fa0d1fa4}
- h;hpp;hxx;hm;inl
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {efdc091e-3412-4dbe-a7c3-f660d1cf75e8}
-
-
- {822b2cba-7de8-4a4b-9b44-c819647cdeb7}
-
-
- {cb5941d0-6158-48ca-b76e-a922c037fe93}
-
-
- {60d4e26e-d730-4d65-b64c-347fee222b9a}
-
-
- {c86a0d3c-216d-4259-b770-21678dd82ea2}
-
-
- {e2273fad-c964-49fb-ba24-046e2095064c}
-
-
-
-
- Demo App Source
-
-
- Demo App Source
-
-
- Demo App Source\DemoTasks
-
-
- Demo App Source\DemoTasks
-
-
- FreeRTOS+\FreeRTOS+CLI
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS
-
-
- FreeRTOS
-
-
- FreeRTOS
-
-
- FreeRTOS
-
-
- FreeRTOS
-
-
- FreeRTOS
-
-
- FreeRTOS
-
-
- FreeRTOS\portable
-
-
- FreeRTOS\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable\NetworkInterface
-
-
- FreeRTOS+\FreeRTOS+TCP\portable\BufferManagement
-
-
- Demo App Source
-
-
- Demo App Source\DemoTasks
-
-
- Demo App Source
-
-
-
-
- Demo App Source\Configuration Files
-
-
- Demo App Source\Configuration Files
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\include
-
-
- FreeRTOS\include
-
-
- FreeRTOS\include
-
-
- FreeRTOS\include
-
-
- FreeRTOS\include
-
-
- FreeRTOS\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable\Compiler
-
-
- FreeRTOS+\FreeRTOS+TCP\portable\Compiler
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj.user
deleted file mode 100644
index ace9a86acb7..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/WIN32.vcxproj.user
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/main.c
index 8d8ad0fe569..5782a3a4047 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator/main.c
@@ -41,6 +41,7 @@
#include "TwoEchoClients.h"
#include "UDPCommandInterpreter.h"
#include "logging.h"
+#include "user_settings.h"
/* UDP command server task parameters. */
#define mainUDP_CLI_TASK_PRIORITY ( tskIDLE_PRIORITY )
@@ -170,85 +171,6 @@ const unsigned long ulMSToSleep = 5;
}
/*-----------------------------------------------------------*/
-void vAssertCalled( void )
-{
-const unsigned long ulLongSleep = 1000UL;
-volatile uint32_t ulBlockVariable = 0UL;
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- Sleep( ulLongSleep );
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
-uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
-int8_t cBuffer[ 16 ];
-static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- #if( mainCREATE_SIMPLE_UDP_CLIENT_SERVER_TASKS == 1 )
- {
- /* Create tasks that demonstrate sending and receiving in both
- standard and zero copy mode. */
- vStartSimpleUDPClientServerTasks( mainSIMPLE_CLIENT_SERVER_TASK_STACK_SIZE, mainSIMPLE_CLIENT_SERVER_PORT, mainSIMPLE_CLIENT_SERVER_TASK_PRIORITY );
- }
- #endif /* mainCREATE_SIMPLE_UDP_CLIENT_SERVER_TASKS */
-
- #if( mainCREATE_UDP_ECHO_TASKS == 1 )
- {
- /* Create the tasks that transmit to and receive from a standard
- echo server (see the web documentation for this port) in both
- standard and zero copy mode. */
- vStartEchoClientTasks( mainECHO_CLIENT_TASK_STACK_SIZE, mainECHO_CLIENT_TASK_PRIORITY );
- }
- #endif /* mainCREATE_UDP_ECHO_TASKS */
-
- #if( mainCREATE_UDP_CLI_TASKS == 1 )
- {
- /* Create the task that handles the CLI on a UDP port. The port number
- is set using the configUDP_CLI_PORT_NUMBER setting in FreeRTOSConfig.h. */
- vStartUDPCommandInterpreterTask( mainUDP_CLI_TASK_STACK_SIZE, mainUDP_CLI_PORT_NUMBER, mainUDP_CLI_TASK_PRIORITY );
- }
- #endif /* mainCREATE_UDP_CLI_TASKS */
-
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_debug_printf( ( "IP Address: " ) );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- FreeRTOS_debug_printf( ( ( char * ) cBuffer ) );
- FreeRTOS_debug_printf( ( "\r\nSubnet Mask: " ) );
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- FreeRTOS_debug_printf( ( ( char * ) cBuffer ) );
- FreeRTOS_debug_printf( ( "\r\nGateway Address: " ) );
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- FreeRTOS_debug_printf( ( ( char * ) cBuffer ) );
- FreeRTOS_debug_printf( ( "\r\nDNS Server Address: " ) );
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- FreeRTOS_debug_printf( ( ( char * ) cBuffer ) );
- FreeRTOS_debug_printf( ( "\r\n\r\n" ) );
- }
-}
-/*-----------------------------------------------------------*/
-
/* Called automatically when a reply to an outgoing ping is received. */
void vApplicationPingReplyHook( ePingReplyStatus_t eStatus, uint16_t usIdentifier )
{
@@ -342,24 +264,3 @@ void vApplicationMallocFailedHook( void )
#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
/*-----------------------------------------------------------*/
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /* Utility function to generate a pseudo random number. */
-
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-
-
-/*
- * Supply a random number to FreeRTOS+TCP stack.
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER
- * SO IS NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *( pulNumber ) = uxRand();
- return pdTRUE;
-}
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index 47ee619d366..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- * https://www.FreeRTOS.org/a00110.html
- *----------------------------------------------------------*/
-
-#define configUSE_PREEMPTION 1
-#define configUSE_IDLE_HOOK 1
-#define configUSE_TICK_HOOK 0
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) 0 ) /* This parameter has no effect when heap_3.c is included in the project. */
-#define configMAX_TASK_NAME_LEN ( 7 )
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY 2
-#define configTIMER_QUEUE_LENGTH 20
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-#define configMAX_PRIORITIES ( 7 )
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-
-/* Run time stats gathering definitions. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-extern void vAssertCalled( void );
-#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled()
-
-/* The TCP port used by both the secure client and the secure server. */
-#define configTCP_PORT_NUMBER 5001
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln
index bff8b7121d8..95cc5103f57 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln
@@ -1,31 +1,86 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28010.2041
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS_Plus_WolfSSL", "FreeRTOS_Plus_WolfSSL.vcxproj", "{60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{47B3A148-EE71-4F1C-A12A-F9710200C254}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Win32 = Release|Win32
Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|x64.ActiveCfg = Debug|x64
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|x64.Build.0 = Debug|x64
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x64.ActiveCfg = Release|x64
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x64.Build.0 = Release|x64
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Debug|Win32.ActiveCfg = Debug|Win32
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Debug|Win32.Build.0 = Debug|Win32
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Debug|x64.ActiveCfg = Debug|x64
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Debug|x64.Build.0 = Debug|x64
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Debug|x86.ActiveCfg = Debug|Win32
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Debug|x86.Build.0 = Debug|Win32
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Release|Win32.ActiveCfg = Release|Win32
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Release|Win32.Build.0 = Release|Win32
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Release|x64.ActiveCfg = Release|x64
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Release|x64.Build.0 = Release|x64
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Release|x86.ActiveCfg = Release|Win32
+ {60C50F90-C5B6-46E1-B41B-5C7B7C17BE82}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {47B3A148-EE71-4F1C-A12A-F9710200C254}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {47B3A148-EE71-4F1C-A12A-F9710200C254}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {47B3A148-EE71-4F1C-A12A-F9710200C254}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {D6AB2785-448B-4D5A-8422-79D28929D7E4}
+ SolutionGuid = {A7B4BB00-8925-4FDA-B434-783DE200DAB4}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.vcxproj
similarity index 58%
rename from FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.vcxproj
index 73cad8258b3..c7aef42d4a3 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.vcxproj
@@ -1,254 +1,24 @@
-
-
+
+DebugWin32
-
- Debug
- x64
- ReleaseWin32
+
+ Debug
+ x64
+ Releasex64
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- true
- .\Release\
- .\Release\
- false
- false
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\ThirdParty\WolfSSL-FIPS-Ready;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)
- WOLFSSL_USER_SETTINGS
- true
- EnableFastChecks
- MultiThreadedDebug
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- 4206;4214;%(DisableSpecificWarnings)
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- %(AdditionalDependencies)
-
-
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\ThirdParty\WolfSSL-FIPS-Ready;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)
- WOLFSSL_USER_SETTINGS
- EnableFastChecks
- MultiThreadedDebug
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- ProgramDatabase
- 4206;4214;%(DisableSpecificWarnings)
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- true
- .\Debug/WIN32.pdb
- Console
- %(AdditionalDependencies)
-
-
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- WOLFSSL_USER_SETTINGS
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\..\ThirdParty\WolfSSL-FIPS-Ready;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- WOLFSSL_USER_SETTINGS
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\..\ThirdParty\WolfSSL-FIPS-Ready;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- .\Release/WIN32.pdb
- Console
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
@@ -283,6 +53,7 @@
+
@@ -335,21 +106,10 @@
-
- %(AdditionalIncludeDirectories)
- %(AdditionalIncludeDirectories)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
-
+
-
-
-
-
@@ -393,7 +153,148 @@
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+
+ 16.0
+ Win32Proj
+ {60c50f90-c5b6-46e1-b41b-5c7b7c17be82}
+ FreeRTOSPlusWolfSSL
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL-FIPS-Ready;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL-FIPS-Ready;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL-FIPS-Ready;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL-FIPS-Ready;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.vcxproj.filters
similarity index 60%
rename from FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj.filters
rename to FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.vcxproj.filters
index 9f14032f0ea..aeb53f5e6e2 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj.filters
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/FreeRTOS_Plus_WolfSSL.vcxproj.filters
@@ -1,455 +1,437 @@
-
- {38712199-cebf-4124-bf15-398f7c3419ea}
- ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe
-
-
- {34567deb-d5ab-4a56-8640-0aaec609521a}
- cpp;c;cxx;rc;def;r;odl;idl;hpj;bat
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
- {8b481200-a9e5-48a4-98ad-49d2783cd652}
+
+ {56c6548d-8e4e-4531-b6d4-9bc1815c433b}
-
- {738eaad9-4e49-4309-9074-c3d9e102fb4a}
+
+ {fc2c3fac-3ef3-4c68-be08-7dbf181b41c2}
-
- Demo App Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- Demo App Source
-
-
- Demo App Source
-
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
- FreeRTOS+\wolfSSL
+ wolfSSL
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
-
-
-
- Demo App Source
-
-
- FreeRTOS+\wolfSSL
-
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
- FreeRTOS+\wolfSSL\wolfcrypt
+ wolfSSL\wolfcrypt
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj.user
deleted file mode 100644
index 695b5c78b91..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/WIN32.vcxproj.user
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/main.c
index 5e416d983f9..7c2c5edaac5 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/main.c
@@ -93,23 +93,3 @@ const unsigned long ulMSToSleep = 5;
}
/*-----------------------------------------------------------*/
-void vAssertCalled( void )
-{
-const unsigned long ulLongSleep = 1000UL;
-
- taskDISABLE_INTERRUPTS();
- for( ;; )
- {
- /* Cause debugger break point if being debugged.
-
- If you see reach here and the console shows "In core integrity check error"
- then you have not updated the expected build hash since building this
- project. See README_wolfSSL_FIPS_ready.md in the directory that contains
- this Visual Studio project for instructions. */
- __debugbreak();
-
- Sleep( ulLongSleep );
- }
-}
-/*-----------------------------------------------------------*/
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/user_settings.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/user_settings.h
index 2b46e11c3e7..d8a377181d3 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/user_settings.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_FIPS_Ready_Windows_Simulator/user_settings.h
@@ -102,4 +102,7 @@
/*#define DEBUG_WOLFSSL*/
+/* The TCP port used by both the secure client and the secure server. */
+#define configTCP_PORT_NUMBER 5001
+
#endif /* ifndef USER_SETTINGS_H_ */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index 1ac56c7c4f3..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- * https://www.FreeRTOS.org/a00110.html
- *----------------------------------------------------------*/
-
-#define configUSE_PREEMPTION 1
-#define configUSE_IDLE_HOOK 1
-#define configUSE_TICK_HOOK 0
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) 0 ) /* This parameter has no effect when heap_3.c is included in the project. */
-#define configMAX_TASK_NAME_LEN ( 7 )
-#define configUSE_TRACE_FACILITY 1
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY 2
-#define configTIMER_QUEUE_LENGTH 20
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-#define configMAX_PRIORITIES ( 7 )
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-
-/* Run time stats gathering definitions. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-extern void vAssertCalled( void );
-#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled()
-
-/* The TCP port used by both the secure client and the secure server. */
-#define configTCP_PORT_NUMBER 5001
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln
index bff8b7121d8..57e83da00cd 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL.sln
@@ -1,31 +1,86 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28010.2041
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS_Plus_WolfSSL_Windows_Simulator", "FreeRTOS_Plus_WolfSSL_Windows_Simulator.vcxproj", "{C8144D60-5005-4111-841E-FA3529F84A8B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{859BA71E-DC13-41CE-A405-0F83CC78F7BF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Win32 = Release|Win32
Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|x64.ActiveCfg = Debug|x64
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|x64.Build.0 = Debug|x64
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Release|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x64.ActiveCfg = Release|x64
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x64.Build.0 = Release|x64
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Debug|Win32.Build.0 = Debug|Win32
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Debug|x64.ActiveCfg = Debug|x64
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Debug|x64.Build.0 = Debug|x64
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Debug|x86.ActiveCfg = Debug|Win32
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Debug|x86.Build.0 = Debug|Win32
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Release|Win32.ActiveCfg = Release|Win32
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Release|Win32.Build.0 = Release|Win32
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Release|x64.ActiveCfg = Release|x64
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Release|x64.Build.0 = Release|x64
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Release|x86.ActiveCfg = Release|Win32
+ {C8144D60-5005-4111-841E-FA3529F84A8B}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {859BA71E-DC13-41CE-A405-0F83CC78F7BF}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {859BA71E-DC13-41CE-A405-0F83CC78F7BF}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {859BA71E-DC13-41CE-A405-0F83CC78F7BF}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {D6AB2785-448B-4D5A-8422-79D28929D7E4}
+ SolutionGuid = {77AB32C6-C9AC-4247-A3E4-D11153F3B741}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL_Windows_Simulator.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL_Windows_Simulator.vcxproj
new file mode 100644
index 00000000000..14e737be5bd
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL_Windows_Simulator.vcxproj
@@ -0,0 +1,286 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {c8144d60-5005-4111-841e-fa3529f84a8b}
+ FreeRTOSPlusWolfSSLVisualStudio_StaticProjects
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ Bcrypt.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WOLFSSL_USER_SETTINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WOLFSSL_IGNORE_FILE_WARN
+ true
+ ..\..\ThirdParty\WolfSSL;.;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL_Windows_Simulator.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL_Windows_Simulator.vcxproj.filters
new file mode 100644
index 00000000000..c8d1884bde7
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/FreeRTOS_Plus_WolfSSL_Windows_Simulator.vcxproj.filters
@@ -0,0 +1,389 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {0f203ff4-373b-4655-952c-8c02392c935b}
+
+
+ {a5051803-872c-41c6-ac09-0672c69946a1}
+
+
+
+
+ Source Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+ wolfSSL\wolfcrypt
+
+
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj
deleted file mode 100644
index f88d7b261d6..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj
+++ /dev/null
@@ -1,380 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- true
- .\Release\
- .\Release\
- false
- false
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\ThirdParty\WolfSSL;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)
- WOLFSSL_USER_SETTINGS
- true
- EnableFastChecks
- MultiThreadedDebug
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- 4206;4214;%(DisableSpecificWarnings)
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- %(AdditionalDependencies)
-
-
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\ThirdParty\WolfSSL;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)
- WOLFSSL_USER_SETTINGS
- EnableFastChecks
- MultiThreadedDebug
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- ProgramDatabase
- 4206;4214;%(DisableSpecificWarnings)
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- true
- .\Debug/WIN32.pdb
- Console
- %(AdditionalDependencies)
-
-
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- WOLFSSL_USER_SETTINGS
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\Include;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- WOLFSSL_USER_SETTINGS
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\Include;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- $(TargetDir)/$(TargetFileName)
- true
- .\Release/WIN32.pdb
- Console
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(AdditionalIncludeDirectories)
- %(AdditionalIncludeDirectories)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters
deleted file mode 100644
index dc5c3ce202b..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,401 +0,0 @@
-
-
-
-
- {38712199-cebf-4124-bf15-398f7c3419ea}
- ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe
-
-
- {34567deb-d5ab-4a56-8640-0aaec609521a}
- cpp;c;cxx;rc;def;r;odl;idl;hpj;bat
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {8b481200-a9e5-48a4-98ad-49d2783cd652}
-
-
- {738eaad9-4e49-4309-9074-c3d9e102fb4a}
-
-
-
-
- Demo App Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- Demo App Source
-
-
- Demo App Source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
- FreeRTOS+\wolfSSL
-
-
-
-
- Demo App Source
-
-
- FreeRTOS+\wolfSSL
-
-
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
- FreeRTOS+\wolfSSL\wolfcrypt
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.user
deleted file mode 100644
index 695b5c78b91..00000000000
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.user
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/main.c
index 1ae388a5d3e..6a6a1feb279 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/main.c
@@ -20,7 +20,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
@@ -88,15 +88,3 @@ const unsigned long ulMSToSleep = 5;
}
/*-----------------------------------------------------------*/
-void vAssertCalled( void )
-{
-const unsigned long ulLongSleep = 1000UL;
-
- taskDISABLE_INTERRUPTS();
- for( ;; )
- {
- Sleep( ulLongSleep );
- }
-}
-/*-----------------------------------------------------------*/
-
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/user_settings.h b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/user_settings.h
index 3520e63f33b..d0627903663 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/user_settings.h
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/user_settings.h
@@ -64,5 +64,7 @@
/*#define DEBUG_WOLFSSL*/
+/* The TCP port used by both the secure client and the secure server. */
+#define configTCP_PORT_NUMBER 5001
#endif /* ifndef USER_SETTINGS_H_ */
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/main.c b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/main.c
index c362e980282..fda8a327f70 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/main.c
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/Common/main.c
@@ -30,26 +30,18 @@
/* Standard includes. */
#include
-#include
-
-/* Visual studio intrinsics used so the __debugbreak() function is available
- * should an assert get hit. */
-#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
-/* TCP/IP stack includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
/* Demo logging includes. */
#include "logging.h"
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
/*
* Prototypes for the demos that can be started from this project. Note that the
@@ -59,64 +51,18 @@
*/
extern void vStartSimpleHTTPDemo( void );
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
+extern void vPlatformInitIpStack( void );
-/* Used by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ vPlatformInitLogging();
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ vStartSimpleHTTPDemo();
+
+ /* Initialize the FreeRTOS+TCP Stack */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -125,260 +71,14 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartSimpleHTTPDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n",
- ulRandomNumbers[ 0 ],
- ulRandomNumbers[ 1 ],
- ulRandomNumbers[ 2 ],
- ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
/*-----------------------------------------------------------*/
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
-/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/CoreHTTP_Mutual_Auth.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/CoreHTTP_Mutual_Auth.vcxproj
new file mode 100644
index 00000000000..29d2f954b7b
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/CoreHTTP_Mutual_Auth.vcxproj
@@ -0,0 +1,183 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ FreeRTOSPlusTCPMinimal
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ee39fa0f-cefb-4c29-a571-05a28fdd47fd}
+ false
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/CoreHTTP_Mutual_Auth.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/CoreHTTP_Mutual_Auth.vcxproj.filters
new file mode 100644
index 00000000000..9d9a2cfb2fb
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/CoreHTTP_Mutual_Auth.vcxproj.filters
@@ -0,0 +1,84 @@
+
+
+
+
+ {e156fda7-59f1-4310-a0f4-85b40eca422a}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {0347133f-5255-413b-8d5d-a9489cb1e627}
+
+
+ {fb36667d-41d0-464b-8552-f2d5a6f8f676}
+
+
+ {c1f8d2e2-2657-410e-a495-9685e11256f7}
+
+
+ {76510d77-541b-495e-85d8-6b6acfd9afbb}
+
+
+ {d137e0b2-9e17-4761-bcc1-173c86683e29}
+
+
+ {a879abc4-abaa-4af5-aa21-e5a7ef677003}
+
+
+ {bfcc0f67-cd4f-476a-be9a-50d691350f14}
+
+
+ {538bc50d-9893-4afb-b6a4-8689e1b992cc}
+
+
+ {b7e58684-d363-462d-9c08-9793cba48f0a}
+
+
+ {35684a01-947d-442d-81a0-59cdef11ec49}
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Config
+
+
+ Headers
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/DemoTasks/MutualAuthHTTPExample.c b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/DemoTasks/MutualAuthHTTPExample.c
index eddcb1eb762..57b6c2a5f8f 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/DemoTasks/MutualAuthHTTPExample.c
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/DemoTasks/MutualAuthHTTPExample.c
@@ -60,7 +60,7 @@
#include "core_http_client.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/* Common HTTP demo utilities. */
#include "http_demo_utils.h"
@@ -120,10 +120,10 @@
*
* @note When using ALPN, port 443 must be used to connect to AWS IoT Core.
*/
-#define IOT_CORE_ALPN_PROTOCOL_NAME "\x0ex-amzn-http-ca"
+#define IOT_CORE_ALPN_PROTOCOL_NAME "x-amzn-http-ca"
-/**
- * @brief Each compilation unit that consumes the NetworkContext must define it.
+/**
+ * @brief Each compilation unit that consumes the NetworkContext must define it.
* It should contain a single pointer to the type of your desired transport.
* When using multiple transports in the same compilation unit, define this pointer as void *.
*
@@ -253,6 +253,19 @@ static void prvHTTPDemoTask( void * pvParameters )
* HTTP_MAX_DEMO_LOOP_COUNT times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/**************************** Connect. ******************************/
/* Attempt to connect to the HTTP server. If connection fails, retry after a
@@ -332,6 +345,7 @@ static void prvHTTPDemoTask( void * pvParameters )
"Total free heap is %u.\r\n",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
vTaskDelete( NULL );
}
}
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/FreeRTOSIPConfig.h
deleted file mode 100644
index e46609adc44..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/WIN32.vcxproj
deleted file mode 100644
index e28ca630063..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/WIN32.vcxproj
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\Source\Application-Protocols\coreHTTP\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;..\Common;.;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/WIN32.vcxproj.filters
deleted file mode 100644
index df0c2ae9bf0..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,829 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {ab61f382-9091-4386-ac03-2209168b024d}
-
-
- {721b2928-3ac7-4df6-88c3-cd94f74f3c54}
-
-
- {eab3f2f5-b5cd-42a0-aef3-99344a439aa9}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- FreeRTOS+
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/http_mutual_auth_demo.sln b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/http_mutual_auth_demo.sln
index dcfc1fe098d..e2470bcca22 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/http_mutual_auth_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/http_mutual_auth_demo.sln
@@ -1,23 +1,91 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreHTTP_Mutual_Auth", "CoreHTTP_Mutual_Auth.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreHTTP", "..\..\..\VisualStudio_StaticProjects\coreHTTP\coreHTTP.vcxproj", "{EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{EDF3EA5A-89E8-4EA9-98CB-222CA21B8079}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.ActiveCfg = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.Build.0 = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.ActiveCfg = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {EDF3EA5A-89E8-4EA9-98CB-222CA21B8079}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {EDF3EA5A-89E8-4EA9-98CB-222CA21B8079}
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD} = {EDF3EA5A-89E8-4EA9-98CB-222CA21B8079}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {EDF3EA5A-89E8-4EA9-98CB-222CA21B8079}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {EDF3EA5A-89E8-4EA9-98CB-222CA21B8079}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/mbedtls_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/CoreHTTP_Plaintext.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/CoreHTTP_Plaintext.vcxproj
new file mode 100644
index 00000000000..3694c5f200b
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/CoreHTTP_Plaintext.vcxproj
@@ -0,0 +1,178 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ FreeRTOSPlusTCPMinimal
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ee39fa0f-cefb-4c29-a571-05a28fdd47fd}
+ false
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/CoreHTTP_Plaintext.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/CoreHTTP_Plaintext.vcxproj.filters
new file mode 100644
index 00000000000..3da434f0e6c
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/CoreHTTP_Plaintext.vcxproj.filters
@@ -0,0 +1,78 @@
+
+
+
+
+ {974da2c2-4a98-4d03-9709-ebbc11166411}
+
+
+ {48ad2020-f5e0-4c88-9199-885413a730a1}
+
+
+ {ed60704f-0706-4005-9d3e-c65dfd650e12}
+
+
+ {af400ce1-c43c-43c2-a18f-4d934efd7458}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {487d3378-667b-4997-90b5-7b60172eb0ca}
+
+
+ {00c38d6f-69fc-4d58-a8a4-81315540c860}
+
+
+ {5a7e238c-1d42-4c18-82c5-93f591d3a61b}
+
+
+ {039fee04-1fe8-493b-9506-0f9ac72cb811}
+
+
+ {924fc03e-08be-443d-9f0e-469526c3ea95}
+
+
+ {e225cc96-8260-4a13-ae6f-2c1970d544f8}
+
+
+ {4e2690c7-d179-411d-b2db-59142d92d985}
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + Plaintext Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Config
+
+
+ Headers
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + Plaintext Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/DemoTasks/PlainTextHTTPExample.c b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/DemoTasks/PlainTextHTTPExample.c
index 3c5a5dfaca1..a3481bc83d0 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/DemoTasks/PlainTextHTTPExample.c
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/DemoTasks/PlainTextHTTPExample.c
@@ -57,7 +57,7 @@
#include "core_http_client.h"
/* Transport interface implementation include for plaintext communication. */
-#include "using_plaintext.h"
+#include "transport_plaintext.h"
/* Common HTTP demo utilities. */
#include "http_demo_utils.h"
@@ -164,8 +164,8 @@
*/
#define httpexampleNUMBER_HTTP_PATHS ( 4 )
-/**
- * @brief Each compilation unit that consumes the NetworkContext must define it.
+/**
+ * @brief Each compilation unit that consumes the NetworkContext must define it.
* It should contain a single pointer to the type of your desired transport.
* When using multiple transports in the same compilation unit, define this pointer as void *.
*
@@ -332,6 +332,19 @@ static void prvHTTPDemoTask( void * pvParameters )
* HTTP_MAX_DEMO_LOOP_COUNT times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/**************************** Connect. ******************************/
/* Attempt to connect to the HTTP server. If connection fails, retry after a
@@ -418,6 +431,7 @@ static void prvHTTPDemoTask( void * pvParameters )
"Total free heap is %u.\r\n",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
vTaskDelete( NULL );
}
}
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/FreeRTOSIPConfig.h
deleted file mode 100644
index 3e7db14592b..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 1000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/WIN32.vcxproj
deleted file mode 100644
index 97712c2ef91..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/WIN32.vcxproj
+++ /dev/null
@@ -1,216 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\Source\Application-Protocols\coreHTTP\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_plaintext;..\Common;.;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/WIN32.vcxproj.filters
deleted file mode 100644
index 4aa15d3c4fd..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,274 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {b10b2a54-dd82-4678-b327-30bae8e3bbbb}
-
-
- {c6004ca2-6490-41e1-9786-b956bfd2f8c1}
-
-
- {da8b7deb-5af8-45a5-bb41-fa8f6ebb8541}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/core_http_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/core_http_config.h
deleted file mode 100644
index 9bfcbb3cf7b..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/core_http_config.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef CORE_HTTP_CONFIG_H_
-#define CORE_HTTP_CONFIG_H_
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Logging config definition and header files inclusion are required in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for HTTP.
- * 3. Include the header file "logging_stack.h", if logging is enabled for HTTP.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the HTTP library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "HTTP"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_INFO
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-#include "logging_stack.h"
-
-
-/************ End of logging configuration ****************/
-
-#endif /* ifndef CORE_HTTP_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/http_plain_text_demo.sln b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/http_plain_text_demo.sln
index dcfc1fe098d..2f51325d773 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/http_plain_text_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext/http_plain_text_demo.sln
@@ -1,23 +1,80 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreHTTP_Plaintext", "CoreHTTP_Plaintext.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreHTTP", "..\..\..\VisualStudio_StaticProjects\coreHTTP\coreHTTP.vcxproj", "{EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{1AC61810-E7F4-41F3-80A3-D471CF819F40}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.ActiveCfg = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.Build.0 = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.ActiveCfg = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {1AC61810-E7F4-41F3-80A3-D471CF819F40}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {1AC61810-E7F4-41F3-80A3-D471CF819F40}
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD} = {1AC61810-E7F4-41F3-80A3-D471CF819F40}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {1AC61810-E7F4-41F3-80A3-D471CF819F40}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/CoreHTTP_S3_Download.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/CoreHTTP_S3_Download.vcxproj
new file mode 100644
index 00000000000..29d4ecc5f15
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/CoreHTTP_S3_Download.vcxproj
@@ -0,0 +1,191 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ CoreHTTP_S3_Download
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\coreJSON\source\include;..\..\..\Source\AWS\sigv4\source\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\coreJSON\source\include;..\..\..\Source\AWS\sigv4\source\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\coreJSON\source\include;..\..\..\Source\AWS\sigv4\source\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\coreJSON\source\include;..\..\..\Source\AWS\sigv4\source\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ee39fa0f-cefb-4c29-a571-05a28fdd47fd}
+ false
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/CoreHTTP_S3_Download.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/CoreHTTP_S3_Download.vcxproj.filters
new file mode 100644
index 00000000000..1c929bbf8f1
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/CoreHTTP_S3_Download.vcxproj.filters
@@ -0,0 +1,123 @@
+
+
+
+
+ {c96f1e50-b6b4-488e-a231-23387e3531df}
+
+
+ {11a3eaf1-43a2-4660-a6d4-4584c7c8af8a}
+
+
+ {efdf2bf5-9de7-4744-87aa-5748b17df563}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {40e32cc4-f465-4092-a98a-75305c342a30}
+
+
+ {a4797e8c-1b0e-4386-8bab-5890fee0bb3e}
+
+
+ {f72e157d-4851-4386-b77e-74c4e83520d4}
+
+
+ {e22b9d41-754f-4178-b932-4d1a98c38947}
+
+
+ {b8a4111e-a0ab-4c55-9967-94eb714009ad}
+
+
+ {87eafd3c-08ee-4e5d-90c3-8d096f337cab}
+
+
+ {828295b8-4afa-4805-aa8e-d591994bcb95}
+
+
+ {d9741358-e039-49c1-86e0-2f5334341c9a}
+
+
+ {a759cdae-5abe-4a9b-a7c6-6cec2d469f82}
+
+
+ {949df243-7d07-44e1-8ce4-1a4be3ca84d0}
+
+
+ {403ad0d9-0279-4f81-a14c-e3d9d4d1b5af}
+
+
+ {a8eba8dd-9a44-4f49-bba8-496c4f331583}
+
+
+ {7f50cafc-290c-481a-968f-a80b87cd8f83}
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreJSON
+
+
+ Additional Libraries\AWS IoT SigV4
+
+
+ Additional Libraries\AWS IoT SigV4
+
+
+ Source
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports\freertos_plus_tcp
+
+
+ Source
+
+
+ Source
+
+
+
+
+ Additional Libraries\coreJSON\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Headers
+
+
+ Additional Libraries\AWS IoT SigV4\include
+
+
+ Additional Libraries\AWS IoT SigV4\include
+
+
+ Additional Libraries\AWS IoT SigV4\include
+
+
+ Additional Libraries\AWS IoT SigV4\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Config
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c
index 3a7fb439cba..6106badc873 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c
@@ -71,7 +71,7 @@
#include "core_http_client.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/* Common HTTP demo utilities. */
#include "http_demo_utils.h"
@@ -175,17 +175,17 @@
* 3. Session Token
* 4. Expiration Date
*/
-#define CREDENTIAL_BUFFER_LENGTH 1500U
+#define CREDENTIAL_BUFFER_LENGTH 1500U
/**
* @brief AWS Service name to send HTTP request using SigV4 library.
*/
-#define AWS_S3_SERVICE_NAME "s3"
+#define AWS_S3_SERVICE_NAME "s3"
/**
* @brief AWS S3 Endpoint.
*/
-#define AWS_S3_ENDPOINT \
+#define AWS_S3_ENDPOINT \
democonfigS3_BUCKET_NAME "." AWS_S3_SERVICE_NAME "." \
democonfigS3_BUCKET_REGION ".amazonaws.com"
@@ -278,8 +278,8 @@
*/
#define DELAY_BETWEEN_DEMO_RETRY_ITERATIONS_TICKS ( pdMS_TO_TICKS( 5000U ) )
-/**
- * @brief Each compilation unit that consumes the NetworkContext must define it.
+/**
+ * @brief Each compilation unit that consumes the NetworkContext must define it.
* It should contain a single pointer to the type of your desired transport.
* When using multiple transports in the same compilation unit, define this pointer as void *.
*
@@ -377,6 +377,7 @@ static void prvHTTPDemoTask( void * pvParameters );
static BaseType_t prvConnectToServer( NetworkContext_t * pxNetworkContext,
const char * pcServer,
NetworkCredentials_t * pxNetworkCredentials );
+
/**
* @brief Establish a HTTP connection with AWS S3 server.
*
@@ -620,6 +621,19 @@ static void prvHTTPDemoTask( void * pvParameters )
* times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/**************************** Connect. ******************************/
/* Attempt to connect to the HTTP server. If connection fails, retry after a
@@ -653,11 +667,13 @@ static void prvHTTPDemoTask( void * pvParameters )
xCredentialResponse.pBuffer = ucCredBuffer;
xCredentialResponse.bufferLen = CREDENTIAL_BUFFER_LENGTH;
xDemoStatus = prvGetTemporaryCredentials( &xTransportInterface, cDateISO8601, sizeof( cDateISO8601 ), &xCredentialResponse, &xSigvCreds );
+
if( xDemoStatus != pdPASS )
{
LogError( ( "Failed to get credential from credential provider: %d.", xDemoStatus ) );
}
}
+
if( xIsConnectionEstablished == pdTRUE )
{
/* Close the connection with IoT credential provider. */
@@ -670,11 +686,11 @@ static void prvHTTPDemoTask( void * pvParameters )
{
xDemoStatus = connectToServerWithBackoffRetries( prvConnectToS3Server,
&xNetworkContext );
+
if( xDemoStatus != pdPASS )
{
LogError( ( "Failed to connect to AWS S3 server: %d.", xDemoStatus ) );
}
-
}
if( xDemoStatus == pdPASS )
@@ -733,6 +749,7 @@ static void prvHTTPDemoTask( void * pvParameters )
"Total free heap is %u.\r\n",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
vTaskDelete( NULL );
}
}
@@ -759,16 +776,16 @@ static BaseType_t prvConnectToServer( NetworkContext_t * pxNetworkContext,
democonfigTRANSPORT_SEND_RECV_TIMEOUT_MS,
democonfigTRANSPORT_SEND_RECV_TIMEOUT_MS );
- return xNetworkStatus == TLS_TRANSPORT_SUCCESS? pdPASS : pdFAIL;
-
+ return xNetworkStatus == TLS_TRANSPORT_SUCCESS ? pdPASS : pdFAIL;
}
static BaseType_t prvConnectToS3Server( NetworkContext_t * pxNetworkContext )
{
NetworkCredentials_t xNetworkCredentials = { 0 };
+
xNetworkCredentials.disableSni = democonfigDISABLE_SNI;
/* Set the credentials for establishing a TLS connection. */
- xNetworkCredentials.pRootCa = ( uint8_t * )democonfigS3_ROOT_CA_PEM;
+ xNetworkCredentials.pRootCa = ( uint8_t * ) democonfigS3_ROOT_CA_PEM;
xNetworkCredentials.rootCaSize = sizeof( democonfigS3_ROOT_CA_PEM );
return prvConnectToServer( pxNetworkContext, AWS_S3_ENDPOINT, &xNetworkCredentials );
@@ -777,13 +794,14 @@ static BaseType_t prvConnectToS3Server( NetworkContext_t * pxNetworkContext )
static BaseType_t prvConnectToIotServer( NetworkContext_t * pxNetworkContext )
{
NetworkCredentials_t xNetworkCredentials = { 0 };
+
xNetworkCredentials.disableSni = democonfigDISABLE_SNI;
/* Set the credentials for establishing a TLS connection. */
- xNetworkCredentials.pRootCa = ( uint8_t * )democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM;
+ xNetworkCredentials.pRootCa = ( uint8_t * ) democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM;
xNetworkCredentials.rootCaSize = sizeof( democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM );
- xNetworkCredentials.pClientCert = ( uint8_t * )democonfigCLIENT_CERTIFICATE_PEM;
+ xNetworkCredentials.pClientCert = ( uint8_t * ) democonfigCLIENT_CERTIFICATE_PEM;
xNetworkCredentials.clientCertSize = sizeof( democonfigCLIENT_CERTIFICATE_PEM );
- xNetworkCredentials.pPrivateKey = ( uint8_t * )democonfigCLIENT_PRIVATE_KEY_PEM;
+ xNetworkCredentials.pPrivateKey = ( uint8_t * ) democonfigCLIENT_PRIVATE_KEY_PEM;
xNetworkCredentials.privateKeySize = sizeof( democonfigCLIENT_PRIVATE_KEY_PEM );
return prvConnectToServer( pxNetworkContext, democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT, &xNetworkCredentials );
@@ -891,6 +909,7 @@ static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTranspor
/* Store Signature used in AWS HTTP requests generated using SigV4 library. */
char * pcSignature = NULL;
size_t xSignatureLen = 0;
+
/* Pointer to start of key-value pair buffer in request buffer. This is
* used for Sigv4 signing */
char * pcHeaderStart;
@@ -927,6 +946,7 @@ static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTranspor
xHttpStatus = HTTPClient_InitializeRequestHeaders( &xRequestHeaders,
&xRequestInfo );
+
if( xHttpStatus != HTTPSuccess )
{
LogError( ( "Failed initialize HTTP headers: Error=%s.",
@@ -942,6 +962,7 @@ static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTranspor
sizeof( SIGV4_HTTP_X_AMZ_DATE_HEADER ) - 1,
cDateISO8601,
SIGV4_ISO_STRING_LEN );
+
if( xHttpStatus != HTTPSuccess )
{
LogError( ( "Failed to add X-AMZ-DATE to request headers: Error=%s.",
@@ -958,6 +979,7 @@ static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTranspor
sizeof( SIGV4_HTTP_X_AMZ_SECURITY_TOKEN_HEADER ) - 1,
pcSecurityToken,
xSecurityTokenLen );
+
if( xHttpStatus != HTTPSuccess )
{
LogError( ( "Failed to add X-AMZ-SECURITY-TOKEN to request headers: Error=%s.",
@@ -972,6 +994,7 @@ static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTranspor
xHttpStatus = HTTPClient_AddRangeHeader( &xRequestHeaders,
ulRangeStart,
ulRangeEnd );
+
if( xHttpStatus != HTTPSuccess )
{
LogError( ( "Failed to add range to request headers: Error=%s.",
@@ -983,12 +1006,13 @@ static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTranspor
if( xStatus == pdPASS )
{
/* Add the SHA256 of an empty payload. */
- prvSha256Encode( S3_REQUEST_EMPTY_PAYLOAD, sizeof(S3_REQUEST_EMPTY_PAYLOAD) - 1, cPayloadSha256 );
+ prvSha256Encode( S3_REQUEST_EMPTY_PAYLOAD, sizeof( S3_REQUEST_EMPTY_PAYLOAD ) - 1, cPayloadSha256 );
xHttpStatus = HTTPClient_AddHeader( &xRequestHeaders,
- SIGV4_HTTP_X_AMZ_CONTENT_SHA256_HEADER,
- sizeof( SIGV4_HTTP_X_AMZ_CONTENT_SHA256_HEADER ) - 1,
- cPayloadSha256,
- sizeof( cPayloadSha256 ) );
+ SIGV4_HTTP_X_AMZ_CONTENT_SHA256_HEADER,
+ sizeof( SIGV4_HTTP_X_AMZ_CONTENT_SHA256_HEADER ) - 1,
+ cPayloadSha256,
+ sizeof( cPayloadSha256 ) );
+
if( xHttpStatus != HTTPSuccess )
{
LogError( ( "Failed to add X-AMZ-CONTENT-SHA256-HEADER to request headers: Error=%s.",
@@ -1056,6 +1080,7 @@ static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTranspor
0,
pxResponse,
0 );
+
if( xHttpStatus != HTTPSuccess )
{
LogError( ( "Failed to send HTTP GET request to %s%s: Error=%s.",
@@ -1332,11 +1357,11 @@ static JSONStatus_t prvParseCredentials( HTTPResponse_t * pxResponse,
{
/* Get sessionToken from HTTP response. */
xJsonStatus = JSON_Search( ( char * ) pxResponse->pBody,
- pxResponse->bodyLen,
- CREDENTIALS_RESPONSE_SESSION_TOKEN_KEY,
- strlen( CREDENTIALS_RESPONSE_SESSION_TOKEN_KEY ),
- ( char ** ) &( pcSecurityToken ),
- &( xSecurityTokenLen ) );
+ pxResponse->bodyLen,
+ CREDENTIALS_RESPONSE_SESSION_TOKEN_KEY,
+ strlen( CREDENTIALS_RESPONSE_SESSION_TOKEN_KEY ),
+ ( char ** ) &( pcSecurityToken ),
+ &( xSecurityTokenLen ) );
if( xJsonStatus != JSONSuccess )
{
@@ -1348,11 +1373,11 @@ static JSONStatus_t prvParseCredentials( HTTPResponse_t * pxResponse,
{
/* Get expiration date from HTTP response. */
xJsonStatus = JSON_Search( ( char * ) pxResponse->pBody,
- pxResponse->bodyLen,
- CREDENTIALS_RESPONSE_EXPIRATION_DATE_KEY,
- strlen( CREDENTIALS_RESPONSE_EXPIRATION_DATE_KEY ),
- ( char ** ) &( pcExpiration ),
- &( xExpirationLen ) );
+ pxResponse->bodyLen,
+ CREDENTIALS_RESPONSE_EXPIRATION_DATE_KEY,
+ strlen( CREDENTIALS_RESPONSE_EXPIRATION_DATE_KEY ),
+ ( char ** ) &( pcExpiration ),
+ &( xExpirationLen ) );
if( xJsonStatus != JSONSuccess )
{
@@ -1370,7 +1395,11 @@ static JSONStatus_t prvParseCredentials( HTTPResponse_t * pxResponse,
static int32_t prvSha256Init( void * pxHashContext )
{
mbedtls_sha256_init( ( mbedtls_sha256_context * ) pxHashContext );
- return mbedtls_sha256_starts_ret( ( mbedtls_sha256_context * ) pxHashContext, 0 );
+ #if MBEDTLS_VERSION_NUMBER < 0x03000000
+ return mbedtls_sha256_starts_ret( ( mbedtls_sha256_context * ) pxHashContext, 0 );
+ #else
+ return mbedtls_sha256_starts( ( mbedtls_sha256_context * ) pxHashContext, 0 );
+ #endif
}
/*-----------------------------------------------------------*/
@@ -1379,9 +1408,15 @@ static int32_t prvSha256Update( void * pxHashContext,
const uint8_t * pucInput,
size_t xInputLen )
{
- return mbedtls_sha256_update_ret( ( mbedtls_sha256_context * ) pxHashContext,
+ #if MBEDTLS_VERSION_NUMBER < 0x03000000
+ return mbedtls_sha256_update_ret( ( mbedtls_sha256_context * ) pxHashContext,
+ ( const unsigned char * ) pucInput,
+ xInputLen );
+ #else
+ return mbedtls_sha256_update( ( mbedtls_sha256_context * ) pxHashContext,
( const unsigned char * ) pucInput,
xInputLen );
+ #endif
}
/*-----------------------------------------------------------*/
@@ -1394,8 +1429,13 @@ static int32_t prvSha256Final( void * pxHashContext,
( void ) xOutputLen;
- return mbedtls_sha256_finish_ret( ( mbedtls_sha256_context * ) pxHashContext,
+ #if MBEDTLS_VERSION_NUMBER < 0x03000000
+ return mbedtls_sha256_finish_ret( ( mbedtls_sha256_context * ) pxHashContext,
+ ( unsigned char * ) pucOutput );
+ #else
+ return mbedtls_sha256_finish( ( mbedtls_sha256_context * ) pxHashContext,
( unsigned char * ) pucOutput );
+ #endif
}
static void prvGetHeaderStartLocFromHttpRequest( HTTPRequestHeaders_t * pxRequestHeaders,
@@ -1446,7 +1486,11 @@ static void prvSha256Encode( const char * pcInputStr,
char * pcOutputChar = pcHexOutput;
static uint8_t ucSha256[ SHA256_HASH_DIGEST_LENGTH ];
- mbedtls_sha256_ret( pcInputStr, xInputStrLen, ucSha256, 0 );
+ #if MBEDTLS_VERSION_NUMBER < 0x03000000
+ mbedtls_sha256_ret( pcInputStr, xInputStrLen, ucSha256, 0 );
+ #else
+ mbedtls_sha256( pcInputStr, xInputStrLen, ucSha256, 0 );
+ #endif
for(size_t i = 0; i < SHA256_HASH_DIGEST_LENGTH; i++ )
{
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/FreeRTOSIPConfig.h
deleted file mode 100644
index e46609adc44..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj
deleted file mode 100644
index 3bdeedfc31e..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj
+++ /dev/null
@@ -1,689 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\Source\Application-Protocols\coreHTTP\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;..\Common;.;%(AdditionalIncludeDirectories);..\..\..\Source\coreJSON\source\include;..\..\..\Source\AWS\sigv4\source\include
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters
deleted file mode 100644
index 8126a8c0176..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,858 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {e28148c9-3da7-4e2b-9753-995186714875}
-
-
- {58e350db-d172-4809-92fe-fcad9dd3d2cf}
-
-
- {64d18fee-0d61-476f-b5e2-9a778d994c6f}
-
-
- {920b26be-50b9-439f-af06-96f14427dd9b}
-
-
- {6b025b5c-b332-47e5-b751-b0aa5c21455d}
-
-
- {168b4967-2a71-4793-8c4d-7fd177d5b76e}
-
-
- {01f6051a-2c97-4942-bc76-90b1a968647d}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.user
deleted file mode 100644
index 88a550947ed..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/core_http_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/core_http_config.h
deleted file mode 100644
index 9bfcbb3cf7b..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/core_http_config.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef CORE_HTTP_CONFIG_H_
-#define CORE_HTTP_CONFIG_H_
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Logging config definition and header files inclusion are required in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for HTTP.
- * 3. Include the header file "logging_stack.h", if logging is enabled for HTTP.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the HTTP library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "HTTP"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_INFO
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-#include "logging_stack.h"
-
-
-/************ End of logging configuration ****************/
-
-#endif /* ifndef CORE_HTTP_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/http_s3_download_demo.sln b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/http_s3_download_demo.sln
index dcfc1fe098d..a02e3656c64 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/http_s3_download_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/http_s3_download_demo.sln
@@ -1,23 +1,91 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreHTTP_S3_Download", "CoreHTTP_S3_Download.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreHTTP", "..\..\..\VisualStudio_StaticProjects\coreHTTP\coreHTTP.vcxproj", "{EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{C64D9326-A6B7-4C6B-BD8B-A710D873B531}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.ActiveCfg = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.Build.0 = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.ActiveCfg = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {C64D9326-A6B7-4C6B-BD8B-A710D873B531}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {C64D9326-A6B7-4C6B-BD8B-A710D873B531}
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD} = {C64D9326-A6B7-4C6B-BD8B-A710D873B531}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {C64D9326-A6B7-4C6B-BD8B-A710D873B531}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {C64D9326-A6B7-4C6B-BD8B-A710D873B531}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/mbedtls_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/CoreHTTP_S3_Download_Multithreaded.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/CoreHTTP_S3_Download_Multithreaded.vcxproj
new file mode 100644
index 00000000000..4f370d56f73
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/CoreHTTP_S3_Download_Multithreaded.vcxproj
@@ -0,0 +1,183 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ CoreHTTP_S3_Download_Multithreaded
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ee39fa0f-cefb-4c29-a571-05a28fdd47fd}
+ false
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/CoreHTTP_S3_Download_Multithreaded.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/CoreHTTP_S3_Download_Multithreaded.vcxproj.filters
new file mode 100644
index 00000000000..6be0b57eb93
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/CoreHTTP_S3_Download_Multithreaded.vcxproj.filters
@@ -0,0 +1,84 @@
+
+
+
+
+ {1c66a75c-af17-4aa7-8305-8103d0b2409f}
+
+
+ {11c8c872-3d7a-46ae-ae83-05f47f49bbb8}
+
+
+ {814618b3-617a-491a-a856-7a143f9db549}
+
+
+ {a5e3137c-0ab1-4cbe-938d-47133c8c1b46}
+
+
+ {7b7926c4-0be4-4a72-bd7e-26bbcdd813c4}
+
+
+ {830c0ba4-52c5-42e7-afe0-cffe373dfdf3}
+
+
+ {c9a5bea1-b42f-4e93-afd5-63556edf2e45}
+
+
+ {f1f79865-77c4-4e3f-9d81-af429039dfc3}
+
+
+ {ae3bcf05-5606-4ddf-a6b3-36d5547ea464}
+
+
+ {0ed85d57-e6a4-40cf-8e5e-1c471b747e92}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {e9c4e91a-4f2c-45e4-832c-c63f5a546070}
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+
+
+ Config
+
+
+ Headers
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/DemoTasks/S3DownloadMultithreadedHTTPExample.c b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/DemoTasks/S3DownloadMultithreadedHTTPExample.c
index e1b1e6ca3b5..f1a3f19190a 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/DemoTasks/S3DownloadMultithreadedHTTPExample.c
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/DemoTasks/S3DownloadMultithreadedHTTPExample.c
@@ -87,7 +87,7 @@
#include "core_http_client.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/* Common HTTP demo utilities. */
#include "http_demo_utils.h"
@@ -196,8 +196,8 @@
*/
#define DELAY_BETWEEN_DEMO_RETRY_ITERATIONS_TICKS ( pdMS_TO_TICKS( 5000U ) )
-/**
- * @brief Each compilation unit that consumes the NetworkContext must define it.
+/**
+ * @brief Each compilation unit that consumes the NetworkContext must define it.
* It should contain a single pointer to the type of your desired transport.
* When using multiple transports in the same compilation unit, define this pointer as void *.
*
@@ -501,6 +501,8 @@ static void prvHTTPDemoTask( void * pvParameters )
* HTTP_MAX_DEMO_LOOP_COUNT times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
/**************************** Parse Signed URL. ******************************/
/* Retrieve the path location from democonfigS3_PRESIGNED_GET_URL. This
@@ -535,6 +537,17 @@ static void prvHTTPDemoTask( void * pvParameters )
/**************************** Connect. ******************************/
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
if( xDemoStatus == pdPASS )
{
/* Attempt to connect to the HTTP server. If connection fails, retry after a
@@ -645,6 +658,7 @@ static void prvHTTPDemoTask( void * pvParameters )
"Total free heap is %u.\r\n",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
vTaskDelete( NULL );
}
}
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/FreeRTOSIPConfig.h
deleted file mode 100644
index e46609adc44..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/WIN32.vcxproj
deleted file mode 100644
index f87d15bd8f0..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/WIN32.vcxproj
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\Source\Application-Protocols\coreHTTP\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;..\Common;.;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/WIN32.vcxproj.filters
deleted file mode 100644
index a057c467a21..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,829 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {a2633f53-a9c3-4af7-96c1-367244e12389}
-
-
- {1e2b4517-b5f2-4100-bf26-59ceed614091}
-
-
- {0cc41e6f-4dc0-4f66-818b-901d98b0c217}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/core_http_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/core_http_config.h
deleted file mode 100644
index 9bfcbb3cf7b..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/core_http_config.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef CORE_HTTP_CONFIG_H_
-#define CORE_HTTP_CONFIG_H_
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Logging config definition and header files inclusion are required in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for HTTP.
- * 3. Include the header file "logging_stack.h", if logging is enabled for HTTP.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the HTTP library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "HTTP"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_INFO
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-#include "logging_stack.h"
-
-
-/************ End of logging configuration ****************/
-
-#endif /* ifndef CORE_HTTP_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/http_s3_download_multithreaded_demo.sln b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/http_s3_download_multithreaded_demo.sln
index dcfc1fe098d..51e940f579b 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/http_s3_download_multithreaded_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/http_s3_download_multithreaded_demo.sln
@@ -1,25 +1,90 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreHTTP_S3_Download_Multithreaded", "CoreHTTP_S3_Download_Multithreaded.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreHTTP", "..\..\..\VisualStudio_StaticProjects\coreHTTP\coreHTTP.vcxproj", "{EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{3F036EEB-7B7A-4059-A74A-8A03A24BB56B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.ActiveCfg = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.Build.0 = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.ActiveCfg = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {3F036EEB-7B7A-4059-A74A-8A03A24BB56B}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {3F036EEB-7B7A-4059-A74A-8A03A24BB56B}
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD} = {3F036EEB-7B7A-4059-A74A-8A03A24BB56B}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {3F036EEB-7B7A-4059-A74A-8A03A24BB56B}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {3F036EEB-7B7A-4059-A74A-8A03A24BB56B}
EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
EndGlobalSection
EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/mbedtls_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/CoreHTTP_S3_Upload.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/CoreHTTP_S3_Upload.vcxproj
new file mode 100644
index 00000000000..41621afdf84
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/CoreHTTP_S3_Upload.vcxproj
@@ -0,0 +1,183 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ CoreHTTP_S3_Upload
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ee39fa0f-cefb-4c29-a571-05a28fdd47fd}
+ false
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/CoreHTTP_S3_Upload.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/CoreHTTP_S3_Upload.vcxproj.filters
new file mode 100644
index 00000000000..c1006c52888
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/CoreHTTP_S3_Upload.vcxproj.filters
@@ -0,0 +1,84 @@
+
+
+
+
+ {c4025e68-a78c-46ae-b47c-3c482c752b9c}
+
+
+ {baedbc16-9370-44ab-a13c-a307af6dafbd}
+
+
+ {241269fa-df31-453e-8e20-b469ff27ef97}
+
+
+ {2c54e6f9-2ec4-4685-b527-d7d693fe7c7b}
+
+
+ {af3feb66-98ba-45fa-bc59-96400847d3fc}
+
+
+ {001675ba-0dee-41e0-907d-e71b960b728d}
+
+
+ {10c5cab5-9d9f-490d-bbd9-28bb8e947a33}
+
+
+ {9d59bbef-f8df-47b6-97e2-79bf0b541886}
+
+
+ {60d19f22-8a5d-4de6-b82e-d3ae820f3db6}
+
+
+ {f2f792eb-ec70-4929-9f28-0cd38f52233c}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {5bf056d9-ce34-497e-8952-34fc1bc2b4b1}
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+
+
+ Headers
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/DemoTasks/S3UploadHTTPExample.c b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/DemoTasks/S3UploadHTTPExample.c
index b1f72c155ed..0e7f04a4411 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/DemoTasks/S3UploadHTTPExample.c
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/DemoTasks/S3UploadHTTPExample.c
@@ -63,7 +63,7 @@
#include "core_http_client.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/* Common HTTP demo utilities. */
#include "http_demo_utils.h"
@@ -166,8 +166,8 @@
*/
#define DELAY_BETWEEN_DEMO_RETRY_ITERATIONS_TICKS ( pdMS_TO_TICKS( 5000U ) )
-/**
- * @brief Each compilation unit that consumes the NetworkContext must define it.
+/**
+ * @brief Each compilation unit that consumes the NetworkContext must define it.
* It should contain a single pointer to the type of your desired transport.
* When using multiple transports in the same compilation unit, define this pointer as void *.
*
@@ -364,6 +364,19 @@ static void prvHTTPDemoTask( void * pvParameters )
* times. */
do
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/**************************** Connect. ******************************/
/* Attempt to connect to the HTTP server. If connection fails, retry after a
@@ -474,6 +487,7 @@ static void prvHTTPDemoTask( void * pvParameters )
"Total free heap is %u.\r\n",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
vTaskDelete( NULL );
}
}
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/FreeRTOSIPConfig.h
deleted file mode 100644
index 3e7db14592b..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 1000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/WIN32.vcxproj
deleted file mode 100644
index 6445b489dbb..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/WIN32.vcxproj
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\Source\Application-Protocols\coreHTTP\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;..\Common;.;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/WIN32.vcxproj.filters
deleted file mode 100644
index 1fc07a35502..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,829 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {dca3bd8b-9155-48ff-9e9d-9809c8933f7b}
-
-
- {1aa8b26b-b755-4f40-8255-6ccf3dad760f}
-
-
- {cc6e666d-32a3-4049-b36c-3ebbe5d1ff62}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/core_http_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/core_http_config.h
deleted file mode 100644
index 9bfcbb3cf7b..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/core_http_config.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef CORE_HTTP_CONFIG_H_
-#define CORE_HTTP_CONFIG_H_
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Logging config definition and header files inclusion are required in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for HTTP.
- * 3. Include the header file "logging_stack.h", if logging is enabled for HTTP.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the HTTP library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "HTTP"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_INFO
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-#include "logging_stack.h"
-
-
-/************ End of logging configuration ****************/
-
-#endif /* ifndef CORE_HTTP_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/http_s3_upload_demo.sln b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/http_s3_upload_demo.sln
index dcfc1fe098d..7f0cd7ed24d 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/http_s3_upload_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/http_s3_upload_demo.sln
@@ -1,23 +1,91 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreHTTP_S3_Upload", "CoreHTTP_S3_Upload.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreHTTP", "..\..\..\VisualStudio_StaticProjects\coreHTTP\coreHTTP.vcxproj", "{EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{8BC12B79-6D4D-4032-BE2D-698F5ADF4FD1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|Win32.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.ActiveCfg = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.Build.0 = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|Win32.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.ActiveCfg = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {8BC12B79-6D4D-4032-BE2D-698F5ADF4FD1}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {8BC12B79-6D4D-4032-BE2D-698F5ADF4FD1}
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD} = {8BC12B79-6D4D-4032-BE2D-698F5ADF4FD1}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {8BC12B79-6D4D-4032-BE2D-698F5ADF4FD1}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {8BC12B79-6D4D-4032-BE2D-698F5ADF4FD1}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/mbedtls_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/FreeRTOSConfig.h
deleted file mode 100644
index ba7a2b15b14..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/FreeRTOSConfig.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-#include
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/FreeRTOSIPConfig.h
deleted file mode 100644
index e46609adc44..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/core_mqtt_config.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/core_mqtt_config.h
index 7f43cde24e1..11079df9a43 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/core_mqtt_config.h
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/core_mqtt_config.h
@@ -93,24 +93,6 @@ extern void vLoggingPrintf( const char * pcFormatString,
*/
#define MQTT_RECV_POLLING_TIMEOUT_MS 0U
-/**
- * @brief The maximum duration between non-empty network transmissions while
- * sending an MQTT packet via the #MQTT_ProcessLoop or #MQTT_ReceiveLoop
- * API functions.
- *
- * When sending an MQTT packet, the transport send function may be called multiple
- * times until the required number of bytes are sent.
- * This timeout represents the maximum time wait for any data
- * transmission over the network through the transport send function.
- *
- * @note For this demo, the timeout value is configured to zero as the demo uses a
- * dummy timer function (of #MQTTGetCurrentTimeFunc_t) that always returns zero.
- * It is REQUIRED to set the the timeout to zero when using a dummy timer function
- * that always returns zero.
- *
- */
-#define MQTT_SEND_RETRY_TIMEOUT_MS 0U
-
/*********************** coreMQTT Agent Configurations **********************/
/**
* @brief The maximum number of pending acknowledgments to track for a single
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/main.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/main.c
index bbd9f249620..1a1a582d583 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/main.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/main.c
@@ -46,113 +46,34 @@
/* Standard includes. */
#include
-#include
-
-/* Visual studio intrinsics used so the __debugbreak() function is available
- * should an assert get hit. */
-#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
-/* TCP/IP stack includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
/* Demo logging includes. */
#include "logging.h"
/* Demo Specific configs. */
#include "demo_config.h"
+/*-----------------------------------------------------------*/
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * MQTT demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * prvStartSimpleMQTTDemo() is called from inside vApplicationIPNetworkEventHook().
- */
+extern void vPlatformInitIpStack( void );
extern void vStartSimpleMQTTDemo( void );
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
-
-/* Use by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /***
- * See https://www.FreeRTOS.org/coremqtt for configuration and usage instructions,
- * and https://www.freertos.org/mqtt/mqtt-agent-demo.html? for an alternative
- * usage model that runs MQTT in an autonomous background agent task. See the
- * note below.
- *
- * Note: Single Threaded Vs Multi Threaded
- * There are two coreMQTT usage models, single threaded and multithreaded
- * (multitasking). Using the MQTT library solely from one thread within an
- * otherwise multi-threaded application, as the demos in these subdirectories do,
- * is equivalent to the single threaded use case. Single threaded use cases
- * require the application writer to make repeated explicit calls into the MQTT
- * library. Multithreaded use cases can instead execute the MQTT protocol in the
- * background within an agent (or daemon) task. Executing the MQTT protocol in
- * an agent task removes the need for the application writer to explicitly
- * manage any MQTT state or call the MQTT_ProcessLoop() API function. Using an
- * agent task also enables multiple application tasks to share a single MQTT
- * connection without the need for synchronization primitives such as mutexes.
- ***/
+ /* Initialize logging */
+ vPlatformInitLogging();
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ /* Start demo task */
+ vStartSimpleMQTTDemo();
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ /* Initialize FreeRTOS+TCP */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -161,260 +82,12 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartSimpleMQTTDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n",
- ulRandomNumbers[ 0 ],
- ulRandomNumbers[ 1 ],
- ulRandomNumbers[ 2 ],
- ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/mbedtls_config.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/mbedtls_config.h
deleted file mode 100644
index f5985730005..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common/mbedtls_config.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/DemoTasks/BasicTLSMQTTExample.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/DemoTasks/BasicTLSMQTTExample.c
index 55d52f114a7..6e15afb08d1 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/DemoTasks/BasicTLSMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/DemoTasks/BasicTLSMQTTExample.c
@@ -65,7 +65,7 @@
#include "backoff_algorithm.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/*-----------------------------------------------------------*/
@@ -128,17 +128,22 @@
#define mqttexampleCONNACK_RECV_TIMEOUT_MS ( 1000U )
/**
- * @brief The topic to subscribe and publish to in the example.
+ * @brief The prefix to the topic(s) subscribe(d) to and publish(ed) to in the example.
*
* The topic name starts with the client identifier to ensure that each demo
* interacts with a unique topic name.
*/
-#define mqttexampleTOPIC democonfigCLIENT_IDENTIFIER "/example/topic"
+#define mqttexampleTOPIC_PREFIX democonfigCLIENT_IDENTIFIER "/example/topic"
/**
* @brief The number of topic filters to subscribe.
*/
-#define mqttexampleTOPIC_COUNT ( 1 )
+#define mqttexampleTOPIC_COUNT ( 3 )
+
+/**
+ * @brief The size of the buffer for each topic string.
+ */
+#define mqttexampleTOPIC_BUFFER_SIZE ( 100U )
/**
* @brief The MQTT message published in this example.
@@ -181,6 +186,18 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/**
* @brief Milliseconds per second.
*/
@@ -215,7 +232,6 @@ struct NetworkContext
*/
static void prvMQTTDemoTask( void * pvParameters );
-
/**
* @brief Connect to MQTT broker with reconnection retries.
*
@@ -240,7 +256,7 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
NetworkContext_t * pxNetworkContext );
/**
- * @brief Function to update variable #xTopicFilterContext with status
+ * @brief Function to update variable #Context with status
* information from Subscribe ACK. Called by the event callback after processing
* an incoming SUBACK packet.
*
@@ -262,7 +278,7 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext );
*
* @param[in] pxMQTTContext MQTT context pointer.
*/
-static void prvMQTTPublishToTopic( MQTTContext_t * pxMQTTContext );
+static void prvMQTTPublishToTopics( MQTTContext_t * pxMQTTContext );
/**
* @brief Unsubscribes from the previously subscribed topic as specified
@@ -270,7 +286,7 @@ static void prvMQTTPublishToTopic( MQTTContext_t * pxMQTTContext );
*
* @param[in] pxMQTTContext MQTT context pointer.
*/
-static void prvMQTTUnsubscribeFromTopic( MQTTContext_t * pxMQTTContext );
+static void prvMQTTUnsubscribeFromTopics( MQTTContext_t * pxMQTTContext );
/**
* @brief The timer query function provided to the MQTT context.
@@ -311,6 +327,23 @@ static void prvEventCallback( MQTTContext_t * pxMQTTContext,
MQTTPacketInfo_t * pxPacketInfo,
MQTTDeserializedInfo_t * pxDeserializedInfo );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
+/**
+ * @brief Initialize the topic filter string and SUBACK buffers.
+ */
+static void prvInitializeTopicBuffers( void );
+
/*-----------------------------------------------------------*/
/**
@@ -350,7 +383,7 @@ static uint16_t usUnsubscribePacketIdentifier;
*/
typedef struct topicFilterContext
{
- const char * pcTopicFilter;
+ uint8_t pcTopicFilter[ mqttexampleTOPIC_BUFFER_SIZE ];
MQTTSubAckStatus_t xSubAckStatus;
} topicFilterContext_t;
@@ -358,10 +391,7 @@ typedef struct topicFilterContext
* @brief An array containing the context of a SUBACK; the SUBACK status
* of a filter is updated when the event callback processes a SUBACK.
*/
-static topicFilterContext_t xTopicFilterContext[ mqttexampleTOPIC_COUNT ] =
-{
- { mqttexampleTOPIC, MQTTSubAckFailure }
-};
+static topicFilterContext_t xTopicFilterContext[ mqttexampleTOPIC_COUNT ];
/** @brief Static buffer used to hold MQTT messages being sent and received. */
@@ -371,6 +401,24 @@ static MQTTFixedBuffer_t xBuffer =
democonfigNETWORK_BUFFER_SIZE
};
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
/*-----------------------------------------------------------*/
/*
@@ -390,7 +438,7 @@ void vStartSimpleMQTTDemo( void )
* state or call the MQTT_ProcessLoop() API function. Using an agent task
* also enables multiple application tasks to more easily share a single
* MQTT connection. */
- xTaskCreate( prvMQTTDemoTask, /* Function that implements the task. */
+ xTaskCreate( prvMQTTDemoTask, /* Function that implements the task. */
"DemoTask", /* Text name for the task - only used for debugging. */
democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
NULL, /* Task parameter - not used in this case. */
@@ -436,8 +484,25 @@ static void prvMQTTDemoTask( void * pvParameters )
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ /**************************** Initialize. *****************************/
+
+ prvInitializeTopicBuffers();
+
/****************************** Connect. ******************************/
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Attempt to establish a TLS connection with the MQTT broker. This example
* connects to the MQTT broker specified in democonfigMQTT_BROKER_ENDPOINT, using
* the port number specified in democonfigMQTT_BROKER_PORT (these macros are defined
@@ -462,28 +527,18 @@ static void prvMQTTDemoTask( void * pvParameters )
* implemented in BackoffAlgorithm. */
prvMQTTSubscribeWithBackoffRetries( &xMQTTContext );
- /* Process incoming packet from the broker. After sending a subscribe packet, the
- * client may receive a publish before it receives a subscribe ack. Therefore,
- * call the generic incoming packet processing function. Since this demo is
- * subscribing to a topic to which no one is publishing, the probability of
- * receiving a publish message before a subscribe ack is zero. Regardless, the
- * application must be prepared to receive any packet. This demo uses the generic packet
- * processing function everywhere to highlight this fact. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
- configASSERT( xMQTTStatus == MQTTSuccess );
-
/**************************** Publish and Keep-Alive Loop. ******************************/
+
/* Publish messages with QoS2, and send and process keep-alive messages. */
for( ulPublishCount = 0; ulPublishCount < ulMaxPublishCount; ulPublishCount++ )
{
- LogInfo( ( "Publish to the MQTT topic %s.\r\n", mqttexampleTOPIC ) );
- prvMQTTPublishToTopic( &xMQTTContext );
+ prvMQTTPublishToTopics( &xMQTTContext );
/* Process incoming publish echo. Since the application subscribed and published
* to the same topic, the broker will send the incoming publish message back
* to the application. */
- LogInfo( ( "Attempt to receive publish message from broker.\r\n" ) );
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ LogInfo( ( "Attempt to receive publishes from broker.\r\n" ) );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/* Leave connection idle for some time. */
@@ -492,11 +547,11 @@ static void prvMQTTDemoTask( void * pvParameters )
}
/************************ Unsubscribe from the topic. **************************/
- LogInfo( ( "Unsubscribe from the MQTT topic %s.\r\n", mqttexampleTOPIC ) );
- prvMQTTUnsubscribeFromTopic( &xMQTTContext );
+
+ prvMQTTUnsubscribeFromTopics( &xMQTTContext );
/* Process incoming UNSUBACK packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/**************************** Disconnect. ******************************/
@@ -521,6 +576,7 @@ static void prvMQTTDemoTask( void * pvParameters )
* bombard the broker. */
LogInfo( ( "prvMQTTDemoTask() completed an iteration successfully. Total free heap is %u.\r\n", xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
LogInfo( ( "Short delay before starting the next iteration.... \r\n\r\n" ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS_TICKS );
}
@@ -606,10 +662,17 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xResult = MQTT_Init( pxMQTTContext, &xTransport, prvGetTimeMs, prvEventCallback, &xBuffer );
configASSERT( xResult == MQTTSuccess );
+ xResult = MQTT_InitStatefulQoS( pxMQTTContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
+ configASSERT( xResult == MQTTSuccess );
/* Some fields are not used in this demo so start with everything at 0. */
( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
@@ -680,11 +743,13 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
/* Get a unique packet id. */
usSubscribePacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
- /* Subscribe to the mqttexampleTOPIC topic filter. This example subscribes to
- * only one topic and uses QoS2. */
- xMQTTSubscription[ 0 ].qos = MQTTQoS2;
- xMQTTSubscription[ 0 ].pTopicFilter = mqttexampleTOPIC;
- xMQTTSubscription[ 0 ].topicFilterLength = ( uint16_t ) strlen( mqttexampleTOPIC );
+ /* Populate subscription list. */
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ xMQTTSubscription[ ulTopicCount ].qos = MQTTQoS2;
+ xMQTTSubscription[ ulTopicCount ].pTopicFilter = xTopicFilterContext[ ulTopicCount ].pcTopicFilter;
+ xMQTTSubscription[ ulTopicCount ].topicFilterLength = ( uint16_t ) strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter );
+ }
/* Initialize context for backoff retry attempts if SUBSCRIBE request fails. */
BackoffAlgorithm_InitializeParams( &xRetryParams,
@@ -701,14 +766,17 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
* will expect all the messages it sends to the broker to be sent back to it
* from the broker. This demo uses QOS2 in Subscribe, therefore, the Publish
* messages received from the broker will have QOS2. */
- LogInfo( ( "Attempt to subscribe to the MQTT topic %s.\r\n", mqttexampleTOPIC ) );
xResult = MQTT_Subscribe( pxMQTTContext,
xMQTTSubscription,
sizeof( xMQTTSubscription ) / sizeof( MQTTSubscribeInfo_t ),
usSubscribePacketIdentifier );
configASSERT( xResult == MQTTSuccess );
- LogInfo( ( "SUBSCRIBE sent for topic %s to broker.\n\n", mqttexampleTOPIC ) );
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ LogInfo( ( "SUBSCRIBE sent for topic %s to broker.\n\n",
+ xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) );
+ }
/* Process incoming packet from the broker. After sending the subscribe, the
* client may receive a publish before it receives a subscribe ack. Therefore,
@@ -717,7 +785,7 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
* receiving Publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses the generic packet
* processing function everywhere to highlight this fact. */
- xResult = MQTT_ProcessLoop( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xResult = prvProcessLoopWithTimeout( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xResult == MQTTSuccess );
/* Reset flag before checking suback responses. */
@@ -762,49 +830,59 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
}
/*-----------------------------------------------------------*/
-static void prvMQTTPublishToTopic( MQTTContext_t * pxMQTTContext )
+static void prvMQTTPublishToTopics( MQTTContext_t * pxMQTTContext )
{
MQTTStatus_t xResult;
MQTTPublishInfo_t xMQTTPublishInfo;
+ uint32_t ulTopicCount;
/***
* For readability, error handling in this function is restricted to the use of
* asserts().
***/
- /* Some fields are not used by this demo so start with everything at 0. */
- ( void ) memset( ( void * ) &xMQTTPublishInfo, 0x00, sizeof( xMQTTPublishInfo ) );
-
- /* This demo uses QoS2 */
- xMQTTPublishInfo.qos = MQTTQoS2;
- xMQTTPublishInfo.retain = false;
- xMQTTPublishInfo.pTopicName = mqttexampleTOPIC;
- xMQTTPublishInfo.topicNameLength = ( uint16_t ) strlen( mqttexampleTOPIC );
- xMQTTPublishInfo.pPayload = mqttexampleMESSAGE;
- xMQTTPublishInfo.payloadLength = strlen( mqttexampleMESSAGE );
-
- /* Get a unique packet id. */
- usPublishPacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
-
- /* Send PUBLISH packet. */
- xResult = MQTT_Publish( pxMQTTContext, &xMQTTPublishInfo, usPublishPacketIdentifier );
-
- configASSERT( xResult == MQTTSuccess );
+ for( ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++ )
+ {
+ /* Some fields are not used by this demo so start with everything at 0. */
+ ( void ) memset( ( void * ) &xMQTTPublishInfo, 0x00, sizeof( xMQTTPublishInfo ) );
+
+ /* This demo uses QoS2 */
+ xMQTTPublishInfo.qos = MQTTQoS2;
+ xMQTTPublishInfo.retain = false;
+ xMQTTPublishInfo.pTopicName = xTopicFilterContext[ ulTopicCount ].pcTopicFilter;
+ xMQTTPublishInfo.topicNameLength = ( uint16_t ) strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter );
+ xMQTTPublishInfo.pPayload = mqttexampleMESSAGE;
+ xMQTTPublishInfo.payloadLength = strlen( mqttexampleMESSAGE );
+
+ /* Get a unique packet id. */
+ usPublishPacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
+
+ LogInfo( ( "Publishing to the MQTT topic %s.\r\n", xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) );
+ /* Send PUBLISH packet. */
+ xResult = MQTT_Publish( pxMQTTContext, &xMQTTPublishInfo, usPublishPacketIdentifier );
+ configASSERT( xResult == MQTTSuccess );
+ }
}
/*-----------------------------------------------------------*/
-static void prvMQTTUnsubscribeFromTopic( MQTTContext_t * pxMQTTContext )
+static void prvMQTTUnsubscribeFromTopics( MQTTContext_t * pxMQTTContext )
{
MQTTStatus_t xResult;
MQTTSubscribeInfo_t xMQTTSubscription[ mqttexampleTOPIC_COUNT ];
+ uint32_t ulTopicCount;
/* Some fields are not used by this demo so start with everything at 0. */
memset( ( void * ) &xMQTTSubscription, 0x00, sizeof( xMQTTSubscription ) );
- /* Unsubscribe from the mqttexampleTOPIC topic filter. */
- xMQTTSubscription[ 0 ].qos = MQTTQoS2;
- xMQTTSubscription[ 0 ].pTopicFilter = mqttexampleTOPIC;
- xMQTTSubscription[ 0 ].topicFilterLength = ( uint16_t ) strlen( mqttexampleTOPIC );
+ /* Populate subscription list. */
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ xMQTTSubscription[ ulTopicCount ].qos = MQTTQoS2;
+ xMQTTSubscription[ ulTopicCount ].pTopicFilter = xTopicFilterContext[ ulTopicCount ].pcTopicFilter;
+ xMQTTSubscription[ ulTopicCount ].topicFilterLength = ( uint16_t ) strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter );
+
+ LogInfo( ( "Unsubscribing from topic %s.\r\n", xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) );
+ }
/* Get next unique packet identifier. */
usUnsubscribePacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
@@ -829,11 +907,13 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
switch( pxIncomingPacket->type )
{
case MQTT_PACKET_TYPE_PUBACK:
- LogInfo( ( "PUBACK received for packet Id %u.\r\n", usPacketId ) );
+ LogInfo( ( "PUBACK received for packet ID %u.\r\n", usPacketId ) );
break;
case MQTT_PACKET_TYPE_SUBACK:
+ LogInfo( ( "SUBACK received for packet ID %u.", usPacketId ) );
+
/* A SUBACK from the broker, containing the server response to our subscription request, has been received.
* It contains the status code indicating server approval/rejection for the subscription to the single topic
* requested. The SUBACK will be parsed to obtain the status code, and this status code will be stored in global
@@ -855,7 +935,7 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
break;
case MQTT_PACKET_TYPE_UNSUBACK:
- LogInfo( ( "Unsubscribed from the topic %s.\r\n", mqttexampleTOPIC ) );
+ LogInfo( ( "UNSUBACK received for packet ID %u.", usPacketId ) );
/* Make sure ACK packet identifier matches with Request packet identifier. */
configASSERT( usUnsubscribePacketIdentifier == usPacketId );
break;
@@ -900,28 +980,45 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
static void prvMQTTProcessIncomingPublish( MQTTPublishInfo_t * pxPublishInfo )
{
+ uint32_t ulTopicCount;
+ BaseType_t xTopicFound = pdFALSE;
+
configASSERT( pxPublishInfo != NULL );
/* Process incoming Publish. */
LogInfo( ( "Incoming QoS : %d\n", pxPublishInfo->qos ) );
- /* Verify the received publish is for the we have subscribed to. */
- if( ( pxPublishInfo->topicNameLength == strlen( mqttexampleTOPIC ) ) &&
- ( 0 == strncmp( mqttexampleTOPIC, pxPublishInfo->pTopicName, pxPublishInfo->topicNameLength ) ) )
+ /* Verify the received publish is for one of the topics that's been subscribed to. */
+ for( ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
{
- LogInfo( ( "\r\nIncoming Publish Topic Name: %.*s matches subscribed topic.\r\n"
- "Incoming Publish Message : %.*s\r\n",
- pxPublishInfo->topicNameLength,
- pxPublishInfo->pTopicName,
- pxPublishInfo->payloadLength,
- pxPublishInfo->pPayload ) );
+ if( ( pxPublishInfo->topicNameLength == strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) ) &&
+ ( strncmp( xTopicFilterContext[ ulTopicCount ].pcTopicFilter, pxPublishInfo->pTopicName, pxPublishInfo->topicNameLength ) == 0 ) )
+ {
+ xTopicFound = pdTRUE;
+ break;
+ }
}
- else
+
+ if( xTopicFound == pdTRUE )
{
- LogInfo( ( "Incoming Publish Topic Name: %.*s does not match subscribed topic.\r\n",
+ LogInfo( ( "\r\nIncoming Publish Topic Name: %.*s matches a subscribed topic.\r\n",
pxPublishInfo->topicNameLength,
pxPublishInfo->pTopicName ) );
}
+ else
+ {
+ LogError( ( "Incoming Publish Topic Name: %.*s does not match a subscribed topic.\r\n",
+ pxPublishInfo->topicNameLength,
+ pxPublishInfo->pTopicName ) );
+ }
+
+ /* Verify the message received matches the message sent. */
+ if( strncmp( mqttexampleMESSAGE, ( const char * ) ( pxPublishInfo->pPayload ), pxPublishInfo->payloadLength ) != 0 )
+ {
+ LogError( ( "Incoming Publish Message: %.*s does not match Expected Message: %s.\r\n",
+ pxPublishInfo->topicNameLength,
+ pxPublishInfo->pTopicName, mqttexampleMESSAGE ) );
+ }
}
/*-----------------------------------------------------------*/
@@ -966,3 +1063,55 @@ static uint32_t prvGetTimeMs( void )
}
/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+static void prvInitializeTopicBuffers( void )
+{
+ uint32_t ulTopicCount;
+ int xCharactersWritten;
+
+
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ /* Write topic strings into buffers. */
+ xCharactersWritten = snprintf( xTopicFilterContext[ ulTopicCount ].pcTopicFilter,
+ mqttexampleTOPIC_BUFFER_SIZE,
+ "%s%d", mqttexampleTOPIC_PREFIX, ( int ) ulTopicCount );
+
+ configASSERT( xCharactersWritten >= 0 && xCharactersWritten < mqttexampleTOPIC_BUFFER_SIZE );
+
+ /* Assign topic string to its corresponding SUBACK code initialized as a failure. */
+ xTopicFilterContext[ ulTopicCount ].xSubAckStatus = MQTTSubAckFailure;
+ }
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/MQTT_Basic_TLS.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/MQTT_Basic_TLS.vcxproj
new file mode 100644
index 00000000000..f6c4dd0bd77
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/MQTT_Basic_TLS.vcxproj
@@ -0,0 +1,185 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {0b57f66e-ffdb-430f-a28d-0d9f8062faeb}
+ MQTTBasicTLS
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/MQTT_Basic_TLS.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/MQTT_Basic_TLS.vcxproj.filters
new file mode 100644
index 00000000000..553b9a87909
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/MQTT_Basic_TLS.vcxproj.filters
@@ -0,0 +1,117 @@
+
+
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {0da51220-8bed-4caf-b2aa-873bfea093e6}
+
+
+ {0859f27c-e810-4c5d-b58c-20781298e5bc}
+
+
+ {c0ae9251-11ab-4be8-b8cb-49862d0ee3bb}
+
+
+ {419b9d40-6a57-44bb-9108-313f44457d08}
+
+
+ {ab569f57-b030-426e-af8a-4311acbddfd2}
+
+
+ {b3505093-7ddd-4e53-b273-fd7a79c338b9}
+
+
+ {ebb2e3e4-1878-412f-83f2-f4345bcb1142}
+
+
+ {db3fbd19-b65e-4783-bcc7-96e50960613e}
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {515fa98c-9051-4c5b-84c2-6fddd7d9d496}
+
+
+ {ac434eb3-8879-48dc-91f7-02233b416f01}
+
+
+ {20a28667-7df8-450e-a195-b32360664cdb}
+
+
+ {b70eeb00-b1db-48e4-b2fd-b82f0decd003}
+
+
+ {b0596e1f-bc18-4977-ae07-2fed4fdd217d}
+
+
+
+
+ Headers
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\interface
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
+
+ Source
+
+
+ Source
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/WIN32.vcxproj
deleted file mode 100644
index 15e80c01c78..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/WIN32.vcxproj
+++ /dev/null
@@ -1,529 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/WIN32.vcxproj.filters
deleted file mode 100644
index 749f2644453..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,825 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {c7507ea2-84da-4be0-b1c9-06eb50b4cc29}
-
-
- {6d582f2e-72c0-4435-b99c-e7c9a10c0a14}
-
-
- {ff466008-8120-42da-8aa6-b4a9270f5cf5}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/mqtt_basic_tls_demo.sln b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/mqtt_basic_tls_demo.sln
index dcfc1fe098d..d5ca27a3496 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/mqtt_basic_tls_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/mqtt_basic_tls_demo.sln
@@ -1,25 +1,101 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQTT_Basic_TLS", "MQTT_Basic_TLS.vcxproj", "{0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{F1C6C407-5829-47E8-97C8-45C1BDAD10DD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Debug|Win32.Build.0 = Debug|Win32
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Debug|x64.ActiveCfg = Debug|x64
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Debug|x64.Build.0 = Debug|x64
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Debug|x86.ActiveCfg = Debug|Win32
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Debug|x86.Build.0 = Debug|Win32
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Release|Win32.ActiveCfg = Release|Win32
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Release|Win32.Build.0 = Release|Win32
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Release|x64.ActiveCfg = Release|x64
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Release|x64.Build.0 = Release|x64
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Release|x86.ActiveCfg = Release|Win32
+ {0B57F66E-FFDB-430F-A28D-0D9F8062FAEB}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {F1C6C407-5829-47E8-97C8-45C1BDAD10DD}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {F1C6C407-5829-47E8-97C8-45C1BDAD10DD}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {F1C6C407-5829-47E8-97C8-45C1BDAD10DD}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {F1C6C407-5829-47E8-97C8-45C1BDAD10DD}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {06311655-E6E0-4E7B-8804-F3A0F70D94EC}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/DemoTasks/KeepAliveMQTTExample.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/DemoTasks/KeepAliveMQTTExample.c
index 4d309ef10a2..3827969eb2f 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/DemoTasks/KeepAliveMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/DemoTasks/KeepAliveMQTTExample.c
@@ -57,6 +57,7 @@
/* Kernel includes. */
#include "FreeRTOS.h"
#include "task.h"
+#include "timers.h"
/* Demo Specific configs. */
#include "demo_config.h"
@@ -68,7 +69,7 @@
#include "backoff_algorithm.h"
/* Transport interface include. */
-#include "using_plaintext.h"
+#include "transport_plaintext.h"
/*-----------------------------------------------------------*/
@@ -201,6 +202,18 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/*-----------------------------------------------------------*/
/**
@@ -237,7 +250,6 @@ struct NetworkContext
*/
static void prvMQTTDemoTask( void * pvParameters );
-
/**
* @brief Connect to MQTT broker with reconnection retries.
*
@@ -469,6 +481,24 @@ static MQTTFixedBuffer_t xBuffer =
.size = mqttexampleSHARED_BUFFER_SIZE
};
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
/*-----------------------------------------------------------*/
/**
@@ -489,7 +519,7 @@ void vStartSimpleMQTTDemo( void )
}
/*-----------------------------------------------------------*/
- /* Also see https://www.freertos.org/mqtt/mqtt-agent-demo.html? for an
+/* Also see https://www.freertos.org/mqtt/mqtt-agent-demo.html? for an
* alternative run time model whereby coreMQTT runs in an autonomous
* background agent task. Executing the MQTT protocol in an agent task
* removes the need for the application writer to explicitly manage any MQTT
@@ -519,8 +549,20 @@ static void prvMQTTDemoTask( void * pvParameters )
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
/****************************** Connect. ******************************/
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Attempt to connect to the MQTT broker. If connection fails, retry
* after a timeout. The timeout value will be exponentially increased
* until the maximum number of attempts are reached or the maximum
@@ -536,19 +578,17 @@ static void prvMQTTDemoTask( void * pvParameters )
prvCreateMQTTConnectionWithBroker( &xMQTTContext, &xNetworkContext );
/* Create timers to handle keep-alive. */
- xPingReqTimer = xTimerCreateStatic( "PingReqTimer",
- mqttexamplePING_REQUEST_DELAY,
- pdTRUE,
- ( void * ) &xMQTTContext.transportInterface,
- prvPingReqTimerCallback,
- &xPingReqTimerBuffer );
+ xPingReqTimer = xTimerCreate( "PingReqTimer",
+ mqttexamplePING_REQUEST_DELAY,
+ pdTRUE,
+ ( void * ) &xMQTTContext.transportInterface,
+ prvPingReqTimerCallback );
configASSERT( xPingReqTimer );
- xPingRespTimer = xTimerCreateStatic( "PingRespTimer",
- mqttexamplePING_RESPONSE_DELAY,
- pdFALSE,
- NULL,
- prvPingRespTimerCallback,
- &xPingRespTimerBuffer );
+ xPingRespTimer = xTimerCreate( "PingRespTimer",
+ mqttexamplePING_RESPONSE_DELAY,
+ pdFALSE,
+ NULL,
+ prvPingRespTimerCallback );
configASSERT( xPingRespTimer );
/* Start the timer to send a PINGREQ. */
@@ -585,7 +625,7 @@ static void prvMQTTDemoTask( void * pvParameters )
vTaskDelay( mqttexampleRECEIVE_LOOP_ITERATION_DELAY );
- xMQTTStatus = MQTT_ReceiveLoop( &xMQTTContext, 0U );
+ xMQTTStatus = MQTT_ReceiveLoop( &xMQTTContext );
configASSERT( xMQTTStatus == MQTTSuccess );
}
@@ -605,7 +645,7 @@ static void prvMQTTDemoTask( void * pvParameters )
vTaskDelay( mqttexampleRECEIVE_LOOP_ITERATION_DELAY );
- xMQTTStatus = MQTT_ReceiveLoop( &xMQTTContext, 0U );
+ xMQTTStatus = MQTT_ReceiveLoop( &xMQTTContext );
configASSERT( xMQTTStatus == MQTTSuccess );
}
@@ -646,6 +686,7 @@ static void prvMQTTDemoTask( void * pvParameters )
"Total free heap is %u.",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully." ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
LogInfo( ( "Short delay before starting the next iteration.... \r\n" ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS );
}
@@ -726,10 +767,17 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = Plaintext_FreeRTOS_send;
xTransport.recv = Plaintext_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xResult = MQTT_Init( pxMQTTContext, &xTransport, prvMockedGetTime, prvEventCallback, &xBuffer );
configASSERT( xResult == MQTTSuccess );
+ xResult = MQTT_InitStatefulQoS( pxMQTTContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
+ configASSERT( xResult == MQTTSuccess );
/* Many fields not used in this demo so start with everything at 0. */
( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
@@ -848,7 +896,7 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
vTaskDelay( mqttexampleRECEIVE_LOOP_ITERATION_DELAY );
- xResult = MQTT_ReceiveLoop( pxMQTTContext, 0U );
+ xResult = MQTT_ReceiveLoop( pxMQTTContext );
configASSERT( xResult == MQTTSuccess );
}
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/MQTT_Keep_Alive.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/MQTT_Keep_Alive.vcxproj
new file mode 100644
index 00000000000..a3ec80e16e9
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/MQTT_Keep_Alive.vcxproj
@@ -0,0 +1,183 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {7260cb0d-0bbf-4dac-91d9-d091022c1f9a}
+ MQTTKeepAlive
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/MQTT_Keep_Alive.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/MQTT_Keep_Alive.vcxproj.filters
new file mode 100644
index 00000000000..acda181379c
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/MQTT_Keep_Alive.vcxproj.filters
@@ -0,0 +1,104 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {ca85e3b4-48b5-41e3-b78e-0969dcbb4014}
+
+
+ {ee581e1d-f4c8-4ccf-8e5a-123c2e5e9547}
+
+
+ {2430635d-0b61-42ee-b526-a3f96fdffacd}
+
+
+ {ca386497-b254-469a-968a-7a6a64aaddb5}
+
+
+ {63d48723-fc3b-4f3d-9717-8d7f6ac8e592}
+
+
+ {628e3184-4ee7-4597-a6f3-406e6fb32fd0}
+
+
+ {1e47e29c-64f2-485d-843c-bf6cebd04529}
+
+
+ {be34c1eb-2b93-4475-90e9-fe1681790d11}
+
+
+ {f22601ed-22e4-4f63-b692-f40725d45806}
+
+
+ {31fc5121-9909-40e4-8ffc-959188291c48}
+
+
+ {dea14617-4fab-45e0-a2fa-3fa11d95d388}
+
+
+ {7c4a1006-eb8b-43a6-a876-b0bafaf2e380}
+
+
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\backoff_algorithm\include
+
+
+ Header
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\backoff_algorithm
+
+
+ Source
+
+
+ Source
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/WIN32.vcxproj
deleted file mode 100644
index e7d4aba3e6d..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/WIN32.vcxproj
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_plaintext;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/WIN32.vcxproj.filters
deleted file mode 100644
index 9ccd22ad6a3..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,267 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {1e52d167-f9d8-450b-9e77-73faca6edf53}
-
-
- {e3ff5a49-75b2-44cf-b0e1-c42e280d48a0}
-
-
- {608c9802-3b1b-4425-a836-ec41a09976f4}
-
-
- {74ff0be1-54d5-4aa7-a9cd-92fd7a4a2038}
-
-
- {d52df8d8-0ddd-40a6-8152-2286571eedce}
-
-
- {4526b0f2-2ad2-4a33-a8db-444ad194b767}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/mqtt_keep_alive_demo.sln b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/mqtt_keep_alive_demo.sln
index dcfc1fe098d..8ec05951461 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/mqtt_keep_alive_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/mqtt_keep_alive_demo.sln
@@ -1,25 +1,101 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQTT_Keep_Alive", "MQTT_Keep_Alive.vcxproj", "{7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{75B2B370-3E3C-46AE-98F2-66BC80A8175A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Debug|Win32.Build.0 = Debug|Win32
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Debug|x64.ActiveCfg = Debug|x64
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Debug|x64.Build.0 = Debug|x64
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Debug|x86.ActiveCfg = Debug|Win32
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Debug|x86.Build.0 = Debug|Win32
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Release|Win32.ActiveCfg = Release|Win32
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Release|Win32.Build.0 = Release|Win32
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Release|x64.ActiveCfg = Release|x64
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Release|x64.Build.0 = Release|x64
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Release|x86.ActiveCfg = Release|Win32
+ {7260CB0D-0BBF-4DAC-91D9-D091022C1F9A}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {75B2B370-3E3C-46AE-98F2-66BC80A8175A}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {75B2B370-3E3C-46AE-98F2-66BC80A8175A}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {75B2B370-3E3C-46AE-98F2-66BC80A8175A}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {75B2B370-3E3C-46AE-98F2-66BC80A8175A}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D0EA1B18-3B19-44D7-AE7D-FA4FB739DF96}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/mqtt-agent-task.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/mqtt-agent-task.c
index b36486238d7..8e6c924cd6b 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/mqtt-agent-task.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/mqtt-agent-task.c
@@ -87,9 +87,9 @@
/* Transport interface include. */
#if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 )
- #include "using_mbedtls.h"
+ #include "transport_mbedtls.h"
#else
- #include "using_plaintext.h"
+ #include "transport_plaintext.h"
#endif
/* This demo uses compile time options to select the demo tasks to created.
@@ -103,32 +103,32 @@
#error Please define democonfigSIMPLE_SUB_PUB_TASK_STACK_SIZE in demo_config.h to set the stack size (in words, not bytes) for the tasks created by vStartSimpleSubscribePublishTask().
#endif
- /* Compile time error for some undefined configs, and provide default values
- * for others. */
+/* Compile time error for some undefined configs, and provide default values
+ * for others. */
#ifndef democonfigMQTT_BROKER_ENDPOINT
-#error "Please define democonfigMQTT_BROKER_ENDPOINT in demo_config.h."
+ #error "Please define democonfigMQTT_BROKER_ENDPOINT in demo_config.h."
#endif
#ifndef democonfigCLIENT_IDENTIFIER
- /**
- * @brief The MQTT client identifier used in this example. Each client identifier
- * must be unique so edit as required to ensure no two clients connecting to the
- * same broker use the same client identifier. Using a #define is for convenience
- * of demonstration only - production devices should use something unique to the
- * device that can be read from software - such as a production serial number.
- */
-#error "Please define democonfigCLIENT_IDENTIFIER in demo_config.h to something unique for this device."
+ /**
+ * @brief The MQTT client identifier used in this example. Each client identifier
+ * must be unique so edit as required to ensure no two clients connecting to the
+ * same broker use the same client identifier. Using a #define is for convenience
+ * of demonstration only - production devices should use something unique to the
+ * device that can be read from software - such as a production serial number.
+ */
+ #error "Please define democonfigCLIENT_IDENTIFIER in demo_config.h to something unique for this device."
#endif
#if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 )
-#ifndef democonfigROOT_CA_PEM
-#error "Please define Root CA certificate of the MQTT broker(democonfigROOT_CA_PEM) in demo_config.h."
-#endif
+ #ifndef democonfigROOT_CA_PEM
+ #error "Please define Root CA certificate of the MQTT broker(democonfigROOT_CA_PEM) in demo_config.h."
+ #endif
- /* If no username is defined, then a client certificate/key is required. */
-#ifndef democonfigCLIENT_USERNAME
+ /* If no username is defined, then a client certificate/key is required. */
+ #ifndef democonfigCLIENT_USERNAME
/*
*!!! Please note democonfigCLIENT_PRIVATE_KEY_PEM in used for
@@ -136,34 +136,34 @@
*!!! store keys securely, such as within a secure element.
*/
-#ifndef democonfigCLIENT_CERTIFICATE_PEM
-#error "Please define client certificate(democonfigCLIENT_CERTIFICATE_PEM) in demo_config.h."
-#endif
-#ifndef democonfigCLIENT_PRIVATE_KEY_PEM
-#error "Please define client private key(democonfigCLIENT_PRIVATE_KEY_PEM) in demo_config.h."
-#endif
-#else
+ #ifndef democonfigCLIENT_CERTIFICATE_PEM
+ #error "Please define client certificate(democonfigCLIENT_CERTIFICATE_PEM) in demo_config.h."
+ #endif
+ #ifndef democonfigCLIENT_PRIVATE_KEY_PEM
+ #error "Please define client private key(democonfigCLIENT_PRIVATE_KEY_PEM) in demo_config.h."
+ #endif
+ #else
/* If a username is defined, a client password also would need to be defined for
* client authentication. */
-#ifndef democonfigCLIENT_PASSWORD
-#error "Please define client password(democonfigCLIENT_PASSWORD) in demo_config.h for client authentication based on username/password."
-#endif
+ #ifndef democonfigCLIENT_PASSWORD
+ #error "Please define client password(democonfigCLIENT_PASSWORD) in demo_config.h for client authentication based on username/password."
+ #endif
- /* AWS IoT MQTT broker port needs to be 443 for client authentication based on
- * username/password. */
-#if defined( democonfigUSE_AWS_IOT_CORE_BROKER ) && democonfigMQTT_BROKER_PORT != 443
-#error "Broker port(democonfigMQTT_BROKER_PORT) should be defined as 443 in demo_config.h for client authentication based on username/password in AWS IoT Core."
-#endif
-#endif /* ifndef democonfigCLIENT_USERNAME */
+ /* AWS IoT MQTT broker port needs to be 443 for client authentication based on
+ * username/password. */
+ #if defined( democonfigUSE_AWS_IOT_CORE_BROKER ) && democonfigMQTT_BROKER_PORT != 443
+ #error "Broker port(democonfigMQTT_BROKER_PORT) should be defined as 443 in demo_config.h for client authentication based on username/password in AWS IoT Core."
+ #endif
+ #endif /* ifndef democonfigCLIENT_USERNAME */
-#ifndef democonfigMQTT_BROKER_PORT
-#define democonfigMQTT_BROKER_PORT ( 8883 )
-#endif
+ #ifndef democonfigMQTT_BROKER_PORT
+ #define democonfigMQTT_BROKER_PORT ( 8883 )
+ #endif
#else /* if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 ) */
-#ifndef democonfigMQTT_BROKER_PORT
-#define democonfigMQTT_BROKER_PORT ( 1883 )
-#endif
+ #ifndef democonfigMQTT_BROKER_PORT
+ #define democonfigMQTT_BROKER_PORT ( 1883 )
+ #endif
#endif /* if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 ) */
@@ -233,9 +233,9 @@
#define mqttexampleMILLISECONDS_PER_SECOND ( 1000U )
#define mqttexampleMILLISECONDS_PER_TICK ( mqttexampleMILLISECONDS_PER_SECOND / configTICK_RATE_HZ )
- /**
- * @brief The MQTT metrics string expected by AWS IoT.
- */
+/**
+ * @brief The MQTT metrics string expected by AWS IoT.
+ */
#define AWS_IOT_METRICS_STRING \
"?SDK=" democonfigOS_NAME "&Version=" democonfigOS_VERSION \
"&Platform=" democonfigHARDWARE_PLATFORM_NAME "&MQTTLib=" democonfigMQTT_LIB
@@ -244,20 +244,20 @@
* Provide default values for undefined configuration settings.
*/
#ifndef democonfigOS_NAME
-#define democonfigOS_NAME "FreeRTOS"
+ #define democonfigOS_NAME "FreeRTOS"
#endif
#ifndef democonfigOS_VERSION
-#define democonfigOS_VERSION tskKERNEL_VERSION_NUMBER
+ #define democonfigOS_VERSION tskKERNEL_VERSION_NUMBER
#endif
#ifndef democonfigHARDWARE_PLATFORM_NAME
-#define democonfigHARDWARE_PLATFORM_NAME "WinSim"
+ #define democonfigHARDWARE_PLATFORM_NAME "WinSim"
#endif
#ifndef democonfigMQTT_LIB
-#include "core_mqtt.h" /* Include coreMQTT header for MQTT_LIBRARY_VERSION macro. */
-#define democonfigMQTT_LIB "core-mqtt@"MQTT_LIBRARY_VERSION
+ #include "core_mqtt.h" /* Include coreMQTT header for MQTT_LIBRARY_VERSION macro. */
+ #define democonfigMQTT_LIB "core-mqtt@"MQTT_LIBRARY_VERSION
#endif
/*-----------------------------------------------------------*/
@@ -501,10 +501,8 @@ static MQTTStatus_t prvMQTTInit( void )
};
LogDebug( ( "Creating command queue." ) );
- xCommandQueue.queue = xQueueCreateStatic( MQTT_AGENT_COMMAND_QUEUE_LENGTH,
- sizeof( MQTTAgentCommand_t * ),
- staticQueueStorageArea,
- &staticQueueStructure );
+ xCommandQueue.queue = xQueueCreate( MQTT_AGENT_COMMAND_QUEUE_LENGTH,
+ sizeof( MQTTAgentCommand_t * ) );
configASSERT( xCommandQueue.queue );
messageInterface.pMsgCtx = &xCommandQueue;
@@ -516,9 +514,11 @@ static MQTTStatus_t prvMQTTInit( void )
#if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 )
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
#else
xTransport.send = Plaintext_FreeRTOS_send;
xTransport.recv = Plaintext_FreeRTOS_recv;
+ xTransport.writev = NULL;
#endif
/* Initialize MQTT library. */
@@ -722,41 +722,39 @@ static BaseType_t prvSocketConnect( NetworkContext_t * pxNetworkContext )
#if defined( democonfigUSE_AWS_IOT_CORE_BROKER )
#if defined( democonfigCLIENT_USERNAME )
/*
- * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
- * to AWS IoT Core with Custom Authentication on port 443.
- *
- * Custom Authentication uses the contents of the username and password
- * fields of the MQTT CONNECT packet to authenticate the client.
- *
- * For more information, refer to the documentation at:
- * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
- */
+ * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
+ * to AWS IoT Core with Custom Authentication on port 443.
+ *
+ * Custom Authentication uses the contents of the username and password
+ * fields of the MQTT CONNECT packet to authenticate the client.
+ *
+ * For more information, refer to the documentation at:
+ * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
+ */
static const char * ppcAlpnProtocols[] = { "mqtt", NULL };
#if democonfigMQTT_BROKER_PORT != 443U
- #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
+ #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
#else /* if !defined( democonfigCLIENT_USERNAME ) */
/*
- * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
- * x509 Certificate Authentication.
- */
+ * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
+ * x509 Certificate Authentication.
+ */
static const char * ppcAlpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
-
#endif /* !defined( democonfigCLIENT_USERNAME ) */
/*
- * An ALPN identifier is only required when connecting to AWS IoT core on port 443.
- * https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html
- */
+ * An ALPN identifier is only required when connecting to AWS IoT core on port 443.
+ * https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html
+ */
#if democonfigMQTT_BROKER_PORT == 443U
xNetworkCredentials.pAlpnProtos = ppcAlpnProtocols;
#elif democonfigMQTT_BROKER_PORT == 8883U
xNetworkCredentials.pAlpnProtos = NULL;
#else /* democonfigMQTT_BROKER_PORT != 8883U */
xNetworkCredentials.pAlpnProtos = NULL;
- #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
+ #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
-
#else /* !defined( democonfigUSE_AWS_IOT_CORE_BROKER ) */
xNetworkCredentials.pAlpnProtos = NULL;
#endif /* !defined( democonfigUSE_AWS_IOT_CORE_BROKER ) */
@@ -787,34 +785,34 @@ static BaseType_t prvSocketConnect( NetworkContext_t * pxNetworkContext )
if( xConnected == pdPASS )
{
/* Attempt to connect to MQTT broker. If connection fails, retry after a
- * timeout. Timeout value will exponentially increase until the maximum
- * number of attempts are reached.
- */
+ * timeout. Timeout value will exponentially increase until the maximum
+ * number of attempts are reached.
+ */
do
{
/* Establish a TCP connection with the MQTT broker. This example connects to
- * the MQTT broker as specified in democonfigMQTT_BROKER_ENDPOINT and
- * democonfigMQTT_BROKER_PORT at the top of this file. */
+ * the MQTT broker as specified in democonfigMQTT_BROKER_ENDPOINT and
+ * democonfigMQTT_BROKER_PORT at the top of this file. */
#if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 )
LogInfo( ( "Creating a TLS connection to %s:%d.",
- democonfigMQTT_BROKER_ENDPOINT,
- democonfigMQTT_BROKER_PORT ) );
+ democonfigMQTT_BROKER_ENDPOINT,
+ democonfigMQTT_BROKER_PORT ) );
xNetworkStatus = TLS_FreeRTOS_Connect( pxNetworkContext,
- democonfigMQTT_BROKER_ENDPOINT,
- democonfigMQTT_BROKER_PORT,
- &xNetworkCredentials,
- mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS,
- mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS );
+ democonfigMQTT_BROKER_ENDPOINT,
+ democonfigMQTT_BROKER_PORT,
+ &xNetworkCredentials,
+ mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS,
+ mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS );
xConnected = ( xNetworkStatus == TLS_TRANSPORT_SUCCESS ) ? pdPASS : pdFAIL;
#else /* if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 ) */
LogInfo( ( "Creating a TCP connection to %s:%d.",
- democonfigMQTT_BROKER_ENDPOINT,
- democonfigMQTT_BROKER_PORT ) );
+ democonfigMQTT_BROKER_ENDPOINT,
+ democonfigMQTT_BROKER_PORT ) );
xNetworkStatus = Plaintext_FreeRTOS_Connect( pxNetworkContext,
- democonfigMQTT_BROKER_ENDPOINT,
- democonfigMQTT_BROKER_PORT,
- mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS,
- mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS );
+ democonfigMQTT_BROKER_ENDPOINT,
+ democonfigMQTT_BROKER_PORT,
+ mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS,
+ mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS );
xConnected = ( xNetworkStatus == PLAINTEXT_TRANSPORT_SUCCESS ) ? pdPASS : pdFAIL;
#endif /* if defined( democonfigUSE_TLS ) && ( democonfigUSE_TLS == 1 ) */
@@ -826,8 +824,8 @@ static BaseType_t prvSocketConnect( NetworkContext_t * pxNetworkContext )
if( xBackoffAlgStatus == BackoffAlgorithmSuccess )
{
LogWarn( ( "Connection to the broker failed. "
- "Retrying connection in %hu ms.",
- usNextRetryBackOff ) );
+ "Retrying connection in %hu ms.",
+ usNextRetryBackOff ) );
vTaskDelay( pdMS_TO_TICKS( usNextRetryBackOff ) );
}
}
@@ -1020,6 +1018,17 @@ static void prvConnectAndCreateDemoTasks( void * pvParameters )
xNetworkContext.pParams = &xPlaintextTransportParams;
#endif
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Create the TCP connection to the broker, then the MQTT connection to the
* same. */
prvConnectToMQTTBroker();
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/simple_sub_pub_demo.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/simple_sub_pub_demo.c
index fbb7a7bdc35..bb51e1165ee 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/simple_sub_pub_demo.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/DemoTasks/simple_sub_pub_demo.c
@@ -446,6 +446,8 @@ static void prvSimpleSubscribePublishTask( void * pvParameters )
/* Create a topic name for this task to publish to. */
snprintf( pcTopicBuffer, mqttexampleSTRING_BUFFER_LENGTH, "/filter/%s", taskName );
+ LogInfo( ( "Task: %s: ---------STARTING DEMO---------\r\n", taskName ) );
+
/* Subscribe to the same topic to which this task will publish. That will
* result in each published message being published from the server back to
* the target. */
@@ -512,8 +514,9 @@ static void prvSimpleSubscribePublishTask( void * pvParameters )
configASSERT( ulNotification == ulValueToNotify );
/* Log statement to indicate successful reception of publish. */
- LogInfo( ( "Demo completed successfully.\r\n" ) );
- LogInfo( ( "Short delay before next publish... \r\n\r\n" ) );
+ LogInfo( ( "Task: %s: Demo completed successfully.\r\n", taskName ) );
+ LogInfo( ( "Task: %s: -------DEMO FINISHED-------\r\n", taskName ) );
+ LogInfo( ( "Task: %s: Short delay before next iteration... \r\n\r\n", taskName ) );
/* Add a little randomness into the delay so the tasks don't remain
* in lockstep. */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/FreeRTOSIPConfig.h
deleted file mode 100644
index 38dbd997890..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/MQTT_Multitask.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/MQTT_Multitask.vcxproj
new file mode 100644
index 00000000000..461eb200d47
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/MQTT_Multitask.vcxproj
@@ -0,0 +1,199 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {c35a89ca-0a40-49ff-a7f8-6e6830809b26}
+ MQTTMultitask
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\Demo\Common\coreMQTT_Agent_Interface\include;.\subscription-manager;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\Demo\Common\coreMQTT_Agent_Interface\include;.\subscription-manager;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\Demo\Common\coreMQTT_Agent_Interface\include;.\subscription-manager;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MQTT_AGENT_DO_NOT_USE_CUSTOM_CONFIG;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\..\Demo\Common\coreMQTT_Agent_Interface\include;.\subscription-manager;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/MQTT_Multitask.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/MQTT_Multitask.vcxproj.filters
new file mode 100644
index 00000000000..6194ea413df
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/MQTT_Multitask.vcxproj.filters
@@ -0,0 +1,161 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {e28cc02c-0b9d-45da-8c3e-b47d1fe1efaa}
+
+
+ {a287c69d-43f4-4df6-9a13-f59eb70cd4a9}
+
+
+ {a536fa15-908b-4702-b7d9-d104bdddf43f}
+
+
+ {77d5b871-432c-4302-85ec-248ced5a5240}
+
+
+ {c26f536c-96d0-4d97-90c2-eecbba863ee4}
+
+
+ {2f73859a-4f36-4e0f-8c47-f960b35a3489}
+
+
+ {b00537c2-88cc-4f13-bdef-09b5f7b77a37}
+
+
+ {2cbd459d-09be-4169-9880-5eeec1539a82}
+
+
+ {eba01140-0f72-4f5d-a8c2-431c6c426c6b}
+
+
+ {21c3aeda-e0b6-41cd-9017-e21d1c34d696}
+
+
+ {3fccb3e5-6ba5-4c3f-bc83-5026714db790}
+
+
+ {a88db31a-aa38-42b0-bf70-fdc9f16791cc}
+
+
+ {44686a65-b104-4af3-8855-28bbbaf9772e}
+
+
+ {1e2c2c93-0989-45f3-aa58-a05a2ebc9e40}
+
+
+ {4202753e-a139-4b7b-a7d3-00d97c2fd4f6}
+
+
+
+
+ Headers
+
+
+ Headers
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\coreMQTT-Agent\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\backoff_algorithm\include
+
+
+ Additional Libraries\coreMQTT-Agent\interface
+
+
+ Additional Libraries\coreMQTT-Agent\interface
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\backoff_algorithm
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Libraries\coreMQTT-Agent
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/WIN32.vcxproj
deleted file mode 100644
index 39f4158e77e..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/WIN32.vcxproj
+++ /dev/null
@@ -1,543 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_plaintext;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;..\..\..\Source\Application-Protocols\coreMQTT-Agent\source\include;..\..\Common\coreMQTT_Agent_Interface\include;.\subscription-manager;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/WIN32.vcxproj.filters
deleted file mode 100644
index 4ee8ad5f2f9..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,882 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {3d9a75ff-8a0f-40cc-947b-8135af72068e}
-
-
- {a1f3f8f4-7ab7-44ef-891e-a6f9f9cc6379}
-
-
- {0e25b4a0-53aa-4abd-a4bc-b3658c9c3bc9}
-
-
- {a081aee5-1e00-443e-98b5-ca297fc5b4ac}
-
-
- {01a3e0d6-b836-4f1d-8d9d-e83c247a50c7}
-
-
- {7113221b-1ca6-4504-9993-75664336ef8a}
-
-
- {d6d1e5f0-f23c-47d1-ba70-3dbc26acf362}
-
-
- {775bbd2e-ac31-4bb4-9de2-468c05269332}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface
-
-
- subscription-manager
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT-Agent\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mqtt-agent-interface\include
-
-
- subscription-manager
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/mqtt_multitask_demo.sln b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/mqtt_multitask_demo.sln
index dcfc1fe098d..939e67e35b6 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/mqtt_multitask_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask/mqtt_multitask_demo.sln
@@ -1,25 +1,101 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQTT_Multitask", "MQTT_Multitask.vcxproj", "{C35A89CA-0A40-49FF-A7F8-6E6830809B26}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{4EB64985-ED1A-481B-98EA-E8CF26FA32E5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Debug|Win32.Build.0 = Debug|Win32
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Debug|x64.ActiveCfg = Debug|x64
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Debug|x64.Build.0 = Debug|x64
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Debug|x86.ActiveCfg = Debug|Win32
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Debug|x86.Build.0 = Debug|Win32
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Release|Win32.ActiveCfg = Release|Win32
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Release|Win32.Build.0 = Release|Win32
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Release|x64.ActiveCfg = Release|x64
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Release|x64.Build.0 = Release|x64
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Release|x86.ActiveCfg = Release|Win32
+ {C35A89CA-0A40-49FF-A7F8-6E6830809B26}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {4EB64985-ED1A-481B-98EA-E8CF26FA32E5}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {4EB64985-ED1A-481B-98EA-E8CF26FA32E5}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {4EB64985-ED1A-481B-98EA-E8CF26FA32E5}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {4EB64985-ED1A-481B-98EA-E8CF26FA32E5}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {BB2A157E-F3C3-4F17-BD43-49F15AD91A13}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/DemoTasks/MutualAuthMQTTExample.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/DemoTasks/MutualAuthMQTTExample.c
index 3a04658841b..3b6e3b76879 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/DemoTasks/MutualAuthMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/DemoTasks/MutualAuthMQTTExample.c
@@ -48,6 +48,33 @@
* MQTT connection.
*/
+#include "logging_levels.h"
+
+/* Logging configuration for the Demo. */
+#ifndef LIBRARY_LOG_NAME
+ #define LIBRARY_LOG_NAME "MqttMutualAuth"
+#endif
+
+#ifndef LIBRARY_LOG_LEVEL
+ #define LIBRARY_LOG_LEVEL LOG_INFO
+#endif
+
+/* Prototype for the function used to print to console on Windows simulator
+ * of FreeRTOS.
+ * The function prints to the console before the network is connected;
+ * then a UDP port after the network has connected. */
+extern void vLoggingPrintf( const char * pcFormatString,
+ ... );
+
+/* Map the SdkLog macro to the logging function to enable logging
+ * on Windows simulator. */
+#ifndef SdkLog
+ #define SdkLog( message ) vLoggingPrintf message
+#endif
+
+#include "logging_stack.h"
+
+
/* Standard includes. */
#include
#include
@@ -66,7 +93,7 @@
#include "backoff_algorithm.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls.h"
+#include "transport_mbedtls.h"
/*-----------------------------------------------------------*/
@@ -212,6 +239,18 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/**
* Provide default values for undefined configuration settings.
*/
@@ -368,6 +407,18 @@ static void prvEventCallback( MQTTContext_t * pxMQTTContext,
MQTTPacketInfo_t * pxPacketInfo,
MQTTDeserializedInfo_t * pxDeserializedInfo );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
/*-----------------------------------------------------------*/
/**
@@ -428,6 +479,24 @@ static MQTTFixedBuffer_t xBuffer =
democonfigNETWORK_BUFFER_SIZE
};
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
/*-----------------------------------------------------------*/
/*
@@ -493,8 +562,20 @@ static void prvMQTTDemoTask( void * pvParameters )
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
/****************************** Connect. ******************************/
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Attempt to establish TLS session with MQTT broker. If connection fails,
* retry after a timeout. Timeout value will be exponentially increased
* until the maximum number of attempts are reached or the maximum timeout
@@ -528,7 +609,7 @@ static void prvMQTTDemoTask( void * pvParameters )
* same topic, the broker will send publish message back to the
* application. */
LogInfo( ( "Attempt to receive publish message from broker.\r\n" ) );
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/* Leave Connection Idle for some time. */
@@ -541,7 +622,7 @@ static void prvMQTTDemoTask( void * pvParameters )
prvMQTTUnsubscribeFromTopic( &xMQTTContext );
/* Process incoming UNSUBACK packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/**************************** Disconnect. *****************************/
@@ -571,6 +652,7 @@ static void prvMQTTDemoTask( void * pvParameters )
"Total free heap is %u.\r\n",
xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
LogInfo( ( "Short delay before starting the next iteration.... \r\n\r\n" ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS_TICKS );
}
@@ -585,28 +667,27 @@ static TlsTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkCredent
BackoffAlgorithmContext_t xReconnectParams;
uint16_t usNextRetryBackOff = 0U;
- #if defined( democonfigCLIENT_USERNAME )
+ #if defined( democonfigCLIENT_USERNAME )
/*
- * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
- * to AWS IoT Core with Custom Authentication on port 443.
- *
- * Custom Authentication uses the contents of the username and password
- * fields of the MQTT CONNECT packet to authenticate the client.
- *
- * For more information, refer to the documentation at:
- * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
- */
+ * When democonfigCLIENT_USERNAME is defined, use the "mqtt" alpn to connect
+ * to AWS IoT Core with Custom Authentication on port 443.
+ *
+ * Custom Authentication uses the contents of the username and password
+ * fields of the MQTT CONNECT packet to authenticate the client.
+ *
+ * For more information, refer to the documentation at:
+ * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
+ */
static const char * ppcAlpnProtocols[] = { "mqtt", NULL };
#if democonfigMQTT_BROKER_PORT != 443U
- #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
+ #error "Connections to AWS IoT Core with custom authentication must connect to TCP port 443 with the \"mqtt\" alpn."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
#else /* if !defined( democonfigCLIENT_USERNAME ) */
/*
- * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
- * x509 Certificate Authentication.
- */
+ * Otherwise, use the "x-amzn-mqtt-ca" alpn to connect to AWS IoT Core using
+ * x509 Certificate Authentication.
+ */
static const char * ppcAlpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
-
#endif /* !defined( democonfigCLIENT_USERNAME ) */
/*
@@ -619,7 +700,7 @@ static TlsTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkCredent
pxNetworkCredentials->pAlpnProtos = NULL;
#else /* democonfigMQTT_BROKER_PORT != 8883U */
pxNetworkCredentials->pAlpnProtos = NULL;
- #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
+ #error "MQTT connections to AWS IoT Core are only allowed on ports 443 and 8883."
#endif /* democonfigMQTT_BROKER_PORT != 443U */
pxNetworkCredentials->disableSni = democonfigDISABLE_SNI;
@@ -702,10 +783,17 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xResult = MQTT_Init( pxMQTTContext, &xTransport, prvGetTimeMs, prvEventCallback, &xBuffer );
configASSERT( xResult == MQTTSuccess );
+ xResult = MQTT_InitStatefulQoS( pxMQTTContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
+ configASSERT( xResult == MQTTSuccess );
/* Some fields are not used in this demo so start with everything at 0. */
( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
@@ -841,7 +929,7 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
* receiving Publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses the generic packet
* processing function everywhere to highlight this fact. */
- xResult = MQTT_ProcessLoop( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xResult = prvProcessLoopWithTimeout( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xResult == MQTTSuccess );
/* Reset flag before checking suback responses. */
@@ -1071,3 +1159,33 @@ static uint32_t prvGetTimeMs( void )
}
/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/MQTT_Mutual_Auth.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/MQTT_Mutual_Auth.vcxproj
new file mode 100644
index 00000000000..5924dc3b14d
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/MQTT_Mutual_Auth.vcxproj
@@ -0,0 +1,185 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {dd2281b6-6d9b-4477-ba0a-8842f2e917c7}
+ MQTTMutualAuth
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/MQTT_Mutual_Auth.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/MQTT_Mutual_Auth.vcxproj.filters
new file mode 100644
index 00000000000..dc158fc1674
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/MQTT_Mutual_Auth.vcxproj.filters
@@ -0,0 +1,114 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {5c3de8f6-98f6-428c-99ac-ac37d6c1192b}
+
+
+ {e211737e-5af5-42c0-b070-0d866aea1cce}
+
+
+ {7ee32915-6737-465a-9b4f-46a97c8832c2}
+
+
+ {436a06e1-8dc3-4620-a7bb-55f3479fd51c}
+
+
+ {d9b88983-3018-4ce2-b989-bce0d9ed2869}
+
+
+ {e96dc04e-c4ea-497d-a8b2-a6d3fe28d2f5}
+
+
+ {74d65d77-4301-4a58-9027-f550adf17030}
+
+
+ {b99db9c9-e15b-48e7-9a84-c13b2beb1b6b}
+
+
+ {cbbb933e-96a0-4e36-9803-cfa84580fd71}
+
+
+ {bb1fcecb-0b74-4ba7-bed0-692572d5ffac}
+
+
+ {fea74b8f-d16a-4d60-ab54-efdcfcc9d828}
+
+
+ {5dd8708c-c8c7-410b-9707-a85e39acaeb8}
+
+
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Header Files
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj
deleted file mode 100644
index a5842798c5d..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj
+++ /dev/null
@@ -1,529 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
- TurnOffAllWarnings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj.filters
deleted file mode 100644
index ea2c3d7d3ad..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,825 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {7bedd2e3-adbb-4c95-9632-445132b459ce}
-
-
- {07a14673-4d02-4780-a099-6b8c654dff91}
-
-
- {e875c5e3-40a2-4408-941e-5e1a951cc663}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {84164849-198e-497b-b135-322242d511cf}
-
-
- {b61fd40e-ae93-4a08-9ee7-5dc8182595be}
-
-
- {0c062983-2e9b-43c4-abd7-daf4e6254d96}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
- FreeRTOS+\mbedtls\library
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj.user b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj.user
deleted file mode 100644
index 88a550947ed..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/WIN32.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/mqtt_mutual_auth_demo.sln b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/mqtt_mutual_auth_demo.sln
index dcfc1fe098d..38f3d10f4cc 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/mqtt_mutual_auth_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/mqtt_mutual_auth_demo.sln
@@ -1,25 +1,101 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQTT_Mutual_Auth", "MQTT_Mutual_Auth.vcxproj", "{DD2281B6-6D9B-4477-BA0A-8842F2E917C7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{D0F63241-9AE5-48D7-AB26-604122594805}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Debug|Win32.Build.0 = Debug|Win32
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Debug|x64.ActiveCfg = Debug|x64
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Debug|x64.Build.0 = Debug|x64
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Debug|x86.ActiveCfg = Debug|Win32
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Debug|x86.Build.0 = Debug|Win32
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Release|Win32.ActiveCfg = Release|Win32
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Release|Win32.Build.0 = Release|Win32
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Release|x64.ActiveCfg = Release|x64
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Release|x64.Build.0 = Release|x64
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Release|x86.ActiveCfg = Release|Win32
+ {DD2281B6-6D9B-4477-BA0A-8842F2E917C7}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {D0F63241-9AE5-48D7-AB26-604122594805}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {D0F63241-9AE5-48D7-AB26-604122594805}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {D0F63241-9AE5-48D7-AB26-604122594805}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {D0F63241-9AE5-48D7-AB26-604122594805}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {159FDB3F-FFEE-450A-9618-80588C4710B6}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/DemoTasks/MutualAuthMQTTExample.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/DemoTasks/MutualAuthMQTTExample.c
index 54628800578..344a6c46adf 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/DemoTasks/MutualAuthMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/DemoTasks/MutualAuthMQTTExample.c
@@ -55,7 +55,7 @@
#include "core_mqtt.h"
/* Transport interface implementation include header for TLS. */
-#include "using_wolfSSL.h"
+#include "transport_wolfSSL.h"
/*-----------------------------------------------------------*/
@@ -155,6 +155,18 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 1000U )
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/**
* @brief Milliseconds per second.
*/
@@ -256,6 +268,19 @@ static void prvEventCallback( MQTTContext_t * pxMQTTContext,
static void prvTLSConnect( NetworkCredentials_t * pxNetworkCredentials,
NetworkContext_t * pxNetworkContext );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
+
/*-----------------------------------------------------------*/
/* @brief Static buffer used to hold MQTT messages being sent and received. */
@@ -295,6 +320,24 @@ static MQTTFixedBuffer_t xBuffer =
democonfigNETWORK_BUFFER_SIZE
};
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
/*-----------------------------------------------------------*/
/*
@@ -347,8 +390,20 @@ static void prvMQTTDemoTask( void * pvParameters )
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
/****************************** Connect. ******************************/
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Establish a TLS connection with the MQTT broker. This example connects to
* the MQTT broker as specified by democonfigMQTT_BROKER_ENDPOINT and
* democonfigMQTT_BROKER_PORT in the demo_config.h file. */
@@ -383,7 +438,7 @@ static void prvMQTTDemoTask( void * pvParameters )
* receiving Publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses the generic packet
* processing function everywhere to highlight this fact. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
@@ -398,7 +453,7 @@ static void prvMQTTDemoTask( void * pvParameters )
/* Process incoming publish echo, since application subscribed to the same
* topic, the broker will send publish message back to the application. */
LogInfo( ( "Attempt to receive publish message from broker.\r\n" ) );
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/* Leave Connection Idle for some time. */
@@ -411,7 +466,7 @@ static void prvMQTTDemoTask( void * pvParameters )
prvMQTTUnsubscribeFromTopic( &xMQTTContext );
/* Process incoming UNSUBACK packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/**************************** Disconnect. ******************************/
@@ -429,6 +484,7 @@ static void prvMQTTDemoTask( void * pvParameters )
* the broker. */
LogInfo( ( "prvMQTTDemoTask() completed an iteration successfully. Total free heap is %u.\r\n", xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
LogInfo( ( "Short delay before starting the next iteration.... \r\n\r\n" ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS_TICKS );
}
@@ -485,10 +541,17 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xResult = MQTT_Init( pxMQTTContext, &xTransport, prvGetTimeMs, prvEventCallback, &xBuffer );
configASSERT( xResult == MQTTSuccess );
+ xResult = MQTT_InitStatefulQoS( pxMQTTContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
+ configASSERT( xResult == MQTTSuccess );
/* Some fields are not used in this demo so start with everything at 0. */
memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
@@ -716,3 +779,33 @@ static uint32_t prvGetTimeMs( void )
}
/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/FreeRTOSConfig.h
deleted file mode 100644
index b52a70a7ddd..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/FreeRTOSConfig.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE 0L
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-/* Task pool definitions for the demos of IoT Libraries. */
-#define configTASKPOOL_ENABLE_ASSERTS 1
-#define configTASKPOOL_NUMBER_OF_WORKERS 1
-#define configTASKPOOL_WORKER_PRIORITY tskIDLE_PRIORITY
-#define configTASKPOOL_WORKER_STACK_SIZE_BYTES 2048
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/MQTT_Mutual_Auth_wolfSSL.vcxproj
similarity index 76%
rename from FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/WIN32.vcxproj
rename to FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/MQTT_Mutual_Auth_wolfSSL.vcxproj
index 3cdcf24b9b3..a1a3773bc89 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/WIN32.vcxproj
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/MQTT_Mutual_Auth_wolfSSL.vcxproj
@@ -41,8 +41,8 @@
Disabled
- .\;..\Common;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\FreeRTOS-Plus\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\FreeRTOS-Plus\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\FreeRTOS-Plus\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_wolfSSL;..\..\..\Source\Utilities\wolfSSL_freertos;..\..\..\ThirdParty\wolfSSL;%(AdditionalIncludeDirectories)
- WOLFSSL_USER_SETTINGS;WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ .\;..\Common;..\..\..\..\FreeRTOS-Plus\Source\Application-Protocols\coreMQTT\source\include;..\..\..\..\FreeRTOS-Plus\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\..\FreeRTOS-Plus\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\wolfSSL_freertos;..\..\..\ThirdParty\wolfSSL;%(AdditionalIncludeDirectories)
+ WOLFSSL_USER_SETTINGS;WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";%(PreprocessorDefinitions)falseEnableFastChecksMultiThreadedDLL
@@ -72,7 +72,7 @@
.\Debug/WIN32.pdbConsoleMachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
+ Bcrypt.lib;%(AdditionalDependencies)..\..\Common\WinPCapfalsefalse
@@ -83,30 +83,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -190,34 +172,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -305,21 +263,31 @@
-
-
+
+
+
-
-
-
-
+
-
-
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/MQTT_Mutual_Auth_wolfSSL.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/MQTT_Mutual_Auth_wolfSSL.vcxproj.filters
new file mode 100644
index 00000000000..02ff3297083
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/MQTT_Mutual_Auth_wolfSSL.vcxproj.filters
@@ -0,0 +1,629 @@
+
+
+
+
+ {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
+
+
+ {a3bc0245-a552-43a3-828c-76334f37f837}
+
+
+ {b34b7d37-9bff-41ac-b6a9-849bb3da790a}
+
+
+ {2d7875b9-6040-413b-be28-ccab70bacf45}
+
+
+ {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
+
+
+ {90bcf555-1d56-4512-85b0-dafefb542437}
+
+
+ {617d7848-f326-4873-8006-bb13604861e6}
+
+
+ {c1be3c08-d159-45ef-be6f-eb32bd235015}
+
+
+ {93eb4d69-0f79-41a9-8101-68c1ddf755ee}
+
+
+ {5599e5a4-2ff0-4ec0-8082-e9dc20d17723}
+
+
+ {01240ff7-3a87-4cdd-9adb-b3f44b39f1be}
+
+
+ {c5c63fb4-8831-4eab-9612-95d4cc864c15}
+
+
+ {2711a83b-f983-4c9e-923b-5e182733c7c3}
+
+
+ {371386a6-ca3b-4488-ac67-349984357769}
+
+
+ {3c77352a-cb7e-4024-aa37-b2e42f32d84a}
+
+
+ {ba7af2f2-2f54-428d-b0f6-c914e5afe295}
+
+
+ {04240a1c-18b8-42cc-be16-a4f96a038630}
+
+
+ {26da2e92-d2cc-45bf-ab30-8e1171a28578}
+
+
+ {1e84e441-f597-4e10-b476-d89c026dd16e}
+
+
+ {10614ed2-fe01-463b-b961-1ce443780e8b}
+
+
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Source
+
+
+ Source
+
+
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\wolfSSL\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Header
+
+
+ Header
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
+
+ Additional Libraries\wolfSSL\wolfcrypt\source
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/WIN32.vcxproj.filters
deleted file mode 100644
index 0e53f492df7..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,768 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {90bcf555-1d56-4512-85b0-dafefb542437}
-
-
- {617d7848-f326-4873-8006-bb13604861e6}
-
-
- {5599e5a4-2ff0-4ec0-8082-e9dc20d17723}
-
-
- {01240ff7-3a87-4cdd-9adb-b3f44b39f1be}
-
-
- {c1be3c08-d159-45ef-be6f-eb32bd235015}
-
-
- {93eb4d69-0f79-41a9-8101-68c1ddf755ee}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {7158b0be-01e7-42d1-8d3f-c75118a596a2}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {2310fc2f-36e7-459b-b1e2-cf18c1cb342b}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
-
- DemoTasks
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\src
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\src
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\src
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\freertos
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\src
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\src
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+\wolfSSL\include
-
-
- FreeRTOS+
-
-
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
-
- FreeRTOS+\wolfSSL\wolfcrypt\source
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/mqtt_mutual_auth_demo_wolfSSL.sln b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/mqtt_mutual_auth_demo_wolfSSL.sln
index dcfc1fe098d..9695a8552eb 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/mqtt_mutual_auth_demo_wolfSSL.sln
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/mqtt_mutual_auth_demo_wolfSSL.sln
@@ -1,25 +1,81 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29215.179
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "MQTT_Mutual_Auth_wolfSSL.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{18C74643-B0CA-4709-8835-F4E8F4F3005A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|x64.ActiveCfg = Debug|Win32
+ {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.ActiveCfg = Debug|Win32
+ {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|Win32.Build.0 = Debug|Win32
+ {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x64.ActiveCfg = Debug|Win32
+ {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Release|x64.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {18C74643-B0CA-4709-8835-F4E8F4F3005A}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {18C74643-B0CA-4709-8835-F4E8F4F3005A}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {18C74643-B0CA-4709-8835-F4E8F4F3005A}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {18C74643-B0CA-4709-8835-F4E8F4F3005A}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ EndGlobalSection
+ GlobalSection(TestCaseManagementSettings) = postSolution
+ CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/DemoTasks/PlaintextMQTTExample.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/DemoTasks/PlaintextMQTTExample.c
index 07929f22e25..f6f642b9d36 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/DemoTasks/PlaintextMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/DemoTasks/PlaintextMQTTExample.c
@@ -27,11 +27,9 @@
/*
* Demo for showing use of the managed MQTT API.
*
- * The Example shown below uses this API to create MQTT messages and
+ * The example shown below uses this API to create MQTT messages and
* send them over the connection established using FreeRTOS sockets.
* The example is single threaded and uses statically allocated memory;
- * it uses QOS0 and therefore does not implement any retransmission
- * mechanism for Publish messages.
*
* !!! NOTE !!!
* This MQTT demo does not authenticate the server nor the client.
@@ -63,8 +61,8 @@
/* Exponential backoff retry include. */
#include "backoff_algorithm.h"
-/* Transport interface include. */
-#include "using_plaintext.h"
+/* Transport interface implementation include header for plaintext connection. */
+#include "transport_plaintext.h"
/*-----------------------------------------------------------*/
@@ -72,7 +70,6 @@
#ifndef democonfigMQTT_BROKER_ENDPOINT
#error "Define the config democonfigMQTT_BROKER_ENDPOINT by following the instructions in file demo_config.h."
#endif
-
/*-----------------------------------------------------------*/
/* Default values for configs. */
@@ -83,10 +80,10 @@
* must be unique so edit as required to ensure no two clients connecting to the
* same broker use the same client identifier.
*
- * @note Appending __TIME__ to the client id string will reduce the possibility of a
- * client id collision in the broker. Note that the appended time is the compilation
- * time. This client id can cause collision, if more than one instance of the same
- * binary is used at the same time to connect to the broker.
+ * @note Appending __TIME__ to the client id string will help to create a unique
+ * client id every time an application binary is built. Only a single instance of
+ * this application's compiled binary may be used at a time, since the client ID
+ * will always be the same.
*/
#define democonfigCLIENT_IDENTIFIER "testClient"__TIME__
#endif
@@ -96,7 +93,7 @@
/**
* @brief The port to use for the demo.
*/
- #define democonfigMQTT_BROKER_PORT ( 1883 )
+ #define democonfigMQTT_BROKER_PORT ( 8883 )
#endif
/*-----------------------------------------------------------*/
@@ -104,83 +101,105 @@
/**
* @brief The maximum number of retries for network operation with server.
*/
-#define mqttexampleRETRY_MAX_ATTEMPTS ( 5U )
+#define mqttexampleRETRY_MAX_ATTEMPTS ( 5U )
/**
* @brief The maximum back-off delay (in milliseconds) for retrying failed operation
* with server.
*/
-#define mqttexampleRETRY_MAX_BACKOFF_DELAY_MS ( 5000U )
+#define mqttexampleRETRY_MAX_BACKOFF_DELAY_MS ( 5000U )
/**
* @brief The base back-off delay (in milliseconds) to use for network operation retry
* attempts.
*/
-#define mqttexampleRETRY_BACKOFF_BASE_MS ( 500U )
-
+#define mqttexampleRETRY_BACKOFF_BASE_MS ( 500U )
/**
* @brief Timeout for receiving CONNACK packet in milliseconds.
*/
-#define mqttexampleCONNACK_RECV_TIMEOUT_MS ( 1000U )
+#define mqttexampleCONNACK_RECV_TIMEOUT_MS ( 1000U )
/**
- * @brief The topic to subscribe and publish to in the example.
+ * @brief The prefix to the topic(s) subscribe(d) to and publish(ed) to in the example.
*
* The topic name starts with the client identifier to ensure that each demo
* interacts with a unique topic name.
*/
-#define mqttexampleTOPIC democonfigCLIENT_IDENTIFIER "/example/topic"
+#define mqttexampleTOPIC_PREFIX democonfigCLIENT_IDENTIFIER "/example/topic"
/**
* @brief The number of topic filters to subscribe.
*/
-#define mqttexampleTOPIC_COUNT ( 1 )
+#define mqttexampleTOPIC_COUNT ( 3 )
/**
- * @brief The MQTT message published in this example.
+ * @brief The size of the buffer for each topic string.
*/
-#define mqttexampleMESSAGE "Hello World!"
+#define mqttexampleTOPIC_BUFFER_SIZE ( 100U )
/**
- * @brief Dimensions a file scope buffer currently used to send and receive MQTT data
- * from a socket.
+ * @brief The MQTT message published in this example.
*/
-#define mqttexampleSHARED_BUFFER_SIZE ( 500U )
+#define mqttexampleMESSAGE "Hello World!"
/**
- * @brief Time to wait between each cycle of the demo implemented by prvMQTTDemoTask().
+ * @brief Time in ticks to wait between each cycle of the demo implemented
+ * by prvMQTTDemoTask().
*/
-#define mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS ( pdMS_TO_TICKS( 5000U ) )
+#define mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS_TICKS ( pdMS_TO_TICKS( 5000U ) )
/**
* @brief Timeout for MQTT_ProcessLoop in milliseconds.
*/
-#define mqttexamplePROCESS_LOOP_TIMEOUT_MS ( 500U )
+#define mqttexamplePROCESS_LOOP_TIMEOUT_MS ( 500U )
/**
- * @brief Keep alive time reported to the broker while establishing an MQTT connection.
+ * @brief The keep-alive timeout period reported to the broker while establishing
+ * an MQTT connection.
*
- * It is the responsibility of the Client to ensure that the interval between
- * Control Packets being sent does not exceed the this Keep Alive value. In the
- * absence of sending any other Control Packets, the Client MUST send a
- * PINGREQ Packet.
+ * It is the responsibility of the client to ensure that the interval between
+ * control packets being sent does not exceed this keep-alive value. In the
+ * absence of sending any other control packets, the client MUST send a
+ * PINGREQ packet.
*/
-#define mqttexampleKEEP_ALIVE_TIMEOUT_SECONDS ( 60U )
+#define mqttexampleKEEP_ALIVE_TIMEOUT_SECONDS ( 60U )
/**
- * @brief Delay between MQTT publishes. Note that the process loop also has a
- * timeout, so the total time between publishes is the sum of the two delays.
+ * @brief Delay (in ticks) between consecutive cycles of MQTT publish operations in a
+ * demo iteration.
+ *
+ * Note that the process loop also has a timeout, so the total time between
+ * publishes is the sum of the two delays.
*/
-#define mqttexampleDELAY_BETWEEN_PUBLISHES ( pdMS_TO_TICKS( 500U ) )
+#define mqttexampleDELAY_BETWEEN_PUBLISHES_TICKS ( pdMS_TO_TICKS( 2000U ) )
/**
* @brief Transport timeout in milliseconds for transport send and receive.
*/
-#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
-#define MILLISECONDS_PER_SECOND ( 1000U ) /**< @brief Milliseconds per second. */
-#define MILLISECONDS_PER_TICK ( MILLISECONDS_PER_SECOND / configTICK_RATE_HZ ) /**< Milliseconds per FreeRTOS tick. */
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief Milliseconds per second.
+ */
+#define MILLISECONDS_PER_SECOND ( 1000U )
+
+/**
+ * @brief Milliseconds per FreeRTOS tick.
+ */
+#define MILLISECONDS_PER_TICK ( MILLISECONDS_PER_SECOND / configTICK_RATE_HZ )
/*-----------------------------------------------------------*/
@@ -206,32 +225,30 @@ struct NetworkContext
*/
static void prvMQTTDemoTask( void * pvParameters );
-
/**
* @brief Connect to MQTT broker with reconnection retries.
*
* If connection fails, retry is attempted after a timeout.
- * Timeout value will exponentially increase until maximum
+ * Timeout value will exponentially increase until the maximum
* timeout value is reached or the number of attempts are exhausted.
*
- * @param[out] pxNetworkContext The parameter to return the created network context.
+ * @param[out] pxNetworkContext The output parameter to return the created network context.
*
* @return The status of the final connection attempt.
*/
static PlaintextTransportStatus_t prvConnectToServerWithBackoffRetries( NetworkContext_t * pxNetworkContext );
/**
- * @brief Sends an MQTT Connect packet over the already connected TCP socket.
+ * @brief Sends an MQTT Connect packet over the already connected TLS over TCP connection.
*
* @param[in, out] pxMQTTContext MQTT context pointer.
- * @param[in] pxNetworkContext Network context.
- *
+ * @param[in] xNetworkContext network context.
*/
static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
NetworkContext_t * pxNetworkContext );
/**
- * @brief Function to update variable #xTopicFilterContext with status
+ * @brief Function to update variable #Context with status
* information from Subscribe ACK. Called by the event callback after processing
* an incoming SUBACK packet.
*
@@ -253,7 +270,7 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext );
*
* @param[in] pxMQTTContext MQTT context pointer.
*/
-static void prvMQTTPublishToTopic( MQTTContext_t * pxMQTTContext );
+static void prvMQTTPublishToTopics( MQTTContext_t * pxMQTTContext );
/**
* @brief Unsubscribes from the previously subscribed topic as specified
@@ -261,7 +278,7 @@ static void prvMQTTPublishToTopic( MQTTContext_t * pxMQTTContext );
*
* @param[in] pxMQTTContext MQTT context pointer.
*/
-static void prvMQTTUnsubscribeFromTopic( MQTTContext_t * pxMQTTContext );
+static void prvMQTTUnsubscribeFromTopics( MQTTContext_t * pxMQTTContext );
/**
* @brief The timer query function provided to the MQTT context.
@@ -271,8 +288,9 @@ static void prvMQTTUnsubscribeFromTopic( MQTTContext_t * pxMQTTContext );
static uint32_t prvGetTimeMs( void );
/**
- * @brief Process a response or ack to an MQTT request (PING, SUBSCRIBE
- * or UNSUBSCRIBE). This function processes PINGRESP, SUBACK, and UNSUBACK.
+ * @brief Process a response or ack to an MQTT request (PING, PUBLISH,
+ * SUBSCRIBE or UNSUBSCRIBE). This function processes PINGRESP, PUBACK,
+ * PUBREC, PUBREL, PUBCOMP, SUBACK, and UNSUBACK.
*
* @param[in] pxIncomingPacket is a pointer to structure containing deserialized
* MQTT response.
@@ -290,8 +308,8 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
static void prvMQTTProcessIncomingPublish( MQTTPublishInfo_t * pxPublishInfo );
/**
- * @brief The application callback function for getting the incoming publish
- * and incoming acks reported from the MQTT library.
+ * @brief The application callback function for getting the incoming publishes,
+ * incoming acks, and ping responses reported from the MQTT library.
*
* @param[in] pxMQTTContext MQTT context pointer.
* @param[in] pxPacketInfo Packet Info pointer for the incoming packet.
@@ -301,12 +319,29 @@ static void prvEventCallback( MQTTContext_t * pxMQTTContext,
MQTTPacketInfo_t * pxPacketInfo,
MQTTDeserializedInfo_t * pxDeserializedInfo );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
+/**
+ * @brief Initialize the topic filter string and SUBACK buffers.
+ */
+static void prvInitializeTopicBuffers( void );
+
/*-----------------------------------------------------------*/
/**
* @brief Static buffer used to hold MQTT messages being sent and received.
*/
-static uint8_t ucSharedBuffer[ mqttexampleSHARED_BUFFER_SIZE ];
+static uint8_t ucSharedBuffer[ democonfigNETWORK_BUFFER_SIZE ];
/**
* @brief Global entry time into the application to use as a reference timestamp
@@ -316,15 +351,21 @@ static uint8_t ucSharedBuffer[ mqttexampleSHARED_BUFFER_SIZE ];
*/
static uint32_t ulGlobalEntryTimeMs;
+/**
+ * @brief Packet Identifier generated when Publish request was sent to the broker;
+ * it is used to match received Publish ACK to the transmitted Publish packet.
+ */
+static uint16_t usPublishPacketIdentifier;
+
/**
* @brief Packet Identifier generated when Subscribe request was sent to the broker;
- * it is used to match received Subscribe ACK to the transmitted ACK.
+ * it is used to match received Subscribe ACK to the transmitted Subscribe packet.
*/
static uint16_t usSubscribePacketIdentifier;
/**
* @brief Packet Identifier generated when Unsubscribe request was sent to the broker;
- * it is used to match received Unsubscribe response to the transmitted unsubscribe
+ * it is used to match received Unsubscribe response to the transmitted Unsubscribe
* request.
*/
static uint16_t usUnsubscribePacketIdentifier;
@@ -334,7 +375,7 @@ static uint16_t usUnsubscribePacketIdentifier;
*/
typedef struct topicFilterContext
{
- const char * pcTopicFilter;
+ uint8_t pcTopicFilter[ mqttexampleTOPIC_BUFFER_SIZE ];
MQTTSubAckStatus_t xSubAckStatus;
} topicFilterContext_t;
@@ -342,30 +383,44 @@ typedef struct topicFilterContext
* @brief An array containing the context of a SUBACK; the SUBACK status
* of a filter is updated when the event callback processes a SUBACK.
*/
-static topicFilterContext_t xTopicFilterContext[ mqttexampleTOPIC_COUNT ] =
+static topicFilterContext_t xTopicFilterContext[ mqttexampleTOPIC_COUNT ];
+
+
+/** @brief Static buffer used to hold MQTT messages being sent and received. */
+static MQTTFixedBuffer_t xBuffer =
{
- { mqttexampleTOPIC, MQTTSubAckFailure }
+ ucSharedBuffer,
+ democonfigNETWORK_BUFFER_SIZE
};
/**
- * @brief Static buffer used to hold MQTT messages being sent and received.
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
*/
-static MQTTFixedBuffer_t xBuffer =
-{
- .pBuffer = ucSharedBuffer,
- .size = mqttexampleSHARED_BUFFER_SIZE
-};
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
/*-----------------------------------------------------------*/
-/**
- * @brief Create the task that demonstrates the MQTT API over a plaintext TCP
- * connection.
+/*
+ * @brief Create the task that demonstrates the MQTT API Demo over a
+ * server-authenticated network connection with MQTT broker.
*/
void vStartSimpleMQTTDemo( void )
{
/* This example uses a single application task, which in turn is used to
- * connect, subscribe, publish, unsubscribe and disconnect from the MQTT
+ * connect, subscribe, publish, unsubscribe, and disconnect from the MQTT
* broker.
*
* Also see https://www.freertos.org/mqtt/mqtt-agent-demo.html? for an
@@ -374,7 +429,7 @@ void vStartSimpleMQTTDemo( void )
* removes the need for the application writer to explicitly manage any MQTT
* state or call the MQTT_ProcessLoop() API function. Using an agent task
* also enables multiple application tasks to more easily share a single
- * MQTT connection.*/
+ * MQTT connection. */
xTaskCreate( prvMQTTDemoTask, /* Function that implements the task. */
"DemoTask", /* Text name for the task - only used for debugging. */
democonfigDEMO_STACKSIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
@@ -384,13 +439,25 @@ void vStartSimpleMQTTDemo( void )
}
/*-----------------------------------------------------------*/
+/*
+ * @brief The Example shown below uses MQTT APIs to create MQTT messages and
+ * send them over the server-authenticated network connection established with the
+ * MQTT broker. This example is single-threaded and uses statically allocated
+ * memory. It uses QoS2 for sending and receiving messages from the broker.
+ *
+ * This MQTT client subscribes to the topic as specified in mqttexampleTOPIC at the
+ * top of this file by sending a subscribe packet and waiting for a subscribe
+ * acknowledgment (SUBACK) from the broker. The client will then publish to the
+ * same topic it subscribed to, therefore expecting that all outgoing messages will be
+ * sent back from the broker.
+ */
static void prvMQTTDemoTask( void * pvParameters )
{
uint32_t ulPublishCount = 0U, ulTopicCount = 0U;
const uint32_t ulMaxPublishCount = 5UL;
NetworkContext_t xNetworkContext = { 0 };
PlaintextTransportParams_t xPlaintextTransportParams = { 0 };
- MQTTContext_t xMQTTContext;
+ MQTTContext_t xMQTTContext = { 0 };
MQTTStatus_t xMQTTStatus;
PlaintextTransportStatus_t xNetworkStatus;
@@ -400,89 +467,108 @@ static void prvMQTTDemoTask( void * pvParameters )
/* Set the pParams member of the network context with desired transport. */
xNetworkContext.pParams = &xPlaintextTransportParams;
+ /* Set the entry time of the demo application. This entry time will be used
+ * to calculate relative time elapsed in the execution of the demo application,
+ * by the timer utility function that is provided to the MQTT library.
+ */
ulGlobalEntryTimeMs = prvGetTimeMs();
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+
+ /**************************** Initialize. *****************************/
+
+ prvInitializeTopicBuffers();
+
/****************************** Connect. ******************************/
- /* Attempt to connect to the MQTT broker. If connection fails, retry after
- * a timeout. The timeout value will exponentially increase until the
- * maximum number of attempts are reached or the maximum timeout value is
- * reached. The function below returns a failure status if the TCP connection
- * cannot be established to the broker after the configured number of attempts. */
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
+ /* Attempt to establish a TLS connection with the MQTT broker. This example
+ * connects to the MQTT broker specified in democonfigMQTT_BROKER_ENDPOINT, using
+ * the port number specified in democonfigMQTT_BROKER_PORT (these macros are defined
+ * in file demo_config.h). If the connection fails, attempt to re-connect after a timeout.
+ * The timeout value will be exponentially increased until either the maximum timeout value
+ * is reached, or the maximum number of attempts are exhausted. The function returns a failure status
+ * if the TCP connection cannot be established with the broker after a configured number
+ * of attempts. */
xNetworkStatus = prvConnectToServerWithBackoffRetries( &xNetworkContext );
configASSERT( xNetworkStatus == PLAINTEXT_TRANSPORT_SUCCESS );
- /* Sends an MQTT Connect packet over the already connected TCP socket,
- * and waits for a connection acknowledgment (CONNACK) packet. */
- LogInfo( ( "Creating an MQTT connection to %s.", democonfigMQTT_BROKER_ENDPOINT ) );
+ /* Send an MQTT CONNECT packet over the established TLS connection,
+ * and wait for the connection acknowledgment (CONNACK) packet. */
+ LogInfo( ( "Creating an MQTT connection to %s.\r\n", democonfigMQTT_BROKER_ENDPOINT ) );
prvCreateMQTTConnectionWithBroker( &xMQTTContext, &xNetworkContext );
/**************************** Subscribe. ******************************/
- /* If server rejected the subscription request, attempt to resubscribe to
- * the topic. Attempts are made according to the exponential backoff retry
- * strategy declared in backoff_algorithm.h. */
+ /* If the server rejected the subscription request, attempt to resubscribe to the
+ * topic. Attempts are made according to the exponential backoff retry strategy
+ * implemented in BackoffAlgorithm. */
prvMQTTSubscribeWithBackoffRetries( &xMQTTContext );
- /******************* Publish and Keep Alive Loop. *********************/
- /* Publish messages with QoS0, then send and process Keep Alive messages. */
+ /**************************** Publish and Keep-Alive Loop. ******************************/
+
+ /* Publish messages with QoS2, and send and process keep-alive messages. */
for( ulPublishCount = 0; ulPublishCount < ulMaxPublishCount; ulPublishCount++ )
{
- LogInfo( ( "Publish to the MQTT topic %s.", mqttexampleTOPIC ) );
- prvMQTTPublishToTopic( &xMQTTContext );
-
- /* Process the incoming publish echo. Since the application subscribed
- * to the same topic, the broker will send the same publish message
- * back to the application. */
- LogInfo( ( "Attempt to receive publish message from broker." ) );
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext,
- mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ prvMQTTPublishToTopics( &xMQTTContext );
+
+ /* Process incoming publish echo. Since the application subscribed and published
+ * to the same topic, the broker will send the incoming publish message back
+ * to the application. */
+ LogInfo( ( "Attempt to receive publishes from broker.\r\n" ) );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
- /* Leave the connection idle for some time. */
- LogInfo( ( "Keeping Connection Idle...\r\n" ) );
- vTaskDelay( mqttexampleDELAY_BETWEEN_PUBLISHES );
+ /* Leave connection idle for some time. */
+ LogInfo( ( "Keeping Connection Idle...\r\n\r\n" ) );
+ vTaskDelay( mqttexampleDELAY_BETWEEN_PUBLISHES_TICKS );
}
- /******************** Unsubscribe from the topic. *********************/
- LogInfo( ( "Unsubscribe from the MQTT topic %s.", mqttexampleTOPIC ) );
- prvMQTTUnsubscribeFromTopic( &xMQTTContext );
+ /************************ Unsubscribe from the topic. **************************/
+
+ prvMQTTUnsubscribeFromTopics( &xMQTTContext );
- /* Process the incoming packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext,
- mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ /* Process incoming UNSUBACK packet from the broker. */
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
- /**************************** Disconnect. *****************************/
+ /**************************** Disconnect. ******************************/
- /* Send an MQTT Disconnect packet over the connected TCP socket.
- * There is no corresponding response for a disconnect packet. After
- * sending the disconnect, the client must close the network connection. */
- LogInfo( ( "Disconnecting the MQTT connection with %s.",
- democonfigMQTT_BROKER_ENDPOINT ) );
+ /* Send an MQTT DISCONNECT packet over the already-connected TLS over TCP connection.
+ * There is no corresponding response expected from the broker. After sending the
+ * disconnect request, the client must close the network connection. */
+ LogInfo( ( "Disconnecting the MQTT connection with %s.\r\n", democonfigMQTT_BROKER_ENDPOINT ) );
xMQTTStatus = MQTT_Disconnect( &xMQTTContext );
configASSERT( xMQTTStatus == MQTTSuccess );
- /* Close the network connection. */
- xNetworkStatus = Plaintext_FreeRTOS_Disconnect( &xNetworkContext );
- configASSERT( xNetworkStatus == PLAINTEXT_TRANSPORT_SUCCESS );
+ /* Close the network connection. */
+ Plaintext_FreeRTOS_Disconnect( &xNetworkContext );
- /* Reset SUBACK status for each topic filter after completion of
- * subscription request cycle. */
+ /* Reset SUBACK status for each topic filter after completion of the subscription request cycle. */
for( ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++ )
{
xTopicFilterContext[ ulTopicCount ].xSubAckStatus = MQTTSubAckFailure;
}
/* Wait for some time between two iterations to ensure that we do not
- * bombard the MQTT broker. */
- LogInfo( ( "prvMQTTDemoTask() completed an iteration successfully. "
- "Total free heap is %u.", xPortGetFreeHeapSize() ) );
- LogInfo( ( "Demo completed successfully." ) );
- LogInfo( ( "Short delay before starting the next iteration.... \r\n" ) );
- vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS );
+ * bombard the broker. */
+ LogInfo( ( "prvMQTTDemoTask() completed an iteration successfully. Total free heap is %u.\r\n", xPortGetFreeHeapSize() ) );
+ LogInfo( ( "Demo completed successfully.\r\n" ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
+ LogInfo( ( "Short delay before starting the next iteration.... \r\n\r\n" ) );
+ vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS_TICKS );
}
}
/*-----------------------------------------------------------*/
@@ -561,12 +647,19 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = Plaintext_FreeRTOS_send;
xTransport.recv = Plaintext_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xResult = MQTT_Init( pxMQTTContext, &xTransport, prvGetTimeMs, prvEventCallback, &xBuffer );
configASSERT( xResult == MQTTSuccess );
+ xResult = MQTT_InitStatefulQoS( pxMQTTContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
+ configASSERT( xResult == MQTTSuccess );
- /* Many fields not used in this demo so start with everything at 0. */
+ /* Some fields are not used in this demo so start with everything at 0. */
( void ) memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
/* Start with a clean session i.e. direct the MQTT broker to discard any
@@ -581,9 +674,8 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xConnectInfo.pClientIdentifier = democonfigCLIENT_IDENTIFIER;
xConnectInfo.clientIdentifierLength = ( uint16_t ) strlen( democonfigCLIENT_IDENTIFIER );
- /* Set MQTT keep-alive period. It is the responsibility of the application to ensure
- * that the interval between Control Packets being sent does not exceed the Keep Alive value.
- * In the absence of sending any other Control Packets, the Client MUST send a PINGREQ Packet. */
+ /* Set MQTT keep-alive period. If the application does not send packets at an interval less than
+ * the keep-alive period, the MQTT library will send PINGREQ packets. */
xConnectInfo.keepAliveSeconds = mqttexampleKEEP_ALIVE_TIMEOUT_SECONDS;
/* Send MQTT CONNECT packet to broker. LWT is not used in this demo, so it
@@ -594,6 +686,9 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
mqttexampleCONNACK_RECV_TIMEOUT_MS,
&xSessionPresent );
configASSERT( xResult == MQTTSuccess );
+
+ /* Successfully established and MQTT connection with the broker. */
+ LogInfo( ( "An MQTT connection is established with %s.", democonfigMQTT_BROKER_ENDPOINT ) );
}
/*-----------------------------------------------------------*/
@@ -633,11 +728,13 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
/* Get a unique packet id. */
usSubscribePacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
- /* Subscribe to the mqttexampleTOPIC topic filter. This example subscribes to
- * only one topic and uses QoS0. */
- xMQTTSubscription[ 0 ].qos = MQTTQoS0;
- xMQTTSubscription[ 0 ].pTopicFilter = mqttexampleTOPIC;
- xMQTTSubscription[ 0 ].topicFilterLength = ( uint16_t ) strlen( mqttexampleTOPIC );
+ /* Populate subscription list. */
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ xMQTTSubscription[ ulTopicCount ].qos = MQTTQoS2;
+ xMQTTSubscription[ ulTopicCount ].pTopicFilter = xTopicFilterContext[ ulTopicCount ].pcTopicFilter;
+ xMQTTSubscription[ ulTopicCount ].topicFilterLength = ( uint16_t ) strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter );
+ }
/* Initialize context for backoff retry attempts if SUBSCRIBE request fails. */
BackoffAlgorithm_InitializeParams( &xRetryParams,
@@ -652,16 +749,19 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
* subscribe packet then waiting for a subscribe acknowledgment (SUBACK).
* This client will then publish to the same topic it subscribed to, so it
* will expect all the messages it sends to the broker to be sent back to it
- * from the broker. This demo uses QOS0 in Subscribe, therefore, the Publish
- * messages received from the broker will have QOS0. */
- LogInfo( ( "Attempt to subscribe to the MQTT topic %s.", mqttexampleTOPIC ) );
+ * from the broker. This demo uses QOS2 in Subscribe, therefore, the Publish
+ * messages received from the broker will have QOS2. */
xResult = MQTT_Subscribe( pxMQTTContext,
xMQTTSubscription,
sizeof( xMQTTSubscription ) / sizeof( MQTTSubscribeInfo_t ),
usSubscribePacketIdentifier );
configASSERT( xResult == MQTTSuccess );
- LogInfo( ( "SUBSCRIBE sent for topic %s to broker.\n\n", mqttexampleTOPIC ) );
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ LogInfo( ( "SUBSCRIBE sent for topic %s to broker.\n\n",
+ xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) );
+ }
/* Process incoming packet from the broker. After sending the subscribe, the
* client may receive a publish before it receives a subscribe ack. Therefore,
@@ -670,7 +770,7 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
* receiving Publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses the generic packet
* processing function everywhere to highlight this fact. */
- xResult = MQTT_ProcessLoop( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xResult = prvProcessLoopWithTimeout( pxMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xResult == MQTTSuccess );
/* Reset flag before checking suback responses. */
@@ -715,53 +815,64 @@ static void prvMQTTSubscribeWithBackoffRetries( MQTTContext_t * pxMQTTContext )
}
/*-----------------------------------------------------------*/
-static void prvMQTTPublishToTopic( MQTTContext_t * pxMQTTContext )
+static void prvMQTTPublishToTopics( MQTTContext_t * pxMQTTContext )
{
MQTTStatus_t xResult;
MQTTPublishInfo_t xMQTTPublishInfo;
+ uint32_t ulTopicCount;
/***
* For readability, error handling in this function is restricted to the use of
* asserts().
***/
- /* Some fields are not used by this demo so start with everything at 0. */
- ( void ) memset( ( void * ) &xMQTTPublishInfo, 0x00, sizeof( xMQTTPublishInfo ) );
-
- /* This demo uses QoS0. */
- xMQTTPublishInfo.qos = MQTTQoS0;
- xMQTTPublishInfo.retain = false;
- xMQTTPublishInfo.pTopicName = mqttexampleTOPIC;
- xMQTTPublishInfo.topicNameLength = ( uint16_t ) strlen( mqttexampleTOPIC );
- xMQTTPublishInfo.pPayload = mqttexampleMESSAGE;
- xMQTTPublishInfo.payloadLength = strlen( mqttexampleMESSAGE );
-
- /* Send PUBLISH packet. Packet ID is not used for a QoS0 publish. */
- xResult = MQTT_Publish( pxMQTTContext, &xMQTTPublishInfo, 0U );
-
- configASSERT( xResult == MQTTSuccess );
+ for( ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++ )
+ {
+ /* Some fields are not used by this demo so start with everything at 0. */
+ ( void ) memset( ( void * ) &xMQTTPublishInfo, 0x00, sizeof( xMQTTPublishInfo ) );
+
+ /* This demo uses QoS2 */
+ xMQTTPublishInfo.qos = MQTTQoS2;
+ xMQTTPublishInfo.retain = false;
+ xMQTTPublishInfo.pTopicName = xTopicFilterContext[ ulTopicCount ].pcTopicFilter;
+ xMQTTPublishInfo.topicNameLength = ( uint16_t ) strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter );
+ xMQTTPublishInfo.pPayload = mqttexampleMESSAGE;
+ xMQTTPublishInfo.payloadLength = strlen( mqttexampleMESSAGE );
+
+ /* Get a unique packet id. */
+ usPublishPacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
+
+ LogInfo( ( "Publishing to the MQTT topic %s.\r\n", xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) );
+ /* Send PUBLISH packet. */
+ xResult = MQTT_Publish( pxMQTTContext, &xMQTTPublishInfo, usPublishPacketIdentifier );
+ configASSERT( xResult == MQTTSuccess );
+ }
}
/*-----------------------------------------------------------*/
-static void prvMQTTUnsubscribeFromTopic( MQTTContext_t * pxMQTTContext )
+static void prvMQTTUnsubscribeFromTopics( MQTTContext_t * pxMQTTContext )
{
MQTTStatus_t xResult;
MQTTSubscribeInfo_t xMQTTSubscription[ mqttexampleTOPIC_COUNT ];
+ uint32_t ulTopicCount;
- /* Some fields not used by this demo so start with everything at 0. */
- ( void ) memset( ( void * ) &xMQTTSubscription, 0x00, sizeof( xMQTTSubscription ) );
+ /* Some fields are not used by this demo so start with everything at 0. */
+ memset( ( void * ) &xMQTTSubscription, 0x00, sizeof( xMQTTSubscription ) );
- /* Get a unique packet id. */
- usSubscribePacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
+ /* Populate subscription list. */
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ xMQTTSubscription[ ulTopicCount ].qos = MQTTQoS2;
+ xMQTTSubscription[ ulTopicCount ].pTopicFilter = xTopicFilterContext[ ulTopicCount ].pcTopicFilter;
+ xMQTTSubscription[ ulTopicCount ].topicFilterLength = ( uint16_t ) strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter );
- /* Subscribe to the mqttexampleTOPIC topic filter. This example subscribes to
- * only one topic and uses QoS0. */
- xMQTTSubscription[ 0 ].qos = MQTTQoS0;
- xMQTTSubscription[ 0 ].pTopicFilter = mqttexampleTOPIC;
- xMQTTSubscription[ 0 ].topicFilterLength = ( uint16_t ) strlen( mqttexampleTOPIC );
+ LogInfo( ( "Unsubscribing from topic %s.\r\n", xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) );
+ }
/* Get next unique packet identifier. */
usUnsubscribePacketIdentifier = MQTT_GetPacketId( pxMQTTContext );
+ /* Make sure the packet id obtained is valid. */
+ configASSERT( usUnsubscribePacketIdentifier != 0 );
/* Send UNSUBSCRIBE packet. */
xResult = MQTT_Unsubscribe( pxMQTTContext,
@@ -780,8 +891,14 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
switch( pxIncomingPacket->type )
{
+ case MQTT_PACKET_TYPE_PUBACK:
+ LogInfo( ( "PUBACK received for packet ID %u.\r\n", usPacketId ) );
+ break;
+
case MQTT_PACKET_TYPE_SUBACK:
+ LogInfo( ( "SUBACK received for packet ID %u.", usPacketId ) );
+
/* A SUBACK from the broker, containing the server response to our subscription request, has been received.
* It contains the status code indicating server approval/rejection for the subscription to the single topic
* requested. The SUBACK will be parsed to obtain the status code, and this status code will be stored in global
@@ -792,7 +909,7 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
{
if( xTopicFilterContext[ ulTopicCount ].xSubAckStatus != MQTTSubAckFailure )
{
- LogInfo( ( "Subscribed to the topic %s with maximum QoS %u.",
+ LogInfo( ( "Subscribed to the topic %s with maximum QoS %u.\r\n",
xTopicFilterContext[ ulTopicCount ].pcTopicFilter,
xTopicFilterContext[ ulTopicCount ].xSubAckStatus ) );
}
@@ -803,7 +920,7 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
break;
case MQTT_PACKET_TYPE_UNSUBACK:
- LogInfo( ( "Unsubscribed from the topic %s.", mqttexampleTOPIC ) );
+ LogInfo( ( "UNSUBACK received for packet ID %u.", usPacketId ) );
/* Make sure ACK packet identifier matches with Request packet identifier. */
configASSERT( usUnsubscribePacketIdentifier == usPacketId );
break;
@@ -816,9 +933,30 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
"callback when using MQTT_ProcessLoop.\n" ) );
break;
+ case MQTT_PACKET_TYPE_PUBREC:
+ LogInfo( ( "PUBREC received for packet id %u.\n\n",
+ usPacketId ) );
+ break;
+
+ case MQTT_PACKET_TYPE_PUBREL:
+
+ /* Nothing to be done from application as library handles
+ * PUBREL. */
+ LogInfo( ( "PUBREL received for packet id %u.\n\n",
+ usPacketId ) );
+ break;
+
+ case MQTT_PACKET_TYPE_PUBCOMP:
+
+ /* Nothing to be done from application as library handles
+ * PUBCOMP. */
+ LogInfo( ( "PUBCOMP received for packet id %u.\n\n",
+ usPacketId ) );
+ break;
+
/* Any other packet type is invalid. */
default:
- LogWarn( ( "prvMQTTProcessResponse() called with unknown packet type:(%02X).",
+ LogWarn( ( "prvMQTTProcessResponse() called with unknown packet type:(%02X).\r\n",
pxIncomingPacket->type ) );
}
}
@@ -827,28 +965,45 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
static void prvMQTTProcessIncomingPublish( MQTTPublishInfo_t * pxPublishInfo )
{
+ uint32_t ulTopicCount;
+ BaseType_t xTopicFound = pdFALSE;
+
configASSERT( pxPublishInfo != NULL );
/* Process incoming Publish. */
LogInfo( ( "Incoming QoS : %d\n", pxPublishInfo->qos ) );
- /* Verify the received publish is for the we have subscribed to. */
- if( ( pxPublishInfo->topicNameLength == strlen( mqttexampleTOPIC ) ) &&
- ( 0 == strncmp( mqttexampleTOPIC, pxPublishInfo->pTopicName, pxPublishInfo->topicNameLength ) ) )
+ /* Verify the received publish is for one of the topics that's been subscribed to. */
+ for( ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
{
- LogInfo( ( "Incoming Publish Topic Name: %.*s matches subscribed topic.\r\n"
- "Incoming Publish Message : %.*s",
- pxPublishInfo->topicNameLength,
- pxPublishInfo->pTopicName,
- pxPublishInfo->payloadLength,
- pxPublishInfo->pPayload ) );
+ if( ( pxPublishInfo->topicNameLength == strlen( xTopicFilterContext[ ulTopicCount ].pcTopicFilter ) ) &&
+ ( strncmp( xTopicFilterContext[ ulTopicCount ].pcTopicFilter, pxPublishInfo->pTopicName, pxPublishInfo->topicNameLength ) == 0 ) )
+ {
+ xTopicFound = pdTRUE;
+ break;
+ }
}
- else
+
+ if( xTopicFound == pdTRUE )
{
- LogInfo( ( "Incoming Publish Topic Name: %.*s does not match subscribed topic.",
+ LogInfo( ( "\r\nIncoming Publish Topic Name: %.*s matches a subscribed topic.\r\n",
pxPublishInfo->topicNameLength,
pxPublishInfo->pTopicName ) );
}
+ else
+ {
+ LogError( ( "Incoming Publish Topic Name: %.*s does not match a subscribed topic.\r\n",
+ pxPublishInfo->topicNameLength,
+ pxPublishInfo->pTopicName ) );
+ }
+
+ /* Verify the message received matches the message sent. */
+ if( strncmp( mqttexampleMESSAGE, ( const char * ) ( pxPublishInfo->pPayload ), pxPublishInfo->payloadLength ) != 0 )
+ {
+ LogError( ( "Incoming Publish Message: %.*s does not match Expected Message: %s.\r\n",
+ pxPublishInfo->topicNameLength,
+ pxPublishInfo->pTopicName, mqttexampleMESSAGE ) );
+ }
}
/*-----------------------------------------------------------*/
@@ -857,11 +1012,13 @@ static void prvEventCallback( MQTTContext_t * pxMQTTContext,
MQTTPacketInfo_t * pxPacketInfo,
MQTTDeserializedInfo_t * pxDeserializedInfo )
{
- /* The MQTT context is not used for this demo. */
+ /* The MQTT context is not used in this function. */
( void ) pxMQTTContext;
if( ( pxPacketInfo->type & 0xF0U ) == MQTT_PACKET_TYPE_PUBLISH )
{
+ LogInfo( ( "PUBLISH received for packet id %u.\n\n",
+ pxDeserializedInfo->packetIdentifier ) );
prvMQTTProcessIncomingPublish( pxDeserializedInfo->pPublishInfo );
}
else
@@ -891,3 +1048,55 @@ static uint32_t prvGetTimeMs( void )
}
/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+static void prvInitializeTopicBuffers( void )
+{
+ uint32_t ulTopicCount;
+ int xCharactersWritten;
+
+
+ for(ulTopicCount = 0; ulTopicCount < mqttexampleTOPIC_COUNT; ulTopicCount++)
+ {
+ /* Write topic strings into buffers. */
+ xCharactersWritten = snprintf( xTopicFilterContext[ ulTopicCount ].pcTopicFilter,
+ mqttexampleTOPIC_BUFFER_SIZE,
+ "%s%d", mqttexampleTOPIC_PREFIX, ( int ) ulTopicCount );
+
+ configASSERT( xCharactersWritten >= 0 && xCharactersWritten < mqttexampleTOPIC_BUFFER_SIZE );
+
+ /* Assign topic string to its corresponding SUBACK code initialized as a failure. */
+ xTopicFilterContext[ ulTopicCount ].xSubAckStatus = MQTTSubAckFailure;
+ }
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/MQTT_Plain_Text.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/MQTT_Plain_Text.vcxproj
new file mode 100644
index 00000000000..12ef19a10f2
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/MQTT_Plain_Text.vcxproj
@@ -0,0 +1,183 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {95746a42-54e8-4a6c-ae5d-ee5ce3b086bd}
+ MQTTPlainText
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/MQTT_Plain_Text.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/MQTT_Plain_Text.vcxproj.filters
new file mode 100644
index 00000000000..05cb7c2cbd9
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/MQTT_Plain_Text.vcxproj.filters
@@ -0,0 +1,105 @@
+
+
+
+
+ {a37e8d89-e525-4db2-91dd-f0b273a9554f}
+
+
+ {24b1b03b-ab28-43e4-bfb9-dae77a95e476}
+
+
+ {790aba1c-5d63-417a-89ec-9815b007861f}
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {a1ecf026-d7ca-488c-bf1f-fd90a038a04a}
+
+
+ {19547751-b333-4f18-8e35-7ac02d769539}
+
+
+ {b62c0d53-8fc3-4298-af2c-140e565c2dd7}
+
+
+ {a1737e33-ccac-43bb-a7e7-9a5db76108a2}
+
+
+ {6fe32746-148f-41f4-9510-146909bc7065}
+
+
+ {756eaea5-c266-4321-98a2-68ca62af4639}
+
+
+ {d91e912e-60ec-4d8b-bf81-28712853dcef}
+
+
+ {c63ec790-9f1f-485b-9c8c-30727bdb38ab}
+
+
+
+
+ Source
+
+
+ Source
+
+
+ Libraries\coreMQTT
+
+
+ Libraries\coreMQTT
+
+
+ Libraries\coreMQTT
+
+
+ Libraries\Backoff Algorithm
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+ Additional Network Transport Files\PlaintextTransport
+
+
+
+
+ Header
+
+
+ Libraries\coreMQTT\include
+
+
+ Libraries\coreMQTT\include
+
+
+ Libraries\coreMQTT\include
+
+
+ Libraries\coreMQTT\include
+
+
+ Libraries\Backoff Algorithm\include
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\PlaintextTransport\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/WIN32.vcxproj
deleted file mode 100644
index c08a8e1b9e5..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/WIN32.vcxproj
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_plaintext;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/WIN32.vcxproj.filters
deleted file mode 100644
index 4278ba458c3..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,267 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {70524181-23e5-4dde-a3fb-6afc11d6df04}
-
-
- {6e7ee4cd-b54c-4f67-9b70-8c1e9fe80b92}
-
-
- {59d75faa-e4df-4d85-bf56-67e9cc801004}
-
-
- {212f58ea-e09c-4778-9935-31b4e95538ee}
-
-
- {2e22b7fe-a180-47a1-b459-6a3451c7a4ee}
-
-
- {1407130d-da4c-4bcc-8ca0-4cf77f4cf97f}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/demo_config.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/demo_config.h
index e704d011763..621631bef65 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/demo_config.h
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/demo_config.h
@@ -20,7 +20,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
@@ -105,4 +105,9 @@ extern void vLoggingPrintf( const char * pcFormatString,
*/
#define democonfigDEMO_STACKSIZE configMINIMAL_STACK_SIZE
+/**
+ * @brief Size of the network buffer for MQTT packets.
+ */
+#define democonfigNETWORK_BUFFER_SIZE ( 1024U )
+
#endif /* DEMO_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/mqtt_plain_text_demo.sln b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/mqtt_plain_text_demo.sln
index dcfc1fe098d..c9a5f83d4f5 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/mqtt_plain_text_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/mqtt_plain_text_demo.sln
@@ -1,25 +1,101 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQTT_Plain_Text", "MQTT_Plain_Text.vcxproj", "{95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{40EF7C88-97FB-485A-A7E0-9A53C66A1079}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Debug|Win32.Build.0 = Debug|Win32
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Debug|x64.ActiveCfg = Debug|x64
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Debug|x64.Build.0 = Debug|x64
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Debug|x86.ActiveCfg = Debug|Win32
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Debug|x86.Build.0 = Debug|Win32
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Release|Win32.ActiveCfg = Release|Win32
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Release|Win32.Build.0 = Release|Win32
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Release|x64.ActiveCfg = Release|x64
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Release|x64.Build.0 = Release|x64
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Release|x86.ActiveCfg = Release|Win32
+ {95746A42-54E8-4A6C-AE5D-EE5CE3B086BD}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {40EF7C88-97FB-485A-A7E0-9A53C66A1079}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {40EF7C88-97FB-485A-A7E0-9A53C66A1079}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {40EF7C88-97FB-485A-A7E0-9A53C66A1079}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {40EF7C88-97FB-485A-A7E0-9A53C66A1079}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {5F7B1074-CE74-4830-B363-0E4C8540F490}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/DemoTasks/SerializerMQTTExample.c b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/DemoTasks/SerializerMQTTExample.c
index b99a7432fc1..264f2b72681 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/DemoTasks/SerializerMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/DemoTasks/SerializerMQTTExample.c
@@ -420,8 +420,20 @@ static void prvMQTTDemoTask( void * pvParameters )
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
/****************************** Connect. ******************************/
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Attempt to connect to the MQTT broker. If connection fails, retry after
* a timeout. Timeout value will be exponentially increased until the maximum
* number of attempts are reached or the maximum timeout value is reached.
@@ -494,6 +506,7 @@ static void prvMQTTDemoTask( void * pvParameters )
* bombard the public test mosquitto broker. */
LogInfo( ( "prvMQTTDemoTask() completed an iteration successfully. Total free heap is %u.", xPortGetFreeHeapSize() ) );
LogInfo( ( "Demo completed successfully." ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
LogInfo( ( "Short delay before starting the next iteration.... \r\n" ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS );
}
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/FreeRTOSConfig.h
deleted file mode 100644
index 25d31a7eb17..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/FreeRTOSConfig.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/MQTT_Serializer.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/MQTT_Serializer.vcxproj
new file mode 100644
index 00000000000..1a85ad51f2a
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/MQTT_Serializer.vcxproj
@@ -0,0 +1,181 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {b7a01d2b-cf81-4a65-bc54-af2185f6e51a}
+ MQTTSerializer
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .\;..\Common;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/MQTT_Serializer.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/MQTT_Serializer.vcxproj.filters
new file mode 100644
index 00000000000..c399baa02f7
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/MQTT_Serializer.vcxproj.filters
@@ -0,0 +1,99 @@
+
+
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {c63fcf3c-291e-4a43-8d51-b3b2088d3484}
+
+
+ {85ff296f-e223-414f-80cd-d87dc9259078}
+
+
+ {8a756be6-7242-4a34-9362-ef6e8ad35184}
+
+
+ {cb653e6c-88fe-4459-9f27-cff2d989a836}
+
+
+ {e3a50e05-5c8d-4781-8de1-280e54287e8f}
+
+
+ {988f1a57-3c63-4bf4-921a-3c2d6ccdef87}
+
+
+ {db5d7d6e-c204-4bac-8f70-e87544bab0a8}
+
+
+ {193af596-fbfc-4137-b379-86800ad349c7}
+
+
+ {0139998f-b0d7-4a3f-b8c9-1aaf280f4d67}
+
+
+ {523b14fc-53d8-4912-b0b4-b1b074028256}
+
+
+ {f209512b-d606-4c03-92dd-92a83de92f18}
+
+
+
+
+ Source
+
+
+ Source
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+
+
+ Header
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Config
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/WIN32.vcxproj
deleted file mode 100644
index 7ad25cb77b1..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/WIN32.vcxproj
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\Common;..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- ..\..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/WIN32.vcxproj.filters
deleted file mode 100644
index 44dc24475f9..00000000000
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,237 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {0da71e35-c75c-42f6-9220-15bbf932b595}
-
-
- {e049eb93-c847-4e6f-a3b9-e95a4934eeef}
-
-
- {565cf19c-b82e-4d0a-ac3a-42497d9b74fd}
-
-
- {ec737114-a399-447e-8d8e-39f7341c76c4}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
-
-
- DemoTasks
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/mqtt_serializer_demo.sln b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/mqtt_serializer_demo.sln
index dcfc1fe098d..bdd954306c0 100644
--- a/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/mqtt_serializer_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/mqtt_serializer_demo.sln
@@ -1,25 +1,101 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQTT_Serializer", "MQTT_Serializer.vcxproj", "{B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{49B9A974-3D8D-4D3A-B007-D565A2C03509}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Debug|Win32.Build.0 = Debug|Win32
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Debug|x64.ActiveCfg = Debug|x64
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Debug|x64.Build.0 = Debug|x64
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Debug|x86.ActiveCfg = Debug|Win32
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Debug|x86.Build.0 = Debug|Win32
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Release|Win32.ActiveCfg = Release|Win32
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Release|Win32.Build.0 = Release|Win32
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Release|x64.ActiveCfg = Release|x64
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Release|x64.Build.0 = Release|x64
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Release|x86.ActiveCfg = Release|Win32
+ {B7A01D2B-CF81-4A65-BC54-AF2185F6E51A}.Release|x86.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {49B9A974-3D8D-4D3A-B007-D565A2C03509}
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {49B9A974-3D8D-4D3A-B007-D565A2C03509}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {49B9A974-3D8D-4D3A-B007-D565A2C03509}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {49B9A974-3D8D-4D3A-B007-D565A2C03509}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {78C72B59-BC55-4BF6-B64B-DE44AC17E01A}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index ea45aec6eaf..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/FreeRTOSIPConfig.h
deleted file mode 100644
index b0990004987..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/DemoTasks/MutualAuthMQTTExample.c b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/PKCS11_Mqtt_MutualAuthDemo.c
similarity index 86%
rename from FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/DemoTasks/MutualAuthMQTTExample.c
rename to FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/PKCS11_Mqtt_MutualAuthDemo.c
index 42f6eb954c0..f42245249d9 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/DemoTasks/MutualAuthMQTTExample.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/PKCS11_Mqtt_MutualAuthDemo.c
@@ -39,6 +39,15 @@
* connection.
*/
+#include "logging_levels.h"
+
+#define LIBRARY_LOG_NAME "MQTTDemo"
+
+#define LIBRARY_LOG_LEVEL LOG_INFO
+
+#include "logging_stack.h"
+
+
/* Standard includes. */
#include
#include
@@ -55,7 +64,7 @@
#include "core_mqtt.h"
/* Transport interface implementation include header for TLS. */
-#include "using_mbedtls_pkcs11.h"
+#include "transport_mbedtls_pkcs11.h"
/*-----------------------------------------------------------*/
@@ -149,6 +158,18 @@
*/
#define mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS ( 200U )
+/**
+ * @brief The length of the outgoing publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for outgoing publishes.
+ */
+#define mqttexampleOUTGOING_PUBLISH_RECORD_LEN ( 10U )
+
+/**
+ * @brief The length of the incoming publish records array used by the coreMQTT
+ * library to track QoS > 0 packet ACKS for incoming publishes.
+ */
+#define mqttexampleINCOMING_PUBLISH_RECORD_LEN ( 10U )
+
/**
* @brief Milliseconds per second.
*/
@@ -161,8 +182,8 @@
/*-----------------------------------------------------------*/
-/**
- * @brief Each compilation unit that consumes the NetworkContext must define it.
+/**
+ * @brief Each compilation unit that consumes the NetworkContext must define it.
* It should contain a single pointer to the type of your desired transport.
* When using multiple transports in the same compilation unit, define this pointer as void *.
*
@@ -264,6 +285,18 @@ static void prvEventCallback( MQTTContext_t * pxMQTTContext,
static void prvTLSConnect( NetworkCredentials_t * pxNetworkCredentials,
NetworkContext_t * pxNetworkContext );
+/**
+ * @brief Call #MQTT_ProcessLoop in a loop for the duration of a timeout or
+ * #MQTT_ProcessLoop returns a failure.
+ *
+ * @param[in] pMqttContext MQTT context pointer.
+ * @param[in] ulTimeoutMs Duration to call #MQTT_ProcessLoop for.
+ *
+ * @return Returns the return value of the last call to #MQTT_ProcessLoop.
+ */
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs );
+
/*-----------------------------------------------------------*/
/* @brief Static buffer used to hold MQTT messages being sent and received. */
@@ -303,6 +336,24 @@ static MQTTFixedBuffer_t xBuffer =
democonfigNETWORK_BUFFER_SIZE
};
+/**
+ * @brief Array to track the outgoing publish records for outgoing publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pOutgoingPublishRecords[ mqttexampleOUTGOING_PUBLISH_RECORD_LEN ];
+
+/**
+ * @brief Array to track the incoming publish records for incoming publishes
+ * with QoS > 0.
+ *
+ * This is passed into #MQTT_InitStatefulQoS to allow for QoS > 0.
+ *
+ */
+static MQTTPubAckInfo_t pIncomingPublishRecords[ mqttexampleINCOMING_PUBLISH_RECORD_LEN ];
+
/*-----------------------------------------------------------*/
/*
@@ -359,19 +410,20 @@ static void prvMQTTDemoTask( void * pvParameters )
for( ; ; )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
/****************************** Connect. ******************************/
/* Establish a TLS connection with the MQTT broker. This example connects
* to the MQTT broker as specified by democonfigMQTT_BROKER_ENDPOINT and
* democonfigMQTT_BROKER_PORT in the demo_config.h file. */
- LogInfo( ( "Creating a TLS connection to %s:%u.\r\n",
+ LogInfo( ( "Creating a TLS connection to %s:%u.",
democonfigMQTT_BROKER_ENDPOINT,
democonfigMQTT_BROKER_PORT ) );
prvTLSConnect( &xNetworkCredentials, &xNetworkContext );
/* Sends an MQTT Connect packet over the already established TLS connection,
* and waits for connection acknowledgment (CONNACK) packet. */
- LogInfo( ( "Creating an MQTT connection to %s.\r\n", democonfigMQTT_BROKER_ENDPOINT ) );
+ LogInfo( ( "Creating an MQTT connection to %s.", democonfigMQTT_BROKER_ENDPOINT ) );
prvCreateMQTTConnectionWithBroker( &xMQTTContext, &xNetworkContext );
/**************************** Subscribe. ******************************/
@@ -385,7 +437,7 @@ static void prvMQTTDemoTask( void * pvParameters )
* through the callback registered (#prvEventCallback for this application).
* This demo uses QoS1 in Subscribe, therefore, the Publish messages
* received from the broker will have QoS1. */
- LogInfo( ( "Attempt to subscribe to the MQTT topic %s.\r\n", mqttexampleTOPIC ) );
+ LogInfo( ( "Attempt to subscribe to the MQTT topic %s.", mqttexampleTOPIC ) );
prvMQTTSubscribeToTopic( &xMQTTContext );
/* Process incoming packet from the broker. After sending the subscribe, the
@@ -395,33 +447,33 @@ static void prvMQTTDemoTask( void * pvParameters )
* receiving Publish message before subscribe ack is zero; but application
* must be ready to receive any packet. This demo uses the generic packet
* processing function everywhere to highlight this fact. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/******************* Publish and Keep Alive Loop. *********************/
/* Publish messages with QoS1, send and process Keep alive messages. */
for( ulPublishCount = 0; ulPublishCount < ulMaxPublishCount; ulPublishCount++ )
{
- LogInfo( ( "Publish to the MQTT topic %s.\r\n", mqttexampleTOPIC ) );
+ LogInfo( ( "Publish to the MQTT topic %s.", mqttexampleTOPIC ) );
prvMQTTPublishToTopic( &xMQTTContext );
/* Process incoming publish echo, since application subscribed to the
* same topic, the broker will send publish message back to the application. */
- LogInfo( ( "Attempt to receive publish message from broker.\r\n" ) );
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ LogInfo( ( "Attempt to receive publish message from broker." ) );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/* Leave Connection Idle for some time. */
- LogInfo( ( "Keeping Connection Idle...\r\n\r\n" ) );
+ LogInfo( ( "Keeping Connection Idle..." ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_PUBLISHES_TICKS );
}
/******************** Unsubscribe from the topic. *********************/
- LogInfo( ( "Unsubscribe from the MQTT topic %s.\r\n", mqttexampleTOPIC ) );
+ LogInfo( ( "Unsubscribe from the MQTT topic %s.", mqttexampleTOPIC ) );
prvMQTTUnsubscribeFromTopic( &xMQTTContext );
/* Process incoming UNSUBACK packet from the broker. */
- xMQTTStatus = MQTT_ProcessLoop( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
+ xMQTTStatus = prvProcessLoopWithTimeout( &xMQTTContext, mqttexamplePROCESS_LOOP_TIMEOUT_MS );
configASSERT( xMQTTStatus == MQTTSuccess );
/**************************** Disconnect. ******************************/
@@ -429,7 +481,7 @@ static void prvMQTTDemoTask( void * pvParameters )
/* Send an MQTT Disconnect packet over the already connected TLS over TCP
* connection. There is no corresponding response for the disconnect packet.
* After sending disconnect, client must close the network connection. */
- LogInfo( ( "Disconnecting the MQTT connection with %s.\r\n",
+ LogInfo( ( "Disconnecting the MQTT connection with %s.",
democonfigMQTT_BROKER_ENDPOINT ) );
xMQTTStatus = MQTT_Disconnect( &xMQTTContext );
configASSERT( xMQTTStatus == MQTTSuccess );
@@ -440,10 +492,11 @@ static void prvMQTTDemoTask( void * pvParameters )
/* Wait for some time between two iterations to ensure that we do not
* bombard the broker. */
LogInfo( ( "prvMQTTDemoTask() completed an iteration successfully. "
- "Total free heap is %u.\r\n",
+ "Total free heap is %u.",
xPortGetFreeHeapSize() ) );
- LogInfo( ( "Demo completed successfully.\r\n" ) );
- LogInfo( ( "Short delay before starting the next iteration.... \r\n\r\n" ) );
+ LogInfo( ( "Demo completed successfully." ) );
+ LogInfo( ( "-------DEMO FINISHED-------\r\n" ) );
+ LogInfo( ( "Short delay before starting the next iteration.... " ) );
vTaskDelay( mqttexampleDELAY_BETWEEN_DEMO_ITERATIONS_TICKS );
}
}
@@ -468,7 +521,7 @@ static void prvTLSConnect( NetworkCredentials_t * pxNetworkCredentials,
mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS,
mqttexampleTRANSPORT_SEND_RECV_TIMEOUT_MS );
configASSERT( xNetworkStatus == TLS_TRANSPORT_SUCCESS );
- LogInfo( ( "A mutually authenticated TLS connection established with %s:%u.\r\n",
+ LogInfo( ( "A mutually authenticated TLS connection established with %s:%u.",
democonfigMQTT_BROKER_ENDPOINT,
democonfigMQTT_BROKER_PORT ) );
}
@@ -490,10 +543,17 @@ static void prvCreateMQTTConnectionWithBroker( MQTTContext_t * pxMQTTContext,
xTransport.pNetworkContext = pxNetworkContext;
xTransport.send = TLS_FreeRTOS_send;
xTransport.recv = TLS_FreeRTOS_recv;
+ xTransport.writev = NULL;
/* Initialize MQTT library. */
xResult = MQTT_Init( pxMQTTContext, &xTransport, prvGetTimeMs, prvEventCallback, &xBuffer );
configASSERT( xResult == MQTTSuccess );
+ xResult = MQTT_InitStatefulQoS( pxMQTTContext,
+ pOutgoingPublishRecords,
+ mqttexampleOUTGOING_PUBLISH_RECORD_LEN,
+ pIncomingPublishRecords,
+ mqttexampleINCOMING_PUBLISH_RECORD_LEN );
+ configASSERT( xResult == MQTTSuccess );
/* Some fields are not used in this demo so start with everything at 0. */
memset( ( void * ) &xConnectInfo, 0x00, sizeof( xConnectInfo ) );
@@ -625,19 +685,19 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
switch( pxIncomingPacket->type )
{
case MQTT_PACKET_TYPE_PUBACK:
- LogInfo( ( "PUBACK received for packet Id %u.\r\n", usPacketId ) );
+ LogInfo( ( "PUBACK received for packet Id %u.", usPacketId ) );
/* Make sure ACK packet identifier matches with Request packet identifier. */
configASSERT( usPublishPacketIdentifier == usPacketId );
break;
case MQTT_PACKET_TYPE_SUBACK:
- LogInfo( ( "Subscribed to the topic %s.\r\n", mqttexampleTOPIC ) );
+ LogInfo( ( "Subscribed to the topic %s.", mqttexampleTOPIC ) );
/* Make sure ACK packet identifier matches with Request packet identifier. */
configASSERT( usSubscribePacketIdentifier == usPacketId );
break;
case MQTT_PACKET_TYPE_UNSUBACK:
- LogInfo( ( "Unsubscribed from the topic %s.\r\n", mqttexampleTOPIC ) );
+ LogInfo( ( "Unsubscribed from the topic %s.", mqttexampleTOPIC ) );
/* Make sure ACK packet identifier matches with Request packet identifier. */
configASSERT( usUnsubscribePacketIdentifier == usPacketId );
break;
@@ -652,7 +712,7 @@ static void prvMQTTProcessResponse( MQTTPacketInfo_t * pxIncomingPacket,
/* Any other packet type is invalid. */
default:
- LogWarn( ( "prvMQTTProcessResponse() called with unknown packet type:(%02X).\r\n",
+ LogWarn( ( "prvMQTTProcessResponse() called with unknown packet type:(%02X).",
pxIncomingPacket->type ) );
}
}
@@ -670,8 +730,8 @@ static void prvMQTTProcessIncomingPublish( MQTTPublishInfo_t * pxPublishInfo )
if( ( pxPublishInfo->topicNameLength == strlen( mqttexampleTOPIC ) ) &&
( 0 == strncmp( mqttexampleTOPIC, pxPublishInfo->pTopicName, pxPublishInfo->topicNameLength ) ) )
{
- LogInfo( ( "\r\nIncoming Publish Topic Name: %.*s matches subscribed topic.\r\n"
- "Incoming Publish Message : %.*s\r\n",
+ LogInfo( ( "Incoming Publish Topic Name: %.*s matches subscribed topic."
+ "Incoming Publish Message : %.*s",
pxPublishInfo->topicNameLength,
pxPublishInfo->pTopicName,
pxPublishInfo->payloadLength,
@@ -679,7 +739,7 @@ static void prvMQTTProcessIncomingPublish( MQTTPublishInfo_t * pxPublishInfo )
}
else
{
- LogInfo( ( "Incoming Publish Topic Name: %.*s does not match subscribed topic.\r\n",
+ LogInfo( ( "Incoming Publish Topic Name: %.*s does not match subscribed topic.",
pxPublishInfo->topicNameLength,
pxPublishInfo->pTopicName ) );
}
@@ -725,3 +785,33 @@ static uint32_t prvGetTimeMs( void )
}
/*-----------------------------------------------------------*/
+
+static MQTTStatus_t prvProcessLoopWithTimeout( MQTTContext_t * pMqttContext,
+ uint32_t ulTimeoutMs )
+{
+ uint32_t ulMqttProcessLoopTimeoutTime;
+ uint32_t ulCurrentTime;
+
+ MQTTStatus_t eMqttStatus = MQTTSuccess;
+
+ ulCurrentTime = pMqttContext->getTime();
+ ulMqttProcessLoopTimeoutTime = ulCurrentTime + ulTimeoutMs;
+
+ /* Call MQTT_ProcessLoop multiple times a timeout happens, or
+ * MQTT_ProcessLoop fails. */
+ while( ( ulCurrentTime < ulMqttProcessLoopTimeoutTime ) &&
+ ( eMqttStatus == MQTTSuccess || eMqttStatus == MQTTNeedMoreBytes ) )
+ {
+ eMqttStatus = MQTT_ProcessLoop( pMqttContext );
+ ulCurrentTime = pMqttContext->getTime();
+ }
+
+ if( eMqttStatus == MQTTNeedMoreBytes )
+ {
+ eMqttStatus = MQTTSuccess;
+ }
+
+ return eMqttStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/readme.txt b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/README.md
similarity index 100%
rename from FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/readme.txt
rename to FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/README.md
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/READ_ME_INSTRUCTIONS.url b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/READ_ME_INSTRUCTIONS.url
deleted file mode 100644
index a02a2f6aab1..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/READ_ME_INSTRUCTIONS.url
+++ /dev/null
@@ -1,5 +0,0 @@
-[{000214A0-0000-0000-C000-000000000046}]
-Prop3=19,11
-[InternetShortcut]
-IDList=
-URL=https://www.freertos.org/pkcs11/index.html
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/WIN32.vcxproj
deleted file mode 100644
index c54b83a65c3..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/WIN32.vcxproj
+++ /dev/null
@@ -1,362 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\;..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\coreMQTT_Windows_Simulator\Common;..\Common\WinPCap;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\Source\Application-Protocols\network_transport\using_mbedtls_pkcs11;..\..\Source\Utilities\mbedtls_freertos;..\..\Source\mbedtls_utils;..\..\ThirdParty\mbedtls\include;.;..\..\Source\corePKCS11\source\portable\os;%(AdditionalIncludeDirectories)
- MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/WIN32.vcxproj.filters
deleted file mode 100644
index a1e0b8ed69f..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,890 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}
-
-
- {8a0aa896-6b3a-49b3-997e-681f0d1949ae}
-
-
- {c5a01679-3e7a-4320-97ac-ee5b872c1650}
-
-
- {c992824d-4198-46b2-8d59-5f99ab9946ab}
-
-
- {6a35782c-bc09-42d5-a850-98bcb668a4dc}
-
-
- {fcf93295-15e2-4a84-a5e9-b3c162e9f061}
-
-
- {8bcf965d-458a-4cab-a6d2-32802991104b}
-
-
- {0060ea85-4469-40ac-a941-a665252ed99e}
-
-
- {3cf35cee-b44a-4b80-bd15-253a9f1b2c14}
-
-
- {a7fde611-3c8a-4f10-8d35-0082456605c6}
-
-
- {46bbf2ee-3f9a-4ef8-812c-7fe62848409a}
-
-
- {b7e49ff2-5dcf-41cd-b44e-253b0abcd213}
-
-
- {f1f457c7-7cdf-4c9f-9b2f-1a52cba0ebce}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- DemoTasks
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreMQTT\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
-
-
- FreeRTOS+\mbedtls
-
-
-
-
- FreeRTOS+\mbedtls
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.sln b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.sln
new file mode 100644
index 00000000000..1663730437e
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.sln
@@ -0,0 +1,93 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.33027.164
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "corePKCS11_MQTT_Mutual_Auth", "corePKCS11_MQTT_Mutual_Auth.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "corePKCS11", "..\..\VisualStudio_StaticProjects\corePKCS11\corePKCS11.vcxproj", "{19F0FF1A-3368-491A-9932-A2F089508F51}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{B8A4C89D-4E5F-4E54-A5EC-0204D094FD68}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.ActiveCfg = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.Build.0 = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.ActiveCfg = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.Build.0 = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.ActiveCfg = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.Build.0 = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.ActiveCfg = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {B8A4C89D-4E5F-4E54-A5EC-0204D094FD68}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {B8A4C89D-4E5F-4E54-A5EC-0204D094FD68}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {B8A4C89D-4E5F-4E54-A5EC-0204D094FD68}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {B8A4C89D-4E5F-4E54-A5EC-0204D094FD68}
+ {19F0FF1A-3368-491A-9932-A2F089508F51} = {B8A4C89D-4E5F-4E54-A5EC-0204D094FD68}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
+ EndGlobalSection
+ GlobalSection(TestCaseManagementSettings) = postSolution
+ CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.vcxproj b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.vcxproj
new file mode 100644
index 00000000000..d3e741c47ee
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.vcxproj
@@ -0,0 +1,207 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ corePKCS11_MQTT_Mutual_Auth
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\Source\Application-Protocols\coreMQTT\source\interface;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\Source\Application-Protocols\coreMQTT\source\interface;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\Source\Application-Protocols\coreMQTT\source\interface;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\Source\Application-Protocols\coreMQTT\source\interface;$(IncludePath)
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;..\Common;DemoTasks\include;..\..\..\Source\Application-Protocols\network_transport\tcp_sockets_wrapper\include;..\..\..\Source\Application-Protocols\network_transport;..\..\..\Source\Utilities\backoff_algorithm\source\include;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {19f0ff1a-3368-491a-9932-a2f089508f51}
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.vcxproj.filters b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.vcxproj.filters
new file mode 100644
index 00000000000..43e4a14b0c4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/corePKCS11_MQTT_Mutual_Auth.vcxproj.filters
@@ -0,0 +1,114 @@
+
+
+
+
+ {e00920f1-720e-47ca-bc96-560169f2449a}
+
+
+ {5cef0fbc-ffb0-4466-9b74-4d8dcc8ecec9}
+
+
+ {0034e320-851e-4e07-9d64-d77eea7aeff4}
+
+
+ {d940fb10-f2ca-4a5e-8eb6-c923966d27b5}
+
+
+ {1f476ab8-0e55-4104-8b14-406c207a7bd0}
+
+
+ {9ba295d2-b09d-4f81-a555-f1f147331f54}
+
+
+ {4c489f8b-5912-4146-8581-7971a075425a}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {c69eabd6-7eed-4959-9351-41b8c3b731b8}
+
+
+ {64a78119-97f6-4252-b793-87cb6e7902d1}
+
+
+ {d970b960-e49e-47dc-a92a-dbbb2b549448}
+
+
+ {adfc7ae7-9377-42fa-8bf3-b2d80b42e0d6}
+
+
+ {c9148635-f681-48fe-97e7-7ac76048db9f}
+
+
+
+
+ Additional Libraries\backoff_algorithm
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Libraries\coreMQTT
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\ports
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport
+
+
+ Source
+
+
+ Source
+
+
+
+
+ Additional Libraries\backoff_algorithm
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Libraries\coreMQTT\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Additional Network Transport Files\TCP Sockets Wrapper + MbedTLS Transport\include
+
+
+ Header
+
+
+ Config
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/core_pkcs11_config.h b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/core_pkcs11_config.h
deleted file mode 100644
index 5b0db1b9b5a..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/core_pkcs11_config.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/**
- * @file core_pkcs11_config.h
- * @brief PCKS#11 config options.
- */
-
-
-#ifndef _CORE_PKCS11_CONFIG_H_
-#define _CORE_PKCS11_CONFIG_H_
-
-#include "FreeRTOS.h"
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Include logging header files and define logging macros in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for PKCS #11.
- * 3. Include the header file "logging_stack.h", if logging is enabled for PKCS #11.
- */
-#include "logging_levels.h"
-
-/* Logging configuration for the PKCS #11 library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "PKCS11"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_ERROR
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-
-#include "logging_stack.h"
-
-/**
- * @brief Malloc API used by core_pkcs11.h
- */
-#define PKCS11_MALLOC pvPortMalloc
-
-/**
- * @brief Free API used by core_pkcs11.h
- */
-#define PKCS11_FREE vPortFree
-
-/**
- * @brief ESP32 NVS Partition where PKCS #11 data is stored
- */
-#define pkcs11configSTORAGE_PARTITION "storage"
-
-/**
- * @brief ESP32 NVS namespace for PKCS #11 data
- */
-#define pkcs11configSTORAGE_NS "creds"
-
-/**
- * @brief PKCS #11 default user PIN.
- *
- * The PKCS #11 standard specifies the presence of a user PIN. That feature is
- * sensible for applications that have an interactive user interface and memory
- * protections. However, since typical microcontroller applications lack one or
- * both of those, the user PIN is assumed to be used herein for interoperability
- * purposes only, and not as a security feature.
- *
- * Note: Do not cast this to a pointer! The library calls sizeof to get the length
- * of this string.
- */
-#define configPKCS11_DEFAULT_USER_PIN "0000"
-
-/**
- * @brief Maximum length (in characters) for a PKCS #11 CKA_LABEL
- * attribute.
- */
-#define pkcs11configMAX_LABEL_LENGTH 32UL
-
-/**
- * @brief Maximum number of token objects that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_NUM_OBJECTS 6UL
-
-/**
- * @brief Maximum number of sessions that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_SESSIONS 10UL
-
-/**
- * @brief Set to 1 if a PAL destroy object is implemented.
- *
- * If set to 0, no PAL destroy object is implemented, and this functionality
- * is implemented in the common PKCS #11 layer.
- */
-#define pkcs11configPAL_DESTROY_SUPPORTED 0
-
-/**
- * @brief Set to 1 if OTA image verification via PKCS #11 module is supported.
- *
- * If set to 0, OTA code signing certificate is built in via
- * aws_ota_codesigner_certificate.h.
- */
-#define pkcs11configOTA_SUPPORTED 1
-
-/**
- * @brief Set to 1 if PAL supports storage for JITP certificate,
- * code verify certificate, and trusted server root certificate.
- *
- * If set to 0, PAL does not support storage mechanism for these, and
- * they are accessed via headers compiled into the code.
- */
-#define pkcs11configJITP_CODEVERIFY_ROOT_CERT_SUPPORTED 0
-
-/**
- * @brief The PKCS #11 label for device private key.
- *
- * Private key for connection to AWS IoT endpoint. The corresponding
- * public key should be registered with the AWS IoT endpoint.
- */
-#define pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS ( "Device Priv TLS Key" )
-
-/**
- * @brief The PKCS #11 label for device public key.
- *
- * The public key corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS ( "Device Pub TLS Key" )
-
-/**
- * @brief The PKCS #11 label for the device certificate.
- *
- * Device certificate corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS ( "Device Cert" )
-
-/**
- * @brief The PKCS #11 label for the object to be used for code verification.
- *
- * Used by over-the-air update code to verify an incoming signed image.
- */
-#define pkcs11configLABEL_CODE_VERIFICATION_KEY ( "Code Verify Key" )
-
-/**
- * @brief The PKCS #11 label for Just-In-Time-Provisioning.
- *
- * The certificate corresponding to the issuer of the device certificate
- * (pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS) when using the JITR or
- * JITP flow.
- */
-#define pkcs11configLABEL_JITP_CERTIFICATE ( "JITP Cert" )
-
-/**
- * @brief The PKCS #11 label for the AWS Trusted Root Certificate.
- *
- * @see aws_default_root_certificates.h
- */
-#define pkcs11configLABEL_ROOT_CERTIFICATE ( "Root Cert" )
-
-/**
- * @brief The PKCS #11 label for the object to be used for HMAC operations.
- */
-#define pkcs11configLABEL_HMAC_KEY "HMAC Key"
-
- /**
- * @brief The PKCS #11 label for the object to be used for CMAC operations.
- */
-#define pkcs11configLABEL_CMAC_KEY "CMAC Key"
-
-#endif /* _CORE_PKCS11_CONFIG_H_ include guard. */
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/main.c
index 65907b7a670..295e27c727e 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/main.c
@@ -24,93 +24,46 @@
*
*/
+#include "logging_levels.h"
+
+#define LIBRARY_LOG_NAME "P11MQTTDemo"
+#define LIBRARY_LOG_LEVEL LOG_INFO
+
+#include "logging_stack.h"
+
/***
* See https://www.FreeRTOS.org/pkcs11/ for configuration and usage instructions.
***/
/* Standard includes. */
#include
-#include
-
-/* Visual studio intrinsics used so the __debugbreak() function is available
- * should an assert get hit. */
-#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
-/* TCP/IP stack includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
/* Demo Specific configs. */
#include "demo_config.h"
/* Demo logging includes. */
#include "logging.h"
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * MQTT demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * prvStartSimpleMQTTDemo() is called from inside vApplicationIPNetworkEventHook().
- */
-extern void vStartPKCSMutualAuthDemo( void );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
+/*-----------------------------------------------------------*/
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
+extern void vPlatformInitIpStack( void );
-/* Use by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /***
- * See https://www.FreeRTOS.org/coremqtt for configuration and usage instructions.
- ***/
+ vPlatformInitLogging();
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
+ /* Create the task that demonstrates the MQTT API Demo over a
+ * mutually authenticated network connection with MQTT broker. */
+ vStartPKCSMutualAuthDemo();
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
+ /* Initialize FreeRTOS+TCP */
+ vPlatformInitIpStack();
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -119,260 +72,13 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartPKCSMutualAuthDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
-
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumbers[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
-
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ * FreeRTOS web site for more details.
*/
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumbers[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n",
- ulRandomNumbers[ 0 ],
- ulRandomNumbers[ 1 ],
- ulRandomNumbers[ 2 ],
- ulRandomNumbers[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
}
/*-----------------------------------------------------------*/
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
-/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/mbedtls_config.h b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/mbedtls_config.h
deleted file mode 100644
index 9ac94ab1eb9..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/mbedtls_config.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_ENTROPY_HARDWARE_ALT
-
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PK_WRITE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-#define MBEDTLS_CMAC_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* These two macro used by mbedtls_ssl_set_bio in using_mbedtls network
- * transport layer. */
-#define MBEDTLS_SSL_SEND mbedtls_platform_send
-#define MBEDTLS_SSL_RECV mbedtls_platform_recv
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/pkcs11_demo_setup.py b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/pkcs11_demo_setup.py
index f8f84fd4416..f704c518fe8 100755
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/pkcs11_demo_setup.py
+++ b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/pkcs11_demo_setup.py
@@ -1,12 +1,13 @@
#!/usr/bin/env python
import argparse
+import os
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
-KEY_OUT_NAME = "corePKCS11_Key.dat"
-CERT_OUT_NAME = "corePKCS11_Certificate.dat"
+KEY_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Key.dat"
+CERT_OUT_NAME = f"{os.getcwd()}\\corePKCS11_Certificate.dat"
def convert_pem_to_der(cert_file, key_file):
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/pkcs11_mqtt_mutual_auth_demo.sln b/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/pkcs11_mqtt_mutual_auth_demo.sln
deleted file mode 100644
index dcfc1fe098d..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator/pkcs11_mqtt_mutual_auth_demo.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/.gitignore b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/.gitignore
new file mode 100644
index 00000000000..e7747528351
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/.gitignore
@@ -0,0 +1,2 @@
+corePKCS11_*.dat
+
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.sln b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.sln
new file mode 100644
index 00000000000..1f926281662
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.sln
@@ -0,0 +1,90 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.33027.164
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CorePKCS11_Demos", "CorePKCS11_Demos.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "corePKCS11", "..\..\VisualStudio_StaticProjects\corePKCS11\corePKCS11.vcxproj", "{19F0FF1A-3368-491A-9932-A2F089508F51}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{03EBA761-6CA1-4180-AA4A-F5355E6441BD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.ActiveCfg = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.Build.0 = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.ActiveCfg = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.Build.0 = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.ActiveCfg = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.Build.0 = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.ActiveCfg = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {03EBA761-6CA1-4180-AA4A-F5355E6441BD}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {03EBA761-6CA1-4180-AA4A-F5355E6441BD}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {03EBA761-6CA1-4180-AA4A-F5355E6441BD}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {03EBA761-6CA1-4180-AA4A-F5355E6441BD}
+ {19F0FF1A-3368-491A-9932-A2F089508F51} = {03EBA761-6CA1-4180-AA4A-F5355E6441BD}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.vcxproj b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.vcxproj
new file mode 100644
index 00000000000..48cd331e9a4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.vcxproj
@@ -0,0 +1,178 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ CorePKCS11_Demos
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;examples;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;examples;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;examples;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ .;examples;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ {19f0ff1a-3368-491a-9932-a2f089508f51}
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.vcxproj.filters b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.vcxproj.filters
new file mode 100644
index 00000000000..96ff1c399b0
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/CorePKCS11_Demos.vcxproj.filters
@@ -0,0 +1,45 @@
+
+
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+
+
+ Headers
+
+
+ Config
+
+
+ Headers
+
+
+
+
+ {faeb0483-c7c8-40af-aa30-ad501182c5f3}
+
+
+ {13fbcac5-8c84-4c23-bfa9-c78eedea35fa}
+
+
+ {14848d72-d909-48a8-bbe0-06c50eadf3f8}
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index 9dab58e75f1..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
- * Application specific definitions.
- *
- * These definitions should be adjusted for your particular hardware and
- * application requirements.
- *
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
- * https://www.FreeRTOS.org/a00110.html
- *
- * The bottom of this file contains some constants specific to running the UDP
- * stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
- * the demo) are contained in FreeRTOSIPConfig.h.
- *----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
-to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char *pcFile, uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
-priority of the task used to simulate Ethernet interrupts. */
-
-#if( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-#define configPRINTF( X ) printf X
-
-#endif /* FREERTOS_CONFIG_H */
-
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/READ_ME_INSTRUCTIONS.url b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/READ_ME_INSTRUCTIONS.url
deleted file mode 100644
index a02a2f6aab1..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/READ_ME_INSTRUCTIONS.url
+++ /dev/null
@@ -1,5 +0,0 @@
-[{000214A0-0000-0000-C000-000000000046}]
-Prop3=19,11
-[InternetShortcut]
-IDList=
-URL=https://www.freertos.org/pkcs11/index.html
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/WIN32.vcxproj.filters
deleted file mode 100644
index 29c4dcb6ed1..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,761 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {44f1dc25-5639-4f3f-a6ec-f5c19cb7fe8d}
-
-
- {2d9c1365-e64a-4601-a3b1-8ba0bb81b467}
-
-
- {298a6900-c337-4761-bf8e-0dc27fd153df}
-
-
- {44a1af32-9b4f-4bfe-af19-a563c423468e}
-
-
- {e88d4eab-3fad-4755-a5a4-41c6e4f59089}
-
-
- {817c6143-0ae9-4cac-828f-08f0da380f99}
-
-
- {a4ecadfb-a03e-4ff6-a1e5-f2b72c0d41aa}
-
-
- {dbf9d53b-40a9-4e96-9aca-32e53595d647}
-
-
- {38bd71c0-5f83-42f4-8fa3-06bee800de2e}
-
-
- {78a81f37-e1f1-4ef1-b067-bb23c8e1dfe2}
-
-
- {38512398-609b-4a9b-bc1a-67cab17720ae}
-
-
- {f9d1c25b-8be4-4743-84c4-9a620c9e9c4e}
-
-
- {6a7d78a6-4f09-4a5f-a692-ce4791240881}
-
-
- {e32be358-792b-45ab-b1c5-f87e64315cd3}
-
-
-
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source\Portable
-
-
- examples
-
-
- examples
-
-
- examples
-
-
- examples
-
-
- examples
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
-
- FreeRTOS+\mbedtls
-
-
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- examples
-
-
- examples
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- examples
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\3rdparty\pkcs11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\3rdparty\pkcs11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\3rdparty\pkcs11
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
-
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/demo_helpers.c b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/demo_helpers.c
index 7f06d0df700..134b3ace25a 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/demo_helpers.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/demo_helpers.c
@@ -44,7 +44,7 @@
#include "demo_helpers.h"
void vStart( CK_SESSION_HANDLE * pxSession,
- CK_SLOT_ID ** ppxSlotId )
+ CK_SLOT_ID ** ppxSlotId )
{
CK_RV xResult = CKR_OK;
@@ -101,7 +101,7 @@ void vStart( CK_SESSION_HANDLE * pxSession,
/*-----------------------------------------------------------*/
void vEnd( CK_SESSION_HANDLE xSession,
- CK_SLOT_ID * pxSlotId )
+ CK_SLOT_ID * pxSlotId )
{
C_CloseSession( xSession );
C_Finalize( NULL );
@@ -163,14 +163,14 @@ void vWriteHexBytesToConsole( char * pcDescription,
}
/*-----------------------------------------------------------*/
-/* Extract ECDSA public key. */
+/* Extract ECDSA public key. */
CK_RV vExportPublicKey( CK_SESSION_HANDLE xSession,
CK_OBJECT_HANDLE xPublicKeyHandle,
CK_BYTE ** ppucDerPublicKey,
CK_ULONG * pulDerPublicKeyLength )
{
/* This function is simply a helper function to export the raw hex values
- * of an EC public key into a buffer. It's explanation is not within the
+ * of an EC public key into a buffer. It's explanation is not within the
* scope of the demos and is sparsely commented. */
CK_RV xResult;
CK_FUNCTION_LIST_PTR pxFunctionList;
@@ -274,69 +274,3 @@ void * pvCalloc( size_t xNumElements,
return pvNew;
}
/*-----------------------------------------------------------*/
-
-void aws_mbedtls_mutex_init( mbedtls_threading_mutex_t * mutex )
-{
- mutex->mutex = xSemaphoreCreateMutex();
-
- if( mutex->mutex != NULL )
- {
- mutex->is_valid = 1;
- }
- else
- {
- mutex->is_valid = 0;
- }
-}
-/*-----------------------------------------------------------*/
-
-void aws_mbedtls_mutex_free( mbedtls_threading_mutex_t * mutex )
-{
- if( mutex->is_valid == 1 )
- {
- vSemaphoreDelete( mutex->mutex );
- mutex->is_valid = 0;
- }
-}
-/*-----------------------------------------------------------*/
-
-int aws_mbedtls_mutex_lock( mbedtls_threading_mutex_t * mutex )
-{
- int ret = MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
-
- if( mutex->is_valid == 1 )
- {
- if( xSemaphoreTake( mutex->mutex, portMAX_DELAY ) )
- {
- ret = 0;
- }
- else
- {
- ret = MBEDTLS_ERR_THREADING_MUTEX_ERROR;
- }
- }
-
- return ret;
-}
-/*-----------------------------------------------------------*/
-
-int aws_mbedtls_mutex_unlock( mbedtls_threading_mutex_t * mutex )
-{
- int ret = MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
-
- if( mutex->is_valid == 1 )
- {
- if( xSemaphoreGive( mutex->mutex ) )
- {
- ret = 0;
- }
- else
- {
- ret = MBEDTLS_ERR_THREADING_MUTEX_ERROR;
- }
- }
-
- return ret;
-}
-/*-----------------------------------------------------------*/
-
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/management_and_rng.c b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/management_and_rng.c
index 67971e3115d..e99be057331 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/management_and_rng.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/management_and_rng.c
@@ -40,10 +40,10 @@
#include "pkcs11_demos.h"
/**
- * This function details how to use the PKCS #11 "Management" functions to
+ * This function details how to use the PKCS #11 "Management" functions to
* manage the internal state machine of the PKCS #11 implementation. These
- * functions are all defined in
- * http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html
+ * functions are all defined in
+ * http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html
* please consult the standard for more information regarding these functions.
*
* The standard has grouped the functions presented in this demo as:
@@ -54,19 +54,19 @@
*/
void vPKCS11ManagementAndRNGDemo( void )
{
- /* We will use the terminology as defined in the standard, Cryptoki is in
- * reference to the Cryptographic Token Interface defined in the PKCS #11
- * standard. An implementation of Cryptoki is referred to as a
+ /* We will use the terminology as defined in the standard, Cryptoki is in
+ * reference to the Cryptographic Token Interface defined in the PKCS #11
+ * standard. An implementation of Cryptoki is referred to as a
* "Cryptoki library". */
configPRINTF( ( "\r\nStarting PKCS #11 Management and Random Number Generation" \
- " Demo.\r\n" ) );
+ " Demo.\r\n" ) );
/* CK_RV is the return type for a Cryptoki function. Generally the underlying
* type is a CK_ULONG, it can also be a CKR_VENDOR_DEFINED type. */
CK_RV xResult = CKR_OK;
-
+
/* The CK_FUNCTION_LIST is a structure that contains the Cryptoki version
- * and a function pointer to each function in the Cryptoki API. If the
+ * and a function pointer to each function in the Cryptoki API. If the
* function pointer is NULL it is unimplemented. */
CK_FUNCTION_LIST_PTR pxFunctionList = NULL;
@@ -75,22 +75,22 @@ void vPKCS11ManagementAndRNGDemo( void )
* function pointers for mutex operations. */
CK_C_INITIALIZE_ARGS xInitArgs = { 0 };
- /* A slot ID is an integer that defines a slot. The Cryptoki definition of
- * a slot is "A logical reader that potentially contains a token."
+ /* A slot ID is an integer that defines a slot. The Cryptoki definition of
+ * a slot is "A logical reader that potentially contains a token."
*
- * Essentially it is an abstraction for accessing the token. The reason for
- * this is Some tokens are a physical "card' that needs to be inserted into
- * a slot for the device to read.
+ * Essentially it is an abstraction for accessing the token. The reason for
+ * this is Some tokens are a physical "card' that needs to be inserted into
+ * a slot for the device to read.
*
- * A concrete example of a slot could be a USB Hardware Security Module (HSM),
- * which generally appears as a singular slot, and abstracts it's internal "token".
+ * A concrete example of a slot could be a USB Hardware Security Module (HSM),
+ * which generally appears as a singular slot, and abstracts it's internal "token".
*
* Some implementations have multiple slots mapped to a single token, or maps
* a slot per token. */
CK_SLOT_ID * pxSlotId = NULL;
/* A session is defined to be "The logical connection between an application
- * and a token."
+ * and a token."
*
* The session can either be private or public, and differentiates
* your application from the other users of the token. */
@@ -102,7 +102,7 @@ void vPKCS11ManagementAndRNGDemo( void )
CK_ULONG xSlotCount = 0;
/* We use the function list returned by C_GetFunctionList to see what functions
- * the Cryptoki library supports. We use asserts to ensure that all the
+ * the Cryptoki library supports. We use asserts to ensure that all the
* functionality needed in this demo is available. */
xResult = C_GetFunctionList( &pxFunctionList );
configASSERT( xResult == CKR_OK );
@@ -115,20 +115,20 @@ void vPKCS11ManagementAndRNGDemo( void )
configASSERT( pxFunctionList->C_CloseSession != NULL );
configASSERT( pxFunctionList->C_Finalize != NULL );
- configPRINTF( ( "Cryptoki Major Version: %lu Minor Version %lu\r\n",
- pxFunctionList->version.major,
+ configPRINTF( ( "Cryptoki Major Version: %lu Minor Version %lu\r\n",
+ pxFunctionList->version.major,
pxFunctionList->version.minor ) );
- /* C_Initialize will initialize the Cryptoki library and the hardware it
+ /* C_Initialize will initialize the Cryptoki library and the hardware it
* abstracts. */
xResult = pxFunctionList->C_Initialize( &xInitArgs );
configASSERT( xResult == CKR_OK );
- /* C_GetSlotList will retrieve an array of CK_SLOT_IDs.
- * This Cryptoki library does not implement slots, but it is important to
+ /* C_GetSlotList will retrieve an array of CK_SLOT_IDs.
+ * This Cryptoki library does not implement slots, but it is important to
* highlight how Cryptoki can be used to interface with real hardware.
*
- * By setting the first argument "tokenPresent" to true, we only retrieve
+ * By setting the first argument "tokenPresent" to true, we only retrieve
* slots that have a token. If the second argument "pSlotList" is NULL, the
* third argument "pulCount" will be modified to contain the total slots. */
xResult = pxFunctionList->C_GetSlotList( CK_TRUE,
@@ -136,13 +136,13 @@ void vPKCS11ManagementAndRNGDemo( void )
&xSlotCount );
configASSERT( xResult == CKR_OK );
- /* Since C_GetSlotList does not allocate the memory itself for getting a list
- * of CK_SLOT_ID, we allocate one for it to populate with the list of
+ /* Since C_GetSlotList does not allocate the memory itself for getting a list
+ * of CK_SLOT_ID, we allocate one for it to populate with the list of
* slot ids. */
pxSlotId = pvPortMalloc( sizeof( CK_SLOT_ID ) * ( xSlotCount ) );
configASSERT( pxSlotId != NULL );
- /* Now since pSlotList is not NULL, C_GetSlotList will populate it with the
+ /* Now since pSlotList is not NULL, C_GetSlotList will populate it with the
* available slots. */
xResult = pxFunctionList->C_GetSlotList( CK_TRUE,
pxSlotId,
@@ -154,12 +154,12 @@ void vPKCS11ManagementAndRNGDemo( void )
* Cryptoki.
*
* C_OpenSession will establish a session between the application and
- * the token and we can then use the returned CK_SESSION_HANDLE for
- * cryptographic operations with the token.
+ * the token and we can then use the returned CK_SESSION_HANDLE for
+ * cryptographic operations with the token.
*
- * For legacy reasons, Cryptoki demands that the CKF_SERIAL_SESSION bit
+ * For legacy reasons, Cryptoki demands that the CKF_SERIAL_SESSION bit
* is always set. */
- xResult = pxFunctionList->C_OpenSession( pxSlotId[0],
+ xResult = pxFunctionList->C_OpenSession( pxSlotId[ 0 ],
CKF_SERIAL_SESSION | CKF_RW_SESSION,
NULL, /* Application defined pointer. */
NULL, /* Callback function. */
@@ -167,11 +167,11 @@ void vPKCS11ManagementAndRNGDemo( void )
configASSERT( xResult == CKR_OK );
- /* C_Login is called to log the user in to the token. The login status is
+ /* C_Login is called to log the user in to the token. The login status is
* shared between sessions, so logging in once is sufficient for all the sessions
* tied to the token. Most of the behavior for C_Login is defined by the token
* so it may be necessary to modify calls to C_Login when switching to a different
- * Cryptoki library or token.
+ * Cryptoki library or token.
*
* This Cryptoki library does not implement C_Login, and only defines the function
* for compatibility reasons.
@@ -183,7 +183,7 @@ void vPKCS11ManagementAndRNGDemo( void )
configASSERT( xResult == CKR_OK );
/* C_GenerateRandom generates random or pseudo random data. As arguments it
- * takes the application session, and a pointer to a byte buffer, as well as
+ * takes the application session, and a pointer to a byte buffer, as well as
* the length of the byte buffer. Then it will fill this buffer with random
* bytes. */
xResult = pxFunctionList->C_GenerateRandom( hSession,
@@ -196,7 +196,6 @@ void vPKCS11ManagementAndRNGDemo( void )
configPRINTF( ( "Generated random number: %x\r\n", xRandomData[ ulIndex ] ) );
}
-
/* C_CloseSession closes the session that was established between the
* application and the token. This will clean up the resources that maintained
* the link between the application and the token. If the application wishes
@@ -207,15 +206,15 @@ void vPKCS11ManagementAndRNGDemo( void )
/* C_Finalize signals to the Cryptoki library that the application is done
* using it. It should always be the last call to the Cryptoki library.
* NULL should always be passed as the argument, as the parameter is currently
- * just reserved for future revisions.
- *
- * Calling this function in a multi threaded environment can lead to undefined
+ * just reserved for future revisions.
+ *
+ * Calling this function in a multi threaded environment can lead to undefined
* behavior if other threads are accessing the Cryptoki library. */
xResult = pxFunctionList->C_Finalize( NULL );
configASSERT( xResult == CKR_OK );
configPRINTF( ( "Finished PKCS #11 Management and Random Number Generation" \
- " Demo.\r\n" ) );
+ " Demo.\r\n" ) );
vPortFree( pxSlotId );
}
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/mechanisms_and_digests.c b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/mechanisms_and_digests.c
index c5472c4f348..1fbb3bcdbac 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/mechanisms_and_digests.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/mechanisms_and_digests.c
@@ -78,7 +78,7 @@ void vPKCS11MechanismsAndDigestDemo( void )
CK_MECHANISM_TYPE xMechanismType = 0;
/* This variable is not directly used, but is instantiated for demonstration
- * purposes.
+ * purposes.
*/
( void ) xMechanismType;
@@ -252,9 +252,9 @@ void vPKCS11MechanismsAndDigestDemo( void )
{
configPRINTF( ( "%x", xDigestResult[ ulIndex ] ) );
}
+
configPRINTF( ( "\r\n" ) );
configPRINTF( ( "Finished PKCS #11 Mechanisms and Digest Demo.\r\n" ) );
vEnd( hSession, pxSlotId );
}
-
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/objects.c b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/objects.c
index 9962e298606..64f246674ce 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/objects.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/objects.c
@@ -50,7 +50,7 @@
*/
#define pkcs11demo_RSA_CERTIFICATE \
"" \
- "-----BEGIN CERTIFICATE-----\n" \
+ "-----BEGIN CERTIFICATE-----\n" \
"MIIFgTCCA2mgAwIBAgIUPsOLvI1VI8EtdIZi1s2vp7sGhy8wDQYJKoZIhvcNAQEL\n" \
"BQAwTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMRAwDgYDVQQHDAdTZWF0dGxl\n" \
"MSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjAwNzEzMTY0\n" \
@@ -80,12 +80,12 @@
"97LLfATEYy5ajjlWoJ8qF/in8jzsYxq9OZ2/ObchZsU9ybzLRuE1Cv7v4Mx1sgH3\n" \
"EoWYZK1j3WytKmbaWYDR6INYklT/d+14OyIflUfBGiSXNKMITWVRZYjTHKUeAPdb\n" \
"1bsyMu+g4y1PVOrp/d9AyZTZrDW81zuYpO5Ah0DgF4EYiz2fWnz2ITVUmq35znIQ\n" \
- "xg07nhvDeydwB48xXrPQ1KutrRyh\n" \
+ "xg07nhvDeydwB48xXrPQ1KutrRyh\n" \
"-----END CERTIFICATE-----"
-/* This function can be found in
+/* This function can be found in
* FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-PKCS11/3rdparty/mbedtls_utils/mbedtls_utils.c.
- * It will be used to convert the RSA certificate from PEM format
+ * It will be used to convert the RSA certificate from PEM format
* to DER format. */
extern int convert_pem_to_der( const unsigned char * pucInput,
size_t xLen,
@@ -160,11 +160,11 @@ static void prvObjectImporting( void )
PKCS11_CertificateTemplate_t xCertificateTemplate;
/* The object class is specified as a certificate to help the Cryptoki library
- * parse the arguments.
+ * parse the arguments.
*/
CK_OBJECT_CLASS xCertificateClass = CKO_CERTIFICATE;
-
- /* The certificate type is an x509 certificate, which is the only type
+
+ /* The certificate type is an x509 certificate, which is the only type
* supported by this stack. To read more about x509 certificates one can
* read the following:
*
@@ -174,7 +174,7 @@ static void prvObjectImporting( void )
*/
CK_CERTIFICATE_TYPE xCertificateType = CKC_X_509;
- /* The label will help the application identify which object it would like
+ /* The label will help the application identify which object it would like
* to access.
*/
CK_BYTE pucLabel[] = pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS;
@@ -193,12 +193,12 @@ static void prvObjectImporting( void )
xCertificateTemplate.xValue.type = CKA_VALUE;
xCertificateTemplate.xValue.pValue = ( CK_VOID_PTR ) pkcs11demo_RSA_CERTIFICATE;
xCertificateTemplate.xValue.ulValueLen = ( CK_ULONG ) sizeof( pkcs11demo_RSA_CERTIFICATE ) - 1UL;
-
+
/* Specify certificate label. */
xCertificateTemplate.xLabel.type = CKA_LABEL;
xCertificateTemplate.xLabel.pValue = ( CK_VOID_PTR ) pucLabel;
xCertificateTemplate.xLabel.ulValueLen = sizeof( pucLabel ) - 1UL;
-
+
/* Specify certificate type as x509. */
xCertificateTemplate.xCertificateType.type = CKA_CERTIFICATE_TYPE;
xCertificateTemplate.xCertificateType.pValue = &xCertificateType;
@@ -236,7 +236,7 @@ static void prvObjectImporting( void )
/* Create an object using the encoded client certificate. */
configPRINTF( ( "Creating x509 certificate with label: %s \r\n",
- pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS ) );
+ pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS ) );
/* Once the Cryptoki library has finished importing the new x509 certificate
* a CK_OBJECT_HANDLE is associated with it. The application can now use this
@@ -332,10 +332,10 @@ static void prvObjectGeneration( void )
*/
CK_ATTRIBUTE xPublicKeyTemplate[] =
{
- { CKA_KEY_TYPE, &xKeyType, sizeof( xKeyType ) },
- { CKA_VERIFY, &xTrue, sizeof( xTrue ) },
- { CKA_EC_PARAMS, xEcParams, sizeof( xEcParams ) },
- { CKA_LABEL, pucPublicKeyLabel, sizeof( pucPublicKeyLabel ) - 1 }
+ { CKA_KEY_TYPE, &xKeyType, sizeof( xKeyType ) },
+ { CKA_VERIFY, &xTrue, sizeof( xTrue ) },
+ { CKA_EC_PARAMS, xEcParams, sizeof( xEcParams ) },
+ { CKA_LABEL, pucPublicKeyLabel, sizeof( pucPublicKeyLabel ) - 1 }
};
/* In the below template we are creating a private key:
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/sign_and_verify.c b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/sign_and_verify.c
index 3e1e0716b9c..9fa313b764c 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/sign_and_verify.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/examples/sign_and_verify.c
@@ -42,22 +42,22 @@
#include "pkcs11_demos.h"
/**
- * This function details how to use the PKCS #11 "Sign and Verify" functions to
+ * This function details how to use the PKCS #11 "Sign and Verify" functions to
* create and interact with digital signatures.
- * The functions described are all defined in
- * http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html
+ * The functions described are all defined in
+ * http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html
* please consult the standard for more information regarding these functions.
*
* The standard has grouped the functions presented in this demo as:
* Object Management Functions
- * Signing and MACing Functions
+ * Signing and MACing Functions
*/
void vPKCS11SignVerifyDemo( void )
{
- /* This demo will use the generated private and public key from the
- * "objects.c" demo and use them to sign and verify the integrity of a
+ /* This demo will use the generated private and public key from the
+ * "objects.c" demo and use them to sign and verify the integrity of a
* message digest. This demo will use concepts from all the other demos,
- * and is recommended be done last.
+ * and is recommended be done last.
*
* The intention of this demo is how to use PKCS #11's Crypotki API to do
* these signature operations, not to explain when and why they should be
@@ -90,11 +90,12 @@ void vPKCS11SignVerifyDemo( void )
/* The ECDSA mechanism will be used to sign the message digest. */
CK_MECHANISM xMechanism = { CKM_ECDSA, NULL, 0 };
- /* This signature buffer will be used to store the signature created by the
+ /* This signature buffer will be used to store the signature created by the
* private key. (64 bytes). We pad it with an extra 8 bytes so it can be
* converted to an ASN.1 encoding. */
CK_BYTE xSignature[ pkcs11ECDSA_P256_SIGNATURE_LENGTH + 8 ] = { 0 };
- CK_ULONG xSignatureLength = sizeof( xSignature );
+ CK_ULONG ulSignatureLength = sizeof( xSignature );
+ size_t xSignatureLength = 0U;
/* Ensure the Cryptoki library has the necessary functions implemented. */
xResult = C_GetFunctionList( &pxFunctionList );
@@ -108,32 +109,32 @@ void vPKCS11SignVerifyDemo( void )
configASSERT( pxFunctionList->C_InitToken != NULL );
configASSERT( pxFunctionList->C_GetTokenInfo != NULL );
- /* Instead of using the vStart helper, we will use the "core_pkcs11.h"
- * functions that help wrap around some common PKCS #11 use cases.
+ /* Instead of using the vStart helper, we will use the "core_pkcs11.h"
+ * functions that help wrap around some common PKCS #11 use cases.
*
* This function will:
* Initialize the PKCS #11 module if it is not already.
- * Initialize a PKCS #11 session.
+ * Initialize a PKCS #11 session.
*/
- xResult = xInitializePkcs11Session( &hSession );
+ xResult = xInitializePkcs11Session( &hSession );
configASSERT( xResult == CKR_OK );
configASSERT( hSession != CK_INVALID_HANDLE );
-
+
/* This function will:
* Initialize the PKCS #11 module if it is not already.
- * Initialize the token to be used.
+ * Initialize the token to be used.
*
- * Note: By default this function will always initialize the token in the
+ * Note: By default this function will always initialize the token in the
* first slot in the slot list. If it desired to use a different slot, it
- * is necessary to modify the implementation of this function to use a
+ * is necessary to modify the implementation of this function to use a
* different slot. */
- xResult = xInitializePkcs11Token();
+ xResult = xInitializePkcs11Token();
configASSERT( xResult == CKR_OK );
-
+
/* This function will:
* Query the Cryptoki library for the total number of slots. Malloc an array
- * of slots. Then the pxSlotId and ulSlotCount variables will be updated to
- * point to the slot array, and the total slot count.
+ * of slots. Then the pxSlotId and ulSlotCount variables will be updated to
+ * point to the slot array, and the total slot count.
*/
xResult = xGetSlotList( &pxSlotId, &ulSlotCount );
configASSERT( xResult == CKR_OK );
@@ -151,21 +152,21 @@ void vPKCS11SignVerifyDemo( void )
* This will acquire the object handle for the private key created in the
* "objects.c" demo.
*/
- xResult = xFindObjectWithLabelAndClass( hSession,
- pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS,
- sizeof( pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS ) - 1UL,
- CKO_PRIVATE_KEY,
- &xPrivateKeyHandle );
+ xResult = xFindObjectWithLabelAndClass( hSession,
+ pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS,
+ sizeof( pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS ) - 1UL,
+ CKO_PRIVATE_KEY,
+ &xPrivateKeyHandle );
configASSERT( xResult == CKR_OK );
configASSERT( xPrivateKeyHandle != CK_INVALID_HANDLE );
- /* Acquire the object handle for the public key created in the "objects.c"
+ /* Acquire the object handle for the public key created in the "objects.c"
* demo. */
- xResult = xFindObjectWithLabelAndClass( hSession,
- pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS,
- sizeof( pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS ) - 1UL,
- CKO_PUBLIC_KEY,
- &xPublicKeyHandle );
+ xResult = xFindObjectWithLabelAndClass( hSession,
+ pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS,
+ sizeof( pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS ) - 1UL,
+ CKO_PUBLIC_KEY,
+ &xPublicKeyHandle );
configASSERT( xResult == CKR_OK );
configASSERT( xPublicKeyHandle != CK_INVALID_HANDLE );
@@ -185,21 +186,22 @@ void vPKCS11SignVerifyDemo( void )
sizeof( pxKnownMessage ) - 1 );
configASSERT( CKR_OK == xResult );
- /* Retrieve the digest buffer length. When passing in a NULL pointer as the
+ /* Retrieve the digest buffer length. When passing in a NULL pointer as the
* second argument, instead of a point to a buffer, this will signal the
- * Cryptoki library to fill the third parameter with the required amount of
+ * Cryptoki library to fill the third parameter with the required amount of
* bytes to store the resulting digest.
*/
xResult = pxFunctionList->C_DigestFinal( hSession,
NULL,
&ulDigestLength );
configASSERT( CKR_OK == xResult );
+
/* Since the length of a SHA-256 digest is known, we made an assumption and
* allocated the buffer originally with the known length. Assert to make sure
* we queried the length we expected. */
configASSERT( pkcs11SHA256_DIGEST_LENGTH == ulDigestLength );
- /* Now that ulDigestLength contains the required byte length, retrieve the
+ /* Now that ulDigestLength contains the required byte length, retrieve the
* digest buffer.
*/
xResult = pxFunctionList->C_DigestFinal( hSession,
@@ -209,73 +211,74 @@ void vPKCS11SignVerifyDemo( void )
/********************************* Sign **********************************/
- configPRINTF( ( "Signing known message:\r\n %s\r\n",
- ( char * ) pxKnownMessage ) );
+ configPRINTF( ( "Signing known message:\r\n %s\r\n",
+ ( char * ) pxKnownMessage ) );
/* Initializes the sign operation and sets what mechanism will be used
* for signing the message digest. Specify what object handle to use for this
* operation, in this case the private key object handle. */
- xResult = pxFunctionList->C_SignInit( hSession,
- &xMechanism,
- xPrivateKeyHandle );
+ xResult = pxFunctionList->C_SignInit( hSession,
+ &xMechanism,
+ xPrivateKeyHandle );
configASSERT( xResult == CKR_OK );
- /* Sign the message digest that was created with the C_Digest series of
+ /* Sign the message digest that was created with the C_Digest series of
* functions. A signature will be created using the private key specified in
* C_SignInit and put in the byte buffer xSignature. */
- xResult = pxFunctionList->C_Sign( hSession,
- xDigestResult,
- pkcs11SHA256_DIGEST_LENGTH,
- xSignature,
- &xSignatureLength );
+ xResult = pxFunctionList->C_Sign( hSession,
+ xDigestResult,
+ pkcs11SHA256_DIGEST_LENGTH,
+ xSignature,
+ &ulSignatureLength );
configASSERT( xResult == CKR_OK );
- configASSERT( xSignatureLength == pkcs11ECDSA_P256_SIGNATURE_LENGTH );
+ configASSERT( ulSignatureLength == pkcs11ECDSA_P256_SIGNATURE_LENGTH );
/********************************* Verify **********************************/
- /* Verify the signature created by C_Sign. First we will verify that the
+
+ /* Verify the signature created by C_Sign. First we will verify that the
* same Cryptoki library was able to trust itself.
*
* C_VerifyInit will begin the verify operation, by specifying what mechanism
* to use (CKM_ECDSA, the same as the sign operation) and then specifying
* which public key handle to use.
*/
- xResult = pxFunctionList->C_VerifyInit( hSession,
- &xMechanism,
- xPublicKeyHandle );
+ xResult = pxFunctionList->C_VerifyInit( hSession,
+ &xMechanism,
+ xPublicKeyHandle );
configASSERT( xResult == CKR_OK );
/* Given the signature and it's length, the Cryptoki will use the public key
- * to verify that the signature was created by the corresponding private key.
- * If C_Verify returns CKR_OK, it means that the sender of the message has
- * the same private key as the private key that was used to generate the
- * public key, and we can trust that the message we received was from that
+ * to verify that the signature was created by the corresponding private key.
+ * If C_Verify returns CKR_OK, it means that the sender of the message has
+ * the same private key as the private key that was used to generate the
+ * public key, and we can trust that the message we received was from that
* sender.
*
- * Note that we are not using the actual message, but the digest that we
+ * Note that we are not using the actual message, but the digest that we
* created earlier of the message, for the verification.
*/
- xResult = pxFunctionList->C_Verify( hSession,
- xDigestResult,
- pkcs11SHA256_DIGEST_LENGTH,
- xSignature,
- xSignatureLength );
+ xResult = pxFunctionList->C_Verify( hSession,
+ xDigestResult,
+ pkcs11SHA256_DIGEST_LENGTH,
+ xSignature,
+ ulSignatureLength );
if( xResult == CKR_OK )
{
configPRINTF( ( "The signature of the digest was verified with the" \
- " public key and can be trusted.\r\n" ) );
+ " public key and can be trusted.\r\n" ) );
}
else
{
configPRINTF( ( "Unable to verify the signature with the given public" \
- " key, the message cannot be trusted.\r\n" ) );
+ " key, the message cannot be trusted.\r\n" ) );
}
/* Export public key as hex bytes and print the hex representation of the
- * public key.
+ * public key.
*
- * We need to export the public key so that it can be used by a different
+ * We need to export the public key so that it can be used by a different
* device to verify messages signed by the private key of the device that
* generated the key pair.
*
@@ -292,15 +295,15 @@ void vPKCS11SignVerifyDemo( void )
* Copy the below command into the terminal.
* "$ xxd -r -ps DevicePublicKeyAsciiHex.txt DevicePublicKeyDer.bin"
*
- * Now that we have the binary encoding of the public key, we will convert
- * it to PEM using OpenSSL.
+ * Now that we have the binary encoding of the public key, we will convert
+ * it to PEM using OpenSSL.
*
- * The following command will create a PEM file of the public key called
+ * The following command will create a PEM file of the public key called
* "public_key.pem"
*
* "$ openssl ec -inform der -in DevicePublicKeyDer.bin -pubin -pubout -outform pem -out public_key.pem"
- *
- * Now we can use the extracted public key to verify the signature of the
+ *
+ * Now we can use the extracted public key to verify the signature of the
* device's private key.
*
* WARNING: Running the object generation demo will create a new key pair,
@@ -316,21 +319,22 @@ void vPKCS11SignVerifyDemo( void )
pxDerPublicKey,
ulDerPublicKeyLength );
- /* This utility function converts the PKCS #11 signature into an ASN.1
- * encoded binary der signature. This is necessary so we can export the
+ /* This utility function converts the PKCS #11 signature into an ASN.1
+ * encoded binary der signature. This is necessary so we can export the
* signature and verify it with OpenSSL, otherwise OpenSSL will not be able
* to parse the buffer.
*
- * See https://en.wikipedia.org/wiki/ASN.1 for more information about the
+ * See https://en.wikipedia.org/wiki/ASN.1 for more information about the
* ASN.1 encoding format.
*/
- PKI_pkcs11SignatureTombedTLSSignature( xSignature, ( size_t * ) &xSignatureLength );
+ xSignatureLength = ulSignatureLength;
+ PKI_pkcs11SignatureTombedTLSSignature( xSignature, &xSignatureLength );
- /* The following loop will output the signature in hex.
+ /* The following loop will output the signature in hex.
*
* In order to get the signature exported in binary form copy the output
- * of the loop, and paste it to an empty text file.
+ * of the loop, and paste it to an empty text file.
*
* Then we will need to convert the text file to binary using the xxd tool.
*
@@ -342,29 +346,31 @@ void vPKCS11SignVerifyDemo( void )
* Copy the below command into the terminal.
* "$ xxd -r -ps signature.txt signature.bin"
*
- * Next, we need to copy the original message that the Cryptoki library
- * signed, the following shell command will create the message without any
- * newlines, so the messages are similar.
+ * Next, we need to copy the original message that the Cryptoki library
+ * signed, the following shell command will create the message without any
+ * newlines, so the messages are similar.
*
- * The contents of the echo command can be replaced with whatever data was
+ * The contents of the echo command can be replaced with whatever data was
* in the known message, but the example uses "Hello world" to make it easier
* for copy and pasting.
*
* "$ echo -n "Hello world" > msg.txt"
*
- * Now we will use OpenSSL to verify that the signature we created can be
- * trusted by another device using the public key we created and then
+ * Now we will use OpenSSL to verify that the signature we created can be
+ * trusted by another device using the public key we created and then
* extracted earlier.
*
* "$ openssl dgst -sha256 -verify public_key.pem -signature signature.bin msg.txt"
- * This command should output "Verified OK" and we then know we can trust
+ * This command should output "Verified OK" and we then know we can trust
* the sender of the message!
*/
configPRINTF( ( "Created signature: \r\n" ) );
- for( ulIndex = 0; ulIndex < xSignatureLength; ulIndex++ )
+
+ for( ulIndex = 0; ulIndex < ulSignatureLength; ulIndex++ )
{
configPRINTF( ( "%02x", xSignature[ ulIndex ] ) );
}
+
configPRINTF( ( "\r\n" ) );
configPRINTF( ( "Finished PKCS #11 Sign and Verify Demo.\r\n" ) );
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/main.c
index 333f9f8e7a8..497353afbe0 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/main.c
@@ -20,7 +20,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
@@ -36,7 +36,7 @@
#include
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
/* Windows Crypto includes. */
@@ -49,11 +49,9 @@
#include "pkcs11_demo_config.h"
#include "pkcs11_demos.h"
-/*
- * Private function for starting the various PKCS #11 demos.
- *
- */
-static void prvStartPKCS11Demo( void )
+/*-----------------------------------------------------------*/
+
+static void prvPKCS11DemoTask( void * pvParameters )
{
configPRINTF( ( "---------STARTING DEMO---------\r\n" ) );
#if ( configPKCS11_MANAGEMENT_AND_RNG_DEMO == 1 )
@@ -69,30 +67,24 @@ static void prvStartPKCS11Demo( void )
vPKCS11SignVerifyDemo();
#endif
configPRINTF( ( "---------Finished DEMO---------\r\n" ) );
+
+ exit( 0 );
}
/*-----------------------------------------------------------*/
int main( void )
{
- configPRINTF( ( "Creating PKCS #11 Demo Task.\r\n" ) );
- BaseType_t xReturned;
- TaskHandle_t xHandle = NULL;
-
- mbedtls_threading_set_alt( aws_mbedtls_mutex_init,
- aws_mbedtls_mutex_free,
- aws_mbedtls_mutex_lock,
- aws_mbedtls_mutex_unlock );
-
- /* Create the PKCS #11 demo task. */
- xReturned = xTaskCreate(
- ( TaskFunction_t ) prvStartPKCS11Demo,
- "PKCS11 Demo",
- configPKCS11_DEMO_STACK_SIZE,
- NULL,
- tskIDLE_PRIORITY + 1,
- &xHandle );
- configASSERT( xReturned == pdPASS );
+ vPlatformInitLogging();
+
+ /* Create the SNTP client task that is responsible for synchronizing system time with the time servers
+ * periodically. This is created as a high priority task to keep the SNTP client operation unhindered. */
+ xTaskCreate( prvPKCS11DemoTask, /* Function that implements the task. */
+ "PKCS11 Demo", /* Text name for the task - only used for debugging. */
+ configPKCS11_DEMO_STACK_SIZE, /* Size of stack (in words, not bytes) to allocate for the task. */
+ NULL, /* Task parameter - not used in this case. */
+ configMAX_PRIORITIES - 1, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
+ NULL );
/* Start the RTOS scheduler. */
vTaskStartScheduler();
@@ -101,131 +93,13 @@ int main( void )
* line will never be reached. If the following line does execute, then
* there was insufficient FreeRTOS heap memory available for the idle and/or
* timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-void vLoggingPrintf( const char *pcFormat,
- ... )
-{
-va_list arg;
-
- va_start( arg, pcFormat );
- vprintf( pcFormat, arg );
- va_end( arg );
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-int mbedtls_hardware_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen )
-{
- int lStatus = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
- HCRYPTPROV hProv = 0;
-
- /* Unferenced parameter. */
- ( void ) data;
-
- /*
- * This is port-specific for the Windows simulator, so just use Crypto API.
+ * FreeRTOS web site for more details.
*/
- if( TRUE == CryptAcquireContextA(
- &hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT ) )
+ for( ; ; )
{
- if( TRUE == CryptGenRandom( hProv, len, output ) )
- {
- lStatus = 0;
- *olen = len;
- }
-
- CryptReleaseContext( hProv, 0 );
+ configASSERT( pdFALSE );
}
-
- return lStatus;
}
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/pkcs11_demo_config.h b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/pkcs11_demo_config.h
index b991f7398b0..56a5f424ac3 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/pkcs11_demo_config.h
+++ b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/pkcs11_demo_config.h
@@ -30,7 +30,7 @@
/*
* @brief this macro defines the stack size for the PKCS #11 demo task.
*/
-#define configPKCS11_DEMO_STACK_SIZE 200
+#define configPKCS11_DEMO_STACK_SIZE 256
/*
* @brief set this macro to "1" in order to run the PKCS #11 management and
@@ -42,19 +42,19 @@
* @brief set this macro to "1" in order to run the PKCS #11 mechanisms and
* digest demo.
*/
-#define configPKCS11_MECHANISMS_AND_DIGESTS_DEMO 0
+#define configPKCS11_MECHANISMS_AND_DIGESTS_DEMO 1
/*
* @brief set this macro to "1" in order to run the PKCS #11 object demo.
*/
-#define configPKCS11_OBJECT_DEMO 0
+#define configPKCS11_OBJECT_DEMO 1
/*
- * @brief set this macro to "1" in order to run the PKCS #11 sign and verify
+ * @brief set this macro to "1" in order to run the PKCS #11 sign and verify
* demo.
*
* @warning This demo relies on the objects created in the object demo.
*/
-#define configPKCS11_SIGN_AND_VERIFY_DEMO 0
+#define configPKCS11_SIGN_AND_VERIFY_DEMO 1
-#endif
+#endif /* ifndef _PKCS11_DEMO_CONFIG_ */
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/pkcs11_demos.sln b/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/pkcs11_demos.sln
deleted file mode 100644
index dcfc1fe098d..00000000000
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/pkcs11_demos.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/FreeRTOSConfig.h b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/FreeRTOSConfig.h
deleted file mode 100644
index 05232f8947a..00000000000
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/FreeRTOSConfig.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-#ifndef FREERTOS_CONFIG_H
-#define FREERTOS_CONFIG_H
-
-/*-----------------------------------------------------------
-* Application specific definitions.
-*
-* These definitions should be adjusted for your particular hardware and
-* application requirements.
-*
-* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
-* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
-* https://www.FreeRTOS.org/a00110.html
-*
-* The bottom of this file contains some constants specific to running the UDP
-* stack in this demo. Constants specific to FreeRTOS+TCP itself (rather than
-* the demo) are contained in FreeRTOSIPConfig.h.
-*----------------------------------------------------------*/
-#define configUSE_PREEMPTION 1
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
-#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
-#define configMAX_TASK_NAME_LEN ( 15 )
-#define configUSE_TRACE_FACILITY 0
-#define configUSE_16_BIT_TICKS 0
-#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
-#define configUSE_MUTEXES 1
-#define configUSE_RECURSIVE_MUTEXES 1
-#define configQUEUE_REGISTRY_SIZE 0
-#define configUSE_APPLICATION_TASK_TAG 0
-#define configUSE_COUNTING_SEMAPHORES 1
-#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
-#define configENABLE_BACKWARD_COMPATIBILITY 1
-#define configSUPPORT_STATIC_ALLOCATION 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK 0
-#define configUSE_IDLE_HOOK 0
-#define configUSE_MALLOC_FAILED_HOOK 0
-#define configCHECK_FOR_STACK_OVERFLOW 0 /* Not applicable to the Win32 port. */
-
-/* Software timer related definitions. */
-#define configUSE_TIMERS 1
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
-#define configTIMER_QUEUE_LENGTH 5
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
-
-/* Event group related definitions. */
-#define configUSE_EVENT_GROUPS 1
-
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
-/* Set the following definitions to 1 to include the API function, or zero
- * to exclude the API function. */
-#define INCLUDE_vTaskPrioritySet 1
-#define INCLUDE_uxTaskPriorityGet 1
-#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
-#define INCLUDE_vTaskSuspend 1
-#define INCLUDE_vTaskDelayUntil 1
-#define INCLUDE_vTaskDelay 1
-#define INCLUDE_uxTaskGetStackHighWaterMark 1
-#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
-#define INCLUDE_xQueueGetMutexHolder 1
-#define INCLUDE_eTaskGetState 1
-#define INCLUDE_xEventGroupSetBitsFromISR 1
-#define INCLUDE_xTimerPendFunctionCall 1
-#define INCLUDE_pcTaskGetTaskName 1
-
-/* Assert call defined for debug builds. */
-#ifdef _DEBUG
- extern void vAssertCalled( const char * pcFile,
- uint32_t ulLine );
- #define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
-#endif /* _DEBUG */
-
-
-
-/* Application specific definitions follow. **********************************/
-
-/* Only used when running in the FreeRTOS Windows simulator. Defines the
- * priority of the task used to simulate Ethernet interrupts. */
-#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 1 )
-
-/* This demo creates a virtual network connection by accessing the raw Ethernet
- * or WiFi data to and from a real network connection. Many computers have more
- * than one real network port, and configNETWORK_INTERFACE_TO_USE is used to tell
- * the demo which real port should be used to create the virtual port. The ports
- * available are displayed on the console when the application is executed. For
- * example, on my development laptop setting configNETWORK_INTERFACE_TO_USE to 4
- * results in the wired network being used, while setting
- * configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
- * used. */
-#define configNETWORK_INTERFACE_TO_USE ( 2L )
-
-/* The address to which logging is sent should UDP logging be enabled. */
-#define configUDP_LOGGING_ADDR0 192
-#define configUDP_LOGGING_ADDR1 168
-#define configUDP_LOGGING_ADDR2 0
-#define configUDP_LOGGING_ADDR3 11
-
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet/WiFi data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition above for information on how to
- * configure the real network connection to use. */
-#define configMAC_ADDR0 0x00
-#define configMAC_ADDR1 0x11
-#define configMAC_ADDR2 0x11
-#define configMAC_ADDR3 0x11
-#define configMAC_ADDR4 0x11
-#define configMAC_ADDR5 0x41
-
-/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configIP_ADDR0 10
-#define configIP_ADDR1 10
-#define configIP_ADDR2 10
-#define configIP_ADDR3 200
-
-/* Default gateway IP address configuration. Used in ipconfigUSE_DNS is set to
- * 0, or ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configGATEWAY_ADDR0 10
-#define configGATEWAY_ADDR1 10
-#define configGATEWAY_ADDR2 10
-#define configGATEWAY_ADDR3 1
-
-/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
- * 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
- * to 1 but a DNS server cannot be contacted.*/
-#define configDNS_SERVER_ADDR0 208
-#define configDNS_SERVER_ADDR1 67
-#define configDNS_SERVER_ADDR2 222
-#define configDNS_SERVER_ADDR3 222
-
-/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
- * ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
-#define configNET_MASK0 255
-#define configNET_MASK1 0
-#define configNET_MASK2 0
-#define configNET_MASK3 0
-
-/* The UDP port to which print messages are sent. */
-#define configPRINT_PORT ( 15000 )
-
-
-#if ( defined( _MSC_VER ) && ( _MSC_VER <= 1600 ) && !defined( snprintf ) )
- /* Map to Windows names. */
- #define snprintf _snprintf
- #define vsnprintf _vsnprintf
-#endif
-
-/* Visual studio does not have an implementation of strcasecmp(). */
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strcmpi _strcmpi
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-#define configPRINTF( X ) vLoggingPrintf X
-
-#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/FreeRTOSIPConfig.h b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/FreeRTOSIPConfig.h
deleted file mode 100644
index f3a7ff2d29e..00000000000
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/FreeRTOSIPConfig.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-
-/*****************************************************************************
-*
-* See the following URL for configuration information.
-* https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
-*
-*****************************************************************************/
-
-#ifndef FREERTOS_IP_CONFIG_H
-#define FREERTOS_IP_CONFIG_H
-
-/* Prototype for the function used to print out. In this case it prints to the
- * console before the network is connected then a UDP port after the network has
- * connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
- * 1 then FreeRTOS_debug_printf should be defined to the function used to print
- * out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
-#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
- #define FreeRTOS_debug_printf( X ) vLoggingPrintf X
-#endif
-
-/* Set to 1 to print out non debugging messages, for example the output of the
- * FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
- * then FreeRTOS_printf should be set to the function used to print out the
- * messages. */
-#define ipconfigHAS_PRINTF 1
-#if ( ipconfigHAS_PRINTF == 1 )
- #define FreeRTOS_printf( X ) vLoggingPrintf X
-#endif
-
-/* Define the byte order of the target MCU (the MCU FreeRTOS+TCP is executing
- * on). Valid options are pdFREERTOS_BIG_ENDIAN and pdFREERTOS_LITTLE_ENDIAN. */
-#define ipconfigBYTE_ORDER pdFREERTOS_LITTLE_ENDIAN
-
-/* If the network card/driver includes checksum offloading (IP/TCP/UDP checksums)
- * then set ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM to 1 to prevent the software
- * stack repeating the checksum calculations. */
-#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 1
-
-/* Several API's will block until the result is known, or the action has been
- * performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
- * set per socket, using setsockopt(). If not set, the times below will be
- * used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 5000 )
-#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
-
-/* Include support for LLMNR: Link-local Multicast Name Resolution
- * (non-Microsoft) */
-#define ipconfigUSE_LLMNR ( 0 )
-
-/* Include support for NBNS: NetBIOS Name Service (Microsoft) */
-#define ipconfigUSE_NBNS ( 0 )
-
-/* Include support for DNS caching. For TCP, having a small DNS cache is very
- * useful. When a cache is present, ipconfigDNS_REQUEST_ATTEMPTS can be kept low
- * and also DNS may use small timeouts. If a DNS reply comes in after the DNS
- * socket has been destroyed, the result will be stored into the cache. The next
- * call to FreeRTOS_gethostbyname() will return immediately, without even creating
- * a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 32 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
-
-/* The IP stack executes it its own task (although any application task can make
- * use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
- * sets the priority of the task that executes the IP stack. The priority is a
- * standard FreeRTOS task priority so can take any value from 0 (the lowest
- * priority) to (configMAX_PRIORITIES - 1) (the highest priority).
- * configMAX_PRIORITIES is a standard FreeRTOS configuration parameter defined in
- * FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
- * the priority assigned to the task executing the IP stack relative to the
- * priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-
-/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
- * task. This setting is less important when the FreeRTOS Win32 simulator is used
- * as the Win32 simulator only stores a fixed amount of information on the task
- * stack. FreeRTOS includes optional stack overflow detection, see:
- * https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
-
-/* ipconfigRAND32() is called by the IP stack to generate random numbers for
- * things such as a DHCP transaction number or initial sequence number. Random
- * number generation is performed via this macro to allow applications to use their
- * own random number generation method. For example, it might be possible to
- * generate a random number by sampling noise on an analogue input. */
-extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
-
-/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
- * network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
- * is not set to 1 then the network event hook will never be called. See
- * https://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_UDP/API/vApplicationIPNetworkEventHook.shtml
- */
-#define ipconfigUSE_NETWORK_EVENT_HOOK 1
-
-/* Sockets have a send block time attribute. If FreeRTOS_sendto() is called but
- * a network buffer cannot be obtained then the calling task is held in the Blocked
- * state (so other tasks can continue to executed) until either a network buffer
- * becomes available or the send block time expires. If the send block time expires
- * then the send operation is aborted. The maximum allowable send block time is
- * capped to the value set by ipconfigMAX_SEND_BLOCK_TIME_TICKS. Capping the
- * maximum allowable send block time prevents prevents a deadlock occurring when
- * all the network buffers are in use and the tasks that process (and subsequently
- * free) the network buffers are themselves blocked waiting for a network buffer.
- * ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
- * milliseconds can be converted to a time in ticks by dividing the time in
- * milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
-
-/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
- * address, netmask, DNS server address and gateway address from a DHCP server. If
- * ipconfigUSE_DHCP is 0 then FreeRTOS+TCP will use a static IP address. The
- * stack will revert to using the static IP address even when ipconfigUSE_DHCP is
- * set to 1 if a valid configuration cannot be obtained from a DHCP server for any
- * reason. The static configuration used is that passed into the stack by the
- * FreeRTOS_IPInit() function call. */
-#define ipconfigUSE_DHCP 1
-
-/* When ipconfigUSE_DHCP is set to 1, DHCP requests will be sent out at
- * increasing time intervals until either a reply is received from a DHCP server
- * and accepted, or the interval between transmissions reaches
- * ipconfigMAXIMUM_DISCOVER_TX_PERIOD. The IP stack will revert to using the
- * static IP address passed as a parameter to FreeRTOS_IPInit() if the
- * re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
- * a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
-
-/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
- * stack can only send a UDP message to a remove IP address if it knowns the MAC
- * address associated with the IP address, or the MAC address of the router used to
- * contact the remote IP address. When a UDP message is received from a remote IP
- * address the MAC address and IP address are added to the ARP cache. When a UDP
- * message is sent to a remote IP address that does not already appear in the ARP
- * cache then the UDP message is replaced by a ARP message that solicits the
- * required MAC address information. ipconfigARP_CACHE_ENTRIES defines the maximum
- * number of entries that can exist in the ARP table at any one time. */
-#define ipconfigARP_CACHE_ENTRIES 6
-
-/* ARP requests that do not result in an ARP response will be re-transmitted a
- * maximum of ipconfigMAX_ARP_RETRANSMISSIONS times before the ARP request is
- * aborted. */
-#define ipconfigMAX_ARP_RETRANSMISSIONS ( 5 )
-
-/* ipconfigMAX_ARP_AGE defines the maximum time between an entry in the ARP
- * table being created or refreshed and the entry being removed because it is stale.
- * New ARP requests are sent for ARP cache entries that are nearing their maximum
- * age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
- * equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
-
-/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
- * routines, which are relatively large. To save code space the full
- * FreeRTOS_inet_addr() implementation is made optional, and a smaller and faster
- * alternative called FreeRTOS_inet_addr_quick() is provided. FreeRTOS_inet_addr()
- * takes an IP in decimal dot format (for example, "192.168.0.1") as its parameter.
- * FreeRTOS_inet_addr_quick() takes an IP address as four separate numerical octets
- * (for example, 192, 168, 0, 1) as its parameters. If
- * ipconfigINCLUDE_FULL_INET_ADDR is set to 1 then both FreeRTOS_inet_addr() and
- * FreeRTOS_indet_addr_quick() are available. If ipconfigINCLUDE_FULL_INET_ADDR is
- * not set to 1 then only FreeRTOS_indet_addr_quick() is available. */
-#define ipconfigINCLUDE_FULL_INET_ADDR 1
-
-/* ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS defines the total number of network buffer that
- * are available to the IP stack. The total number of network buffers is limited
- * to ensure the total amount of RAM that can be consumed by the IP stack is capped
- * to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
-
-/* A FreeRTOS queue is used to send events from application tasks to the IP
- * stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
- * be queued for processing at any one time. The event queue must be a minimum of
- * 5 greater than the total number of network buffers. */
-#define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-
-/* The address of a socket is the combination of its IP address and its port
- * number. FreeRTOS_bind() is used to manually allocate a port number to a socket
- * (to 'bind' the socket to a port), but manual binding is not normally necessary
- * for client sockets (those sockets that initiate outgoing connections rather than
- * wait for incoming connections on a known port number). If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 1 then calling
- * FreeRTOS_sendto() on a socket that has not yet been bound will result in the IP
- * stack automatically binding the socket to a port number from the range
- * socketAUTO_PORT_ALLOCATION_START_NUMBER to 0xffff. If
- * ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is set to 0 then calling FreeRTOS_sendto()
- * on a socket that has not yet been bound will result in the send operation being
- * aborted. */
-#define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-
-/* Defines the Time To Live (TTL) values used in outgoing UDP packets. */
-#define ipconfigUDP_TIME_TO_LIVE 128
-#define ipconfigTCP_TIME_TO_LIVE 128 /* also defined in FreeRTOSIPConfigDefaults.h */
-
-/* USE_TCP: Use TCP and all its features */
-#define ipconfigUSE_TCP ( 1 )
-
-/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
-
-/* USE_WIN: Let TCP use windowing mechanism. */
-#define ipconfigUSE_TCP_WIN ( 1 )
-
-/* The MTU is the maximum number of bytes the payload of a network frame can
- * contain. For normal Ethernet V2 frames the maximum MTU is 1500. Setting a
- * lower value can save RAM, depending on the buffer management scheme used. If
- * ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
- * be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
-
-/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
- * through the FreeRTOS_gethostbyname() API function. */
-#define ipconfigUSE_DNS 1
-
-/* If ipconfigREPLY_TO_INCOMING_PINGS is set to 1 then the IP stack will
- * generate replies to incoming ICMP echo (ping) requests. */
-#define ipconfigREPLY_TO_INCOMING_PINGS 1
-
-/* If ipconfigSUPPORT_OUTGOING_PINGS is set to 1 then the
- * FreeRTOS_SendPingRequest() API function is available. */
-#define ipconfigSUPPORT_OUTGOING_PINGS 0
-
-/* If ipconfigSUPPORT_SELECT_FUNCTION is set to 1 then the FreeRTOS_select()
- * (and associated) API function is available. */
-#define ipconfigSUPPORT_SELECT_FUNCTION 1
-
-/* If ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES is set to 1 then Ethernet frames
- * that are not in Ethernet II format will be dropped. This option is included for
- * potential future IP stack developments. */
-#define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-
-/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1 then it is the
- * responsibility of the Ethernet interface to filter out packets that are of no
- * interest. If the Ethernet interface does not implement this functionality, then
- * set ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES to 0 to have the IP stack
- * perform the filtering instead (it is much less efficient for the stack to do it
- * because the packet will already have been passed into the stack). If the
- * Ethernet driver does all the necessary filtering in hardware then software
- * filtering can be removed by using a value other than 1 or 0. */
-#define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-
-/* The windows simulator cannot really simulate MAC interrupts, and needs to
- * block occasionally to allow other tasks to run. */
-#define configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY ( 20 / portTICK_PERIOD_MS )
-
-/* Advanced only: in order to access 32-bit fields in the IP packets with
- * 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
- * This has to do with the contents of the IP-packets: all 32-bit fields are
- * 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
-
-/* Define the size of the pool of TCP window descriptors. On the average, each
- * TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
- * outstanding packets (for Rx and Tx). When using up to 10 TP sockets
- * simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
-
-/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
- * maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 1000 )
-
-/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
-
-/* When using call-back handlers, the driver may check if the handler points to
- * real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
-
-/* Include support for TCP hang protection. All sockets in a connecting or
- * disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
-
-/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
-
-#define portINLINE __inline
-
-#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/DemoTasks/SNTPClientTask.c b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/SNTPClientTask.c
similarity index 99%
rename from FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/DemoTasks/SNTPClientTask.c
rename to FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/SNTPClientTask.c
index c3b9640c8cc..447ddeb5588 100644
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/DemoTasks/SNTPClientTask.c
+++ b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/SNTPClientTask.c
@@ -270,8 +270,6 @@ static SystemClock_t systemClock;
* system clock parameters.
*/
static SemaphoreHandle_t xMutex = NULL;
-static StaticSemaphore_t xSemaphoreMutex;
-
/*
* @brief Stores the configured time servers in an array.
@@ -511,7 +509,7 @@ static CK_RV setupPkcs11ObjectForAesCmac( const SntpAuthContext_t * pAuthContext
* @param[in] pServer The time server whose information is filled in the context.
* @param[out] pAuthContext The authentication context to update with information about the @p pServer.
*/
-static bool populateAuthContextForServer( const char * pServer,
+static void populateAuthContextForServer( const char * pServer,
SntpAuthContext_t * pAuthContext );
/**
@@ -913,7 +911,7 @@ static void sntpClient_SetTime( const SntpServerInfo_t * pTimeServer,
}
/**************************** Authentication Utilities and Interface Functions ***********************************************/
-static bool populateAuthContextForServer( const char * pServer,
+static void populateAuthContextForServer( const char * pServer,
SntpAuthContext_t * pAuthContext )
{
@@ -1291,7 +1289,7 @@ void initializeSystemClock( void )
printTime( &systemClock.baseTime );
/* Initialize semaphore for guarding access to system clock variables. */
- xMutex = xSemaphoreCreateMutexStatic( &xSemaphoreMutex );
+ xMutex = xSemaphoreCreateMutex();
configASSERT( xMutex );
/* Clear the first time sync completed flag of the system clock object so that a "step" correction
@@ -1527,6 +1525,9 @@ void sntpTask( void * pParameters )
* APIs for sending time request to the server and receiving time response from the server. */
while( 1 )
{
+ LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
+ bool socketStatus = false;
+
/* For security, this demo keeps a UDP socket open only for one iteration of SNTP request-response cycle.
* There is a security risk of a UDP socket being flooded with invalid or malicious server response packets
* when a UDP socket is kept open across multiple time polling cycles. In such a scenario where the UDP
@@ -1537,8 +1538,19 @@ void sntpTask( void * pParameters )
* timeout window), any extraneous or malicious server response packets for the same time request will be
* ignored by the demo. */
+ /* Wait for Networking */
+ if( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ LogInfo( ( "Waiting for the network link up event..." ) );
+
+ while( xPlatformIsNetworkUp() == pdFALSE )
+ {
+ vTaskDelay( pdMS_TO_TICKS( 1000U ) );
+ }
+ }
+
/* Create a UDP socket for the current iteration of time polling. */
- bool socketStatus = createUdpSocket( &udpContext.socket );
+ socketStatus = createUdpSocket( &udpContext.socket );
configASSERT( socketStatus == true );
status = Sntp_SendTimeRequest( &clientContext, generateRandomNumber(), democonfigSEND_TIME_REQUEST_TIMEOUT_MS );
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/DemoTasks/SampleAppTask.c b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/SampleAppTask.c
similarity index 100%
rename from FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/DemoTasks/SampleAppTask.c
rename to FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/SampleAppTask.c
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/WIN32.vcxproj
deleted file mode 100644
index 081389fc25a..00000000000
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/WIN32.vcxproj
+++ /dev/null
@@ -1,408 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\Source\Utilities\mbedtls_freertos;..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\Common\WinPCap;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS-Plus\Source\corePKCS11\source\include;..\..\..\FreeRTOS-Plus\Source\corePKCS11\source\dependency\3rdparty\pkcs11;..\..\ThirdParty\mbedtls\include;..\..\..\FreeRTOS-Plus\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\Source\Application-Protocols\coreSNTP\source\include;..\..\Source\Utilities\backoff_algorithm\source\include;.;..\..\..\FreeRTOS-Plus\Source\corePKCS11\source\portable\os;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="mbedtls_config.h";CONFIG_MEDTLS_USE_AFR_MEMORY;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
- ..\Common\WinPCap
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/WIN32.vcxproj.filters
deleted file mode 100644
index 7d61449f8fe..00000000000
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,884 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {b71e974a-9f28-4815-972b-d930ba8a34d0}
-
-
- {60717407-397f-4ea5-8492-3314acdd25f0}
-
-
- {8a90222f-d723-4b4e-8e6e-c57afaf7fa92}
-
-
- {2d17d5e6-ed70-4e42-9693-f7a63baf4948}
-
-
- {6ad56e6d-c330-4830-8f4b-c75b05dfa866}
-
-
- {1407130d-da4c-4bcc-8ca0-4cf77f4cf97f}
-
-
- {78a81f37-e1f1-4ef1-b067-bb23c8e1dfe2}
-
-
- {38512398-609b-4a9b-bc1a-67cab17720ae}
-
-
- {6a7d78a6-4f09-4a5f-a692-ce4791240881}
-
-
- {e32be358-792b-45ab-b1c5-f87e64315cd3}
-
-
- {e88d4eab-3fad-4755-a5a4-41c6e4f59089}
-
-
- {817c6143-0ae9-4cac-828f-08f0da380f99}
-
-
- {6622f8c1-6657-42cf-b7ed-3997214e31cf}
-
-
- {ad9767ea-105b-4044-9a9f-b86fae9acafc}
-
-
- {c95e7d65-b87f-40d1-ba87-135dfe473249}
-
-
- {354fa114-d64f-43c8-b4ff-3d5054266970}
-
-
- {af12f263-b6fc-4b33-991a-cd9f95a51073}
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- DemoTasks
-
-
- DemoTasks
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreSNTP
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreSNTP
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\3rdparty\pkcs11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\3rdparty\pkcs11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\3rdparty\pkcs11
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\corePKCS11\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Config
-
-
- Config
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreSNTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreSNTP\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\standard\coreSNTP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
- FreeRTOS+\mbedtls\include
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/coreSNTP_Demo.vcxproj b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/coreSNTP_Demo.vcxproj
new file mode 100644
index 00000000000..ac3df6b6bd4
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/coreSNTP_Demo.vcxproj
@@ -0,0 +1,202 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {382dc80f-e278-4bc9-9db6-59014486da0f}
+ coreSNTP_Demo
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreSNTP\source\include;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreSNTP\source\include;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreSNTP\source\include;$(IncludePath)
+
+
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);.;..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\Source\Application-Protocols\network_transport;..\..\Source\Utilities\backoff_algorithm\source\include;..\..\Source\Application-Protocols\coreSNTP\source\include;$(IncludePath)
+
+
+ false
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ false
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ false
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ false
+
+
+ Console
+ true
+ %(AdditionalDependencies)
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ false
+
+
+ Console
+ true
+ true
+ true
+ %(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {19f0ff1a-3368-491a-9932-a2f089508f51}
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/coreSNTP_Demo.vcxproj.filters b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/coreSNTP_Demo.vcxproj.filters
new file mode 100644
index 00000000000..5a2bd113723
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/coreSNTP_Demo.vcxproj.filters
@@ -0,0 +1,72 @@
+
+
+
+
+ {6a74cf8c-8019-459a-b53c-b1ad7d805c7e}
+
+
+ {395eef3e-4fd6-4887-8e14-723708992c5f}
+
+
+ {9e8aa6b6-0c22-4f17-b371-6c2b8a96051a}
+
+
+ {b46cd325-0e87-4848-aa7a-f3ae91325e20}
+
+
+ {e68c7733-fa69-477a-ae55-3569a957d412}
+
+
+ {a442e1bd-e141-45a4-860d-a8eccab1b8c2}
+
+
+ {74b896c3-5e45-4208-863d-e7b1fb079d4c}
+
+
+ {7b68e0ca-28b9-4426-8d70-ceba3df89bc2}
+
+
+
+
+ Additional Libraries\Backoff Algorithm
+
+
+ Additional Libraries\coreSNTP
+
+
+ Additional Libraries\coreSNTP
+
+
+ Source
+
+
+ Source
+
+
+ Source
+
+
+
+
+ Config
+
+
+ Config
+
+
+ Headers
+
+
+ Additional Libraries\Backoff Algorithm\include
+
+
+ Additional Libraries\coreSNTP\include
+
+
+ Additional Libraries\coreSNTP\include
+
+
+ Additional Libraries\coreSNTP\include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/core_pkcs11_config.h b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/core_pkcs11_config.h
deleted file mode 100644
index 606a98b7e72..00000000000
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/core_pkcs11_config.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/**
- * @file core_pkcs11_config.h
- * @brief PCKS#11 config options.
- */
-
-
-#ifndef _CORE_PKCS11_CONFIG_H_
-#define _CORE_PKCS11_CONFIG_H_
-
-#include "FreeRTOS.h"
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Include logging header files and define logging macros in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
- * the logging configuration for PKCS #11.
- * 3. Include the header file "logging_stack.h", if logging is enabled for PKCS #11.
- */
-
-#include "logging_levels.h"
-
-/* Logging configuration for the PKCS #11 library. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "PKCS11"
-#endif
-
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_ERROR
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-
-#include "logging_stack.h"
-
-/**
- * @brief Malloc API used by core_pkcs11.h
- */
-#define PKCS11_MALLOC pvPortMalloc
-
-/**
- * @brief Free API used by core_pkcs11.h
- */
-#define PKCS11_FREE vPortFree
-
-/**
- * @brief PKCS #11 default user PIN.
- *
- * The PKCS #11 standard specifies the presence of a user PIN. That feature is
- * sensible for applications that have an interactive user interface and memory
- * protections. However, since typical microcontroller applications lack one or
- * both of those, the user PIN is assumed to be used herein for interoperability
- * purposes only, and not as a security feature.
- *
- * Note: Do not cast this to a pointer! The library calls sizeof to get the length
- * of this string.
- */
-#define configPKCS11_DEFAULT_USER_PIN "0000"
-
-/**
- * @brief Maximum length (in characters) for a PKCS #11 CKA_LABEL
- * attribute.
- */
-#define pkcs11configMAX_LABEL_LENGTH 32
-
-/**
- * @brief Maximum number of token objects that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_NUM_OBJECTS 6
-
-/**
- * @brief Maximum number of sessions that can be stored
- * by the PKCS #11 module.
- */
-#define pkcs11configMAX_SESSIONS 10
-
-/**
- * @brief Set to 1 if a PAL destroy object is implemented.
- *
- * If set to 0, no PAL destroy object is implemented, and this functionality
- * is implemented in the common PKCS #11 layer.
- */
-#define pkcs11configPAL_DESTROY_SUPPORTED 0
-
-/**
- * @brief Set to 1 if OTA image verification via PKCS #11 module is supported.
- *
- * If set to 0, OTA code signing certificate is built in via
- * aws_ota_codesigner_certificate.h.
- */
-#define pkcs11configOTA_SUPPORTED 0
-
-/**
- * @brief Set to 1 if PAL supports storage for JITP certificate,
- * code verify certificate, and trusted server root certificate.
- *
- * If set to 0, PAL does not support storage mechanism for these, and
- * they are accessed via headers compiled into the code.
- */
-#define pkcs11configJITP_CODEVERIFY_ROOT_CERT_SUPPORTED 0
-
-/**
- * @brief The PKCS #11 label for device private key.
- *
- * Private key for connection to AWS IoT endpoint. The corresponding
- * public key should be registered with the AWS IoT endpoint.
- */
-#define pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS "Device Priv TLS Key"
-
-/**
- * @brief The PKCS #11 label for device public key.
- *
- * The public key corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_PUBLIC_KEY_FOR_TLS "Device Pub TLS Key"
-
-/**
- * @brief The PKCS #11 label for the device certificate.
- *
- * Device certificate corresponding to pkcs11configLABEL_DEVICE_PRIVATE_KEY_FOR_TLS.
- */
-#define pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS "Device Cert"
-
-/**
- * @brief The PKCS #11 label for the object to be used for CMAC operations.
- */
-#define pkcs11configLABEL_CMAC_KEY "CMAC Key"
-
-/**
- * @brief The PKCS #11 label for the object to be used for code verification.
- *
- * Used by over-the-air update code to verify an incoming signed image.
- */
-#define pkcs11configLABEL_CODE_VERIFICATION_KEY "Code Verify Key"
-
-/**
- * @brief The PKCS #11 label for Just-In-Time-Provisioning.
- *
- * The certificate corresponding to the issuer of the device certificate
- * (pkcs11configLABEL_DEVICE_CERTIFICATE_FOR_TLS) when using the JITR or
- * JITP flow.
- */
-#define pkcs11configLABEL_JITP_CERTIFICATE "JITP Cert"
-
-/**
- * @brief The PKCS #11 label for the AWS Trusted Root Certificate.
- *
- * @see aws_default_root_certificates.h
- */
-#define pkcs11configLABEL_ROOT_CERTIFICATE "Root Cert"
-
-#endif /* _CORE_PKCS11_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/core_sntp_demo.sln b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/core_sntp_demo.sln
index dcfc1fe098d..8505ef2632e 100644
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/core_sntp_demo.sln
+++ b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/core_sntp_demo.sln
@@ -1,23 +1,91 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
-VisualStudioVersion = 16.0.29215.179
+VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTOSDemo", "WIN32.vcxproj", "{C686325E-3261-42F7-AEB1-DDE5280E1CEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "..\..\VisualStudio_StaticProjects\FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "..\..\VisualStudio_StaticProjects\FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreSNTP_Demo", "coreSNTP_Demo.vcxproj", "{382DC80F-E278-4BC9-9DB6-59014486DA0F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "..\..\VisualStudio_StaticProjects\Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "..\..\VisualStudio_StaticProjects\MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "corePKCS11", "..\..\VisualStudio_StaticProjects\corePKCS11\corePKCS11.vcxproj", "{19F0FF1A-3368-491A-9932-A2F089508F51}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Statically Linked Libraries", "Statically Linked Libraries", "{2FEA2CBE-0B64-47CC-B759-2D3FB37B5ADE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.ActiveCfg = Debug|Win32
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|Win32.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|Win32.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|Win32.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|Win32.Build.0 = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|Win32.Build.0 = Debug|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.ActiveCfg = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Debug|x64.Build.0 = Debug|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.ActiveCfg = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|Win32.Build.0 = Release|Win32
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.ActiveCfg = Release|x64
+ {382DC80F-E278-4BC9-9DB6-59014486DA0F}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|Win32.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|Win32.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|Win32.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|Win32.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.ActiveCfg = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|Win32.Build.0 = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.ActiveCfg = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.Build.0 = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.ActiveCfg = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|Win32.Build.0 = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.ActiveCfg = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {72C209C4-49A4-4942-A201-44706C9D77EC} = {2FEA2CBE-0B64-47CC-B759-2D3FB37B5ADE}
+ {C90E6CC5-818B-4C97-8876-0986D989387C} = {2FEA2CBE-0B64-47CC-B759-2D3FB37B5ADE}
+ {BE362AC0-B10B-4276-B84E-6304652BA228} = {2FEA2CBE-0B64-47CC-B759-2D3FB37B5ADE}
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7} = {2FEA2CBE-0B64-47CC-B759-2D3FB37B5ADE}
+ {19F0FF1A-3368-491A-9932-A2F089508F51} = {2FEA2CBE-0B64-47CC-B759-2D3FB37B5ADE}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {150F08BF-9D61-4CC2-8DBF-1335172A1EA4}
+ SolutionGuid = {3876F3F5-8086-4F8E-BB5E-D8840E7D926C}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = FreeRTOS_Plus_TCP_Minimal.vsmdi
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/main.c b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/main.c
index 62e41700ee2..05376e40c90 100644
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/main.c
+++ b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/main.c
@@ -32,135 +32,29 @@
#include
#include
-/* Visual studio intrinsics used so the __debugbreak() function is available
- * should an assert get hit. */
-#include
-
/* FreeRTOS includes. */
-#include
+#include "FreeRTOS.h"
#include "task.h"
-/* TCP/IP stack includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
/* Demo logging includes. */
#include "logging.h"
-/* mbedTLS include for configuring
- * threading functions. */
-#include "mbedtls/threading.h"
-#include "threading_alt.h"
-
/* Demo Specific configs. */
#include "demo_config.h"
#include "common_demo_include.h"
-/*
- * Prototypes for the demos that can be started from this project. Note the
- * SNTP demo is not actually started until the network is already, which is
- * indicated by vApplicationIPNetworkEventHook() executing - hence
- * prvStartSimpleSNTPDemo() is called from inside vApplicationIPNetworkEventHook().
- */
-static void vStartSntpDemo( void );
-
-/*
- * Just seeds the simple pseudo random number generator.
- *
- * !!! NOTE !!!
- * This is not a secure method of generating random numbers and production
- * devices should use a true random number generator (TRNG).
- */
-static void prvSRand( UBaseType_t ulSeed );
-
-/*
- * Miscellaneous initialization including preparing the logging and seeding the
- * random number generator.
- */
-static void prvMiscInitialisation( void );
-
-/* The default IP and MAC address used by the demo. The address configuration
- * defined here will be used if ipconfigUSE_DHCP is 0, or if ipconfigUSE_DHCP is
- * 1 but a DHCP server could not be contacted. See the online documentation for
- * more information. */
-static const uint8_t ucIPAddress[ 4 ] = { configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 };
-static const uint8_t ucNetMask[ 4 ] = { configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 };
-static const uint8_t ucGatewayAddress[ 4 ] = { configGATEWAY_ADDR0, configGATEWAY_ADDR1, configGATEWAY_ADDR2, configGATEWAY_ADDR3 };
-static const uint8_t ucDNSServerAddress[ 4 ] = { configDNS_SERVER_ADDR0, configDNS_SERVER_ADDR1, configDNS_SERVER_ADDR2, configDNS_SERVER_ADDR3 };
-
-/* Set the following constant to pdTRUE to log using the method indicated by the
- * name of the constant, or pdFALSE to not log using the method indicated by the
- * name of the constant. Options include to standard out (xLogToStdout), to a disk
- * file (xLogToFile), and to a UDP port (xLogToUDP). If xLogToUDP is set to pdTRUE
- * then UDP messages are sent to the IP address configured as the UDP logging server
- * address (see the configUDP_LOGGING_ADDR0 definitions in FreeRTOSConfig.h) and
- * the port number set by configPRINT_PORT in FreeRTOSConfig.h. */
-const BaseType_t xLogToStdout = pdTRUE, xLogToFile = pdFALSE, xLogToUDP = pdFALSE;
+/*-----------------------------------------------------------*/
-/* Default MAC address configuration. The demo creates a virtual network
- * connection that uses this MAC address by accessing the raw Ethernet data
- * to and from a real network connection on the host PC. See the
- * configNETWORK_INTERFACE_TO_USE definition for information on how to configure
- * the real network connection to use. */
-const uint8_t ucMACAddress[ 6 ] = { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 };
+extern void vPlatformInitIpStack( void );
-/* Use by the pseudo random number generator. */
-static UBaseType_t ulNextRand;
/*-----------------------------------------------------------*/
int main( void )
{
- /***
- * See https://www.FreeRTOS.org/coresntp for configuration and usage instructions.
- *
- ***/
+ vPlatformInitLogging();
- /* Miscellaneous initialization including preparing the logging and seeding
- * the random number generator. */
- prvMiscInitialisation();
-
- /* Initialize the network interface.
- *
- ***NOTE*** Tasks that use the network are created in the network event hook
- * when the network is connected and ready for use (see the implementation of
- * vApplicationIPNetworkEventHook() below). The address values passed in here
- * are used if ipconfigUSE_DHCP is set to 0, or if ipconfigUSE_DHCP is set to 1
- * but a DHCP server cannot be contacted. */
- FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucGatewayAddress, ucDNSServerAddress, ucMACAddress );
-
- /* Start the RTOS scheduler. */
- vTaskStartScheduler();
-
- /* If all is well, the scheduler will now be running, and the following
- * line will never be reached. If the following line does execute, then
- * there was insufficient FreeRTOS heap memory available for the idle and/or
- * timer tasks to be created. See the memory management section on the
- * FreeRTOS web site for more details (this is standard text that is not
- * really applicable to the Win32 simulator port). */
- for( ; ; )
- {
- __debugbreak();
- }
-}
-/*-----------------------------------------------------------*/
-
-/**
- * @brief Entry point of the demo that creates 2 tasks:
- * 1. One task represents the SNTP client that periodically synchronizes system time with
- * time from time servers.
- * 2. The other task represents a sample application time that queries the system time
- * periodically and prints it in human readable form of the YYYY-MM-DD hh:mm:ss.
- */
-void vStartSntpDemo( void )
-{
initializeSystemClock();
- /* Configure mbedTLS to use FreeRTOS specific threading function. */
- mbedtls_threading_set_alt( mbedtls_platform_mutex_init,
- mbedtls_platform_mutex_free,
- mbedtls_platform_mutex_lock,
- mbedtls_platform_mutex_unlock );
-
/* Create the SNTP client task that is responsible for synchronizing system time with the time servers
* periodically. This is created as a high priority task to keep the SNTP client operation unhindered. */
xTaskCreate( sntpTask, /* Function that implements the task. */
@@ -177,255 +71,24 @@ void vStartSntpDemo( void )
NULL, /* Task parameter - not used in this case. */
tskIDLE_PRIORITY, /* Task priority, must be between 0 and configMAX_PRIORITIES - 1. */
NULL ); /* Used to pass out a handle to the created task - not used in this case. */
-}
-
-/*-----------------------------------------------------------*/
-
-/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
- * events are only received if implemented in the MAC driver. */
-void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
-{
- uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
- char cBuffer[ 16 ];
- static BaseType_t xTasksAlreadyCreated = pdFALSE;
-
- /* If the network has just come up...*/
- if( eNetworkEvent == eNetworkUp )
- {
- /* Create the tasks that use the IP stack if they have not already been
- * created. */
- if( xTasksAlreadyCreated == pdFALSE )
- {
- /* Demos that use the network are created after the network is
- * up. */
- LogInfo( ( "---------STARTING DEMO---------\r\n" ) );
- vStartSntpDemo();
- xTasksAlreadyCreated = pdTRUE;
- }
-
- /* Print out the network configuration, which may have come from a DHCP
- * server. */
- FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
- FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
- LogInfo( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
- LogInfo( ( "Subnet Mask: %s\r\n", cBuffer ) );
-
- FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
- LogInfo( ( "Gateway Address: %s\r\n", cBuffer ) );
- FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
- LogInfo( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
- }
-}
-/*-----------------------------------------------------------*/
-
-void vAssertCalled( const char * pcFile,
- uint32_t ulLine )
-{
- volatile uint32_t ulBlockVariable = 0UL;
- volatile char * pcFileName = ( volatile char * ) pcFile;
- volatile uint32_t ulLineNumber = ulLine;
-
- ( void ) pcFileName;
- ( void ) ulLineNumber;
-
- printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
-
- /* Setting ulBlockVariable to a non-zero value in the debugger will allow
- * this function to be exited. */
- taskDISABLE_INTERRUPTS();
- {
- while( ulBlockVariable == 0UL )
- {
- __debugbreak();
- }
- }
- taskENABLE_INTERRUPTS();
-}
-/*-----------------------------------------------------------*/
-
-UBaseType_t uxRand( void )
-{
- const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL;
+ /* Initialize the FreeRTOS+TCP Stack */
+ vPlatformInitIpStack();
- /*
- * Utility function to generate a pseudo random number.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
- */
- ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;
- return( ( int ) ( ulNextRand >> 16UL ) & 0x7fffUL );
-}
-/*-----------------------------------------------------------*/
-
-static void prvSRand( UBaseType_t ulSeed )
-{
- /* Utility function to seed the pseudo random number generator. */
- ulNextRand = ulSeed;
-}
-/*-----------------------------------------------------------*/
-
-static void prvMiscInitialisation( void )
-{
- time_t xTimeNow;
- uint32_t ulLoggingIPAddress;
- uint32_t ulRandomNumber[ 4 ];
-
- ulLoggingIPAddress = FreeRTOS_inet_addr_quick( configUDP_LOGGING_ADDR0, configUDP_LOGGING_ADDR1, configUDP_LOGGING_ADDR2, configUDP_LOGGING_ADDR3 );
- vLoggingInit( xLogToStdout, xLogToFile, xLogToUDP, ulLoggingIPAddress, configPRINT_PORT );
+ /* Start the RTOS scheduler. */
+ vTaskStartScheduler();
- /*
- * Seed random number generator.
- *
- * !!!NOTE!!!
- * This is not a secure method of generating a random number. Production
- * devices should use a True Random Number Generator (TRNG).
+ /* If all is well, the scheduler will now be running, and the following
+ * line will never be reached. If the following line does execute, then
+ * there was insufficient FreeRTOS heap memory available for the idle and/or
+ * timer tasks to be created. See the memory management section on the
+ * FreeRTOS web site for more details.
*/
- time( &xTimeNow );
- LogDebug( ( "Seed for randomizer: %lu\n", xTimeNow ) );
- prvSRand( ( uint32_t ) xTimeNow );
-
- ( void ) xApplicationGetRandomNumber( &ulRandomNumber[ 0 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumber[ 1 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumber[ 2 ] );
- ( void ) xApplicationGetRandomNumber( &ulRandomNumber[ 3 ] );
- LogDebug( ( "Random numbers: %08X %08X %08X %08X\n",
- ulRandomNumber[ 0 ],
- ulRandomNumber[ 1 ],
- ulRandomNumber[ 2 ],
- ulRandomNumber[ 3 ] ) );
-}
-/*-----------------------------------------------------------*/
-
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
-
- const char * pcApplicationHostnameHook( void )
- {
- /* Assign the name "FreeRTOS" to this network node. This function will
- * be called during the DHCP: the machine will be registered with an IP
- * address plus this name. */
- return mainHOST_NAME;
- }
-
-#endif
-/*-----------------------------------------------------------*/
-#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
-
- BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ for( ; ; )
{
- BaseType_t xReturn;
-
- /* Determine if a name lookup is for this node. Two names are given
- * to this node: that returned by pcApplicationHostnameHook() and that set
- * by mainDEVICE_NICK_NAME. */
- if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
- {
- xReturn = pdPASS;
- }
- else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
- {
- xReturn = pdPASS;
- }
- else
- {
- xReturn = pdFAIL;
- }
-
- return xReturn;
+ configASSERT( pdFALSE );
}
-
-#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
-/*-----------------------------------------------------------*/
-
-/*
- * Callback that provides the inputs necessary to generate a randomized TCP
- * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
- * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
- * SYSTEMS.
- */
-extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
- uint16_t usSourcePort,
- uint32_t ulDestinationAddress,
- uint16_t usDestinationPort )
-{
- ( void ) ulSourceAddress;
- ( void ) usSourcePort;
- ( void ) ulDestinationAddress;
- ( void ) usDestinationPort;
-
- return uxRand();
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Set *pulNumber to a random number, and return pdTRUE. When the random number
- * generator is broken, it shall return pdFALSE.
- *
- * THIS IS ONLY A DUMMY IMPLEMENTATION THAT RETURNS A PSEUDO RANDOM NUMBER SO IS
- * NOT INTENDED FOR USE IN PRODUCTION SYSTEMS.
- */
-BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
-{
- *pulNumber = uxRand();
- return pdTRUE;
-}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
- * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
- * used by the Idle task. */
-void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
- StackType_t ** ppxIdleTaskStackBuffer,
- uint32_t * pulIdleTaskStackSize )
-{
- /* If the buffers to be provided to the Idle task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xIdleTaskTCB;
- static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
-
- /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
- * state will be stored. */
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
-
- /* Pass out the array that will be used as the Idle task's stack. */
- *ppxIdleTaskStackBuffer = uxIdleTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
}
-/*-----------------------------------------------------------*/
-
-/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
- * application must provide an implementation of vApplicationGetTimerTaskMemory()
- * to provide the memory that is used by the Timer service task. */
-void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
- StackType_t ** ppxTimerTaskStackBuffer,
- uint32_t * pulTimerTaskStackSize )
-{
- /* If the buffers to be provided to the Timer task are declared inside this
- * function then they must be declared static - otherwise they will be allocated on
- * the stack and so not exists after this function exits. */
- static StaticTask_t xTimerTaskTCB;
- static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
- /* Pass out a pointer to the StaticTask_t structure in which the Timer
- * task's state will be stored. */
- *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
-
- /* Pass out the array that will be used as the Timer task's stack. */
- *ppxTimerTaskStackBuffer = uxTimerTaskStack;
-
- /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
- * Note that, as the array is necessarily of type StackType_t,
- * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
- *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
-}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/mbedtls_config.h b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/mbedtls_config.h
deleted file mode 100644
index 09bb8886fee..00000000000
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/mbedtls_config.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/* This file configures mbed TLS for FreeRTOS. */
-
-#ifndef MBEDTLS_CONFIG_H_
-#define MBEDTLS_CONFIG_H_
-
-/* FreeRTOS include. */
-#include "FreeRTOS.h"
-
-/* Generate errors if deprecated functions are used. */
-#define MBEDTLS_DEPRECATED_REMOVED
-
-/* Place AES tables in ROM. */
-#define MBEDTLS_AES_ROM_TABLES
-
-/* Enable the following cipher modes. */
-#define MBEDTLS_CIPHER_MODE_CBC
-#define MBEDTLS_CIPHER_MODE_CFB
-#define MBEDTLS_CIPHER_MODE_CTR
-
-/* Enable CMAC mode for authentication code generation. */
-#define MBEDTLS_CMAC_C
-
-/* Enable the following cipher padding modes. */
-#define MBEDTLS_CIPHER_PADDING_PKCS7
-#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
-#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
-#define MBEDTLS_CIPHER_PADDING_ZEROS
-
-/* Cipher suite configuration. */
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
-#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_NIST_OPTIM
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
-
-/* Enable all SSL alert messages. */
-#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
-
-/* Enable the following SSL features. */
-#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
-#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-#define MBEDTLS_SSL_PROTO_TLS1_2
-#define MBEDTLS_SSL_ALPN
-#define MBEDTLS_SSL_SERVER_NAME_INDICATION
-
-/* Check certificate key usage. */
-#define MBEDTLS_X509_CHECK_KEY_USAGE
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
-
-/* Disable platform entropy functions. */
-#define MBEDTLS_NO_PLATFORM_ENTROPY
-
-/* Enable the following mbed TLS features. */
-#define MBEDTLS_AES_C
-#define MBEDTLS_ASN1_PARSE_C
-#define MBEDTLS_ASN1_WRITE_C
-#define MBEDTLS_BASE64_C
-#define MBEDTLS_BIGNUM_C
-#define MBEDTLS_CIPHER_C
-#define MBEDTLS_CTR_DRBG_C
-#define MBEDTLS_ECDH_C
-#define MBEDTLS_ECDSA_C
-#define MBEDTLS_ECP_C
-#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
-#define MBEDTLS_ENTROPY_HARDWARE_ALT
-
-#define MBEDTLS_GCM_C
-#define MBEDTLS_MD_C
-#define MBEDTLS_OID_C
-#define MBEDTLS_PEM_PARSE_C
-#define MBEDTLS_PK_C
-#define MBEDTLS_PK_PARSE_C
-#define MBEDTLS_PK_WRITE_C
-#define MBEDTLS_PKCS1_V15
-#define MBEDTLS_PLATFORM_C
-#define MBEDTLS_RSA_C
-#define MBEDTLS_SHA1_C
-#define MBEDTLS_SHA256_C
-#define MBEDTLS_SSL_CLI_C
-#define MBEDTLS_SSL_TLS_C
-#define MBEDTLS_THREADING_ALT
-#define MBEDTLS_THREADING_C
-#define MBEDTLS_X509_USE_C
-#define MBEDTLS_X509_CRT_PARSE_C
-
-/* Set the memory allocation functions on FreeRTOS. */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size );
-void mbedtls_platform_free( void * ptr );
-#define MBEDTLS_PLATFORM_MEMORY
-#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc
-#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free
-
-/* The network send and receive functions on FreeRTOS. */
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len );
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len );
-
-/* The entropy poll function. */
-int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen );
-
-#include "mbedtls/check_config.h"
-
-#endif /* ifndef MBEDTLS_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/readme.url b/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/readme.url
deleted file mode 100644
index 44ba477139a..00000000000
--- a/FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator/readme.url
+++ /dev/null
@@ -1,5 +0,0 @@
-[{000214A0-0000-0000-C000-000000000046}]
-Prop3=19,11
-[InternetShortcut]
-IDList=
-URL=https://www.freertos.org/sntp/sntp-demo.html
diff --git a/FreeRTOS-Plus/Source/AWS/device-defender b/FreeRTOS-Plus/Source/AWS/device-defender
index a405231bf65..989670043d4 160000
--- a/FreeRTOS-Plus/Source/AWS/device-defender
+++ b/FreeRTOS-Plus/Source/AWS/device-defender
@@ -1 +1 @@
-Subproject commit a405231bf6515a6e0d7f19b0a08f7bbdc20f9173
+Subproject commit 989670043d46dc104477957cdc0ce263218dae0a
diff --git a/FreeRTOS-Plus/Source/AWS/device-shadow b/FreeRTOS-Plus/Source/AWS/device-shadow
index 92327cd715d..250821f043d 160000
--- a/FreeRTOS-Plus/Source/AWS/device-shadow
+++ b/FreeRTOS-Plus/Source/AWS/device-shadow
@@ -1 +1 @@
-Subproject commit 92327cd715ddbab04f1d88837f7bc66010b2dfa5
+Subproject commit 250821f043d2d080547270b43f01d53c7d52640a
diff --git a/FreeRTOS-Plus/Source/AWS/fleet-provisioning b/FreeRTOS-Plus/Source/AWS/fleet-provisioning
index c04b33ce775..fca2f6d4a87 160000
--- a/FreeRTOS-Plus/Source/AWS/fleet-provisioning
+++ b/FreeRTOS-Plus/Source/AWS/fleet-provisioning
@@ -1 +1 @@
-Subproject commit c04b33ce77561ef025934cb864a144d3c370bea6
+Subproject commit fca2f6d4a87136a62604ccc5868196496b9c1980
diff --git a/FreeRTOS-Plus/Source/AWS/jobs b/FreeRTOS-Plus/Source/AWS/jobs
index 04762106b01..e56c6f8f3a5 160000
--- a/FreeRTOS-Plus/Source/AWS/jobs
+++ b/FreeRTOS-Plus/Source/AWS/jobs
@@ -1 +1 @@
-Subproject commit 04762106b014a2041be2cd2e937d475d98e970f0
+Subproject commit e56c6f8f3a525b895ecbde0dfdde51e959c3e90a
diff --git a/FreeRTOS-Plus/Source/AWS/ota b/FreeRTOS-Plus/Source/AWS/ota
index 1f2362f005f..f9760892ba1 160000
--- a/FreeRTOS-Plus/Source/AWS/ota
+++ b/FreeRTOS-Plus/Source/AWS/ota
@@ -1 +1 @@
-Subproject commit 1f2362f005f39a1847d645660ecaff93890cfcd7
+Subproject commit f9760892ba152f2c9104d08192ea5ffbbf9fa8ea
diff --git a/FreeRTOS-Plus/Source/AWS/sigv4 b/FreeRTOS-Plus/Source/AWS/sigv4
index ade1cdc16bc..cbfad41556d 160000
--- a/FreeRTOS-Plus/Source/AWS/sigv4
+++ b/FreeRTOS-Plus/Source/AWS/sigv4
@@ -1 +1 @@
-Subproject commit ade1cdc16bc0ad34a976b302e29ef290a1b98297
+Subproject commit cbfad41556de904fc94a6f960bad295929688ef4
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/coreHTTP b/FreeRTOS-Plus/Source/Application-Protocols/coreHTTP
index 7fbd7c3605b..2949950412f 160000
--- a/FreeRTOS-Plus/Source/Application-Protocols/coreHTTP
+++ b/FreeRTOS-Plus/Source/Application-Protocols/coreHTTP
@@ -1 +1 @@
-Subproject commit 7fbd7c3605b5a80b6f80b1b598d1d5d047454911
+Subproject commit 2949950412ffc88201c15a3a9ce4ecf71f4e1045
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT b/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT
index 785f2f2117d..6d5641b8a2f 160000
--- a/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT
+++ b/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT
@@ -1 +1 @@
-Subproject commit 785f2f2117d621b31cc7db1e28f0d7d977812b07
+Subproject commit 6d5641b8a2f410470134d9bfe8ee71e3d83a565e
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent b/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent
index 5efcee26ccb..86c51db1a7d 160000
--- a/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent
+++ b/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent
@@ -1 +1 @@
-Subproject commit 5efcee26ccb58836ddd07bcc84bda23fe7b3b4b4
+Subproject commit 86c51db1a7d060744a06fa3619bd3ba86a938a94
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/coreSNTP b/FreeRTOS-Plus/Source/Application-Protocols/coreSNTP
index 40291a13629..32d2168d504 160000
--- a/FreeRTOS-Plus/Source/Application-Protocols/coreSNTP
+++ b/FreeRTOS-Plus/Source/Application-Protocols/coreSNTP
@@ -1 +1 @@
-Subproject commit 40291a13629e47578b7624c0bacc0825f9e1bda3
+Subproject commit 32d2168d504e4a7b135ec890e601cc66efc32bd5
diff --git a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_bio_freertos_plus_tcp.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_bio_tcp_sockets_wrapper.c
similarity index 64%
rename from FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_bio_freertos_plus_tcp.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_bio_tcp_sockets_wrapper.c
index 0cfe022348b..2868b38095f 100644
--- a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_bio_freertos_plus_tcp.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_bio_tcp_sockets_wrapper.c
@@ -25,17 +25,13 @@
*/
/**
- * @file mbedtls_bio_freertos_plus_tcp.c
- * @brief Implements mbed TLS platform send/receive functions for freertos plus tcp.
+ * @file mbedtls_bio_tcp_sockets_wrapper.c
+ * @brief Implements mbed TLS platform send/receive functions for the TCP sockets wrapper.
*/
-/* FreeRTOS includes. */
-#include "FreeRTOS.h"
-#include "FreeRTOS_Sockets.h"
-
-/* mbed TLS includes. */
+/* MbedTLS includes. */
#if !defined( MBEDTLS_CONFIG_FILE )
- #include "config.h"
+ #include "mbedtls/mbedtls_config.h"
#else
#include MBEDTLS_CONFIG_FILE
#endif
@@ -43,10 +39,14 @@
#include "mbedtls/entropy.h"
#include "mbedtls/ssl.h"
-/*-----------------------------------------------------------*/
+/* TCP Sockets Wrapper include.*/
+#include "tcp_sockets_wrapper.h"
+
+/* MbedTLS Bio TCP sockets wrapper include. */
+#include "mbedtls_bio_tcp_sockets_wrapper.h"
/**
- * @brief Sends data over FreeRTOS+TCP sockets.
+ * @brief Sends data over TCP socket.
*
* @param[in] ctx The network context containing the socket handle.
* @param[in] buf Buffer containing the bytes to send.
@@ -54,48 +54,44 @@
*
* @return Number of bytes sent on success; else a negative value.
*/
-int mbedtls_platform_send( void * ctx,
- const unsigned char * buf,
- size_t len )
+int xMbedTLSBioTCPSocketsWrapperSend( void * ctx,
+ const unsigned char * buf,
+ size_t len )
{
- BaseType_t sendStatus = 0;
- int returnStatus = -1;
+ int32_t xReturnStatus;
configASSERT( ctx != NULL );
configASSERT( buf != NULL );
- sendStatus = FreeRTOS_send( ( Socket_t ) ctx, buf, len, 0 );
+ xReturnStatus = TCP_Sockets_Send( ( Socket_t ) ctx, buf, len );
- switch( sendStatus )
+ switch( xReturnStatus )
{
/* Socket was closed or just got closed. */
- case -pdFREERTOS_ERRNO_ENOTCONN:
+ case TCP_SOCKETS_ERRNO_ENOTCONN:
/* Not enough memory for the socket to create either an Rx or Tx stream. */
- case -pdFREERTOS_ERRNO_ENOMEM:
+ case TCP_SOCKETS_ERRNO_ENOMEM:
/* Socket is not valid, is not a TCP socket, or is not bound. */
- case -pdFREERTOS_ERRNO_EINVAL:
+ case TCP_SOCKETS_ERRNO_EINVAL:
/* Socket received a signal, causing the read operation to be aborted. */
- case -pdFREERTOS_ERRNO_EINTR:
- returnStatus = MBEDTLS_ERR_SSL_INTERNAL_ERROR;
+ case TCP_SOCKETS_ERRNO_EINTR:
+ xReturnStatus = MBEDTLS_ERR_SSL_INTERNAL_ERROR;
break;
/* A timeout occurred before any data could be sent. */
- case -pdFREERTOS_ERRNO_ENOSPC:
- returnStatus = MBEDTLS_ERR_SSL_TIMEOUT;
+ case TCP_SOCKETS_ERRNO_ENOSPC:
+ xReturnStatus = MBEDTLS_ERR_SSL_TIMEOUT;
break;
default:
- returnStatus = ( int ) sendStatus;
break;
}
- return returnStatus;
+ return ( int ) xReturnStatus;
}
-/*-----------------------------------------------------------*/
-
/**
- * @brief Receives data from FreeRTOS+TCP socket.
+ * @brief Receives data from TCP socket.
*
* @param[in] ctx The network context containing the socket handle.
* @param[out] buf Buffer to receive bytes into.
@@ -103,38 +99,36 @@ int mbedtls_platform_send( void * ctx,
*
* @return Number of bytes received if successful; Negative value on error.
*/
-int mbedtls_platform_recv( void * ctx,
- unsigned char * buf,
- size_t len )
+int xMbedTLSBioTCPSocketsWrapperRecv( void * ctx,
+ unsigned char * buf,
+ size_t len )
{
- BaseType_t recvStatus = 0;
- int returnStatus = -1;
+ int32_t xReturnStatus;
configASSERT( ctx != NULL );
configASSERT( buf != NULL );
- recvStatus = FreeRTOS_recv( ( Socket_t ) ctx, buf, len, 0 );
+ xReturnStatus = TCP_Sockets_Recv( ( Socket_t ) ctx, buf, len );
- switch( recvStatus )
+ switch( xReturnStatus )
{
/* No data could be sent because the socket was or just got closed. */
- case -pdFREERTOS_ERRNO_ENOTCONN:
+ case TCP_SOCKETS_ERRNO_ENOTCONN:
/* No data could be sent because there was insufficient memory. */
- case -pdFREERTOS_ERRNO_ENOMEM:
+ case TCP_SOCKETS_ERRNO_ENOMEM:
/* No data could be sent because xSocket was not a valid TCP socket. */
- case -pdFREERTOS_ERRNO_EINVAL:
- returnStatus = MBEDTLS_ERR_SSL_INTERNAL_ERROR;
+ case TCP_SOCKETS_ERRNO_EINVAL:
+ xReturnStatus = MBEDTLS_ERR_SSL_INTERNAL_ERROR;
break;
/* A timeout occurred before any data could be received. */
case 0:
- returnStatus = MBEDTLS_ERR_SSL_WANT_READ;
+ xReturnStatus = MBEDTLS_ERR_SSL_WANT_READ;
break;
default:
- returnStatus = ( int ) recvStatus;
break;
}
- return returnStatus;
+ return ( int ) xReturnStatus;
}
diff --git a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_bio_freertos_cellular.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_bio_tcp_sockets_wrapper.h
similarity index 56%
rename from FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_bio_freertos_cellular.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_bio_tcp_sockets_wrapper.h
index e4ddab3ba59..1a09d5fcdf5 100644
--- a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_bio_freertos_cellular.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_bio_tcp_sockets_wrapper.h
@@ -25,30 +25,15 @@
*/
/**
- * @file mbedtls_bio_freertos_cellular.c
- * @brief Implements mbed TLS platform send/receive functions for cellular.
+ * @file mbedtls_bio_tcp_sockets_wrapper.h
+ * @brief TLS transport interface header.
*/
-/* FreeRTOS includes. */
-#include "FreeRTOS.h"
-
-/* Sockets wrapper includes. */
-#include "sockets_wrapper.h"
-
-/* mbed TLS includes. */
-#if !defined( MBEDTLS_CONFIG_FILE )
- #include "config.h"
-#else
- #include MBEDTLS_CONFIG_FILE
-#endif
-#include "threading_alt.h"
-#include "mbedtls/entropy.h"
-#include "mbedtls/ssl.h"
-
-/*-----------------------------------------------------------*/
+#ifndef MBEDTLS_BIO_TCP_SOCKETS_WRAPPER
+#define MBEDTLS_BIO_TCP_SOCKETS_WRAPPER
/**
- * @brief Sends data over cellular sockets.
+ * @brief Sends data over TCP socket.
*
* @param[in] ctx The network context containing the socket handle.
* @param[in] buf Buffer containing the bytes to send.
@@ -56,20 +41,12 @@
*
* @return Number of bytes sent on success; else a negative value.
*/
-int mbedtls_cellular_send( void * ctx,
- const unsigned char * buf,
- size_t len )
-{
- configASSERT( ctx != NULL );
- configASSERT( buf != NULL );
-
- return Sockets_Send( ( Socket_t ) ctx, buf, len );
-}
-
-/*-----------------------------------------------------------*/
+int xMbedTLSBioTCPSocketsWrapperSend( void * ctx,
+ const unsigned char * buf,
+ size_t len );
/**
- * @brief Receives data from cellular socket.
+ * @brief Receives data from TCP socket.
*
* @param[in] ctx The network context containing the socket handle.
* @param[out] buf Buffer to receive bytes into.
@@ -77,26 +54,9 @@ int mbedtls_cellular_send( void * ctx,
*
* @return Number of bytes received if successful; Negative value on error.
*/
-int mbedtls_cellular_recv( void * ctx,
- unsigned char * buf,
- size_t len )
-{
- int recvStatus = 0;
- int returnStatus = -1;
-
- configASSERT( ctx != NULL );
- configASSERT( buf != NULL );
-
- recvStatus = Sockets_Recv( ( Socket_t ) ctx, buf, len );
+int xMbedTLSBioTCPSocketsWrapperRecv( void * ctx,
+ unsigned char * buf,
+ size_t len );
- if( recvStatus < 0 )
- {
- returnStatus = MBEDTLS_ERR_SSL_INTERNAL_ERROR;
- }
- else
- {
- returnStatus = recvStatus;
- }
- return returnStatus;
-}
+#endif /* MBEDTLS_BIO_TCP_SOCKETS_WRAPPER */
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_pk_pkcs11.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_pk_pkcs11.c
new file mode 100644
index 00000000000..5e97d550fb7
--- /dev/null
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_pk_pkcs11.c
@@ -0,0 +1,1195 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+#include "logging_levels.h"
+
+#define LIBRARY_LOG_NAME "MbedTLSPkP11"
+#define LIBRARY_LOG_LEVEL LOG_ERROR
+
+#include "logging_stack.h"
+
+/**
+ * @file mbedtls_pk_pkcs11.c
+ * @brief mbedtls_pk implementation for pkcs11 ECDSA and RSA keys.
+ * Exports a mbedtls_pk_info_t type.
+ */
+
+#include
+
+/* Mbedtls Includes */
+#define MBEDTLS_ALLOW_PRIVATE_ACCESS
+
+#include "mbedtls/pk.h"
+#include "mbedtls/asn1.h"
+#include "mbedtls/x509_crt.h"
+#include "mbedtls/platform.h"
+#include "mbedtls/asn1write.h"
+#include "mbedtls/ecdsa.h"
+#include "pk_wrap.h"
+
+#include "core_pkcs11_config.h"
+#include "core_pkcs11.h"
+
+/*-----------------------------------------------------------*/
+
+typedef struct P11PkCtx
+{
+ CK_FUNCTION_LIST_PTR pxFunctionList;
+ CK_SESSION_HANDLE xSessionHandle;
+ CK_OBJECT_HANDLE xPkHandle;
+} P11PkCtx_t;
+
+typedef struct P11EcDsaCtx
+{
+ mbedtls_ecdsa_context xMbedEcDsaCtx;
+ P11PkCtx_t xP11PkCtx;
+} P11EcDsaCtx_t;
+
+typedef struct P11RsaCtx
+{
+ mbedtls_rsa_context xMbedRsaCtx;
+ P11PkCtx_t xP11PkCtx;
+} P11RsaCtx_t;
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Allocates a P11EcDsaCtx_t
+ *
+ * @return A void pointer to the newly created P11EcDsaCtx_t.
+ */
+static void * p11_ecdsa_ctx_alloc( void );
+
+/**
+ * @brief Initializes a P11EcDsaCtx_t with the given PKCS11 parameters.
+ *
+ * @param pvCtx Void pointer to the P11EcDsaCtx_t.
+ * @param pxFunctionList Pointer to a CK_FUNCTION_LIST for the PKCS11 module.
+ * @param xSessionHandle An initialized CK_SESSION_HANDLE for the given PKCS11 module.
+ * @param xPkHandle The CK_OBJECT_HANDLE for the target private key.
+ * @return CKR_OK on success
+ */
+static CK_RV p11_ecdsa_ctx_init( void * pvCtx,
+ CK_FUNCTION_LIST_PTR pxFunctionList,
+ CK_SESSION_HANDLE xSessionHandle,
+ CK_OBJECT_HANDLE xPkHandle );
+
+/**
+ * @brief Frees a P11EcDsaCtx_t
+ *
+ * @param pvCtx void pointer to the context to be freed.
+ */
+static void p11_ecdsa_ctx_free( void * pvCtx );
+
+/**
+ * @brief Perform an ecdsa sign operation with the given P11EcDsaCtx_t.
+ *
+ * @param pvCtx Void pointer to the relevant P11EcDsaCtx_t
+ * @param xMdAlg Hashing algorithm used to generate pucHash
+ * @param pucHash Pointer to a buffer containing the has of the data to be signed
+ * @param xHashLen Length of the hash of data to be signed
+ * @param pucSig Pointer to a buffer in which the signature should be stored
+ * @param xSigBufferSize Length of the buffer provided in pucSig
+ * @param pxSigLen Pointer to a size_t in which the length of the generated signature will be stored
+ * @param plRng Function pointer to the RNG function
+ * @param pvRng Void pointer to the RNG function context
+ * @return 0 on success
+ * @return A negative number on failure
+ */
+static int p11_ecdsa_sign( void * pvCtx,
+ mbedtls_md_type_t xMdAlg,
+ const unsigned char * pucHash,
+ size_t xHashLen,
+ unsigned char * pucSig,
+ size_t xSigBufferSize,
+ size_t * pxSigLen,
+ int ( * plRng )( void *, unsigned char *, size_t ),
+ void * pvRng );
+
+/**
+ * @brief Get the bit length of the relevant key.
+ *
+ * @param pvCtx Void pointer to the relevant P11EcDsaCtx_t.
+ * @return size_t Bit length of the key.
+ */
+static size_t p11_ecdsa_get_bitlen( const void * pvCtx );
+
+/**
+ * @brief Returns true if the pk context can perform the given pk operation.
+ *
+ * @param xType Type of operation.
+ * @return int 0 if the key is an ecdsa key.
+ */
+static int p11_ecdsa_can_do( mbedtls_pk_type_t xType );
+
+/**
+ * @brief Perform an ECDSA verify operation with the given pk context.
+ *
+ * Validates that the signature given in the pucSig and xSigLen arguments
+ * matches the hash given in pucHash and xSigLen for the P11EcDsaCtx_t
+ * specified in pvCtx.
+ *
+ * @param pvCtx Void pointer to the relevant P11EcDsaCtx_t
+ * @param xMdAlg The hashing algorithm used to generate pucHash
+ * @param pucHash Pointer to a buffer containing the hash to validate against
+ * @param xHashLen Length of the hash in pucHash
+ * @param pucSig Pointer to a buffer containing the signature to validate
+ * @param xSigLen Length of the signature given in pucSig
+ * @return 0 on success
+ */
+static int p11_ecdsa_verify( void * pvCtx,
+ mbedtls_md_type_t xMdAlg,
+ const unsigned char * pucHash,
+ size_t xHashLen,
+ const unsigned char * pucSig,
+ size_t xSigLen );
+
+static int p11_ecdsa_check_pair( const void * pvPub,
+ const void * pvPrv,
+ int ( * lFRng )( void *, unsigned char *, size_t ),
+ void * pvPRng );
+
+static void p11_ecdsa_debug( const void * pvCtx,
+ mbedtls_pk_debug_item * pxItems );
+
+static int prvEcdsaSigToASN1InPlace( unsigned char * pucSig,
+ size_t xSigBufferSize,
+ size_t * pxSigLen );
+
+static int prvASN1WriteBigIntFromOctetStr( unsigned char ** ppucPosition,
+ const unsigned char * pucStart,
+ const unsigned char * pucOctetStr,
+ size_t xOctetStrLen );
+
+/**
+ * @brief mbedtls_pk_info_t struct for PKCS#11 ECDSA operations.
+ */
+mbedtls_pk_info_t mbedtls_pkcs11_pk_ecdsa =
+{
+ .type = MBEDTLS_PK_ECKEY,
+ .name = "PKCS#11",
+ .get_bitlen = p11_ecdsa_get_bitlen,
+ .can_do = p11_ecdsa_can_do,
+ .verify_func = p11_ecdsa_verify,
+ .sign_func = p11_ecdsa_sign,
+ #if defined( MBEDTLS_ECDSA_C ) && defined( MBEDTLS_ECP_RESTARTABLE )
+ .verify_rs_func = NULL,
+ .sign_rs_func = NULL,
+ #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+ .decrypt_func = NULL,
+ .encrypt_func = NULL,
+ .check_pair_func = p11_ecdsa_check_pair,
+ .ctx_alloc_func = p11_ecdsa_ctx_alloc,
+ .ctx_free_func = p11_ecdsa_ctx_free,
+ #if defined( MBEDTLS_ECDSA_C ) && defined( MBEDTLS_ECP_RESTARTABLE )
+ .rs_alloc_func = NULL,
+ .rs_free_func = NULL,
+ #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+ .debug_func = p11_ecdsa_debug,
+};
+
+/*-----------------------------------------------------------*/
+
+static size_t p11_rsa_get_bitlen( const void * pvCtx );
+
+static int p11_rsa_can_do( mbedtls_pk_type_t xType );
+
+static int p11_rsa_verify( void * pvCtx,
+ mbedtls_md_type_t xMdAlg,
+ const unsigned char * pucHash,
+ size_t xHashLen,
+ const unsigned char * pucSig,
+ size_t xSigLen );
+
+static int p11_rsa_sign( void * ctx,
+ mbedtls_md_type_t md_alg,
+ const unsigned char * hash,
+ size_t hash_len,
+ unsigned char * sig,
+ size_t sig_size,
+ size_t * sig_len,
+ int ( * f_rng )( void *, unsigned char *, size_t ),
+ void * p_rng );
+
+static int p11_rsa_check_pair( const void * pvPub,
+ const void * pvPrv,
+ int ( * lFRng )( void *, unsigned char *, size_t ),
+ void * pvPRng );
+
+static void * p11_rsa_ctx_alloc( void );
+
+static CK_RV p11_rsa_ctx_init( void * pvCtx,
+ CK_FUNCTION_LIST_PTR pxFunctionList,
+ CK_SESSION_HANDLE xSessionHandle,
+ CK_OBJECT_HANDLE xPkHandle );
+
+static void p11_rsa_ctx_free( void * pvCtx );
+
+static void p11_rsa_debug( const void * pvCtx,
+ mbedtls_pk_debug_item * pxItems );
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief mbedtls_pk_info_t struct for PKCS#11 RSA operations.
+ */
+mbedtls_pk_info_t mbedtls_pkcs11_pk_rsa =
+{
+ .type = MBEDTLS_PK_RSA,
+ .name = "PKCS#11",
+ .get_bitlen = p11_rsa_get_bitlen,
+ .can_do = p11_rsa_can_do,
+ .verify_func = p11_rsa_verify,
+ .sign_func = p11_rsa_sign,
+ #if defined( MBEDTLS_ECDSA_C ) && defined( MBEDTLS_ECP_RESTARTABLE )
+ .verify_rs_func = NULL,
+ .sign_rs_func = NULL,
+ #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+ .decrypt_func = NULL,
+ .encrypt_func = NULL,
+ .check_pair_func = p11_rsa_check_pair,
+ .ctx_alloc_func = p11_rsa_ctx_alloc,
+ .ctx_free_func = p11_rsa_ctx_free,
+ #if defined( MBEDTLS_ECDSA_C ) && defined( MBEDTLS_ECP_RESTARTABLE )
+ .rs_alloc_func = NULL,
+ .rs_free_func = NULL,
+ #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
+ .debug_func = p11_rsa_debug,
+};
+
+/*-----------------------------------------------------------*/
+
+CK_RV xPKCS11_initMbedtlsPkContext( mbedtls_pk_context * pxMbedtlsPkCtx,
+ CK_SESSION_HANDLE xSessionHandle,
+ CK_OBJECT_HANDLE xPkHandle )
+{
+ CK_RV xResult = CKR_OK;
+
+ CK_KEY_TYPE xKeyType = CKK_VENDOR_DEFINED;
+ CK_FUNCTION_LIST_PTR pxFunctionList = NULL;
+
+ if( pxMbedtlsPkCtx == NULL )
+ {
+ xResult = CKR_ARGUMENTS_BAD;
+ }
+ else if( xSessionHandle == CK_INVALID_HANDLE )
+ {
+ xResult = CKR_SESSION_HANDLE_INVALID;
+ }
+ else if( xPkHandle == CK_INVALID_HANDLE )
+ {
+ xResult = CKR_KEY_HANDLE_INVALID;
+ }
+ else if( ( C_GetFunctionList( &pxFunctionList ) != CKR_OK ) ||
+ ( pxFunctionList == NULL ) ||
+ ( pxFunctionList->C_GetAttributeValue == NULL ) )
+ {
+ xResult = CKR_FUNCTION_FAILED;
+ }
+ /* Determine key type */
+ else
+ {
+ CK_ATTRIBUTE xAttrTemplate =
+ {
+ .pValue = &xKeyType,
+ .type = CKA_KEY_TYPE,
+ .ulValueLen = sizeof( CK_KEY_TYPE )
+ };
+
+ xResult = pxFunctionList->C_GetAttributeValue( xSessionHandle,
+ xPkHandle,
+ &xAttrTemplate,
+ sizeof( xAttrTemplate ) / sizeof( CK_ATTRIBUTE ) );
+ }
+
+ if( xResult == CKR_OK )
+ {
+ xResult = CKR_FUNCTION_FAILED;
+
+ switch( xKeyType )
+ {
+ case CKK_ECDSA:
+ pxMbedtlsPkCtx->pk_ctx = p11_ecdsa_ctx_alloc();
+
+ if( pxMbedtlsPkCtx->pk_ctx != NULL )
+ {
+ xResult = p11_ecdsa_ctx_init( pxMbedtlsPkCtx->pk_ctx,
+ pxFunctionList, xSessionHandle, xPkHandle );
+ }
+
+ if( xResult == CKR_OK )
+ {
+ pxMbedtlsPkCtx->pk_info = &mbedtls_pkcs11_pk_ecdsa;
+ }
+ else
+ {
+ p11_ecdsa_ctx_free( pxMbedtlsPkCtx->pk_ctx );
+ pxMbedtlsPkCtx->pk_ctx = NULL;
+ pxMbedtlsPkCtx->pk_info = NULL;
+ }
+
+ break;
+
+ case CKK_RSA:
+ pxMbedtlsPkCtx->pk_ctx = p11_rsa_ctx_alloc();
+
+ if( pxMbedtlsPkCtx->pk_ctx != NULL )
+ {
+ xResult = p11_rsa_ctx_init( pxMbedtlsPkCtx->pk_ctx,
+ pxFunctionList, xSessionHandle, xPkHandle );
+ }
+
+ if( xResult == CKR_OK )
+ {
+ pxMbedtlsPkCtx->pk_info = &mbedtls_pkcs11_pk_rsa;
+ }
+ else
+ {
+ p11_rsa_ctx_free( pxMbedtlsPkCtx->pk_ctx );
+ pxMbedtlsPkCtx->pk_ctx = NULL;
+ pxMbedtlsPkCtx->pk_info = NULL;
+ }
+
+ break;
+
+ default:
+ pxMbedtlsPkCtx->pk_ctx = NULL;
+ pxMbedtlsPkCtx->pk_info = NULL;
+ break;
+ }
+ }
+
+ return xResult;
+}
+
+/*-----------------------------------------------------------*/
+
+int lPKCS11PkMbedtlsCloseSessionAndFree( mbedtls_pk_context * pxMbedtlsPkCtx )
+{
+ CK_RV xResult = CKR_OK;
+ P11PkCtx_t * pxP11Ctx = NULL;
+ CK_FUNCTION_LIST_PTR pxFunctionList = NULL;
+
+ configASSERT( pxMbedtlsPkCtx );
+
+ if( pxMbedtlsPkCtx )
+ {
+ if( pxMbedtlsPkCtx->pk_info->type == MBEDTLS_PK_ECKEY )
+ {
+ pxP11Ctx = &( ( ( P11EcDsaCtx_t * ) ( pxMbedtlsPkCtx->pk_ctx ) )->xP11PkCtx );
+ }
+ else if( pxMbedtlsPkCtx->pk_info->type == MBEDTLS_PK_RSA )
+ {
+ pxP11Ctx = &( ( ( P11RsaCtx_t * ) ( pxMbedtlsPkCtx->pk_ctx ) )->xP11PkCtx );
+ }
+ else
+ {
+ pxP11Ctx = NULL;
+ xResult = CKR_FUNCTION_FAILED;
+ }
+ }
+ else
+ {
+ xResult = CKR_FUNCTION_FAILED;
+ }
+
+ if( xResult == CKR_OK )
+ {
+ xResult = C_GetFunctionList( &pxFunctionList );
+ }
+
+ if( xResult == CKR_OK )
+ {
+ configASSERT( pxFunctionList );
+ xResult = pxFunctionList->C_CloseSession( pxP11Ctx->xSessionHandle );
+ }
+
+ if( xResult == CKR_OK )
+ {
+ pxP11Ctx->xSessionHandle = CK_INVALID_HANDLE;
+ }
+
+ return( xResult == CKR_OK ? 0 : -1 );
+}
+
+/*-----------------------------------------------------------*/
+
+int lPKCS11RandomCallback( void * pvCtx,
+ unsigned char * pucOutput,
+ size_t uxLen )
+{
+ int lRslt;
+ CK_FUNCTION_LIST_PTR pxFunctionList = NULL;
+ CK_SESSION_HANDLE * pxSessionHandle = ( CK_SESSION_HANDLE * ) pvCtx;
+
+ if( pucOutput == NULL )
+ {
+ lRslt = -1;
+ }
+ else if( pvCtx == NULL )
+ {
+ lRslt = -1;
+ LogError( ( "pvCtx must not be NULL." ) );
+ }
+ else
+ {
+ lRslt = ( int ) C_GetFunctionList( &pxFunctionList );
+ }
+
+ if( ( lRslt != CKR_OK ) ||
+ ( pxFunctionList == NULL ) ||
+ ( pxFunctionList->C_GenerateRandom == NULL ) )
+ {
+ lRslt = -1;
+ }
+ else
+ {
+ lRslt = ( int ) pxFunctionList->C_GenerateRandom( *pxSessionHandle, pucOutput, uxLen );
+ }
+
+ return lRslt;
+}
+
+/*-----------------------------------------------------------*/
+
+static void * p11_ecdsa_ctx_alloc( void )
+{
+ void * pvCtx = NULL;
+
+ pvCtx = mbedtls_calloc( 1, sizeof( P11EcDsaCtx_t ) );
+
+ if( pvCtx != NULL )
+ {
+ P11EcDsaCtx_t * pxP11EcDsa = ( P11EcDsaCtx_t * ) pvCtx;
+
+ /* Initialize other fields */
+ pxP11EcDsa->xP11PkCtx.pxFunctionList = NULL;
+ pxP11EcDsa->xP11PkCtx.xSessionHandle = CK_INVALID_HANDLE;
+ pxP11EcDsa->xP11PkCtx.xPkHandle = CK_INVALID_HANDLE;
+
+ mbedtls_ecdsa_init( &( pxP11EcDsa->xMbedEcDsaCtx ) );
+ }
+
+ return pvCtx;
+}
+
+static void p11_ecdsa_ctx_free( void * pvCtx )
+{
+ if( pvCtx != NULL )
+ {
+ P11EcDsaCtx_t * pxP11EcDsa = ( P11EcDsaCtx_t * ) pvCtx;
+
+ mbedtls_ecdsa_free( &( pxP11EcDsa->xMbedEcDsaCtx ) );
+
+ mbedtls_free( pvCtx );
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+static CK_RV p11_ecdsa_ctx_init( void * pvCtx,
+ CK_FUNCTION_LIST_PTR pxFunctionList,
+ CK_SESSION_HANDLE xSessionHandle,
+ CK_OBJECT_HANDLE xPkHandle )
+{
+ CK_RV xResult = CKR_OK;
+ P11EcDsaCtx_t * pxP11EcDsaCtx = ( P11EcDsaCtx_t * ) pvCtx;
+ mbedtls_ecdsa_context * pxMbedEcDsaCtx = NULL;
+
+ configASSERT( pxFunctionList != NULL );
+ configASSERT( xSessionHandle != CK_INVALID_HANDLE );
+ configASSERT( xPkHandle != CK_INVALID_HANDLE );
+
+ if( pxP11EcDsaCtx != NULL )
+ {
+ pxMbedEcDsaCtx = &( pxP11EcDsaCtx->xMbedEcDsaCtx );
+ }
+ else
+ {
+ xResult = CKR_FUNCTION_FAILED;
+ }
+
+ /* Initialize public EC parameter data from attributes */
+
+ CK_ATTRIBUTE pxAttrs[ 2 ] =
+ {
+ { .type = CKA_EC_PARAMS, .ulValueLen = 0, .pValue = NULL },
+ { .type = CKA_EC_POINT, .ulValueLen = 0, .pValue = NULL }
+ };
+
+ /* Determine necessary size */
+ xResult = pxFunctionList->C_GetAttributeValue( xSessionHandle,
+ xPkHandle,
+ pxAttrs,
+ sizeof( pxAttrs ) / sizeof( CK_ATTRIBUTE ) );
+
+ if( xResult == CKR_OK )
+ {
+ if( pxAttrs[ 0 ].ulValueLen > 0 )
+ {
+ pxAttrs[ 0 ].pValue = pvPortMalloc( pxAttrs[ 0 ].ulValueLen );
+ }
+
+ if( pxAttrs[ 1 ].ulValueLen > 0 )
+ {
+ pxAttrs[ 1 ].pValue = pvPortMalloc( pxAttrs[ 1 ].ulValueLen );
+ }
+
+ xResult = pxFunctionList->C_GetAttributeValue( xSessionHandle,
+ xPkHandle,
+ pxAttrs,
+ 2 );
+ }
+
+ /* Parse EC Group */
+ if( xResult == CKR_OK )
+ {
+ /*TODO: Parse the ECParameters object */
+ int lResult = mbedtls_ecp_group_load( &( pxMbedEcDsaCtx->grp ), MBEDTLS_ECP_DP_SECP256R1 );
+
+ if( lResult != 0 )
+ {
+ xResult = CKR_FUNCTION_FAILED;
+ }
+ }
+
+ /* Parse ECPoint */
+ if( xResult == CKR_OK )
+ {
+ unsigned char * pucIterator = pxAttrs[ 1 ].pValue;
+ size_t uxLen = pxAttrs[ 1 ].ulValueLen;
+ int lResult = 0;
+
+ lResult = mbedtls_asn1_get_tag( &pucIterator, &( pucIterator[ uxLen ] ), &uxLen, MBEDTLS_ASN1_OCTET_STRING );
+
+ if( lResult != 0 )
+ {
+ xResult = CKR_GENERAL_ERROR;
+ }
+ else
+ {
+ lResult = mbedtls_ecp_point_read_binary( &( pxMbedEcDsaCtx->grp ),
+ &( pxMbedEcDsaCtx->Q ),
+ pucIterator,
+ uxLen );
+ }
+
+ if( lResult != 0 )
+ {
+ xResult = CKR_GENERAL_ERROR;
+ }
+ }
+
+ if( pxAttrs[ 0 ].pValue != NULL )
+ {
+ vPortFree( pxAttrs[ 0 ].pValue );
+ }
+
+ if( pxAttrs[ 1 ].pValue != NULL )
+ {
+ vPortFree( pxAttrs[ 1 ].pValue );
+ }
+
+ if( xResult == CKR_OK )
+ {
+ pxP11EcDsaCtx->xP11PkCtx.pxFunctionList = pxFunctionList;
+ pxP11EcDsaCtx->xP11PkCtx.xSessionHandle = xSessionHandle;
+ pxP11EcDsaCtx->xP11PkCtx.xPkHandle = xPkHandle;
+ }
+
+ return xResult;
+}
+
+/*-----------------------------------------------------------*/
+
+static int prvASN1WriteBigIntFromOctetStr( unsigned char ** ppucPosition,
+ const unsigned char * pucStart,
+ const unsigned char * pucOctetStr,
+ size_t uxOctetStrLen )
+{
+ size_t uxRequiredLen = 0;
+ int lReturn = 0;
+
+ /* Check if zero byte is needed at beginning */
+ if( pucOctetStr[ 0 ] > 0x7F )
+ {
+ uxRequiredLen = uxOctetStrLen + 1;
+ }
+ else
+ {
+ uxRequiredLen = uxOctetStrLen;
+ }
+
+ if( ( *ppucPosition - uxRequiredLen ) >= pucStart )
+ {
+ *ppucPosition = *ppucPosition - uxOctetStrLen;
+
+ /* Copy octet string */
+ ( void ) memcpy( *ppucPosition, pucOctetStr, uxOctetStrLen );
+
+ /* Prepend additional byte if necessary */
+ if( pucOctetStr[ 0 ] > 0x7F )
+ {
+ *ppucPosition = &( ( *ppucPosition )[ -1 ] );
+ **ppucPosition = 0;
+ }
+
+ lReturn = mbedtls_asn1_write_len( ppucPosition, pucStart, uxRequiredLen );
+
+ if( lReturn > 0 )
+ {
+ uxRequiredLen += ( size_t ) lReturn;
+ lReturn = mbedtls_asn1_write_tag( ppucPosition, pucStart, MBEDTLS_ASN1_INTEGER );
+ }
+
+ if( lReturn > 0 )
+ {
+ lReturn = ( size_t ) lReturn + uxRequiredLen;
+ }
+ }
+
+ return lReturn;
+}
+
+/*-----------------------------------------------------------*/
+
+/*
+ * SEQUENCE LENGTH (of entire rest of signature)
+ * INTEGER LENGTH (of R component)
+ * INTEGER LENGTH (of S component)
+ */
+static int prvEcdsaSigToASN1InPlace( unsigned char * pucSig,
+ size_t xSigBufferSize,
+ size_t * pxSigLen )
+{
+ unsigned char pucTempBuf[ MBEDTLS_ECDSA_MAX_LEN ] = { 0 };
+ unsigned char * pucPosition = pucTempBuf + sizeof( pucTempBuf );
+
+ size_t uxLen = 0;
+ int lReturn = 0;
+ size_t xComponentLen;
+
+ configASSERT( pucSig != NULL );
+ configASSERT( pxSigLen != NULL );
+ configASSERT( xSigBufferSize > *pxSigLen );
+
+ xComponentLen = ( *pxSigLen ) / 2;
+
+ /* Write "S" portion VLT */
+ lReturn = prvASN1WriteBigIntFromOctetStr( &pucPosition, pucTempBuf,
+ &( pucSig[ xComponentLen ] ), xComponentLen );
+
+ /* Write "R" Portion VLT */
+ if( lReturn > 0 )
+ {
+ uxLen += ( size_t ) lReturn;
+ lReturn = prvASN1WriteBigIntFromOctetStr( &pucPosition, pucTempBuf,
+ pucSig, xComponentLen );
+ }
+
+ if( lReturn > 0 )
+ {
+ uxLen += ( size_t ) lReturn;
+ lReturn = mbedtls_asn1_write_len( &pucPosition, pucTempBuf, uxLen );
+ }
+
+ if( lReturn > 0 )
+ {
+ uxLen += ( size_t ) lReturn;
+ lReturn = mbedtls_asn1_write_tag( &pucPosition, pucTempBuf,
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE );
+ }
+
+ if( lReturn > 0 )
+ {
+ uxLen += ( size_t ) lReturn;
+ }
+
+ if( ( lReturn > 0 ) && ( uxLen <= xSigBufferSize ) )
+ {
+ ( void ) memcpy( pucSig, pucPosition, uxLen );
+ *pxSigLen = uxLen;
+ lReturn = 0;
+ }
+ else
+ {
+ lReturn = -1;
+ }
+
+ return lReturn;
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_ecdsa_sign( void * pvCtx,
+ mbedtls_md_type_t xMdAlg,
+ const unsigned char * pucHash,
+ size_t xHashLen,
+ unsigned char * pucSig,
+ size_t xSigBufferSize,
+ size_t * pxSigLen,
+ int ( * plRng )( void *, unsigned char *, size_t ),
+ void * pvRng )
+{
+ CK_RV xResult = CKR_OK;
+ int32_t lFinalResult = 0;
+ const P11EcDsaCtx_t * pxEcDsaCtx = NULL;
+ const P11PkCtx_t * pxP11Ctx = NULL;
+ unsigned char pucHashCopy[ MBEDTLS_MD_MAX_SIZE ];
+
+ CK_MECHANISM xMech =
+ {
+ .mechanism = CKM_ECDSA,
+ .pParameter = NULL,
+ .ulParameterLen = 0
+ };
+
+ /* Unused parameters. */
+ ( void ) ( xMdAlg );
+ ( void ) ( plRng );
+ ( void ) ( pvRng );
+
+ configASSERT( pucSig != NULL );
+ configASSERT( xSigBufferSize > 0 );
+ configASSERT( pxSigLen != NULL );
+ configASSERT( pucHash != NULL );
+ configASSERT( xHashLen > 0 );
+
+ if( pvCtx != NULL )
+ {
+ pxEcDsaCtx = ( P11EcDsaCtx_t * ) pvCtx;
+ pxP11Ctx = &( pxEcDsaCtx->xP11PkCtx );
+ }
+ else
+ {
+ xResult = CKR_FUNCTION_FAILED;
+ }
+
+ if( CKR_OK == xResult )
+ {
+ /* Use the PKCS#11 module to sign. */
+ xResult = pxP11Ctx->pxFunctionList->C_SignInit( pxP11Ctx->xSessionHandle,
+ &xMech,
+ pxP11Ctx->xPkHandle );
+ }
+
+ if( CKR_OK == xResult )
+ {
+ CK_ULONG ulSigLen = xSigBufferSize;
+
+ ( void ) memcpy( pucHashCopy, pucHash, xHashLen );
+
+ xResult = pxP11Ctx->pxFunctionList->C_Sign( pxP11Ctx->xSessionHandle,
+ pucHashCopy, xHashLen,
+ pucSig, &ulSigLen );
+
+ if( xResult == CKR_OK )
+ {
+ *pxSigLen = ulSigLen;
+ }
+ }
+
+ if( xResult != CKR_OK )
+ {
+ LogError( ( "Failed to sign message using PKCS #11 with error code %02X.", xResult ) );
+ lFinalResult = -1;
+ }
+ else
+ {
+ lFinalResult = prvEcdsaSigToASN1InPlace( pucSig, xSigBufferSize, pxSigLen );
+ }
+
+ return lFinalResult;
+}
+
+/*-----------------------------------------------------------*/
+
+static size_t p11_ecdsa_get_bitlen( const void * pvCtx )
+{
+ P11EcDsaCtx_t * pxEcDsaCtx = ( P11EcDsaCtx_t * ) pvCtx;
+
+ configASSERT( mbedtls_ecdsa_info.get_bitlen );
+
+ return mbedtls_ecdsa_info.get_bitlen( &( pxEcDsaCtx->xMbedEcDsaCtx ) );
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_ecdsa_can_do( mbedtls_pk_type_t xType )
+{
+ return( xType == MBEDTLS_PK_ECDSA );
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_ecdsa_verify( void * pvCtx,
+ mbedtls_md_type_t xMdAlg,
+ const unsigned char * pucHash,
+ size_t xHashLen,
+ const unsigned char * pucSig,
+ size_t xSigLen )
+{
+ P11EcDsaCtx_t * pxEcDsaCtx = ( P11EcDsaCtx_t * ) pvCtx;
+
+ configASSERT( mbedtls_ecdsa_info.verify_func );
+
+ return mbedtls_ecdsa_info.verify_func( &( pxEcDsaCtx->xMbedEcDsaCtx ),
+ xMdAlg,
+ pucHash, xHashLen,
+ pucSig, xSigLen );
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_ecdsa_check_pair( const void * pvPub,
+ const void * pvPrv,
+ int ( * lFRng )( void *, unsigned char *, size_t ),
+ void * pvPRng )
+{
+ mbedtls_ecp_keypair * pxPubKey = ( mbedtls_ecp_keypair * ) pvPub;
+ mbedtls_ecp_keypair * pxPrvKey = ( mbedtls_ecp_keypair * ) pvPrv;
+
+ P11EcDsaCtx_t * pxP11PrvKey = ( P11EcDsaCtx_t * ) pvPrv;
+ int lResult = 0;
+
+ ( void ) lFRng;
+ ( void ) pvPRng;
+
+ if( ( pxPubKey == NULL ) || ( pxPrvKey == NULL ) )
+ {
+ lResult = -1;
+ }
+
+ if( lResult == 0 )
+ {
+ if( ( pxPubKey->grp.id == MBEDTLS_ECP_DP_NONE ) ||
+ ( pxPubKey->grp.id != pxPrvKey->grp.id ) )
+ {
+ lResult = MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+ }
+
+ /* Compare public key points */
+ if( lResult == 0 )
+ {
+ lResult = mbedtls_mpi_cmp_mpi( &( pxPubKey->Q.X ), &( pxPrvKey->Q.X ) );
+ }
+
+ if( lResult == 0 )
+ {
+ lResult = mbedtls_mpi_cmp_mpi( &( pxPubKey->Q.Y ), &( pxPrvKey->Q.Y ) );
+ }
+
+ if( lResult == 0 )
+ {
+ lResult = mbedtls_mpi_cmp_mpi( &( pxPubKey->Q.Z ), &( pxPrvKey->Q.Z ) );
+ }
+
+ /* Test sign op */
+ if( lResult == 0 )
+ {
+ unsigned char pucTestHash[ 32 ] =
+ {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
+ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
+ 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38
+ };
+ unsigned char pucTestSignature[ MBEDTLS_ECDSA_MAX_SIG_LEN( 256 ) ] = { 0 };
+ size_t uxSigLen = 0;
+ lResult = p11_ecdsa_sign( ( void * ) ( void * ) pvPrv, MBEDTLS_MD_SHA256,
+ pucTestHash, sizeof( pucTestHash ),
+ pucTestSignature, sizeof( pucTestSignature ), &uxSigLen,
+ NULL, NULL );
+
+ if( lResult == 0 )
+ {
+ lResult = mbedtls_ecdsa_read_signature( pxPubKey,
+ pucTestHash, sizeof( pucTestHash ),
+ pucTestSignature, uxSigLen );
+ }
+ }
+
+ return lResult;
+}
+
+/*-----------------------------------------------------------*/
+
+static void p11_ecdsa_debug( const void * pvCtx,
+ mbedtls_pk_debug_item * pxItems )
+{
+ P11EcDsaCtx_t * pxEcDsaCtx = ( P11EcDsaCtx_t * ) pvCtx;
+
+ configASSERT( mbedtls_ecdsa_info.debug_func );
+
+ mbedtls_ecdsa_info.debug_func( &( pxEcDsaCtx->xMbedEcDsaCtx ), pxItems );
+}
+
+/*-----------------------------------------------------------*/
+
+static size_t p11_rsa_get_bitlen( const void * pvCtx )
+{
+ P11RsaCtx_t * pxRsaCtx = ( P11RsaCtx_t * ) pvCtx;
+
+ configASSERT( mbedtls_rsa_info.get_bitlen );
+
+ return mbedtls_rsa_info.get_bitlen( &( pxRsaCtx->xMbedRsaCtx ) );
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_rsa_can_do( mbedtls_pk_type_t xType )
+{
+ return( xType == MBEDTLS_PK_RSA );
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_rsa_verify( void * pvCtx,
+ mbedtls_md_type_t xMdAlg,
+ const unsigned char * pucHash,
+ size_t xHashLen,
+ const unsigned char * pucSig,
+ size_t xSigLen )
+{
+ P11RsaCtx_t * pxRsaCtx = ( P11RsaCtx_t * ) pvCtx;
+
+ configASSERT( mbedtls_rsa_info.verify_func );
+
+ return mbedtls_rsa_info.verify_func( &( pxRsaCtx->xMbedRsaCtx ),
+ xMdAlg,
+ pucHash, xHashLen,
+ pucSig, xSigLen );
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_rsa_sign( void * pvCtx,
+ mbedtls_md_type_t xMdAlg,
+ const unsigned char * pucHash,
+ size_t xHashLen,
+ unsigned char * pucSig,
+ size_t xSigBufferSize,
+ size_t * pxSigLen,
+ int ( * plRng )( void *, unsigned char *, size_t ),
+ void * pvRng )
+{
+ CK_RV xResult = CKR_OK;
+ int32_t lFinalResult = 0;
+
+ const P11RsaCtx_t * pxP11RsaCtx = NULL;
+ const P11PkCtx_t * pxP11Ctx = NULL;
+
+ CK_BYTE pxToBeSigned[ 256 ];
+
+ CK_MECHANISM xMech =
+ {
+ .mechanism = CKM_RSA_PKCS,
+ .pParameter = NULL,
+ .ulParameterLen = 0
+ };
+
+ /* Unused parameters. */
+ ( void ) ( plRng );
+ ( void ) ( pvRng );
+
+ configASSERT( pucSig != NULL );
+ configASSERT( xSigBufferSize > 0 );
+ configASSERT( pxSigLen != NULL );
+ configASSERT( pucHash != NULL );
+ configASSERT( xHashLen > 0 );
+
+ configASSERT( xMdAlg == MBEDTLS_MD_SHA256 );
+ configASSERT( xHashLen <= sizeof( pxToBeSigned ) );
+
+ /* Sanity check buffer length. */
+ if( xHashLen > sizeof( pxToBeSigned ) )
+ {
+ xResult = CKR_ARGUMENTS_BAD;
+ }
+ else if( pvCtx != NULL )
+ {
+ pxP11RsaCtx = ( P11RsaCtx_t * ) pvCtx;
+ pxP11Ctx = &( pxP11RsaCtx->xP11PkCtx );
+ }
+ else
+ {
+ xResult = CKR_FUNCTION_FAILED;
+ }
+
+ if( xResult == CKR_OK )
+ {
+ xResult = vAppendSHA256AlgorithmIdentifierSequence( ( uint8_t * ) pucHash, pxToBeSigned );
+ }
+
+ if( CKR_OK == xResult )
+ {
+ /* Use the PKCS#11 module to sign. */
+ xResult = pxP11Ctx->pxFunctionList->C_SignInit( pxP11Ctx->xSessionHandle,
+ &xMech,
+ pxP11Ctx->xPkHandle );
+ }
+
+ if( CKR_OK == xResult )
+ {
+ CK_ULONG ulSigLen = sizeof( pxToBeSigned );
+
+ xResult = pxP11Ctx->pxFunctionList->C_Sign( pxP11Ctx->xSessionHandle,
+ pxToBeSigned,
+ pkcs11RSA_SIGNATURE_INPUT_LENGTH,
+ pucSig,
+ &ulSigLen );
+
+ *pxSigLen = ( size_t ) ulSigLen;
+ }
+
+ if( xResult != CKR_OK )
+ {
+ LogError( ( "Failed to sign message using PKCS #11 with error code %02X.", xResult ) );
+ lFinalResult = -1;
+ }
+
+ return lFinalResult;
+}
+
+/*-----------------------------------------------------------*/
+
+static int p11_rsa_check_pair( const void * pvPub,
+ const void * pvPrv,
+ int ( * lFRng )( void *, unsigned char *, size_t ),
+ void * pvPRng )
+{
+ P11RsaCtx_t * pxP11RsaCtx = ( P11RsaCtx_t * ) pvPrv;
+
+ configASSERT( mbedtls_rsa_info.check_pair_func );
+
+ return mbedtls_rsa_info.check_pair_func( pvPub, &( pxP11RsaCtx->xMbedRsaCtx ),
+ lFRng, pvPRng );
+}
+
+/*-----------------------------------------------------------*/
+
+static void * p11_rsa_ctx_alloc( void )
+{
+ void * pvCtx = NULL;
+
+ pvCtx = mbedtls_calloc( 1, sizeof( P11RsaCtx_t ) );
+
+ if( pvCtx != NULL )
+ {
+ P11RsaCtx_t * pxP11Rsa = ( P11RsaCtx_t * ) pvCtx;
+
+ /* Initialize other fields */
+ pxP11Rsa->xP11PkCtx.pxFunctionList = NULL;
+ pxP11Rsa->xP11PkCtx.xSessionHandle = CK_INVALID_HANDLE;
+ pxP11Rsa->xP11PkCtx.xPkHandle = CK_INVALID_HANDLE;
+
+ mbedtls_rsa_init( &( pxP11Rsa->xMbedRsaCtx ) );
+ }
+
+ return pvCtx;
+}
+
+/*-----------------------------------------------------------*/
+
+static CK_RV p11_rsa_ctx_init( void * pvCtx,
+ CK_FUNCTION_LIST_PTR pxFunctionList,
+ CK_SESSION_HANDLE xSessionHandle,
+ CK_OBJECT_HANDLE xPkHandle )
+{
+ CK_RV xResult = CKR_OK;
+ P11RsaCtx_t * pxP11RsaCtx = ( P11RsaCtx_t * ) pvCtx;
+ mbedtls_rsa_context * pxMbedRsaCtx = NULL;
+
+ configASSERT( pxFunctionList != NULL );
+ configASSERT( xSessionHandle != CK_INVALID_HANDLE );
+ configASSERT( xPkHandle != CK_INVALID_HANDLE );
+
+ if( pxP11RsaCtx != NULL )
+ {
+ pxMbedRsaCtx = &( pxP11RsaCtx->xMbedRsaCtx );
+ }
+ else
+ {
+ xResult = CKR_FUNCTION_FAILED;
+ }
+
+ /*
+ * TODO: corePKCS11 does not allow exporting RSA public attributes.
+ * This function should be updated to properly initialize the
+ * mbedtls_rsa_context when this is addressed.
+ */
+
+ /* CK_ATTRIBUTE pxAttrs[ 2 ] = */
+ /* { */
+ /* { .type = CKA_MODULUS, .ulValueLen = 0, .pValue = NULL }, */
+ /* { .type = CKA_PUBLIC_EXPONENT, .ulValueLen = 0, .pValue = NULL }, */
+ /* { .type = CKA_PRIME_1, .ulValueLen = 0, .pValue = NULL }, */
+ /* { .type = CKA_PRIME_2, .ulValueLen = 0, .pValue = NULL }, */
+ /* { .type = CKA_EXPONENT_1, .ulValueLen = 0, .pValue = NULL }, */
+ /* { .type = CKA_EXPONENT_2, .ulValueLen = 0, .pValue = NULL }, */
+ /* { .type = CKA_COEFFICIENT, .ulValueLen = 0, .pValue = NULL }, */
+ /* }; */
+
+ ( void ) pxMbedRsaCtx;
+
+ if( xResult == CKR_OK )
+ {
+ pxP11RsaCtx->xP11PkCtx.pxFunctionList = pxFunctionList;
+ pxP11RsaCtx->xP11PkCtx.xSessionHandle = xSessionHandle;
+ pxP11RsaCtx->xP11PkCtx.xPkHandle = xPkHandle;
+ }
+
+ return xResult;
+}
+
+/*-----------------------------------------------------------*/
+
+static void p11_rsa_ctx_free( void * pvCtx )
+{
+ if( pvCtx != NULL )
+ {
+ P11RsaCtx_t * pxP11Rsa = ( P11RsaCtx_t * ) pvCtx;
+
+ mbedtls_rsa_free( &( pxP11Rsa->xMbedRsaCtx ) );
+
+ mbedtls_free( pvCtx );
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+static void p11_rsa_debug( const void * pvCtx,
+ mbedtls_pk_debug_item * pxItems )
+{
+ P11RsaCtx_t * pxP11RsaCtx = ( P11RsaCtx_t * ) pvCtx;
+
+ configASSERT( mbedtls_rsa_info.debug_func );
+
+ mbedtls_rsa_info.debug_func( &( pxP11RsaCtx->xMbedRsaCtx ), pxItems );
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_pk_pkcs11.h b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_pk_pkcs11.h
new file mode 100644
index 00000000000..9c6f268d3fd
--- /dev/null
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/mbedtls_pk_pkcs11.h
@@ -0,0 +1,73 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+#ifndef MBEDTLS_PK_PKCS11_H
+#define MBEDTLS_PK_PKCS11_H
+
+#include
+#include "mbedtls/pk.h"
+#include "core_pkcs11_config.h"
+#include "core_pkcs11.h"
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Initialize an mbedtls_pk_context for the given PKCS11 object handle.
+ *
+ * @param pxMbedtlsPkCtx Pointer to an MbedTLS PK context to initialize.
+ * @param xSessionHandle Handle of an initialize PKCS#11 session.
+ * @param xPkHandle Handle of a PKCS11 Private Key object.
+ * @return CK_RV CKR_OK on success.
+ */
+CK_RV xPKCS11_initMbedtlsPkContext( mbedtls_pk_context * pxMbedtlsPkCtx,
+ CK_SESSION_HANDLE xSessionHandle,
+ CK_OBJECT_HANDLE xPkHandle );
+
+/**
+ * @brief Close the PKCS11 session and free the relevant pk context.
+ *
+ * @param pxMbedtlsPkCtx Pointer to the mbedtls_pk_context to free
+ * @return 0 on success
+ * @return A negative number on failure
+ */
+int lPKCS11PkMbedtlsCloseSessionAndFree( mbedtls_pk_context * pxMbedtlsPkCtx );
+
+/**
+ * @brief Callback to generate random data with the PKCS11 module.
+ *
+ * @param[in] pvCtx void pointer to the
+ * @param[in] pucRandom Byte array to fill with random data.
+ * @param[in] xRandomLength Length of byte array.
+ *
+ * @return 0 on success.
+ */
+int lPKCS11RandomCallback( void * pvCtx,
+ unsigned char * pucOutput,
+ size_t uxLen );
+
+
+
+#endif /* MBEDTLS_PK_PKCS11_H */
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/cellular/sockets_wrapper.h b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/include/tcp_sockets_wrapper.h
similarity index 51%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/cellular/sockets_wrapper.h
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/include/tcp_sockets_wrapper.h
index be84e85360a..a9fa76f798b 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/cellular/sockets_wrapper.h
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/include/tcp_sockets_wrapper.h
@@ -26,56 +26,38 @@
/**
* @file sockets_wrapper.h
- * @brief FreeRTOS Sockets connect and disconnect function wrapper.
+ * @brief TCP transport functions wrapper.
*/
-#ifndef SOCKETS_WRAPPER_H
-#define SOCKETS_WRAPPER_H
-
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Logging related header files are required to be included in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL.
- * 3. Include the header file "logging_stack.h".
- */
-
-/* Include header that defines log levels. */
-#include "logging_levels.h"
-
-/* Logging configuration for the Sockets. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "Sockets"
-#endif
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_INFO
+#ifndef TCP_SOCKETS_WRAPPER_H
+#define TCP_SOCKETS_WRAPPER_H
+
+
+/* Standard includes. */
+#include
+
+/* FreeRTOS Kernel includes. */
+#include "FreeRTOS.h"
+
+/* Error codes. */
+#define TCP_SOCKETS_ERRNO_NONE ( 0 ) /*!< No error. */
+#define TCP_SOCKETS_ERRNO_ERROR ( -1 ) /*!< Catch-all sockets error code. */
+#define TCP_SOCKETS_ERRNO_EWOULDBLOCK ( -2 ) /*!< A resource is temporarily unavailable. */
+#define TCP_SOCKETS_ERRNO_ENOMEM ( -3 ) /*!< Memory allocation failed. */
+#define TCP_SOCKETS_ERRNO_EINVAL ( -4 ) /*!< Invalid argument. */
+#define TCP_SOCKETS_ERRNO_ENOPROTOOPT ( -5 ) /*!< A bad option was specified . */
+#define TCP_SOCKETS_ERRNO_ENOTCONN ( -6 ) /*!< The supplied socket is not connected. */
+#define TCP_SOCKETS_ERRNO_EISCONN ( -7 ) /*!< The supplied socket is already connected. */
+#define TCP_SOCKETS_ERRNO_ECLOSED ( -8 ) /*!< The supplied socket has already been closed. */
+#define TCP_SOCKETS_ERRNO_PERIPHERAL_RESET ( -9 ) /*!< Communications peripheral has been reset. */
+#define TCP_SOCKETS_ERRNO_ENOSPC ( -10 ) /*!< No space left on device */
+#define TCP_SOCKETS_ERRNO_EINTR ( -11 ) /*!< Interrupted system call */
+
+#ifndef SOCKET_T_TYPEDEFED
+ struct xSOCKET;
+ typedef struct xSOCKET * Socket_t; /**< @brief Socket handle data type. */
#endif
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-#include "logging_stack.h"
-
-/************ End of logging configuration ****************/
-
-#define SOCKETS_ERROR_NONE ( 0 ) /*!< No error. */
-#define SOCKETS_SOCKET_ERROR ( -1 ) /*!< Catch-all sockets error code. */
-#define SOCKETS_EWOULDBLOCK ( -11 ) /*!< A resource is temporarily unavailable. */
-#define SOCKETS_ENOMEM ( -12 ) /*!< Memory allocation failed. */
-#define SOCKETS_EINVAL ( -22 ) /*!< Invalid argument. */
-#define SOCKETS_ENOPROTOOPT ( -109 ) /*!< A bad option was specified . */
-#define SOCKETS_ENOTCONN ( -126 ) /*!< The supplied socket is not connected. */
-#define SOCKETS_EISCONN ( -127 ) /*!< The supplied socket is already connected. */
-#define SOCKETS_ECLOSED ( -128 ) /*!< The supplied socket has already been closed. */
-#define SOCKETS_PERIPHERAL_RESET ( -1006 ) /*!< Communications peripheral has been reset. */
-
-#define SOCKETS_INVALID_SOCKET ( ( Socket_t ) ~0U )
-
-struct xSOCKET;
-typedef struct xSOCKET * Socket_t; /**< @brief Socket handle data type. */
-
/**
* @brief Establish a connection to server.
*
@@ -89,23 +71,23 @@ typedef struct xSOCKET * Socket_t; /**< @brief Socket handle data type. */
*
* @return Non-zero value on error, 0 on success.
*/
-BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
- const char * pHostName,
- uint16_t port,
- uint32_t receiveTimeoutMs,
- uint32_t sendTimeoutMs );
+BaseType_t TCP_Sockets_Connect( Socket_t * pTcpSocket,
+ const char * pHostName,
+ uint16_t port,
+ uint32_t receiveTimeoutMs,
+ uint32_t sendTimeoutMs );
/**
* @brief End connection to server.
*
* @param[in] tcpSocket The socket descriptor.
*/
-void Sockets_Disconnect( Socket_t tcpSocket );
+void TCP_Sockets_Disconnect( Socket_t tcpSocket );
/**
* @brief Transmit data to the remote socket.
*
- * The socket must have already been created using a call to Sockets_Connect().
+ * The socket must have already been created using a call to TCP_Sockets_Connect().
*
* @param[in] xSocket The handle of the sending socket.
* @param[in] pvBuffer The buffer containing the data to be sent.
@@ -115,14 +97,14 @@ void Sockets_Disconnect( Socket_t tcpSocket );
* * On success, the number of bytes actually sent is returned.
* * If an error occurred, a negative value is returned. @ref SocketsErrors
*/
-int32_t Sockets_Send( Socket_t xSocket,
- const void * pvBuffer,
- size_t xDataLength );
+int32_t TCP_Sockets_Send( Socket_t xSocket,
+ const void * pvBuffer,
+ size_t xDataLength );
/**
* @brief Receive data from a TCP socket.
*
- * The socket must have already been created using a call to Sockets_Connect().
+ * The socket must have already been created using a call to TCP_Sockets_Connect().
*
* @param[in] xSocket The handle of the socket from which data is being received.
* @param[out] pvBuffer The buffer into which the received data will be placed.
@@ -136,8 +118,8 @@ int32_t Sockets_Send( Socket_t xSocket,
* is set using @ref SOCKETS_SO_RCVTIMEO).
* * If an error occurred, a negative value is returned. @ref SocketsErrors
*/
-int32_t Sockets_Recv( Socket_t xSocket,
- void * pvBuffer,
- size_t xBufferLength );
+int32_t TCP_Sockets_Recv( Socket_t xSocket,
+ void * pvBuffer,
+ size_t xBufferLength );
-#endif /* ifndef SOCKETS_WRAPPER_H */
+#endif /* ifndef TCP_SOCKETS_WRAPPER_H */
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/cellular/sockets_wrapper.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/cellular/tcp_sockets_wrapper.c
similarity index 81%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/cellular/sockets_wrapper.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/cellular/tcp_sockets_wrapper.c
index 42a5a94fe18..eaec2a6ed23 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/cellular/sockets_wrapper.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/cellular/tcp_sockets_wrapper.c
@@ -24,6 +24,32 @@
*
*/
+/* Include header that defines log levels. */
+#include "logging_levels.h"
+
+/* Logging configuration for the Sockets. */
+#ifndef LIBRARY_LOG_NAME
+ #define LIBRARY_LOG_NAME "TCP Sockets"
+#endif
+#ifndef LIBRARY_LOG_LEVEL
+ #define LIBRARY_LOG_LEVEL LOG_ERROR
+#endif
+
+/* Prototype for the function used to print to console on Windows simulator
+ * of FreeRTOS.
+ * The function prints to the console before the network is connected;
+ * then a UDP port after the network has connected. */
+extern void vLoggingPrintf( const char * pcFormatString,
+ ... );
+
+/* Map the SdkLog macro to the logging function to enable logging
+ * on Windows simulator. */
+#ifndef SdkLog
+ #define SdkLog( message ) vLoggingPrintf message
+#endif
+
+#include "logging_stack.h"
+
/* Standard includes. */
#include
#include
@@ -33,8 +59,8 @@
#include "FreeRTOS.h"
#include "event_groups.h"
-/* Sockets wrapper includes. */
-#include "sockets_wrapper.h"
+/* TCP sockets wrapper includes. */
+#include "tcp_sockets_wrapper.h"
/* FreeRTOS Cellular Library api includes. */
#include "cellular_config.h"
@@ -44,7 +70,7 @@
/* Configure logs for the functions in this file. */
#include "logging_levels.h"
#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "CELLULAR_SOCKETS"
+ #define LIBRARY_LOG_NAME "CellularSocket"
#endif
#ifndef LIBRARY_LOG_LEVEL
#define LIBRARY_LOG_LEVEL LOG_INFO
@@ -93,11 +119,8 @@ extern uint8_t CellularSocketPdnContextId;
#define _MILLISECONDS_PER_SECOND ( 1000 ) /**< @brief Milliseconds per second. */
#define _MILLISECONDS_PER_TICK ( _MILLISECONDS_PER_SECOND / configTICK_RATE_HZ ) /**< Milliseconds per FreeRTOS tick. */
-/* Logging macros definition. */
-#define IotLogError( ... ) LogError( ( __VA_ARGS__ ) )
-#define IotLogWarn( ... ) LogWarn( ( __VA_ARGS__ ) )
-#define IotLogInfo( ... ) LogInfo( ( __VA_ARGS__ ) )
-#define IotLogDebug( ... ) LogDebug( ( __VA_ARGS__ ) )
+/* Invalid socket. */
+#define CELLULAR_INVALID_SOCKET ( ( Socket_t ) ~0U )
/*-----------------------------------------------------------*/
@@ -182,7 +205,7 @@ static void prvCellularSocketClosedCallback( CellularSocketHandle_t socketHandle
* @param[in] pCellularSocketContext Cellular socket wrapper context for socket operations.
* @param[out] receiveTimeout Socket receive timeout in TickType_t.
*
- * @return On success, SOCKETS_ERROR_NONE is returned. If an error occurred, error code defined
+ * @return On success, TCP_SOCKETS_ERRNO_NONE is returned. If an error occurred, error code defined
* in sockets_wrapper.h is returned.
*/
static BaseType_t prvSetupSocketRecvTimeout( cellularSocketWrapper_t * pCellularSocketContext,
@@ -198,7 +221,7 @@ static BaseType_t prvSetupSocketRecvTimeout( cellularSocketWrapper_t * pCellular
* Any send timeout greater than UINT32_MAX_MS_TICKS( UINT32_MAX_DELAY_MS/MS_PER_TICKS ) or
* portMAX_DELAY is regarded as UINT32_MAX_DELAY_MS for cellular API.
*
- * @return On success, SOCKETS_ERROR_NONE is returned. If an error occurred, error code defined
+ * @return On success, TCP_SOCKETS_ERRNO_NONE is returned. If an error occurred, error code defined
* in sockets_wrapper.h is returned.
*/
static BaseType_t prvSetupSocketSendTimeout( cellularSocketWrapper_t * pCellularSocketContext,
@@ -210,7 +233,7 @@ static BaseType_t prvSetupSocketSendTimeout( cellularSocketWrapper_t * pCellular
* @param[in] CellularSocketHandle_t Cellular socket handle for cellular socket operations.
* @param[in] pCellularSocketContext Cellular socket wrapper context for socket operations.
*
- * @return On success, SOCKETS_ERROR_NONE is returned. If an error occurred, error code defined
+ * @return On success, TCP_SOCKETS_ERRNO_NONE is returned. If an error occurred, error code defined
* in sockets_wrapper.h is returned.
*/
static BaseType_t prvCellularSocketRegisterCallback( CellularSocketHandle_t cellularSocketHandle,
@@ -316,7 +339,7 @@ static BaseType_t prvNetworkRecvCellular( const cellularSocketWrapper_t * pCellu
}
else
{
- IotLogInfo( "prvNetworkRecv timeout" );
+ LogInfo( ( "prvNetworkRecv timeout" ) );
socketStatus = CELLULAR_SUCCESS;
recvLength = 0;
}
@@ -328,11 +351,11 @@ static BaseType_t prvNetworkRecvCellular( const cellularSocketWrapper_t * pCellu
}
else
{
- IotLogError( "prvNetworkRecv failed %d", socketStatus );
- retRecvLength = SOCKETS_SOCKET_ERROR;
+ LogError( ( "prvNetworkRecv failed %d", socketStatus ) );
+ retRecvLength = TCP_SOCKETS_ERRNO_ERROR;
}
- IotLogDebug( "prvNetworkRecv expect %d read %d", len, recvLength );
+ LogDebug( ( "prvNetworkRecv expect %d read %d", len, recvLength ) );
return retRecvLength;
}
@@ -348,8 +371,8 @@ static void prvCellularSocketOpenCallback( CellularUrcEvent_t urcEvent,
if( pCellularSocketContext != NULL )
{
- IotLogDebug( "Socket open callback on Socket %p %d %d.",
- pCellularSocketContext, socketHandle, urcEvent );
+ LogDebug( ( "Socket open callback on Socket %p %d %d.",
+ pCellularSocketContext, socketHandle, urcEvent ) );
if( urcEvent == CELLULAR_URC_SOCKET_OPENED )
{
@@ -366,7 +389,7 @@ static void prvCellularSocketOpenCallback( CellularUrcEvent_t urcEvent,
}
else
{
- IotLogError( "Spurious socket open callback." );
+ LogError( ( "Spurious socket open callback." ) );
}
}
@@ -381,13 +404,13 @@ static void prvCellularSocketDataReadyCallback( CellularSocketHandle_t socketHan
if( pCellularSocketContext != NULL )
{
- IotLogDebug( "Data ready on Socket %p", pCellularSocketContext );
+ LogDebug( ( "Data ready on Socket %p", pCellularSocketContext ) );
( void ) xEventGroupSetBits( pCellularSocketContext->socketEventGroupHandle,
SOCKET_DATA_RECEIVED_CALLBACK_BIT );
}
else
{
- IotLogError( "spurious data callback" );
+ LogError( ( "spurious data callback" ) );
}
}
@@ -402,14 +425,14 @@ static void prvCellularSocketClosedCallback( CellularSocketHandle_t socketHandle
if( pCellularSocketContext != NULL )
{
- IotLogInfo( "Socket Close on Socket %p", pCellularSocketContext );
+ LogInfo( ( "Socket Close on Socket %p", pCellularSocketContext ) );
pCellularSocketContext->ulFlags = pCellularSocketContext->ulFlags & ( ~CELLULAR_SOCKET_CONNECT_FLAG );
( void ) xEventGroupSetBits( pCellularSocketContext->socketEventGroupHandle,
SOCKET_CLOSE_CALLBACK_BIT );
}
else
{
- IotLogError( "spurious socket close callback" );
+ LogError( ( "spurious socket close callback" ) );
}
}
@@ -418,11 +441,11 @@ static void prvCellularSocketClosedCallback( CellularSocketHandle_t socketHandle
static BaseType_t prvSetupSocketRecvTimeout( cellularSocketWrapper_t * pCellularSocketContext,
TickType_t receiveTimeout )
{
- BaseType_t retSetSockOpt = SOCKETS_ERROR_NONE;
+ BaseType_t retSetSockOpt = TCP_SOCKETS_ERRNO_NONE;
if( pCellularSocketContext == NULL )
{
- retSetSockOpt = SOCKETS_EINVAL;
+ retSetSockOpt = TCP_SOCKETS_ERRNO_EINVAL;
}
else
{
@@ -444,13 +467,13 @@ static BaseType_t prvSetupSocketRecvTimeout( cellularSocketWrapper_t * pCellular
static BaseType_t prvSetupSocketSendTimeout( cellularSocketWrapper_t * pCellularSocketContext,
TickType_t sendTimeout )
{
- BaseType_t retSetSockOpt = SOCKETS_ERROR_NONE;
+ BaseType_t retSetSockOpt = TCP_SOCKETS_ERRNO_NONE;
uint32_t sendTimeoutMs = 0;
CellularSocketHandle_t cellularSocketHandle = NULL;
if( pCellularSocketContext == NULL )
{
- retSetSockOpt = SOCKETS_EINVAL;
+ retSetSockOpt = TCP_SOCKETS_ERRNO_EINVAL;
}
else
{
@@ -464,8 +487,8 @@ static BaseType_t prvSetupSocketSendTimeout( cellularSocketWrapper_t * pCellular
}
else if( sendTimeout >= portMAX_DELAY )
{
- IotLogWarn( "Sendtimeout %d longer than portMAX_DELAY, %d ms is used instead",
- sendTimeout, UINT32_MAX_DELAY_MS );
+ LogWarn( ( "Sendtimeout %d longer than portMAX_DELAY, %d ms is used instead",
+ sendTimeout, UINT32_MAX_DELAY_MS ) );
pCellularSocketContext->sendTimeout = portMAX_DELAY;
sendTimeoutMs = UINT32_MAX_DELAY_MS;
}
@@ -484,47 +507,47 @@ static BaseType_t prvSetupSocketSendTimeout( cellularSocketWrapper_t * pCellular
static BaseType_t prvCellularSocketRegisterCallback( CellularSocketHandle_t cellularSocketHandle,
cellularSocketWrapper_t * pCellularSocketContext )
{
- BaseType_t retRegCallback = SOCKETS_ERROR_NONE;
+ BaseType_t retRegCallback = TCP_SOCKETS_ERRNO_NONE;
CellularError_t socketStatus = CELLULAR_SUCCESS;
if( cellularSocketHandle == NULL )
{
- retRegCallback = SOCKETS_EINVAL;
+ retRegCallback = TCP_SOCKETS_ERRNO_EINVAL;
}
- if( retRegCallback == SOCKETS_ERROR_NONE )
+ if( retRegCallback == TCP_SOCKETS_ERRNO_NONE )
{
socketStatus = Cellular_SocketRegisterDataReadyCallback( CellularHandle, cellularSocketHandle,
prvCellularSocketDataReadyCallback, ( void * ) pCellularSocketContext );
if( socketStatus != CELLULAR_SUCCESS )
{
- IotLogError( "Failed to SocketRegisterDataReadyCallback. Socket status %d.", socketStatus );
- retRegCallback = SOCKETS_SOCKET_ERROR;
+ LogError( ( "Failed to SocketRegisterDataReadyCallback. Socket status %d.", socketStatus ) );
+ retRegCallback = TCP_SOCKETS_ERRNO_ERROR;
}
}
- if( retRegCallback == SOCKETS_ERROR_NONE )
+ if( retRegCallback == TCP_SOCKETS_ERRNO_NONE )
{
socketStatus = Cellular_SocketRegisterSocketOpenCallback( CellularHandle, cellularSocketHandle,
prvCellularSocketOpenCallback, ( void * ) pCellularSocketContext );
if( socketStatus != CELLULAR_SUCCESS )
{
- IotLogError( "Failed to SocketRegisterSocketOpenCallbac. Socket status %d.", socketStatus );
- retRegCallback = SOCKETS_SOCKET_ERROR;
+ LogError( ( "Failed to SocketRegisterSocketOpenCallbac. Socket status %d.", socketStatus ) );
+ retRegCallback = TCP_SOCKETS_ERRNO_ERROR;
}
}
- if( retRegCallback == SOCKETS_ERROR_NONE )
+ if( retRegCallback == TCP_SOCKETS_ERRNO_NONE )
{
socketStatus = Cellular_SocketRegisterClosedCallback( CellularHandle, cellularSocketHandle,
prvCellularSocketClosedCallback, ( void * ) pCellularSocketContext );
if( socketStatus != CELLULAR_SUCCESS )
{
- IotLogError( "Failed to SocketRegisterClosedCallback. Socket status %d.", socketStatus );
- retRegCallback = SOCKETS_SOCKET_ERROR;
+ LogError( ( "Failed to SocketRegisterClosedCallback. Socket status %d.", socketStatus ) );
+ retRegCallback = TCP_SOCKETS_ERRNO_ERROR;
}
}
@@ -570,11 +593,11 @@ static bool _calculateElapsedTime( uint64_t entryTimeMs,
/*-----------------------------------------------------------*/
-BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
- const char * pHostName,
- uint16_t port,
- uint32_t receiveTimeoutMs,
- uint32_t sendTimeoutMs )
+BaseType_t TCP_Sockets_Connect( Socket_t * pTcpSocket,
+ const char * pHostName,
+ uint16_t port,
+ uint32_t receiveTimeoutMs,
+ uint32_t sendTimeoutMs )
{
CellularSocketHandle_t cellularSocketHandle = NULL;
cellularSocketWrapper_t * pCellularSocketContext = NULL;
@@ -582,7 +605,7 @@ BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
CellularSocketAddress_t serverAddress = { 0 };
EventBits_t waitEventBits = 0;
- BaseType_t retConnect = SOCKETS_ERROR_NONE;
+ BaseType_t retConnect = TCP_SOCKETS_ERRNO_NONE;
/* Create a new TCP socket. */
cellularSocketStatus = Cellular_CreateSocket( CellularHandle,
@@ -594,25 +617,25 @@ BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
if( cellularSocketStatus != CELLULAR_SUCCESS )
{
- IotLogError( "Failed to create cellular sockets. %d", cellularSocketStatus );
- retConnect = SOCKETS_SOCKET_ERROR;
+ LogError( ( "Failed to create cellular sockets. %d", cellularSocketStatus ) );
+ retConnect = TCP_SOCKETS_ERRNO_ERROR;
}
/* Allocate socket context. */
- if( retConnect == SOCKETS_ERROR_NONE )
+ if( retConnect == TCP_SOCKETS_ERRNO_NONE )
{
pCellularSocketContext = pvPortMalloc( sizeof( cellularSocketWrapper_t ) );
if( pCellularSocketContext == NULL )
{
- IotLogError( "Failed to allocate new socket context." );
+ LogError( ( "Failed to allocate new socket context." ) );
( void ) Cellular_SocketClose( CellularHandle, cellularSocketHandle );
- retConnect = SOCKETS_ENOMEM;
+ retConnect = TCP_SOCKETS_ERRNO_ENOMEM;
}
else
{
/* Initialize all the members to sane values. */
- IotLogDebug( "Created CELLULAR Socket %p.", pCellularSocketContext );
+ LogDebug( ( "Created CELLULAR Socket %p.", pCellularSocketContext ) );
( void ) memset( pCellularSocketContext, 0, sizeof( cellularSocketWrapper_t ) );
pCellularSocketContext->cellularSocketHandle = cellularSocketHandle;
pCellularSocketContext->ulFlags |= CELLULAR_SOCKET_OPEN_FLAG;
@@ -621,41 +644,41 @@ BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
}
/* Allocate event group for callback function. */
- if( retConnect == SOCKETS_ERROR_NONE )
+ if( retConnect == TCP_SOCKETS_ERRNO_NONE )
{
pCellularSocketContext->socketEventGroupHandle = xEventGroupCreate();
if( pCellularSocketContext->socketEventGroupHandle == NULL )
{
- IotLogError( "Failed create cellular socket eventGroupHandle %p.", pCellularSocketContext );
- retConnect = SOCKETS_ENOMEM;
+ LogError( ( "Failed create cellular socket eventGroupHandle %p.", pCellularSocketContext ) );
+ retConnect = TCP_SOCKETS_ERRNO_ENOMEM;
}
}
/* Register cellular socket callback function. */
- if( retConnect == SOCKETS_ERROR_NONE )
+ if( retConnect == TCP_SOCKETS_ERRNO_NONE )
{
serverAddress.ipAddress.ipAddressType = CELLULAR_IP_ADDRESS_V4;
strncpy( serverAddress.ipAddress.ipAddress, pHostName, CELLULAR_IP_ADDRESS_MAX_SIZE );
serverAddress.port = port;
- IotLogDebug( "Ip address %s port %d\r\n", serverAddress.ipAddress.ipAddress, serverAddress.port );
+ LogDebug( ( "Ip address %s port %d\r\n", serverAddress.ipAddress.ipAddress, serverAddress.port ) );
retConnect = prvCellularSocketRegisterCallback( cellularSocketHandle, pCellularSocketContext );
}
/* Setup cellular socket send/recv timeout. */
- if( retConnect == SOCKETS_ERROR_NONE )
+ if( retConnect == TCP_SOCKETS_ERRNO_NONE )
{
retConnect = prvSetupSocketSendTimeout( pCellularSocketContext, pdMS_TO_TICKS( sendTimeoutMs ) );
}
- if( retConnect == SOCKETS_ERROR_NONE )
+ if( retConnect == TCP_SOCKETS_ERRNO_NONE )
{
retConnect = prvSetupSocketRecvTimeout( pCellularSocketContext, pdMS_TO_TICKS( receiveTimeoutMs ) );
}
/* Cellular socket connect. */
- if( retConnect == SOCKETS_ERROR_NONE )
+ if( retConnect == TCP_SOCKETS_ERRNO_NONE )
{
( void ) xEventGroupClearBits( pCellularSocketContext->socketEventGroupHandle,
SOCKET_DATA_RECEIVED_CALLBACK_BIT | SOCKET_OPEN_FAILED_CALLBACK_BIT );
@@ -663,13 +686,13 @@ BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
if( cellularSocketStatus != CELLULAR_SUCCESS )
{
- IotLogError( "Failed to establish new connection. Socket status %d.", cellularSocketStatus );
- retConnect = SOCKETS_SOCKET_ERROR;
+ LogError( ( "Failed to establish new connection. Socket status %d.", cellularSocketStatus ) );
+ retConnect = TCP_SOCKETS_ERRNO_ERROR;
}
}
/* Wait the socket connection. */
- if( retConnect == SOCKETS_ERROR_NONE )
+ if( retConnect == TCP_SOCKETS_ERRNO_NONE )
{
waitEventBits = xEventGroupWaitBits( pCellularSocketContext->socketEventGroupHandle,
SOCKET_OPEN_CALLBACK_BIT | SOCKET_OPEN_FAILED_CALLBACK_BIT,
@@ -679,13 +702,13 @@ BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
if( waitEventBits != SOCKET_OPEN_CALLBACK_BIT )
{
- IotLogError( "Socket connect timeout." );
- retConnect = SOCKETS_ENOTCONN;
+ LogError( ( "Socket connect timeout." ) );
+ retConnect = TCP_SOCKETS_ERRNO_ENOTCONN;
}
}
/* Cleanup the socket if any error. */
- if( retConnect != SOCKETS_ERROR_NONE )
+ if( retConnect != TCP_SOCKETS_ERRNO_NONE )
{
if( cellularSocketHandle != NULL )
{
@@ -720,9 +743,9 @@ BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
/*-----------------------------------------------------------*/
-void Sockets_Disconnect( Socket_t xSocket )
+void TCP_Sockets_Disconnect( Socket_t xSocket )
{
- int32_t retClose = SOCKETS_ERROR_NONE;
+ int32_t retClose = TCP_SOCKETS_ERRNO_NONE;
cellularSocketWrapper_t * pCellularSocketContext = ( cellularSocketWrapper_t * ) xSocket;
CellularSocketHandle_t cellularSocketHandle = NULL;
uint32_t recvLength = 0;
@@ -731,17 +754,17 @@ void Sockets_Disconnect( Socket_t xSocket )
/* xSocket need to be check against SOCKET_INVALID_SOCKET. */
/* coverity[misra_c_2012_rule_11_4_violation] */
- if( ( pCellularSocketContext == NULL ) || ( xSocket == SOCKETS_INVALID_SOCKET ) )
+ if( ( pCellularSocketContext == NULL ) || ( xSocket == CELLULAR_INVALID_SOCKET ) )
{
- IotLogError( "Invalid xSocket %p", pCellularSocketContext );
- retClose = SOCKETS_EINVAL;
+ LogError( ( "Invalid xSocket %p", pCellularSocketContext ) );
+ retClose = TCP_SOCKETS_ERRNO_EINVAL;
}
else
{
cellularSocketHandle = pCellularSocketContext->cellularSocketHandle;
}
- if( retClose == SOCKETS_ERROR_NONE )
+ if( retClose == TCP_SOCKETS_ERRNO_NONE )
{
if( cellularSocketHandle != NULL )
{
@@ -750,14 +773,14 @@ void Sockets_Disconnect( Socket_t xSocket )
{
recvLength = 0;
cellularSocketStatus = Cellular_SocketRecv( CellularHandle, cellularSocketHandle, buf, 128, &recvLength );
- IotLogDebug( "%u bytes received in close", recvLength );
+ LogDebug( ( "%u bytes received in close", recvLength ) );
} while( ( recvLength != 0 ) && ( cellularSocketStatus == CELLULAR_SUCCESS ) );
/* Close sockets. */
if( Cellular_SocketClose( CellularHandle, cellularSocketHandle ) != CELLULAR_SUCCESS )
{
- IotLogWarn( "Failed to destroy connection." );
- retClose = SOCKETS_SOCKET_ERROR;
+ LogWarn( ( "Failed to destroy connection." ) );
+ retClose = TCP_SOCKETS_ERRNO_ERROR;
}
( void ) Cellular_SocketRegisterDataReadyCallback( CellularHandle, cellularSocketHandle, NULL, NULL );
@@ -775,14 +798,14 @@ void Sockets_Disconnect( Socket_t xSocket )
vPortFree( pCellularSocketContext );
}
- IotLogDebug( "Sockets close exit with code %d", retClose );
+ LogDebug( ( "Sockets close exit with code %d", retClose ) );
}
/*-----------------------------------------------------------*/
-int32_t Sockets_Recv( Socket_t xSocket,
- void * pvBuffer,
- size_t xBufferLength )
+int32_t TCP_Sockets_Recv( Socket_t xSocket,
+ void * pvBuffer,
+ size_t xBufferLength )
{
cellularSocketWrapper_t * pCellularSocketContext = ( cellularSocketWrapper_t * ) xSocket;
uint8_t * buf = ( uint8_t * ) pvBuffer;
@@ -790,15 +813,15 @@ int32_t Sockets_Recv( Socket_t xSocket,
if( pCellularSocketContext == NULL )
{
- IotLogError( "Cellular prvNetworkRecv Invalid xSocket %p", pCellularSocketContext );
- retRecvLength = ( BaseType_t ) SOCKETS_EINVAL;
+ LogError( ( "Cellular prvNetworkRecv Invalid xSocket %p", pCellularSocketContext ) );
+ retRecvLength = ( BaseType_t ) TCP_SOCKETS_ERRNO_EINVAL;
}
else if( ( ( pCellularSocketContext->ulFlags & CELLULAR_SOCKET_OPEN_FLAG ) == 0U ) ||
( ( pCellularSocketContext->ulFlags & CELLULAR_SOCKET_CONNECT_FLAG ) == 0U ) )
{
- IotLogError( "Cellular prvNetworkRecv Invalid xSocket flag %p %u",
- pCellularSocketContext, pCellularSocketContext->ulFlags );
- retRecvLength = ( BaseType_t ) SOCKETS_ENOTCONN;
+ LogError( ( "Cellular prvNetworkRecv Invalid xSocket flag %p %u",
+ pCellularSocketContext, pCellularSocketContext->ulFlags ) );
+ retRecvLength = ( BaseType_t ) TCP_SOCKETS_ERRNO_ENOTCONN;
}
else
{
@@ -814,9 +837,9 @@ int32_t Sockets_Recv( Socket_t xSocket,
* Send timeout unit is TickType_t. Any timeout value greater than UINT32_MAX_MS_TICKS
* or portMAX_DELAY will be regarded as MAX delay. In this case, this function
* will not return until all bytes of data are sent successfully or until an error occurs. */
-int32_t Sockets_Send( Socket_t xSocket,
- const void * pvBuffer,
- size_t xDataLength )
+int32_t TCP_Sockets_Send( Socket_t xSocket,
+ const void * pvBuffer,
+ size_t xDataLength )
{
uint8_t * buf = ( uint8_t * ) pvBuffer;
CellularSocketHandle_t cellularSocketHandle = NULL;
@@ -831,15 +854,15 @@ int32_t Sockets_Send( Socket_t xSocket,
if( pCellularSocketContext == NULL )
{
- IotLogError( "Cellular Sockets_Send Invalid xSocket %p", pCellularSocketContext );
- retSendLength = ( BaseType_t ) SOCKETS_SOCKET_ERROR;
+ LogError( ( "Cellular TCP_Sockets_Send Invalid xSocket %p", pCellularSocketContext ) );
+ retSendLength = ( BaseType_t ) TCP_SOCKETS_ERRNO_ERROR;
}
else if( ( ( pCellularSocketContext->ulFlags & CELLULAR_SOCKET_OPEN_FLAG ) == 0U ) ||
( ( pCellularSocketContext->ulFlags & CELLULAR_SOCKET_CONNECT_FLAG ) == 0U ) )
{
- IotLogError( "Cellular Sockets_Send Invalid xSocket flag %p 0x%08x",
- pCellularSocketContext, pCellularSocketContext->ulFlags );
- retSendLength = ( BaseType_t ) SOCKETS_SOCKET_ERROR;
+ LogError( ( "Cellular TCP_Sockets_Send Invalid xSocket flag %p 0x%08x",
+ pCellularSocketContext, pCellularSocketContext->ulFlags ) );
+ retSendLength = ( BaseType_t ) TCP_SOCKETS_ERRNO_ERROR;
}
else
{
@@ -882,14 +905,14 @@ int32_t Sockets_Send( Socket_t xSocket,
}
else if( socketStatus != CELLULAR_SUCCESS )
{
- retSendLength = ( BaseType_t ) SOCKETS_SOCKET_ERROR;
+ retSendLength = ( BaseType_t ) TCP_SOCKETS_ERRNO_ERROR;
}
break;
}
}
- IotLogDebug( "Sockets_Send expect %d write %d", xDataLength, sentLength );
+ LogDebug( ( "TCP_Sockets_Send expect %d write %d", xDataLength, sentLength ) );
}
return retSendLength;
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/freertos_plus_tcp/sockets_wrapper.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/sockets_wrapper.c
similarity index 93%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/freertos_plus_tcp/sockets_wrapper.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/sockets_wrapper.c
index 7bd61d69b58..40ad129cd13 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/freertos_plus_tcp/sockets_wrapper.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/sockets_wrapper.c
@@ -29,6 +29,22 @@
* @brief FreeRTOS Sockets connect and disconnect wrapper implementation.
*/
+/* Include header that defines log levels. */
+#include "logging_levels.h"
+
+/* Logging configuration for the Sockets. */
+#ifndef LIBRARY_LOG_NAME
+ #define LIBRARY_LOG_NAME "SocketsWrapper"
+#endif
+#ifndef LIBRARY_LOG_LEVEL
+ #define LIBRARY_LOG_LEVEL LOG_INFO
+#endif
+
+extern void vLoggingPrintf( const char * pcFormatString,
+ ... );
+
+#include "logging_stack.h"
+
/* Standard includes. */
#include
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/freertos_plus_tcp/sockets_wrapper.h b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/sockets_wrapper.h
similarity index 66%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/freertos_plus_tcp/sockets_wrapper.h
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/sockets_wrapper.h
index 9dba991b300..e249f27d56d 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/sockets_wrapper/freertos_plus_tcp/sockets_wrapper.h
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/sockets_wrapper.h
@@ -37,44 +37,6 @@
#include "FreeRTOS_Sockets.h"
#include "FreeRTOS_DNS.h"
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
-
-/* Logging related header files are required to be included in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL.
- * 3. Include the header file "logging_stack.h".
- */
-
-/* Include header that defines log levels. */
-#include "logging_levels.h"
-
-/* Logging configuration for the Sockets. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "Sockets"
-#endif
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_ERROR
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
-
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-
-#include "logging_stack.h"
-
-/************ End of logging configuration ****************/
-
#define SOCKETS_INVALID_SOCKET ( ( Socket_t ) ~0U )
/**
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/tcp_sockets_wrapper.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/tcp_sockets_wrapper.c
new file mode 100644
index 00000000000..52f86ae60f1
--- /dev/null
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/tcp_sockets_wrapper/ports/freertos_plus_tcp/tcp_sockets_wrapper.c
@@ -0,0 +1,333 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+/**
+ * @file sockets_wrapper.c
+ * @brief FreeRTOS Sockets connect and disconnect wrapper implementation.
+ */
+
+/* Include header that defines log levels. */
+#include "logging_levels.h"
+
+/* Logging configuration for the Sockets. */
+#ifndef LIBRARY_LOG_NAME
+ #define LIBRARY_LOG_NAME "SocketsWrapper"
+#endif
+#ifndef LIBRARY_LOG_LEVEL
+ #define LIBRARY_LOG_LEVEL LOG_INFO
+#endif
+
+extern void vLoggingPrintf( const char * pcFormatString,
+ ... );
+
+#include "logging_stack.h"
+
+/* Standard includes. */
+#include
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+
+/* FreeRTOS+TCP includes. */
+#include "FreeRTOS_IP.h"
+#include "FreeRTOS_Sockets.h"
+#include "FreeRTOS_DNS.h"
+
+/* TCP Sockets Wrapper include.*/
+/* Let sockets wrapper know that Socket_t is defined already. */
+#define SOCKET_T_TYPEDEFED
+#include "tcp_sockets_wrapper.h"
+
+/**
+ * @brief Maximum number of times to call FreeRTOS_recv when initiating a graceful shutdown.
+ */
+#ifndef FREERTOS_SOCKETS_WRAPPER_SHUTDOWN_LOOPS
+ #define FREERTOS_SOCKETS_WRAPPER_SHUTDOWN_LOOPS ( 3 )
+#endif
+
+/**
+ * @brief negative error code indicating a network failure.
+ */
+#define FREERTOS_SOCKETS_WRAPPER_NETWORK_ERROR ( -1 )
+
+/**
+ * @brief Establish a connection to server.
+ *
+ * @param[out] pTcpSocket The output parameter to return the created socket descriptor.
+ * @param[in] pHostName Server hostname to connect to.
+ * @param[in] pServerInfo Server port to connect to.
+ * @param[in] receiveTimeoutMs Timeout (in milliseconds) for transport receive.
+ * @param[in] sendTimeoutMs Timeout (in milliseconds) for transport send.
+ *
+ * @note A timeout of 0 means infinite timeout.
+ *
+ * @return Non-zero value on error, 0 on success.
+ */
+BaseType_t TCP_Sockets_Connect( Socket_t * pTcpSocket,
+ const char * pHostName,
+ uint16_t port,
+ uint32_t receiveTimeoutMs,
+ uint32_t sendTimeoutMs )
+{
+ Socket_t tcpSocket = FREERTOS_INVALID_SOCKET;
+ BaseType_t socketStatus = 0;
+ struct freertos_sockaddr serverAddress = { 0 };
+ TickType_t transportTimeout = 0;
+
+ configASSERT( pTcpSocket != NULL );
+ configASSERT( pHostName != NULL );
+
+ /* Create a new TCP socket. */
+ tcpSocket = FreeRTOS_socket( FREERTOS_AF_INET, FREERTOS_SOCK_STREAM, FREERTOS_IPPROTO_TCP );
+
+ if( tcpSocket == FREERTOS_INVALID_SOCKET )
+ {
+ LogError( ( "Failed to create new socket." ) );
+ socketStatus = FREERTOS_SOCKETS_WRAPPER_NETWORK_ERROR;
+ }
+ else
+ {
+ LogDebug( ( "Created new TCP socket." ) );
+
+ /* Connection parameters. */
+ serverAddress.sin_family = FREERTOS_AF_INET;
+ serverAddress.sin_port = FreeRTOS_htons( port );
+ serverAddress.sin_addr = ( uint32_t ) FreeRTOS_gethostbyname( pHostName );
+ serverAddress.sin_len = ( uint8_t ) sizeof( serverAddress );
+
+ /* Check for errors from DNS lookup. */
+ if( serverAddress.sin_addr == 0U )
+ {
+ LogError( ( "Failed to connect to server: DNS resolution failed: Hostname=%s.",
+ pHostName ) );
+ socketStatus = FREERTOS_SOCKETS_WRAPPER_NETWORK_ERROR;
+ }
+ }
+
+ if( socketStatus == 0 )
+ {
+ /* Establish connection. */
+ LogDebug( ( "Creating TCP Connection to %s.", pHostName ) );
+ socketStatus = FreeRTOS_connect( tcpSocket, &serverAddress, sizeof( serverAddress ) );
+
+ if( socketStatus != 0 )
+ {
+ LogError( ( "Failed to connect to server: FreeRTOS_Connect failed: ReturnCode=%d,"
+ " Hostname=%s, Port=%u.",
+ socketStatus,
+ pHostName,
+ port ) );
+ }
+ }
+
+ if( socketStatus == 0 )
+ {
+ /* Set socket receive timeout. */
+ transportTimeout = pdMS_TO_TICKS( receiveTimeoutMs );
+ /* Setting the receive block time cannot fail. */
+ ( void ) FreeRTOS_setsockopt( tcpSocket,
+ 0,
+ FREERTOS_SO_RCVTIMEO,
+ &transportTimeout,
+ sizeof( TickType_t ) );
+
+ /* Set socket send timeout. */
+ transportTimeout = pdMS_TO_TICKS( sendTimeoutMs );
+ /* Setting the send block time cannot fail. */
+ ( void ) FreeRTOS_setsockopt( tcpSocket,
+ 0,
+ FREERTOS_SO_SNDTIMEO,
+ &transportTimeout,
+ sizeof( TickType_t ) );
+ }
+
+ /* Clean up on failure. */
+ if( socketStatus != 0 )
+ {
+ if( tcpSocket != FREERTOS_INVALID_SOCKET )
+ {
+ ( void ) FreeRTOS_closesocket( tcpSocket );
+ }
+ }
+ else
+ {
+ /* Set the socket. */
+ *pTcpSocket = tcpSocket;
+ LogInfo( ( "Established TCP connection with %s.", pHostName ) );
+ }
+
+ return socketStatus;
+}
+
+/**
+ * @brief End connection to server.
+ *
+ * @param[in] tcpSocket The socket descriptor.
+ */
+void TCP_Sockets_Disconnect( Socket_t tcpSocket )
+{
+ BaseType_t waitForShutdownLoopCount = 0;
+ uint8_t pDummyBuffer[ 2 ];
+
+ if( tcpSocket != FREERTOS_INVALID_SOCKET )
+ {
+ /* Initiate graceful shutdown. */
+ ( void ) FreeRTOS_shutdown( tcpSocket, FREERTOS_SHUT_RDWR );
+
+ /* Wait for the socket to disconnect gracefully (indicated by FreeRTOS_recv()
+ * returning a FREERTOS_EINVAL error) before closing the socket. */
+ while( FreeRTOS_recv( tcpSocket, pDummyBuffer, sizeof( pDummyBuffer ), 0 ) >= 0 )
+ {
+ /* We don't need to delay since FreeRTOS_recv should already have a timeout. */
+
+ if( ++waitForShutdownLoopCount >= FREERTOS_SOCKETS_WRAPPER_SHUTDOWN_LOOPS )
+ {
+ break;
+ }
+ }
+
+ ( void ) FreeRTOS_closesocket( tcpSocket );
+ }
+}
+
+/**
+ * @brief Transmit data to the remote socket.
+ *
+ * The socket must have already been created using a call to TCP_Sockets_Connect().
+ *
+ * @param[in] xSocket The handle of the sending socket.
+ * @param[in] pvBuffer The buffer containing the data to be sent.
+ * @param[in] xDataLength The length of the data to be sent.
+ *
+ * @return
+ * * On success, the number of bytes actually sent is returned.
+ * * If an error occurred, a negative value is returned. @ref SocketsErrors
+ */
+int32_t TCP_Sockets_Send( Socket_t xSocket,
+ const void * pvBuffer,
+ size_t xBufferLength )
+{
+ BaseType_t xSendStatus;
+ int xReturnStatus = TCP_SOCKETS_ERRNO_ERROR;
+
+ configASSERT( xSocket != NULL );
+ configASSERT( pvBuffer != NULL );
+
+ xSendStatus = FreeRTOS_send( xSocket, pvBuffer, xBufferLength, 0 );
+
+ switch( xSendStatus )
+ {
+ /* Socket was closed or just got closed. */
+ case -pdFREERTOS_ERRNO_ENOTCONN:
+ xReturnStatus = TCP_SOCKETS_ERRNO_ENOTCONN;
+ break;
+
+ /* Not enough memory for the socket to create either an Rx or Tx stream. */
+ case -pdFREERTOS_ERRNO_ENOMEM:
+ xReturnStatus = TCP_SOCKETS_ERRNO_ENOMEM;
+ break;
+
+ /* Socket is not valid, is not a TCP socket, or is not bound. */
+ case -pdFREERTOS_ERRNO_EINVAL:
+ xReturnStatus = TCP_SOCKETS_ERRNO_EINVAL;
+ break;
+
+ /* Socket received a signal, causing the read operation to be aborted. */
+ case -pdFREERTOS_ERRNO_EINTR:
+ xReturnStatus = TCP_SOCKETS_ERRNO_EINTR;
+ break;
+
+ /* A timeout occurred before any data could be sent as the TCP buffer was full. */
+ case -pdFREERTOS_ERRNO_ENOSPC:
+ xReturnStatus = TCP_SOCKETS_ERRNO_ENOSPC;
+ break;
+
+ default:
+ xReturnStatus = ( int ) xSendStatus;
+ break;
+ }
+
+ return xReturnStatus;
+}
+
+/**
+ * @brief Receive data from a TCP socket.
+ *
+ * The socket must have already been created using a call to TCP_Sockets_Connect().
+ *
+ * @param[in] xSocket The handle of the socket from which data is being received.
+ * @param[out] pvBuffer The buffer into which the received data will be placed.
+ * @param[in] xBufferLength The maximum number of bytes which can be received.
+ * pvBuffer must be at least xBufferLength bytes long.
+ *
+ * @return
+ * * If the receive was successful then the number of bytes received (placed in the
+ * buffer pointed to by pvBuffer) is returned.
+ * * If a timeout occurred before data could be received then 0 is returned (timeout
+ * is set using @ref SOCKETS_SO_RCVTIMEO).
+ * * If an error occurred, a negative value is returned. @ref SocketsErrors
+ */
+int32_t TCP_Sockets_Recv( Socket_t xSocket,
+ void * pvBuffer,
+ size_t xBufferLength )
+{
+ BaseType_t xRecvStatus;
+ int xReturnStatus = TCP_SOCKETS_ERRNO_ERROR;
+
+ configASSERT( xSocket != NULL );
+ configASSERT( pvBuffer != NULL );
+
+ xRecvStatus = FreeRTOS_recv( xSocket, pvBuffer, xBufferLength, 0 );
+
+ switch( xRecvStatus )
+ {
+ /* Socket was closed or just got closed. */
+ case -pdFREERTOS_ERRNO_ENOTCONN:
+ xReturnStatus = TCP_SOCKETS_ERRNO_ENOTCONN;
+ break;
+
+ /* Not enough memory for the socket to create either an Rx or Tx stream. */
+ case -pdFREERTOS_ERRNO_ENOMEM:
+ xReturnStatus = TCP_SOCKETS_ERRNO_ENOMEM;
+ break;
+
+ /* Socket is not valid, is not a TCP socket, or is not bound. */
+ case -pdFREERTOS_ERRNO_EINVAL:
+ xReturnStatus = TCP_SOCKETS_ERRNO_EINVAL;
+ break;
+
+ /* Socket received a signal, causing the read operation to be aborted. */
+ case -pdFREERTOS_ERRNO_EINTR:
+ xReturnStatus = TCP_SOCKETS_ERRNO_EINTR;
+ break;
+
+ default:
+ xReturnStatus = ( int ) xRecvStatus;
+ break;
+ }
+
+ return xReturnStatus;
+}
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls/using_mbedtls.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.c
similarity index 94%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls/using_mbedtls.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.c
index e4b6d342d41..16a0a00b3fb 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls/using_mbedtls.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.c
@@ -30,17 +30,24 @@
* mbedTLS.
*/
+#include "logging_levels.h"
+
+#define LIBRARY_LOG_NAME "MbedtlsTransport"
+#define LIBRARY_LOG_LEVEL LOG_INFO
+
+#include "logging_stack.h"
+
/* Standard includes. */
#include
/* FreeRTOS includes. */
#include "FreeRTOS.h"
-/* TLS transport header. */
-#include "using_mbedtls.h"
+/* MbedTLS Bio TCP sockets wrapper include. */
+#include "mbedtls_bio_tcp_sockets_wrapper.h"
-/* FreeRTOS Socket wrapper include. */
-#include "sockets_wrapper.h"
+/* TLS transport header. */
+#include "transport_mbedtls.h"
/*-----------------------------------------------------------*/
@@ -303,12 +310,19 @@ static int32_t setPrivateKey( SSLContext_t * pSslContext,
configASSERT( pSslContext != NULL );
configASSERT( pPrivateKey != NULL );
- /* Setup the client private key. */
- mbedtlsError = mbedtls_pk_parse_key( &( pSslContext->privKey ),
- pPrivateKey,
- privateKeySize,
- NULL,
- 0 );
+ #if MBEDTLS_VERSION_NUMBER < 0x03000000
+ mbedtlsError = mbedtls_pk_parse_key( &( pSslContext->privKey ),
+ pPrivateKey,
+ privateKeySize,
+ NULL, 0 );
+ #else
+ mbedtlsError = mbedtls_pk_parse_key( &( pSslContext->privKey ),
+ pPrivateKey,
+ privateKeySize,
+ NULL, 0,
+ mbedtls_ctr_drbg_random,
+ &( pSslContext->ctrDrgbContext ) );
+ #endif /* if MBEDTLS_VERSION_NUMBER < 0x03000000 */
if( mbedtlsError != 0 )
{
@@ -415,7 +429,6 @@ static void setOptionalConfigurations( SSLContext_t * pSslContext,
/* Set Maximum Fragment Length if enabled. */
#ifdef MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
-
/* Enable the max fragment extension. 4096 bytes is currently the largest fragment size permitted.
* See RFC 8449 https://tools.ietf.org/html/rfc8449 for more information.
*
@@ -527,8 +540,8 @@ static TlsTransportStatus_t tlsHandshake( NetworkContext_t * pNetworkContext,
*/
mbedtls_ssl_set_bio( &( pTlsTransportParams->sslContext.context ),
( void * ) pTlsTransportParams->tcpSocket,
- MBEDTLS_SSL_SEND,
- MBEDTLS_SSL_RECV,
+ xMbedTLSBioTCPSocketsWrapperSend,
+ xMbedTLSBioTCPSocketsWrapperRecv,
NULL );
}
@@ -566,23 +579,15 @@ static TlsTransportStatus_t initMbedtls( mbedtls_entropy_context * pEntropyConte
TlsTransportStatus_t returnStatus = TLS_TRANSPORT_SUCCESS;
int32_t mbedtlsError = 0;
- /* Set the mutex functions for mbed TLS thread safety. */
- mbedtls_threading_set_alt( mbedtls_platform_mutex_init,
- mbedtls_platform_mutex_free,
- mbedtls_platform_mutex_lock,
- mbedtls_platform_mutex_unlock );
+ #if defined( MBEDTLS_THREADING_ALT )
+ /* Set the mutex functions for mbed TLS thread safety. */
+ mbedtls_platform_threading_init();
+ #endif
/* Initialize contexts for random number generation. */
mbedtls_entropy_init( pEntropyContext );
mbedtls_ctr_drbg_init( pCtrDrgbContext );
- /* Add a strong entropy source. At least one is required. */
- mbedtlsError = mbedtls_entropy_add_source( pEntropyContext,
- mbedtls_platform_entropy_poll,
- NULL,
- 32,
- MBEDTLS_ENTROPY_SOURCE_STRONG );
-
if( mbedtlsError != 0 )
{
LogError( ( "Failed to add entropy source: mbedTLSError= %s : %s.",
@@ -655,11 +660,11 @@ TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
if( returnStatus == TLS_TRANSPORT_SUCCESS )
{
pTlsTransportParams = pNetworkContext->pParams;
- socketStatus = Sockets_Connect( &( pTlsTransportParams->tcpSocket ),
- pHostName,
- port,
- receiveTimeoutMs,
- sendTimeoutMs );
+ socketStatus = TCP_Sockets_Connect( &( pTlsTransportParams->tcpSocket ),
+ pHostName,
+ port,
+ receiveTimeoutMs,
+ sendTimeoutMs );
if( socketStatus != 0 )
{
@@ -696,10 +701,7 @@ TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
{
sslContextFree( &( pTlsTransportParams->sslContext ) );
- if( pTlsTransportParams->tcpSocket != SOCKETS_INVALID_SOCKET )
- {
- ( void ) Sockets_Disconnect( pTlsTransportParams->tcpSocket );
- }
+ TCP_Sockets_Disconnect(pTlsTransportParams->tcpSocket);
}
}
else
@@ -744,21 +746,18 @@ void TLS_FreeRTOS_Disconnect( NetworkContext_t * pNetworkContext )
else
{
/* WANT_READ and WANT_WRITE can be ignored. Logging for debugging purposes. */
- LogInfo( ( "(Network connection %p) TLS close-notify sent; ",
- "received %s as the TLS status can be ignored for close-notify."
+ LogInfo( ( "(Network connection %p) TLS close-notify sent; "
+ "received %s as the TLS status can be ignored for close-notify.",
( tlsStatus == MBEDTLS_ERR_SSL_WANT_READ ) ? "WANT_READ" : "WANT_WRITE",
pNetworkContext ) );
}
/* Call socket shutdown function to close connection. */
- Sockets_Disconnect( pTlsTransportParams->tcpSocket );
+ TCP_Sockets_Disconnect( pTlsTransportParams->tcpSocket );
/* Free mbed TLS contexts. */
sslContextFree( &( pTlsTransportParams->sslContext ) );
}
-
- /* Clear the mutex functions for mbed TLS thread safety. */
- mbedtls_threading_free_alt();
}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls/using_mbedtls.h b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.h
similarity index 98%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls/using_mbedtls.h
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.h
index 085007d1fc2..f87973c0560 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls/using_mbedtls.h
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.h
@@ -70,8 +70,8 @@ extern void vLoggingPrintf( const char * pcFormatString,
/************ End of logging configuration ****************/
-/* FreeRTOS+TCP include. */
-#include "FreeRTOS_Sockets.h"
+/* TCP Sockets Wrapper include.*/
+#include "tcp_sockets_wrapper.h"
/* Transport interface include. */
#include "transport_interface.h"
@@ -83,6 +83,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
#include "mbedtls/threading.h"
#include "mbedtls/x509.h"
#include "mbedtls/error.h"
+#include "mbedtls/build_info.h"
/**
* @brief Secured connection context.
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls_pkcs11/using_mbedtls_pkcs11.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls_pkcs11.c
similarity index 76%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls_pkcs11/using_mbedtls_pkcs11.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls_pkcs11.c
index 4aeb16d8f78..542dcc8f2af 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls_pkcs11/using_mbedtls_pkcs11.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls_pkcs11.c
@@ -25,25 +25,34 @@
*/
/**
- * @file tls_freertos_pkcs11.c
+ * @file transport_mbedtls_pkcs11.c
* @brief TLS transport interface implementations. This implementation uses
* mbedTLS.
- * @note This file is derived from the tls_freertos.c source file found in the mqtt
- * section of IoT Libraries source code. The file has been modified to support using
- * PKCS #11 when using TLS.
*/
+#include "logging_levels.h"
+
+#define LIBRARY_LOG_NAME "PkcsTlsTransport"
+#define LIBRARY_LOG_LEVEL LOG_INFO
+
+#include "logging_stack.h"
+
+#define MBEDTLS_ALLOW_PRIVATE_ACCESS
+
+#include "mbedtls/private_access.h"
+
/* Standard includes. */
#include
/* FreeRTOS includes. */
#include "FreeRTOS.h"
-/* TLS transport header. */
-#include "using_mbedtls_pkcs11.h"
+/* MbedTLS Bio TCP sockets wrapper include. */
+#include "mbedtls_bio_tcp_sockets_wrapper.h"
-/* FreeRTOS Socket wrapper include. */
-#include "sockets_wrapper.h"
+/* TLS transport header. */
+#include "transport_mbedtls_pkcs11.h"
+#include "mbedtls_pk_pkcs11.h"
/* PKCS #11 includes. */
#include "core_pkcs11_config.h"
@@ -126,13 +135,6 @@ static TlsTransportStatus_t tlsSetup( NetworkContext_t * pNetworkContext,
const char * pHostName,
const NetworkCredentials_t * pNetworkCredentials );
-/**
- * @brief Initialize mbedTLS.
- *
- * @return #TLS_TRANSPORT_SUCCESS, or #TLS_TRANSPORT_INTERNAL_ERROR.
- */
-static TlsTransportStatus_t initMbedtls( void );
-
/*-----------------------------------------------------------*/
/**
@@ -204,9 +206,9 @@ static int32_t privateKeySigningCallback( void * pvContext,
size_t xHashLen,
unsigned char * pucSig,
size_t * pxSigLen,
- int32_t ( *piRng )( void *,
- unsigned char *,
- size_t ),
+ int32_t ( * piRng )( void *,
+ unsigned char *,
+ size_t ),
void * pvRng );
@@ -235,6 +237,9 @@ static void sslContextFree( SSLContext_t * pSslContext )
mbedtls_x509_crt_free( &( pSslContext->clientCert ) );
mbedtls_ssl_config_free( &( pSslContext->config ) );
+
+ ( void ) lPKCS11PkMbedtlsCloseSessionAndFree( &( pSslContext->privKey ) );
+
pSslContext->pxP11FunctionList->C_CloseSession( pSslContext->xP11Session );
}
@@ -398,8 +403,8 @@ static TlsTransportStatus_t tlsSetup( NetworkContext_t * pNetworkContext,
/* coverity[misra_c_2012_rule_11_2_violation] */
mbedtls_ssl_set_bio( &( pTlsTransportParams->sslContext.context ),
( void * ) pTlsTransportParams->tcpSocket,
- MBEDTLS_SSL_SEND,
- MBEDTLS_SSL_RECV,
+ xMbedTLSBioTCPSocketsWrapperSend,
+ xMbedTLSBioTCPSocketsWrapperRecv,
NULL );
}
}
@@ -478,26 +483,6 @@ static TlsTransportStatus_t tlsSetup( NetworkContext_t * pNetworkContext,
/*-----------------------------------------------------------*/
-static TlsTransportStatus_t initMbedtls( void )
-{
- TlsTransportStatus_t returnStatus = TLS_TRANSPORT_SUCCESS;
-
- /* Set the mutex functions for mbed TLS thread safety. */
- mbedtls_threading_set_alt( mbedtls_platform_mutex_init,
- mbedtls_platform_mutex_free,
- mbedtls_platform_mutex_lock,
- mbedtls_platform_mutex_unlock );
-
- if( returnStatus == TLS_TRANSPORT_SUCCESS )
- {
- LogDebug( ( "Successfully initialized mbedTLS." ) );
- }
-
- return returnStatus;
-}
-
-/*-----------------------------------------------------------*/
-
static int32_t generateRandomBytes( void * pvCtx,
unsigned char * pucRandom,
size_t xRandomLength )
@@ -526,25 +511,12 @@ static CK_RV readCertificateIntoContext( SSLContext_t * pSslContext,
CK_RV xResult = CKR_OK;
CK_ATTRIBUTE xTemplate = { 0 };
CK_OBJECT_HANDLE xCertObj = 0;
- size_t labelLength;
- char * pcNullTerminator = NULL;
-
- /* Check for NULL character within pkcs11configMAX_LABEL_LENGTH. */
- pcNullTerminator = memchr( pcLabelName, '\0', pkcs11configMAX_LABEL_LENGTH );
- if( NULL != pcNullTerminator )
- {
- labelLength = ( size_t )( pcNullTerminator - pcLabelName );
- }
- else
- {
- /* If NULL character not found set length to pkcs11configMAX_LABEL_LENGTH. */
- labelLength = pkcs11configMAX_LABEL_LENGTH;
- }
/* Get the handle of the certificate. */
xResult = xFindObjectWithLabelAndClass( pSslContext->xP11Session,
pcLabelName,
- labelLength,
+ strnlen( pcLabelName,
+ pkcs11configMAX_LABEL_LENGTH ),
xClass,
&xCertObj );
@@ -657,25 +629,11 @@ static CK_RV initializeClientKeys( SSLContext_t * pxCtx,
if( CKR_OK == xResult )
{
- size_t labelLength;
- char * pcNullTerminator = NULL;
-
- /* Check for NULL character within pkcs11configMAX_LABEL_LENGTH. */
- pcNullTerminator = memchr( pcLabelName, '\0', pkcs11configMAX_LABEL_LENGTH );
- if( NULL != pcNullTerminator )
- {
- labelLength = ( size_t )( pcNullTerminator - pcLabelName );
- }
- else
- {
- /* If NULL character not found set length to pkcs11configMAX_LABEL_LENGTH. */
- labelLength = pkcs11configMAX_LABEL_LENGTH;
- }
-
/* Get the handle of the device private key. */
xResult = xFindObjectWithLabelAndClass( pxCtx->xP11Session,
pcLabelName,
- labelLength,
+ strnlen( pcLabelName,
+ pkcs11configMAX_LABEL_LENGTH ),
CKO_PRIVATE_KEY,
&pxCtx->xP11PrivateKey );
}
@@ -686,64 +644,11 @@ static CK_RV initializeClientKeys( SSLContext_t * pxCtx,
LogError( ( "Could not find private key." ) );
}
- /* Query the device private key type. */
if( xResult == CKR_OK )
{
- xTemplate[ 0 ].type = CKA_KEY_TYPE;
- xTemplate[ 0 ].pValue = &pxCtx->xKeyType;
- xTemplate[ 0 ].ulValueLen = sizeof( CK_KEY_TYPE );
- xResult = pxCtx->pxP11FunctionList->C_GetAttributeValue( pxCtx->xP11Session,
- pxCtx->xP11PrivateKey,
- xTemplate,
- 1 );
- }
-
- /* Map the PKCS #11 key type to an mbedTLS algorithm. */
- if( xResult == CKR_OK )
- {
- switch( pxCtx->xKeyType )
- {
- case CKK_RSA:
- xKeyAlgo = MBEDTLS_PK_RSA;
- break;
-
- case CKK_EC:
- xKeyAlgo = MBEDTLS_PK_ECKEY;
- break;
-
- default:
- xResult = CKR_ATTRIBUTE_VALUE_INVALID;
- break;
- }
- }
-
- /* Map the mbedTLS algorithm to its internal metadata. */
- if( xResult == CKR_OK )
- {
- memcpy( &pxCtx->privKeyInfo, mbedtls_pk_info_from_type( xKeyAlgo ), sizeof( mbedtls_pk_info_t ) );
-
- /* Assign unimplemented function pointers to NULL */
- pxCtx->privKeyInfo.get_bitlen = NULL;
- pxCtx->privKeyInfo.can_do = canDoStub;
- pxCtx->privKeyInfo.verify_func = NULL;
- #if defined( MBEDTLS_ECDSA_C ) && defined( MBEDTLS_ECP_RESTARTABLE )
- pxCtx->privKeyInfo.verify_rs_func = NULL;
- pxCtx->privKeyInfo.sign_rs_func = NULL;
- #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
- pxCtx->privKeyInfo.decrypt_func = NULL;
- pxCtx->privKeyInfo.encrypt_func = NULL;
- pxCtx->privKeyInfo.check_pair_func = NULL;
- pxCtx->privKeyInfo.ctx_alloc_func = NULL;
- pxCtx->privKeyInfo.ctx_free_func = NULL;
- #if defined( MBEDTLS_ECDSA_C ) && defined( MBEDTLS_ECP_RESTARTABLE )
- pxCtx->privKeyInfo.rs_alloc_func = NULL;
- pxCtx->privKeyInfo.rs_free_func = NULL;
- #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
- pxCtx->privKeyInfo.debug_func = NULL;
-
- pxCtx->privKeyInfo.sign_func = privateKeySigningCallback;
- pxCtx->privKey.pk_info = &pxCtx->privKeyInfo;
- pxCtx->privKey.pk_ctx = pxCtx;
+ xResult = xPKCS11_initMbedtlsPkContext( &( pxCtx->privKey ),
+ pxCtx->xP11Session,
+ pxCtx->xP11PrivateKey );
}
/* Free memory. */
@@ -754,108 +659,6 @@ static CK_RV initializeClientKeys( SSLContext_t * pxCtx,
/*-----------------------------------------------------------*/
-static int32_t privateKeySigningCallback( void * pvContext,
- mbedtls_md_type_t xMdAlg,
- const unsigned char * pucHash,
- size_t xHashLen,
- unsigned char * pucSig,
- size_t * pxSigLen,
- int32_t ( *piRng )( void *,
- unsigned char *,
- size_t ),
- void * pvRng )
-{
- CK_RV xResult = CKR_OK;
- int32_t lFinalResult = 0;
- SSLContext_t * pxTLSContext = ( SSLContext_t * ) pvContext;
- CK_MECHANISM xMech = { 0 };
- CK_BYTE xToBeSigned[ 256 ];
- CK_ULONG xToBeSignedLen = sizeof( xToBeSigned );
-
- /* Unreferenced parameters. */
- ( void ) ( piRng );
- ( void ) ( pvRng );
- ( void ) ( xMdAlg );
-
- /* Sanity check buffer length. */
- if( xHashLen > sizeof( xToBeSigned ) )
- {
- xResult = CKR_ARGUMENTS_BAD;
- }
-
- /* Format the hash data to be signed. */
- if( CKK_RSA == pxTLSContext->xKeyType )
- {
- xMech.mechanism = CKM_RSA_PKCS;
-
- /* mbedTLS expects hashed data without padding, but PKCS #11 C_Sign function performs a hash
- * & sign if hash algorithm is specified. This helper function applies padding
- * indicating data was hashed with SHA-256 while still allowing pre-hashed data to
- * be provided. */
- xResult = vAppendSHA256AlgorithmIdentifierSequence( ( uint8_t * ) pucHash, xToBeSigned );
- xToBeSignedLen = pkcs11RSA_SIGNATURE_INPUT_LENGTH;
- }
- else if( CKK_EC == pxTLSContext->xKeyType )
- {
- xMech.mechanism = CKM_ECDSA;
- memcpy( xToBeSigned, pucHash, xHashLen );
- xToBeSignedLen = xHashLen;
- }
- else
- {
- xResult = CKR_ARGUMENTS_BAD;
- }
-
- if( CKR_OK == xResult )
- {
- /* Use the PKCS#11 module to sign. */
- xResult = pxTLSContext->pxP11FunctionList->C_SignInit( pxTLSContext->xP11Session,
- &xMech,
- pxTLSContext->xP11PrivateKey );
- }
-
- if( CKR_OK == xResult )
- {
- *pxSigLen = sizeof( xToBeSigned );
- xResult = pxTLSContext->pxP11FunctionList->C_Sign( ( CK_SESSION_HANDLE ) pxTLSContext->xP11Session,
- xToBeSigned,
- xToBeSignedLen,
- pucSig,
- ( CK_ULONG_PTR ) pxSigLen );
- }
-
- if( ( xResult == CKR_OK ) && ( CKK_EC == pxTLSContext->xKeyType ) )
- {
- /* PKCS #11 for P256 returns a 64-byte signature with 32 bytes for R and 32 bytes for S.
- * This must be converted to an ASN.1 encoded array. */
- if( *pxSigLen != pkcs11ECDSA_P256_SIGNATURE_LENGTH )
- {
- xResult = CKR_FUNCTION_FAILED;
- }
-
- if( xResult == CKR_OK )
- {
- PKI_pkcs11SignatureTombedTLSSignature( pucSig, pxSigLen );
- }
- }
-
- if( xResult != CKR_OK )
- {
- LogError( ( "Failed to sign message using PKCS #11 with error code %02X.", xResult ) );
- }
-
- return lFinalResult;
-}
-
-/*-----------------------------------------------------------*/
-
-int canDoStub( mbedtls_pk_type_t type )
-{
- return 1;
-}
-
-/*-----------------------------------------------------------*/
-
TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
const char * pHostName,
uint16_t port,
@@ -893,11 +696,11 @@ TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
if( returnStatus == TLS_TRANSPORT_SUCCESS )
{
pTlsTransportParams = pNetworkContext->pParams;
- socketStatus = Sockets_Connect( &( pTlsTransportParams->tcpSocket ),
- pHostName,
- port,
- receiveTimeoutMs,
- sendTimeoutMs );
+ socketStatus = TCP_Sockets_Connect( &( pTlsTransportParams->tcpSocket ),
+ pHostName,
+ port,
+ receiveTimeoutMs,
+ sendTimeoutMs );
if( socketStatus != 0 )
{
@@ -908,12 +711,6 @@ TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
}
}
- /* Initialize mbedtls. */
- if( returnStatus == TLS_TRANSPORT_SUCCESS )
- {
- returnStatus = initMbedtls();
- }
-
/* Perform TLS handshake. */
if( returnStatus == TLS_TRANSPORT_SUCCESS )
{
@@ -923,12 +720,7 @@ TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
/* Clean up on failure. */
if( returnStatus != TLS_TRANSPORT_SUCCESS )
{
- if( ( pNetworkContext != NULL ) &&
- ( pTlsTransportParams != NULL ) &&
- ( pTlsTransportParams->tcpSocket != SOCKETS_INVALID_SOCKET ) )
- {
- ( void ) Sockets_Disconnect( pTlsTransportParams->tcpSocket );
- }
+ TCP_Sockets_Disconnect( pTlsTransportParams->tcpSocket );
}
else
{
@@ -970,24 +762,13 @@ void TLS_FreeRTOS_Disconnect( NetworkContext_t * pNetworkContext )
mbedtlsLowLevelCodeOrDefault( tlsStatus ) ) );
}
}
- else
- {
- /* WANT_READ and WANT_WRITE can be ignored. Logging for debugging purposes. */
- LogInfo( ( "(Network connection %p) TLS close-notify sent; ",
- "received %s as the TLS status can be ignored for close-notify."
- ( tlsStatus == MBEDTLS_ERR_SSL_WANT_READ ) ? "WANT_READ" : "WANT_WRITE",
- pNetworkContext ) );
- }
/* Call socket shutdown function to close connection. */
- Sockets_Disconnect( pTlsTransportParams->tcpSocket );
+ TCP_Sockets_Disconnect( pTlsTransportParams->tcpSocket );
/* Free mbed TLS contexts. */
sslContextFree( &( pTlsTransportParams->sslContext ) );
}
-
- /* Clear the mutex functions for mbed TLS thread safety. */
- mbedtls_threading_free_alt();
}
/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls_pkcs11/using_mbedtls_pkcs11.h b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls_pkcs11.h
similarity index 80%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls_pkcs11/using_mbedtls_pkcs11.h
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls_pkcs11.h
index c58591f4626..18ba46da9ed 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_mbedtls_pkcs11/using_mbedtls_pkcs11.h
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls_pkcs11.h
@@ -25,56 +25,22 @@
*/
/**
- * @file tls_freertos_pkcs11.h
+ * @file transport_mbedtls_pkcs11.h
* @brief TLS transport interface header.
* @note This file is derived from the tls_freertos.h header file found in the mqtt
* section of IoT Libraries source code. The file has been modified to support using
* PKCS #11 when using TLS.
*/
-#ifndef USING_MBEDTLS_PKCS11
-#define USING_MBEDTLS_PKCS11
+#ifndef TRANSPORT_MBEDTLS_PKCS11
+#define TRANSPORT_MBEDTLS_PKCS11
-/**************************************************/
-/******* DO NOT CHANGE the following order ********/
-/**************************************************/
+#define MBEDTLS_ALLOW_PRIVATE_ACCESS
-/* Logging related header files are required to be included in the following order:
- * 1. Include the header file "logging_levels.h".
- * 2. Define LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL.
- * 3. Include the header file "logging_stack.h".
- */
-
-/* Include header that defines log levels. */
-#include "logging_levels.h"
-
-/* Logging configuration for the Sockets. */
-#ifndef LIBRARY_LOG_NAME
- #define LIBRARY_LOG_NAME "PkcsTlsTransport"
-#endif
-#ifndef LIBRARY_LOG_LEVEL
- #define LIBRARY_LOG_LEVEL LOG_ERROR
-#endif
-
-/* Prototype for the function used to print to console on Windows simulator
- * of FreeRTOS.
- * The function prints to the console before the network is connected;
- * then a UDP port after the network has connected. */
-extern void vLoggingPrintf( const char * pcFormatString,
- ... );
+#include "mbedtls/private_access.h"
-/* Map the SdkLog macro to the logging function to enable logging
- * on Windows simulator. */
-#ifndef SdkLog
- #define SdkLog( message ) vLoggingPrintf message
-#endif
-
-#include "logging_stack.h"
-
-/************ End of logging configuration ****************/
-
-/* FreeRTOS+TCP include. */
-#include "sockets_wrapper.h"
+/* TCP Sockets Wrapper include.*/
+#include "tcp_sockets_wrapper.h"
/* Transport interface include. */
#include "transport_interface.h"
@@ -86,9 +52,10 @@ extern void vLoggingPrintf( const char * pcFormatString,
#include "mbedtls/threading.h"
#include "mbedtls/x509.h"
#include "mbedtls/pk.h"
-#include "mbedtls/pk_internal.h"
#include "mbedtls/error.h"
+#include "pk_wrap.h"
+
/* PKCS #11 includes. */
#include "core_pkcs11.h"
@@ -109,7 +76,6 @@ typedef struct SSLContext
CK_FUNCTION_LIST_PTR pxP11FunctionList;
CK_SESSION_HANDLE xP11Session;
CK_OBJECT_HANDLE xP11PrivateKey;
- CK_KEY_TYPE xKeyType;
} SSLContext_t;
/**
@@ -144,12 +110,12 @@ typedef struct NetworkCredentials
const unsigned char * pRootCa; /**< @brief String representing a trusted server root certificate. */
size_t rootCaSize; /**< @brief Size associated with #NetworkCredentials.pRootCa. */
- const unsigned char * pUserName; /**< @brief String representing the username for MQTT. */
+ const unsigned char * pUserName; /**< @brief username for MQTT. */
size_t userNameSize; /**< @brief Size associated with #NetworkCredentials.pUserName. */
const unsigned char * pPassword; /**< @brief String representing the password for MQTT. */
size_t passwordSize; /**< @brief Size associated with #NetworkCredentials.pPassword. */
- const char * pClientCertLabel; /**< @brief String representing the PKCS #11 label for the client certificate. */
- const char * pPrivateKeyLabel; /**< @brief String representing the PKCS #11 label for the private key. */
+ const char * pClientCertLabel; /**< @brief PKCS #11 label string of the client certificate. */
+ const char * pPrivateKeyLabel; /**< @brief PKCS #11 label for the private key. */
} NetworkCredentials_t;
/**
@@ -230,4 +196,4 @@ int32_t TLS_FreeRTOS_send( NetworkContext_t * pNetworkContext,
const void * pBuffer,
size_t bytesToSend );
-#endif /* ifndef USING_MBEDTLS_PKCS11 */
+#endif /* ifndef TRANSPORT_MBEDTLS_PKCS11 */
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_plaintext/using_plaintext.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_plaintext.c
similarity index 65%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_plaintext/using_plaintext.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_plaintext.c
index 1c6f180afb6..68bccf731c3 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_plaintext/using_plaintext.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_plaintext.c
@@ -29,19 +29,9 @@
/* FreeRTOS includes. */
#include "FreeRTOS.h"
-#if ( configUSE_PREEMPTION == 0 )
- #include "task.h"
-#endif
-
-/* FreeRTOS+TCP includes. */
-#include "FreeRTOS_IP.h"
-#include "FreeRTOS_Sockets.h"
-
-/* FreeRTOS Socket wrapper include. */
-#include "sockets_wrapper.h"
/* Transport interface include. */
-#include "using_plaintext.h"
+#include "transport_plaintext.h"
/*-----------------------------------------------------------*/
@@ -82,11 +72,11 @@ PlaintextTransportStatus_t Plaintext_FreeRTOS_Connect( NetworkContext_t * pNetwo
{
pPlaintextTransportParams = pNetworkContext->pParams;
/* Establish a TCP connection with the server. */
- socketStatus = Sockets_Connect( &( pPlaintextTransportParams->tcpSocket ),
- pHostName,
- port,
- receiveTimeoutMs,
- sendTimeoutMs );
+ socketStatus = TCP_Sockets_Connect( &( pPlaintextTransportParams->tcpSocket ),
+ pHostName,
+ port,
+ receiveTimeoutMs,
+ sendTimeoutMs );
/* A non zero status is an error. */
if( socketStatus != 0 )
@@ -111,16 +101,11 @@ PlaintextTransportStatus_t Plaintext_FreeRTOS_Disconnect( const NetworkContext_t
LogError( ( "pNetworkContext cannot be NULL." ) );
plaintextStatus = PLAINTEXT_TRANSPORT_INVALID_PARAMETER;
}
- else if( pNetworkContext->pParams->tcpSocket == FREERTOS_INVALID_SOCKET )
- {
- LogError( ( "pPlaintextTransportParams->tcpSocket cannot be an invalid socket." ) );
- plaintextStatus = PLAINTEXT_TRANSPORT_INVALID_PARAMETER;
- }
else
{
pPlaintextTransportParams = pNetworkContext->pParams;
/* Call socket disconnect function to close connection. */
- Sockets_Disconnect( pPlaintextTransportParams->tcpSocket );
+ TCP_Sockets_Disconnect( pPlaintextTransportParams->tcpSocket );
}
return plaintextStatus;
@@ -152,27 +137,9 @@ int32_t Plaintext_FreeRTOS_recv( NetworkContext_t * pNetworkContext,
{
pPlaintextTransportParams = pNetworkContext->pParams;
- /* The TCP socket may have a receive block time. If bytesToRecv is greater
- * than 1 then a frame is likely already part way through reception and
- * blocking to wait for the desired number of bytes to be available is the
- * most efficient thing to do. If bytesToRecv is 1 then this may be a
- * speculative call to read to find the start of a new frame, in which case
- * blocking is not desirable as it could block an entire protocol agent
- * task for the duration of the read block time and therefore negatively
- * impact performance. So if bytesToRecv is 1 then don't call recv unless
- * it is known that bytes are already available. */
- if( bytesToRecv == 1 )
- {
- socketStatus = ( int32_t ) FreeRTOS_recvcount( pPlaintextTransportParams->tcpSocket );
- }
-
- if( socketStatus > 0 )
- {
- socketStatus = FreeRTOS_recv( pPlaintextTransportParams->tcpSocket,
- pBuffer,
- bytesToRecv,
- 0 );
- }
+ socketStatus = TCP_Sockets_Recv( pPlaintextTransportParams->tcpSocket,
+ pBuffer,
+ bytesToRecv );
}
return socketStatus;
@@ -203,28 +170,9 @@ int32_t Plaintext_FreeRTOS_send( NetworkContext_t * pNetworkContext,
else
{
pPlaintextTransportParams = pNetworkContext->pParams;
- socketStatus = FreeRTOS_send( pPlaintextTransportParams->tcpSocket,
- pBuffer,
- bytesToSend,
- 0 );
-
- if( socketStatus == -pdFREERTOS_ERRNO_ENOSPC )
- {
- /* The TCP buffers could not accept any more bytes so zero bytes were sent.
- * This is not necessarily an error that should cause a disconnect
- * unless it persists. */
- socketStatus = 0;
- }
-
- #if ( configUSE_PREEMPTION == 0 )
- {
- /* FreeRTOS_send adds the packet to be sent to the IP task's queue for later processing.
- * The packet is sent later by the IP task. When FreeRTOS is used in collaborative
- * mode (i.e. configUSE_PREEMPTION is 0), call taskYIELD to give IP task a chance to run
- * so that the packet is actually sent before this function returns. */
- taskYIELD();
- }
- #endif
+ socketStatus = TCP_Sockets_Send( pPlaintextTransportParams->tcpSocket,
+ pBuffer,
+ bytesToSend );
}
return socketStatus;
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_plaintext/using_plaintext.h b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_plaintext.h
similarity index 98%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_plaintext/using_plaintext.h
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_plaintext.h
index 224cf2d272d..da156daf856 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_plaintext/using_plaintext.h
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_plaintext.h
@@ -65,8 +65,8 @@ extern void vLoggingPrintf( const char * pcFormatString,
/************ End of logging configuration ****************/
-/* FreeRTOS+TCP include. */
-#include "FreeRTOS_Sockets.h"
+/* TCP Sockets Wrapper include.*/
+#include "tcp_sockets_wrapper.h"
/* Transport interface include. */
#include "transport_interface.h"
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_wolfSSL/using_wolfSSL.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_wolfSSL.c
similarity index 96%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_wolfSSL/using_wolfSSL.c
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_wolfSSL.c
index 60d2cb8e08a..6a9d2b503dc 100644
--- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_wolfSSL/using_wolfSSL.c
+++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_wolfSSL.c
@@ -41,11 +41,10 @@
#include "FreeRTOS_Sockets.h"
/* TLS transport header. */
-#include "using_wolfSSL.h"
+#include "transport_wolfSSL.h"
/* FreeRTOS Socket wrapper include. */
-#include "sockets_wrapper.h"
-
+#include "tcp_sockets_wrapper.h"
/* wolfSSL user settings header */
#include "user_settings.h"
@@ -141,14 +140,14 @@ static int wolfSSL_IORecvGlue( WOLFSSL * ssl,
Socket_t xSocket = ( Socket_t ) context;
- read = FreeRTOS_recv( xSocket, ( void * ) buf, ( size_t ) sz, 0 );
+ read = TCP_Sockets_Recv( xSocket, ( void * ) buf, ( size_t ) sz );
if( ( read == 0 ) ||
- ( read == -pdFREERTOS_ERRNO_EWOULDBLOCK ) )
+ ( read == -TCP_SOCKETS_ERRNO_EWOULDBLOCK) )
{
read = WOLFSSL_CBIO_ERR_WANT_READ;
}
- else if( read == -pdFREERTOS_ERRNO_ENOTCONN )
+ else if( read == -TCP_SOCKETS_ERRNO_ENOTCONN )
{
read = WOLFSSL_CBIO_ERR_CONN_CLOSE;
}
@@ -168,13 +167,13 @@ static int wolfSSL_IOSendGlue( WOLFSSL * ssl,
{
( void ) ssl; /* to prevent unused warning*/
Socket_t xSocket = ( Socket_t ) context;
- BaseType_t sent = FreeRTOS_send( xSocket, ( void * ) buf, ( size_t ) sz, 0 );
+ BaseType_t sent = TCP_Sockets_Send( xSocket, ( void * ) buf, ( size_t ) sz );
- if( sent == -pdFREERTOS_ERRNO_EWOULDBLOCK )
+ if( sent == -TCP_SOCKETS_ERRNO_EWOULDBLOCK)
{
sent = WOLFSSL_CBIO_ERR_WANT_WRITE;
}
- else if( sent == -pdFREERTOS_ERRNO_ENOTCONN )
+ else if( sent == -TCP_SOCKETS_ERRNO_ENOTCONN )
{
sent = WOLFSSL_CBIO_ERR_CONN_CLOSE;
}
@@ -403,7 +402,7 @@ TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
/* Establish a TCP connection with the server. */
if( returnStatus == TLS_TRANSPORT_SUCCESS )
{
- socketStatus = Sockets_Connect( &( pNetworkContext->tcpSocket ),
+ socketStatus = TCP_Sockets_Connect( &( pNetworkContext->tcpSocket ),
pHostName,
port,
receiveTimeoutMs,
@@ -433,10 +432,7 @@ TlsTransportStatus_t TLS_FreeRTOS_Connect( NetworkContext_t * pNetworkContext,
/* Clean up on failure. */
if( returnStatus != TLS_TRANSPORT_SUCCESS )
{
- if( pNetworkContext->tcpSocket != FREERTOS_INVALID_SOCKET )
- {
- FreeRTOS_closesocket( pNetworkContext->tcpSocket );
- }
+ TCP_Sockets_Disconnect( pNetworkContext->tcpSocket );
}
else
{
@@ -463,7 +459,7 @@ void TLS_FreeRTOS_Disconnect( NetworkContext_t * pNetworkContext )
pNetworkContext->sslContext.ssl = NULL;
/* Call socket shutdown function to close connection. */
- Sockets_Disconnect( pNetworkContext->tcpSocket );
+ TCP_Sockets_Disconnect( pNetworkContext->tcpSocket );
/* free WOLFSSL_CTX object*/
pCtx = pNetworkContext->sslContext.ctx;
diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_wolfSSL/using_wolfSSL.h b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_wolfSSL.h
similarity index 100%
rename from FreeRTOS-Plus/Source/Application-Protocols/network_transport/using_wolfSSL/using_wolfSSL.h
rename to FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_wolfSSL.h
diff --git a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP
index b6eac0ca7df..0bf460c935c 160000
--- a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP
+++ b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP
@@ -1 +1 @@
-Subproject commit b6eac0ca7df8c8935cb840fd9642f6533a0da2e6
+Subproject commit 0bf460c935ca59cf0423ef0ac3505f13961c2e9e
diff --git a/FreeRTOS-Plus/Source/Utilities/backoff_algorithm b/FreeRTOS-Plus/Source/Utilities/backoff_algorithm
index 12378255370..8818bed40e5 160000
--- a/FreeRTOS-Plus/Source/Utilities/backoff_algorithm
+++ b/FreeRTOS-Plus/Source/Utilities/backoff_algorithm
@@ -1 +1 @@
-Subproject commit 123782553709e74c8deabbf2bc8681bfb2edbfbb
+Subproject commit 8818bed40e57215fda8efa4b7fd33f7ae2c80d65
diff --git a/FreeRTOS-Plus/Source/Utilities/logging/logging.h b/FreeRTOS-Plus/Source/Utilities/logging/logging.h
index 79a29104fe2..8a2e3ea1381 100644
--- a/FreeRTOS-Plus/Source/Utilities/logging/logging.h
+++ b/FreeRTOS-Plus/Source/Utilities/logging/logging.h
@@ -20,13 +20,15 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
#ifndef DEMO_LOGGING_H
#define DEMO_LOGGING_H
+#include "FreeRTOS.h"
+
/*
* Initialize a logging system that can be used from FreeRTOS tasks and Win32
* threads. Do not call printf() directly while the scheduler is running.
@@ -43,4 +45,8 @@ void vLoggingInit( BaseType_t xLogToStdout,
uint32_t ulRemoteIPAddress,
uint16_t usRemotePort );
+void vPlatformInitLogging(void);
+
+void vLoggingPrintf(const char* pcFormat, ...);
+
#endif /* DEMO_LOGGING_H */
diff --git a/FreeRTOS-Plus/Source/Utilities/logging/logging_stack.h b/FreeRTOS-Plus/Source/Utilities/logging/logging_stack.h
index 657d4b50689..799091ecd7e 100644
--- a/FreeRTOS-Plus/Source/Utilities/logging/logging_stack.h
+++ b/FreeRTOS-Plus/Source/Utilities/logging/logging_stack.h
@@ -20,7 +20,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
@@ -35,6 +35,8 @@
/* Include header for logging level macros. */
#include "logging_levels.h"
+#include "logging.h"
+
/* Standard Include. */
#include
#include
@@ -63,16 +65,17 @@
#define LOG_METADATA_ARGS __FUNCTION__, __LINE__ /**< @brief Arguments into the metadata logging prefix format. */
#endif
+
/**
* @brief Common macro that maps all the logging interfaces,
* (#LogDebug, #LogInfo, #LogWarn, #LogError) to the platform-specific logging
* function.
*
- * @note The default definition of the macro is an empty definition that does not
- * generate any logging.
+ * @note The default definition of this macro generates logging via a printf-like
+ * vLoggingPrintf function.
*/
#ifndef SdkLog
- #define SdkLog( string )
+ #define SdkLog( message ) vLoggingPrintf message
#endif
/**
diff --git a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_freertos_port.c b/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_freertos_port.c
deleted file mode 100644
index 8ad515769e8..00000000000
--- a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/mbedtls_freertos_port.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * FreeRTOS V202112.00
- * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * https://www.FreeRTOS.org
- * https://github.com/FreeRTOS
- *
- */
-
-/**
- * @file mbedtls_freertos_port.c
- * @brief Implements mbed TLS platform functions for FreeRTOS.
- */
-
-/* FreeRTOS includes. */
-#include "FreeRTOS.h"
-#include "FreeRTOS_Sockets.h"
-
-/* mbed TLS includes. */
-#if !defined( MBEDTLS_CONFIG_FILE )
- #include "config.h"
-#else
- #include MBEDTLS_CONFIG_FILE
-#endif
-#include "threading_alt.h"
-#include "mbedtls/entropy.h"
-#include "mbedtls/ssl.h"
-
-/*-----------------------------------------------------------*/
-
-/**
- * @brief The number of bytes in a standard TLS record header.
- *
- * @note This only applies to a standard TCP+TLS connection.
- * DTLS has a different length for its record headers.
- *
- */
-#define TLS_RECORD_HEADER_BYTE_LENGTH 5
-
-/*-----------------------------------------------------------*/
-
-/**
- * @brief Allocates memory for an array of members.
- *
- * @param[in] nmemb Number of members that need to be allocated.
- * @param[in] size Size of each member.
- *
- * @return Pointer to the beginning of newly allocated memory.
- */
-void * mbedtls_platform_calloc( size_t nmemb,
- size_t size )
-{
- size_t totalSize = nmemb * size;
- void * pBuffer = NULL;
-
- /* Check that neither nmemb nor size were 0. */
- if( totalSize > 0 )
- {
- /* Overflow check. */
- if( ( totalSize / size ) == nmemb )
- {
- pBuffer = pvPortMalloc( totalSize );
-
- if( pBuffer != NULL )
- {
- ( void ) memset( pBuffer, 0x00, totalSize );
- }
- }
- }
-
- return pBuffer;
-}
-
-/*-----------------------------------------------------------*/
-
-/**
- * @brief Frees the space previously allocated by calloc.
- *
- * @param[in] ptr Pointer to the memory to be freed.
- */
-void mbedtls_platform_free( void * ptr )
-{
- vPortFree( ptr );
-}
-
-/*-----------------------------------------------------------*/
-
-/**
- * @brief Creates a mutex.
- *
- * @param[in, out] pMutex mbedtls mutex handle.
- */
-void mbedtls_platform_mutex_init( mbedtls_threading_mutex_t * pMutex )
-{
- configASSERT( pMutex != NULL );
-
- /* Create a statically-allocated FreeRTOS mutex. This should never fail as
- * storage is provided. */
- pMutex->mutexHandle = xSemaphoreCreateMutexStatic( &( pMutex->mutexStorage ) );
- configASSERT( pMutex->mutexHandle != NULL );
-}
-
-/*-----------------------------------------------------------*/
-
-/**
- * @brief Frees a mutex.
- *
- * @param[in] pMutex mbedtls mutex handle.
- *
- * @note This function is an empty stub as nothing needs to be done to free
- * a statically allocated FreeRTOS mutex.
- */
-void mbedtls_platform_mutex_free( mbedtls_threading_mutex_t * pMutex )
-{
- /* Nothing needs to be done to free a statically-allocated FreeRTOS mutex. */
- ( void ) pMutex;
-}
-
-/*-----------------------------------------------------------*/
-
-/**
- * @brief Function to lock a mutex.
- *
- * @param[in] pMutex mbedtls mutex handle.
- *
- * @return 0 (success) is always returned as any other failure is asserted.
- */
-int mbedtls_platform_mutex_lock( mbedtls_threading_mutex_t * pMutex )
-{
- BaseType_t mutexStatus = 0;
-
- configASSERT( pMutex != NULL );
-
- /* mutexStatus is not used if asserts are disabled. */
- ( void ) mutexStatus;
-
- /* This function should never fail if the mutex is initialized. */
- mutexStatus = xSemaphoreTake( pMutex->mutexHandle, portMAX_DELAY );
- configASSERT( mutexStatus == pdTRUE );
-
- return 0;
-}
-
-/*-----------------------------------------------------------*/
-
-/**
- * @brief Function to unlock a mutex.
- *
- * @param[in] pMutex mbedtls mutex handle.
- *
- * @return 0 is always returned as any other failure is asserted.
- */
-int mbedtls_platform_mutex_unlock( mbedtls_threading_mutex_t * pMutex )
-{
- BaseType_t mutexStatus = 0;
-
- configASSERT( pMutex != NULL );
- /* mutexStatus is not used if asserts are disabled. */
- ( void ) mutexStatus;
-
- /* This function should never fail if the mutex is initialized. */
- mutexStatus = xSemaphoreGive( pMutex->mutexHandle );
- configASSERT( mutexStatus == pdTRUE );
-
- return 0;
-}
-
-/*-----------------------------------------------------------*/
-
-#ifdef _WIN32
- /**
- * @brief Function to generate a random number.
- *
- * @param[in] data Callback context.
- * @param[out] output The address of the buffer that receives the random number.
- * @param[in] len Maximum size of the random number to be generated.
- * @param[out] olen The size, in bytes, of the #output buffer.
- *
- * @return 0 if no critical failures occurred,
- * MBEDTLS_ERR_ENTROPY_SOURCE_FAILED otherwise.
- */
- int mbedtls_platform_entropy_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen )
- {
- int status = 0;
- NTSTATUS rngStatus = 0;
-
- configASSERT( output != NULL );
- configASSERT( olen != NULL );
-
- /* Context is not used by this function. */
- ( void ) data;
-
- /* TLS requires a secure random number generator; use the RNG provided
- * by Windows. This function MUST be re-implemented for other platforms. */
- rngStatus =
- BCryptGenRandom( NULL, output, len, BCRYPT_USE_SYSTEM_PREFERRED_RNG );
-
- if( rngStatus == 0 )
- {
- /* All random bytes generated. */
- *olen = len;
- }
- else
- {
- /* RNG failure. */
- *olen = 0;
- status = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
- }
-
- return status;
- }
-#endif
-
-/*-----------------------------------------------------------*/
-
-#ifdef _WIN32
- /**
- * @brief Function to generate a random number based on a hardware poll.
- *
- * For this FreeRTOS Windows port, this function is redirected by calling
- * #mbedtls_platform_entropy_poll.
- *
- * @param[in] data Callback context.
- * @param[out] output The address of the buffer that receives the random number.
- * @param[in] len Maximum size of the random number to be generated.
- * @param[out] olen The size, in bytes, of the #output buffer.
- *
- * @return 0 if no critical failures occurred,
- * MBEDTLS_ERR_ENTROPY_SOURCE_FAILED otherwise.
- */
- int mbedtls_hardware_poll( void * data,
- unsigned char * output,
- size_t len,
- size_t * olen )
- {
- return mbedtls_platform_entropy_poll( data, output, len, olen );
- }
-#endif
-
-/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Source/coreJSON b/FreeRTOS-Plus/Source/coreJSON
index 2c1cebfb433..5b31f4c37a0 160000
--- a/FreeRTOS-Plus/Source/coreJSON
+++ b/FreeRTOS-Plus/Source/coreJSON
@@ -1 +1 @@
-Subproject commit 2c1cebfb4332eb7212f93000073988b3860bad5a
+Subproject commit 5b31f4c37a034911a4992fd415f8177a75014946
diff --git a/FreeRTOS-Plus/Source/corePKCS11 b/FreeRTOS-Plus/Source/corePKCS11
index bae1709685b..781f5774948 160000
--- a/FreeRTOS-Plus/Source/corePKCS11
+++ b/FreeRTOS-Plus/Source/corePKCS11
@@ -1 +1 @@
-Subproject commit bae1709685b6091fdcfa80843f9d269602c9defc
+Subproject commit 781f5774948fa8e6427be544b1bf1ad512ae9e90
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/Config/FreeRTOSConfig.h b/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/Config/FreeRTOSConfig.h
index b55331c036e..e8916dd31f7 100644
--- a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/Config/FreeRTOSConfig.h
+++ b/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/Config/FreeRTOSConfig.h
@@ -51,7 +51,6 @@
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configQUEUE_REGISTRY_SIZE 0
@@ -80,10 +79,6 @@
/* Run time stats gathering configuration options. */
#define configGENERATE_RUN_TIME_STATS 0
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
/* Set the following definitions to 1 to include the API function, or zero
* to exclude the API function. */
#define INCLUDE_vTaskPrioritySet 1
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj b/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj
deleted file mode 100644
index 790128771ad..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj
+++ /dev/null
@@ -1,1755 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- FreeRTOS-Cellular-Interface-Integration
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- Debug\
- Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\;.;$(IncludePath)
- ..\..\..\CMock\vendor\unity\extras\memory\src;..\..\..\CMock\vendor\unity\extras\fixture\src;..\..\..\CMock\vendor\unity\src;$(SourcePath)
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- .\Config;..\..\CMock\vendor\unity\src;..\..\CMock\vendor\unity\extras\fixture\src;..\..\CMock\vendor\unity\extras\memory\src;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Utilities\logging;..\..\..\Source\FreeRTOS-Plus-CLI;.\Test_Code;..\..\..\Source\FreeRTOS-Plus-TCP\include;.\DemoTasks\include;.\TraceMacros\Example1;.\WinPCap;.;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\common;..\..\..\Source\FreeRTOS-Cellular-Interface\source\include\private;..\..\..\Source\FreeRTOS-Cellular-Interface\source\interface;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/FreeRTOS-Cellular-Interface-Integration.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- .\WinPCap
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj.filters b/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj.filters
deleted file mode 100644
index 9dd42b85679..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,4873 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {fdabc401-4468-412c-8dc1-0e366fcdbec1}
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {ab9af260-f93b-4680-9460-1866aaab43f6}
-
-
- {98f985a8-c260-43fe-862f-7534a83922d7}
-
-
- {623bd581-b971-47af-b62c-ac19b71a44c1}
-
-
- {6f69faaf-fdbe-4cd4-aec4-eea7358b8cb2}
-
-
- {245a1489-fc0a-4108-bc64-d8c64c1a8c81}
-
-
- {d2afe32f-b25e-4582-afd3-3b5841aa4780}
-
-
- {7cd53342-eb66-4094-8d53-93df2949c4b5}
-
-
- {dc865d04-f3df-40b2-8e66-7710451fb58b}
-
-
- {671d03ff-d38e-4e14-8c6e-d57aa11f3f3d}
-
-
- {39ab9ea6-f7dc-4f5d-a276-a38e1a93ac13}
-
-
- {01356adc-7a1b-4cdf-af33-72929351d33f}
-
-
- {9e48f613-62a8-4161-a219-92d6cf111c17}
-
-
- {82f1e0e5-12ad-473a-8e5b-80d068f76afa}
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP\Portable
-
-
-
-
- Test_Code
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular
-
-
- FreeRTOS+\module\bg96
-
-
- FreeRTOS+\module\bg96
-
-
- FreeRTOS+\module\bg96
-
-
- FreeRTOS+\module\bg96
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
-
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
-
-
- Test_Code
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\interface
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\common
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\cellular\include\private
-
-
- FreeRTOS+\module\bg96
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- FreeRTOS+\FreeRTOS IoT Libraries\platform\logging
-
-
- Test_Code
-
-
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj.user b/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj.user
deleted file mode 100644
index 88a550947ed..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Cellular-Interface/Integration/WIN32.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/Config/FreeRTOSConfig.h b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/Config/FreeRTOSConfig.h
index 9cc1c5a5598..1fdb311dc8a 100644
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/Config/FreeRTOSConfig.h
+++ b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/Config/FreeRTOSConfig.h
@@ -1,6 +1,6 @@
/*
* FreeRTOS V202112.00
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
@@ -20,7 +20,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* https://www.FreeRTOS.org
- * https://aws.amazon.com/freertos
+ * https://github.com/FreeRTOS
*
*/
@@ -52,7 +52,6 @@
#define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configQUEUE_REGISTRY_SIZE 0
@@ -79,10 +78,6 @@
/* Run time stats gathering definitions. */
#define configGENERATE_RUN_TIME_STATS 0
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
#define INCLUDE_vTaskPrioritySet 1
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj
deleted file mode 100644
index 06c2af51baa..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj
+++ /dev/null
@@ -1,1731 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- Full-TCP-Networkless
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- Debug\
- Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\;.;$(IncludePath)
- ..\..\..\CMock\vendor\unity\extras\memory\src;..\..\..\CMock\vendor\unity\extras\fixture\src;..\..\..\CMock\vendor\unity\src;$(SourcePath)
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\Source\Utilities\logging;.\Test_Code\Test_Runner;..\..\..\CMock\vendor\unity\src;..\..\..\CMock\vendor\unity\extras\fixture\src;.\Config;..\..\..\CMock\vendor\unity\extras\memory\src;..\..\..\..\Source\FreeRTOS-Plus-FAT\include;..\..\..\..\Source\FreeRTOS-Plus-FAT\portable\common;..\..\..\..\Source\FreeRTOS-Plus-TCP\protocols\include;..\..\..\..\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\FreeRTOS-Plus-CLI;.\Test_Code\Test_Cases;..\..\..\..\Source\FreeRTOS-Plus-TCP\include;.\DemoTasks\include;.\TraceMacros\Example1;.\WinPCap;.;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;FREERTOS_ENABLE_UNIT_TESTS;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/Full-TCP-Networkless.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- .\WinPCap
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj.filters b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj.filters
deleted file mode 100644
index 10a6ce55be0..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,4783 +0,0 @@
-
-
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {fdabc401-4468-412c-8dc1-0e366fcdbec1}
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {ab9af260-f93b-4680-9460-1866aaab43f6}
-
-
- {98f985a8-c260-43fe-862f-7534a83922d7}
-
-
- {623bd581-b971-47af-b62c-ac19b71a44c1}
-
-
- {e0b2c566-afd0-48e5-98fe-844b773a62fb}
-
-
- {d79e7f9a-fafb-4f30-b5d0-c09722aaa374}
-
-
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS\Source\Source
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP\Portable
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source\Portable
-
-
- Test_Code\Test_Cases
-
-
- Test_Code\Test_Runner
-
-
-
-
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
- Test_Code\Test_Cases
-
-
- Test_Code\Test_Cases
-
-
- Test_Code\Test_Cases
-
-
- Test_Code\Test_Runner
-
-
- Test_Code\Test_Runner
-
-
-
-
-
-
- Windows resources
-
-
- Windows resources
-
-
- Windows resources
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj.user b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj.user
deleted file mode 100644
index 88a550947ed..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Networkless/WIN32.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/Config/FreeRTOSConfig.h b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/Config/FreeRTOSConfig.h
index 4666d6e4e1c..60520a39b64 100644
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/Config/FreeRTOSConfig.h
+++ b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/Config/FreeRTOSConfig.h
@@ -53,7 +53,6 @@
#define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configQUEUE_REGISTRY_SIZE 0
@@ -85,10 +84,6 @@ void vConfigureTimerForRunTimeStats(void);
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats()
#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
/* Currently the TCP/IP stack is using dynamic allocation, and the MQTT task is
* using static allocation. */
#define configSUPPORT_DYNAMIC_ALLOCATION 1
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj
deleted file mode 100644
index 7c716b080ca..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj
+++ /dev/null
@@ -1,227 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- Full-TCP
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- Debug\
- Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
- ..\..\Source\FreeRTOS-Plus-TCP\test;C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\;..\CMock\vendor\unity\extras\memory\src;..\CMock\vendor\unity\extras\fixture\src;..\CMock\vendor\unity\src;.;$(IncludePath)
- ..\CMock\vendor\unity\extras\memory\src;..\CMock\vendor\unity\extras\fixture\src;..\CMock\vendor\unity\src;$(SourcePath)
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\..\Source\Utilities\logging;.\Config;.\Test_Code\Test_Cases\include;..\..\..\CMock\vendor\unity\extras\fixture\src;..\..\..\..\Source\FreeRTOS-Plus-FAT\include;..\..\..\..\Source\FreeRTOS-Plus-FAT\portable\common;..\..\..\..\Source\FreeRTOS-Plus-TCP\protocols\include;..\..\..\..\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\Source\FreeRTOS-Plus-TCP\include;..\..\..\CMock\vendor\unity\extras\memory\src;.\DemoTasks\include;.\WinPCap;..\..\..\..\..\FreeRTOS\Source\include;..\..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\..\Source\FreeRTOS-Plus-CLI;..\..\..\CMock\vendor\unity\src;.\TraceMacros\Example1;.;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0600;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/Full-TCP.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- wpcap.lib;%(AdditionalDependencies)
- .\WinPCap
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\Source\include;..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(AdditionalIncludeDirectories)
- %(PreprocessorDefinitions)
- %(PreprocessorDefinitions)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj.filters b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj.filters
deleted file mode 100644
index 3ece40f04b5..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj.filters
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
-
-
- {38712199-cebf-4124-bf15-398f7c3419ea}
- ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe
-
-
- {af3445a1-4908-4170-89ed-39345d90d30c}
-
-
- {f32be356-4763-4cae-9020-974a2638cb08}
- *.c
-
-
- {88f409e6-d396-4ac5-94bd-7a99c914be46}
-
-
- {e5ad4ec7-23dc-4295-8add-2acaee488f5a}
-
-
- {d2dcd641-8d91-492b-852f-5563ffadaec6}
-
-
- {8672fa26-b119-481f-8b8d-086419c01a3e}
-
-
- {4570be11-ec96-4b55-ac58-24b50ada980a}
-
-
- {5d93ed51-023a-41ad-9243-8d230165d34b}
-
-
- {fdabc401-4468-412c-8dc1-0e366fcdbec1}
-
-
- {623bd581-b971-47af-b62c-ac19b71a44c1}
-
-
- {eff6eadc-8f72-4484-807b-6d25a2628276}
-
-
- {8443e065-8092-4050-b78d-136c6f166a87}
-
-
-
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS\Source
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP\portable
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- FreeRTOS+\FreeRTOS+TCP
-
-
- Tests
-
-
- Tests
-
-
- Tests
-
-
- Tests
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
-
- Application Code
-
-
- Tests
-
-
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\include
-
-
- FreeRTOS\Source\Portable
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- FreeRTOS+\FreeRTOS+TCP\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Tests\include
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
- Unity
-
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj.user b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj.user
deleted file mode 100644
index 88a550947ed..00000000000
--- a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Integration/Full-TCP-Suite/WIN32.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/ThirdParty/WolfSSL-FIPS-Ready/wolfcrypt/test/test.vcxproj.user b/FreeRTOS-Plus/ThirdParty/WolfSSL-FIPS-Ready/wolfcrypt/test/test.vcxproj.user
deleted file mode 100644
index 6e2aec7aefc..00000000000
--- a/FreeRTOS-Plus/ThirdParty/WolfSSL-FIPS-Ready/wolfcrypt/test/test.vcxproj.user
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/FreeRTOS-Plus/ThirdParty/mbedtls b/FreeRTOS-Plus/ThirdParty/mbedtls
index 8b3f26a5ac3..869298bffee 160000
--- a/FreeRTOS-Plus/ThirdParty/mbedtls
+++ b/FreeRTOS-Plus/ThirdParty/mbedtls
@@ -1 +1 @@
-Subproject commit 8b3f26a5ac38d4fdccbc5c5366229f3e01dafcc0
+Subproject commit 869298bffeea13b205343361b7a7daf2b210e33d
diff --git a/FreeRTOS-Plus/ThirdParty/winpcap/LICENSE.md b/FreeRTOS-Plus/ThirdParty/winpcap/LICENSE.md
new file mode 100644
index 00000000000..09da7d80cc8
--- /dev/null
+++ b/FreeRTOS-Plus/ThirdParty/winpcap/LICENSE.md
@@ -0,0 +1,71 @@
+Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy).
+Copyright (c) 2005 - 2010 CACE Technologies, Davis (California).
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+3. Neither the name of the Politecnico di Torino, CACE Technologies nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+This product includes software developed by the University of California, Lawrence Berkeley Laboratory and its contributors.
+This product includes software developed by the Kungliga Tekniska Högskolan and its contributors.
+This product includes software developed by Yen Yen Lim and North Dakota State University.
+
+Portions Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 The Regents of the University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes software developed by the University of California, Berkeley and its contributors."
+4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Portions Copyright (c) 1983 Regents of the University of California. All rights reserved.
+
+Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by the University of California, Berkeley. The name of the University may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+Portions Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan (Royal Institute of Technology, Stockholm, Sweden). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes software developed by the Kungliga Tekniska Högskolan and its contributors."
+4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Portions Copyright (c) 1997 Yen Yen Lim and North Dakota State University. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes software developed by Yen Yen Lim and North Dakota State University"
+4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Portions Copyright (c) 1993 by Digital Equipment Corporation.
+
+Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies, and that the name of Digital Equipment Corporation not be used in advertising or publicity pertaining to distribution of the document or software without specific, written prior permission.
+THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+Portions Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+3. Neither the name of the project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Portions Copyright (c) 1996 Juniper Networks, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that: (1) source code distributions retain the above copyright notice and this paragraph in its entirety, (2) distributions including binary code include the above copyright notice and this paragraph in its entirety in the documentation or other materials provided with the distribution. The name of Juniper Networks may not be used to endorse or promote products derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+Portions Copyright (c) 2001 Daniel Hartmeier All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Portions Copyright 1989 by Carnegie Mellon.
+
+Permission to use, copy, modify, and distribute this program for any purpose and without fee is hereby granted, provided that this copyright and permission notice appear on all copies and supporting documentation, the name of Carnegie Mellon not be used in advertising or publicity pertaining to distribution of the program without specific prior permission, and notice be given in supporting documentation that copying and distribution is by permission of Carnegie Mellon and Stanford University. Carnegie Mellon makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/Packet32.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/Packet32.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/Packet32.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/Packet32.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/Win32-Extensions.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/Win32-Extensions.h
similarity index 99%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/Win32-Extensions.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/Win32-Extensions.h
index bad7c33aca4..ad3be25cfaf 100644
--- a/FreeRTOS-Plus/Demo/Common/WinPCap/Win32-Extensions.h
+++ b/FreeRTOS-Plus/ThirdParty/winpcap/include/Win32-Extensions.h
@@ -31,7 +31,6 @@
*
*/
-
#ifndef __WIN32_EXTENSIONS_H__
#define __WIN32_EXTENSIONS_H__
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/bittypes.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/bittypes.h
similarity index 97%
rename from FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/bittypes.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/bittypes.h
index f55fcecfd29..558a0b5c0d8 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap/bittypes.h
+++ b/FreeRTOS-Plus/ThirdParty/winpcap/include/bittypes.h
@@ -33,7 +33,7 @@
#if SIZEOF_CHAR == 1
typedef unsigned char u_int8_t;
-typedef signed char _int8_t;
+typedef signed char int8_t;
#elif SIZEOF_INT == 1
typedef unsigned int u_int8_t;
typedef signed int int8_t;
@@ -49,7 +49,7 @@ typedef signed int int8_t;
#if SIZEOF_SHORT == 2
typedef unsigned short u_int16_t;
-typedef signed short _int16_t;
+typedef signed short int16_t;
#elif SIZEOF_INT == 2
typedef unsigned int u_int16_t;
typedef signed int int16_t;
@@ -68,7 +68,7 @@ typedef signed char int16_t;
#if SIZEOF_INT == 4
typedef unsigned int u_int32_t;
-typedef signed int _int32_t;
+typedef signed int int32_t;
#elif SIZEOF_LONG == 4
typedef unsigned long u_int32_t;
typedef signed long int32_t;
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/ip6_misc.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/ip6_misc.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/ip6_misc.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/ip6_misc.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap-bpf.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap-bpf.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap-bpf.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap-bpf.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap-namedb.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap-namedb.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap-namedb.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap-namedb.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap-stdinc.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap-stdinc.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap-stdinc.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap-stdinc.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap/bluetooth.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/bluetooth.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap/bluetooth.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/bluetooth.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap/bpf.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/bpf.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap/bpf.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/bpf.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap/namedb.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/namedb.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap/namedb.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/namedb.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap/pcap.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/pcap.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap/pcap.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/pcap.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap/sll.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/sll.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap/sll.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/sll.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap/usb.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/usb.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap/usb.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/usb.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/pcap/vlan.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/vlan.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/pcap/vlan.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/pcap/vlan.h
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/remote-ext.h b/FreeRTOS-Plus/ThirdParty/winpcap/include/remote-ext.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/remote-ext.h
rename to FreeRTOS-Plus/ThirdParty/winpcap/include/remote-ext.h
diff --git a/FreeRTOS-Plus/ThirdParty/winpcap/lib/libpacket.a b/FreeRTOS-Plus/ThirdParty/winpcap/lib/libpacket.a
new file mode 100644
index 00000000000..4d49131f096
Binary files /dev/null and b/FreeRTOS-Plus/ThirdParty/winpcap/lib/libpacket.a differ
diff --git a/FreeRTOS-Plus/ThirdParty/winpcap/lib/libwpcap.a b/FreeRTOS-Plus/ThirdParty/winpcap/lib/libwpcap.a
new file mode 100644
index 00000000000..65b1870e7ac
Binary files /dev/null and b/FreeRTOS-Plus/ThirdParty/winpcap/lib/libwpcap.a differ
diff --git a/FreeRTOS-Plus/ThirdParty/winpcap/lib/x64/Packet.lib b/FreeRTOS-Plus/ThirdParty/winpcap/lib/x64/Packet.lib
new file mode 100644
index 00000000000..30c15405037
Binary files /dev/null and b/FreeRTOS-Plus/ThirdParty/winpcap/lib/x64/Packet.lib differ
diff --git a/FreeRTOS-Plus/ThirdParty/winpcap/lib/x64/wpcap.lib b/FreeRTOS-Plus/ThirdParty/winpcap/lib/x64/wpcap.lib
new file mode 100644
index 00000000000..d5559f802b8
Binary files /dev/null and b/FreeRTOS-Plus/ThirdParty/winpcap/lib/x64/wpcap.lib differ
diff --git a/FreeRTOS-Plus/ThirdParty/winpcap/lib/x86/Packet.lib b/FreeRTOS-Plus/ThirdParty/winpcap/lib/x86/Packet.lib
new file mode 100644
index 00000000000..81618bc8ca2
Binary files /dev/null and b/FreeRTOS-Plus/ThirdParty/winpcap/lib/x86/Packet.lib differ
diff --git a/FreeRTOS-Plus/Demo/Common/WinPCap/wpcap.lib b/FreeRTOS-Plus/ThirdParty/winpcap/lib/x86/wpcap.lib
similarity index 100%
rename from FreeRTOS-Plus/Demo/Common/WinPCap/wpcap.lib
rename to FreeRTOS-Plus/ThirdParty/winpcap/lib/x86/wpcap.lib
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOS+TCP.vcxproj b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOS+TCP.vcxproj
new file mode 100644
index 00000000000..932b64cf469
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOS+TCP.vcxproj
@@ -0,0 +1,263 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 17.0
+ {C90E6CC5-818B-4C97-8876-0986D989387C}
+ Win32Proj
+ 10.0
+ FreeRTOS_TCP
+
+
+
+ StaticLibrary
+ true
+ v142
+
+
+ StaticLibrary
+ false
+ v142
+
+
+ StaticLibrary
+ true
+ v142
+
+
+ StaticLibrary
+ false
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\;$(PublicIncludeDirectories)
+ true
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);..\..\ThirdParty\winpcap\lib\x64
+ $(IncludePath)
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools;$(SourcePath)
+
+
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\;$(PublicIncludeDirectories)
+ true
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);..\..\ThirdParty\winpcap\lib\x64
+ $(IncludePath)
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools;$(SourcePath)
+
+
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\;$(PublicIncludeDirectories)
+ true
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);..\..\ThirdParty\winpcap\lib\x86
+ $(IncludePath)
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools;$(SourcePath)
+
+
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\;$(PublicIncludeDirectories)
+ true
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);..\..\ThirdParty\winpcap\lib\x86
+ $(IncludePath)
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;.\
+ ..\..\Source\FreeRTOS-Plus-TCP\source;..\..\Source\FreeRTOS-Plus-TCP\tools;$(SourcePath)
+
+
+ false
+
+
+
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ ProgramDatabase
+ Disabled
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\ThirdParty\winpcap\include;..\..\ThirdParty\winpcap\include\pcap;.\;%(AdditionalIncludeDirectories)
+
+
+ MachineX86
+ true
+ Windows
+
+
+ wpcap.lib;%(AdditionalDependencies)
+
+
+
+
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\ThirdParty\winpcap\include;..\..\ThirdParty\winpcap\include\pcap;.\;%(AdditionalIncludeDirectories)
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+ wpcap.lib;%(AdditionalDependencies)
+
+
+
+
+
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\ThirdParty\winpcap\include;..\..\ThirdParty\winpcap\include\pcap;.\;%(AdditionalIncludeDirectories)
+
+
+ wpcap.lib;%(AdditionalDependencies)
+
+
+
+
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\..\Source\FreeRTOS-Plus-TCP\source\include;..\..\Source\FreeRTOS-Plus-TCP\source\portable\Compiler\MSVC;..\..\Source\FreeRTOS-Plus-TCP\tools\tcp_utilities\include;..\..\ThirdParty\winpcap\include;..\..\ThirdParty\winpcap\include\pcap;.\;%(AdditionalIncludeDirectories)
+
+
+ wpcap.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOS+TCP.vcxproj.filters b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOS+TCP.vcxproj.filters
new file mode 100644
index 00000000000..cab18ec8f6c
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOS+TCP.vcxproj.filters
@@ -0,0 +1,258 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {a3216426-70cf-4b4f-8b8f-423c8d0416cb}
+
+
+ {b2e06bcd-b665-4ef4-8eff-5203748463d1}
+
+
+ {af7dc417-59c0-4c2b-bb4b-cc9b84817e89}
+
+
+ {97a99563-c215-4975-9cb8-c6a29a30f03f}
+ h
+
+
+ {7a52d3bf-8fc9-4242-8636-e173ade0aa68}
+
+
+ {2968f486-aba8-47f5-a175-fe77e197a2c6}
+
+
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ source
+
+
+ tcp_utilities
+
+
+ tcp_utilities
+
+
+ tcp_utilities
+
+
+ source
+
+
+
+
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ tcp_utilities\include
+
+
+ tcp_utilities\include
+
+
+ tcp_utilities\include
+
+
+ compiler_msvc
+
+
+ compiler_msvc
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+ winpcap\include
+
+
+
+ winpcap\include\pcap
+
+
+ winpcap\include\pcap
+
+
+ winpcap\include\pcap
+
+
+ winpcap\include\pcap
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/FreeRTOSIPConfig.h b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOSIPConfig.h
similarity index 91%
rename from FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/FreeRTOSIPConfig.h
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOSIPConfig.h
index fd2ea0e634b..dc2f970d13a 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/FreeRTOSIPConfig.h
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/FreeRTOSIPConfig.h
@@ -24,6 +24,7 @@
*
*/
+
/*****************************************************************************
*
* See the following URL for configuration information.
@@ -34,6 +35,7 @@
#ifndef FREERTOS_IP_CONFIG_H
#define FREERTOS_IP_CONFIG_H
+#include "FreeRTOSConfig.h"
#include "tcp_netstat.h"
/* Prototype for the function used to print out. In this case it prints to the
@@ -45,7 +47,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
/* Set to 1 to print out debug messages. If ipconfigHAS_DEBUG_PRINTF is set to
* 1 then FreeRTOS_debug_printf should be defined to the function used to print
* out the debugging messages. */
-#define ipconfigHAS_DEBUG_PRINTF 0
+#define ipconfigHAS_DEBUG_PRINTF 1
#if ( ipconfigHAS_DEBUG_PRINTF == 1 )
#define FreeRTOS_debug_printf( X ) vLoggingPrintf X
#endif
@@ -72,7 +74,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
* performed, for example FreeRTOS_send() and FreeRTOS_recv(). The timeouts can be
* set per socket, using setsockopt(). If not set, the times below will be
* used as defaults. */
-#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 2000 )
+#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME ( 5000 )
#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME ( 5000 )
/* Include support for LLMNR: Link-local Multicast Name Resolution
@@ -88,10 +90,10 @@ extern void vLoggingPrintf( const char * pcFormatString,
* socket has been destroyed, the result will be stored into the cache. The next
* call to FreeRTOS_gethostbyname() will return immediately, without even creating
* a socket. */
-#define ipconfigUSE_DNS_CACHE ( 1 )
-#define ipconfigDNS_CACHE_NAME_LENGTH ( 64 )
-#define ipconfigDNS_CACHE_ENTRIES ( 4 )
-#define ipconfigDNS_REQUEST_ATTEMPTS ( 2 )
+#define ipconfigUSE_DNS_CACHE 1
+#define ipconfigDNS_CACHE_NAME_LENGTH ( 64U )
+#define ipconfigDNS_CACHE_ENTRIES ( 4U )
+#define ipconfigDNS_REQUEST_ATTEMPTS ( 2U )
/* The IP stack executes it its own task (although any application task can make
* use of its services through the published sockets API). ipconfigUDP_TASK_PRIORITY
@@ -102,14 +104,14 @@ extern void vLoggingPrintf( const char * pcFormatString,
* FreeRTOSConfig.h, not FreeRTOSIPConfig.h. Consideration needs to be given as to
* the priority assigned to the task executing the IP stack relative to the
* priority assigned to tasks that use the IP stack. */
-#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
+#define ipconfigIP_TASK_PRIORITY ( configMAX_PRIORITIES - 2U )
/* The size, in words (not bytes), of the stack allocated to the FreeRTOS+TCP
* task. This setting is less important when the FreeRTOS Win32 simulator is used
* as the Win32 simulator only stores a fixed amount of information on the task
* stack. FreeRTOS includes optional stack overflow detection, see:
* https://www.FreeRTOS.org/Stacks-and-stack-overflow-checking.html */
-#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5 )
+#define ipconfigIP_TASK_STACK_SIZE_WORDS ( configMINIMAL_STACK_SIZE * 5U )
/* ipconfigRAND32() is called by the IP stack to generate random numbers for
* things such as a DHCP transaction number or initial sequence number. Random
@@ -117,7 +119,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
* own random number generation method. For example, it might be possible to
* generate a random number by sampling noise on an analogue input. */
extern UBaseType_t uxRand();
-#define ipconfigRAND32() uxRand()
+#define ipconfigRAND32() uxRand()
/* If ipconfigUSE_NETWORK_EVENT_HOOK is set to 1 then FreeRTOS+TCP will call the
* network event hook at the appropriate times. If ipconfigUSE_NETWORK_EVENT_HOOK
@@ -138,7 +140,7 @@ extern UBaseType_t uxRand();
* ipconfigMAX_SEND_BLOCK_TIME_TICKS is specified in RTOS ticks. A time in
* milliseconds can be converted to a time in ticks by dividing the time in
* milliseconds by portTICK_PERIOD_MS. */
-#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000 / portTICK_PERIOD_MS )
+#define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( 5000U / portTICK_PERIOD_MS )
/* If ipconfigUSE_DHCP is 1 then FreeRTOS+TCP will attempt to retrieve an IP
* address, netmask, DNS server address and gateway address from a DHCP server. If
@@ -156,7 +158,7 @@ extern UBaseType_t uxRand();
* static IP address passed as a parameter to FreeRTOS_IPInit() if the
* re-transmission time interval reaches ipconfigMAXIMUM_DISCOVER_TX_PERIOD without
* a DHCP reply being received. */
-#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000 / portTICK_PERIOD_MS )
+#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( 120000U / portTICK_PERIOD_MS )
/* The ARP cache is a table that maps IP addresses to MAC addresses. The IP
* stack can only send a UDP message to a remove IP address if it knowns the MAC
@@ -179,7 +181,7 @@ extern UBaseType_t uxRand();
* New ARP requests are sent for ARP cache entries that are nearing their maximum
* age. ipconfigMAX_ARP_AGE is specified in tens of seconds, so a value of 150 is
* equal to 1500 seconds (or 25 minutes). */
-#define ipconfigMAX_ARP_AGE 150
+#define ipconfigMAX_ARP_AGE 150U
/* Implementing FreeRTOS_inet_addr() necessitates the use of string handling
* routines, which are relatively large. To save code space the full
@@ -197,7 +199,7 @@ extern UBaseType_t uxRand();
* are available to the IP stack. The total number of network buffers is limited
* to ensure the total amount of RAM that can be consumed by the IP stack is capped
* to a pre-determinable value. */
-#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60
+#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 60U
/* A FreeRTOS queue is used to send events from application tasks to the IP
* stack. ipconfigEVENT_QUEUE_LENGTH sets the maximum number of events that can
@@ -227,7 +229,7 @@ extern UBaseType_t uxRand();
#define ipconfigUSE_TCP ( 1 )
/* Use the TCP socket wake context with a callback. */
-#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK_WITH_CONTEXT ( 1 )
+#define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK ( 1 )
/* USE_WIN: Let TCP use windowing mechanism. */
#define ipconfigUSE_TCP_WIN ( 1 )
@@ -237,7 +239,7 @@ extern UBaseType_t uxRand();
* lower value can save RAM, depending on the buffer management scheme used. If
* ipconfigCAN_FRAGMENT_OUTGOING_PACKETS is 1 then (ipconfigNETWORK_MTU - 28) must
* be divisible by 8. */
-#define ipconfigNETWORK_MTU 1200
+#define ipconfigNETWORK_MTU 1500U
/* Set ipconfigUSE_DNS to 1 to include a basic DNS client/resolver. DNS is used
* through the FreeRTOS_gethostbyname() API function. */
@@ -278,34 +280,47 @@ extern UBaseType_t uxRand();
* 32-bit memory instructions, all packets will be stored 32-bit-aligned, plus 16-bits.
* This has to do with the contents of the IP-packets: all 32-bit fields are
* 32-bit-aligned, plus 16-bit(!) */
-#define ipconfigPACKET_FILLER_SIZE 2
+#define ipconfigPACKET_FILLER_SIZE 2U
/* Define the size of the pool of TCP window descriptors. On the average, each
* TCP socket will use up to 2 x 6 descriptors, meaning that it can have 2 x 6
* outstanding packets (for Rx and Tx). When using up to 10 TP sockets
* simultaneously, one could define TCP_WIN_SEG_COUNT as 120. */
-#define ipconfigTCP_WIN_SEG_COUNT 240
+#define ipconfigTCP_WIN_SEG_COUNT 240U
/* Each TCP socket has a circular buffers for Rx and Tx, which have a fixed
* maximum size. Define the size of Rx buffer for TCP sockets. */
-#define ipconfigTCP_RX_BUFFER_LENGTH ( 5000 )
+#define ipconfigTCP_RX_BUFFER_LENGTH ( 4096U )
/* Define the size of Tx buffer for TCP sockets. */
-#define ipconfigTCP_TX_BUFFER_LENGTH ( 1000 )
+#define ipconfigTCP_TX_BUFFER_LENGTH ( 4096U )
/* When using call-back handlers, the driver may check if the handler points to
* real program memory (RAM or flash) or just has a random non-zero value. */
-#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
+#define ipconfigIS_VALID_PROG_ADDRESS( x ) ( ( x ) != NULL )
/* Include support for TCP hang protection. All sockets in a connecting or
* disconnecting stage will timeout after a period of non-activity. */
-#define ipconfigTCP_HANG_PROTECTION ( 1 )
-#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
+#define ipconfigTCP_HANG_PROTECTION ( 1 )
+#define ipconfigTCP_HANG_PROTECTION_TIME ( 30 )
/* Include support for TCP keep-alive messages. */
-#define ipconfigTCP_KEEP_ALIVE ( 1 )
-#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20 ) /* in seconds */
+#define ipconfigTCP_KEEP_ALIVE ( 1 )
+#define ipconfigTCP_KEEP_ALIVE_INTERVAL ( 20U ) /* in seconds */
+
+#define portINLINE __inline
+
+#include
+
+/* Set ipconfigBUFFER_PADDING on 64-bit platforms */
+#if INTPTR_MAX == INT64_MAX
+ #define ipconfigBUFFER_PADDING ( 14U )
+#endif /* INTPTR_MAX == INT64_MAX */
+
+
+#define configMAC
+
+extern BaseType_t xPlatformIsNetworkUp(void);
-#define portINLINE __inline
#endif /* FREERTOS_IP_CONFIG_H */
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/NetworkInterface_WinPCap.c b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/NetworkInterface_WinPCap.c
new file mode 100644
index 00000000000..ddfb78edffb
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/NetworkInterface_WinPCap.c
@@ -0,0 +1,797 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+#include
+
+/* WinPCap includes. */
+#define HAVE_REMOTE
+#include "pcap.h"
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
+
+/* FreeRTOS+TCP includes. */
+#include "FreeRTOS_IP.h"
+#include "FreeRTOS_IP_Private.h"
+#include "NetworkBufferManagement.h"
+
+/* Thread-safe circular buffers are being used to pass data to and from the PCAP
+ * access functions. */
+#include "Win32-Extensions.h"
+#include "FreeRTOS_Stream_Buffer.h"
+
+/* Sizes of the thread safe circular buffers used to pass data to and from the
+ * WinPCAP Windows threads. */
+#define xSEND_BUFFER_SIZE 32768
+#define xRECV_BUFFER_SIZE 32768
+
+/* If ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES is set to 1, then the Ethernet
+ * driver will filter incoming packets and only pass the stack those packets it
+ * considers need processing. */
+#if ( ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES == 0 )
+ #define ipCONSIDER_FRAME_FOR_PROCESSING( pucEthernetBuffer ) eProcessBuffer
+#else
+ #define ipCONSIDER_FRAME_FOR_PROCESSING( pucEthernetBuffer ) eConsiderFrameForProcessing( ( pucEthernetBuffer ) )
+#endif
+
+/* Used to insert test code only. */
+#define niDISRUPT_PACKETS 0
+
+/*-----------------------------------------------------------*/
+
+/*
+ * Windows threads that are outside of the control of the FreeRTOS simulator are
+ * used to interface with the WinPCAP libraries.
+ */
+DWORD WINAPI prvWinPcapRecvThread( void * pvParam );
+DWORD WINAPI prvWinPcapSendThread( void * pvParam );
+
+/*
+ * Print out a numbered list of network interfaces that are available on the
+ * host computer.
+ */
+static pcap_if_t * prvPrintAvailableNetworkInterfaces( void );
+
+/*
+ * Open the network interface. The number of the interface to be opened is set
+ * by the configNETWORK_INTERFACE_TO_USE constant in FreeRTOSConfig.h.
+ */
+static void prvOpenSelectedNetworkInterface( pcap_if_t * pxAllNetworkInterfaces );
+static int prvOpenInterface( const char * pucName );
+
+/*
+ * Configure the capture filter to allow blocking reads, and to filter out
+ * packets that are not of interest to this demo.
+ */
+static void prvConfigureCaptureBehaviour( void );
+
+/*
+ * A function that simulates Ethernet interrupts by periodically polling the
+ * WinPCap interface for new data.
+ */
+static void prvInterruptSimulatorTask( void * pvParameters );
+
+/*
+ * Create the buffers that are used to pass data between the FreeRTOS simulator
+ * and the Win32 threads that manage WinPCAP.
+ */
+static void prvCreateThreadSafeBuffers( void );
+
+/*
+ * This function is equivalent to uxStreamBufferAdd from
+ * FreeRTOS_Stream_Buffer.c in the case that the stream buffer is being used
+ * as a normal circular buffer (i.e. only the tail and head pointers are
+ * needed). Thus, this function does not take the offset argument, and does not
+ * update the front pointer of the stream buffer. This allows the removal of
+ * the calls to vTaskSuspendAll and xTaskResumeAll, as the head and front
+ * pointer no longer need to be atomically updated, allowing this function to be
+ * safely used by a Windows thread.
+ */
+static size_t prvStreamBufferAdd( StreamBuffer_t * pxBuffer,
+ const uint8_t * pucData,
+ size_t uxByteCount );
+
+/*
+ * Utility function used to format print messages only.
+ */
+static const char * prvRemoveSpaces( char * pcBuffer,
+ int aBuflen,
+ const char * pcMessage );
+
+/*-----------------------------------------------------------*/
+
+/* Required by the WinPCap library. */
+static char cErrorBuffer[ PCAP_ERRBUF_SIZE ];
+
+/* An event used to wake up the Win32 thread that sends data through the WinPCAP
+ * library. */
+static void * pvSendEvent = NULL;
+
+/* _HT_ made the PCAP interface number configurable through the program's
+ * parameters in order to test in different machines. */
+static BaseType_t xConfigNetworkInterfaceToUse = configNETWORK_INTERFACE_TO_USE;
+
+/* Handles to the Windows threads that handle the PCAP IO. */
+static HANDLE vWinPcapRecvThreadHandle = NULL;
+static HANDLE vWinPcapSendThreadHandle = NULL;
+
+/* The interface being used by WinPCap. */
+static pcap_t * pxOpenedInterfaceHandle = NULL;
+
+/* Circular buffers used by the PCAP Win32 threads. */
+static StreamBuffer_t * xSendBuffer = NULL;
+static StreamBuffer_t * xRecvBuffer = NULL;
+
+/* Logs the number of WinPCAP send failures, for viewing in the debugger only. */
+static volatile uint32_t ulWinPCAPSendFailures = 0;
+
+/*-----------------------------------------------------------*/
+
+BaseType_t xNetworkInterfaceInitialise( void )
+{
+ BaseType_t xReturn = pdFALSE;
+ pcap_if_t * pxAllNetworkInterfaces;
+
+ /* Query the computer the simulation is being executed on to find the
+ * network interfaces it has installed. */
+ pxAllNetworkInterfaces = prvPrintAvailableNetworkInterfaces();
+
+ /* Open the network interface. The number of the interface to be opened is
+ * set by the configNETWORK_INTERFACE_TO_USE constant in FreeRTOSConfig.h.
+ * Calling this function will set the pxOpenedInterfaceHandle variable. If,
+ * after calling this function, pxOpenedInterfaceHandle is equal to NULL, then
+ * the interface could not be opened. */
+ if( pxAllNetworkInterfaces != NULL )
+ {
+ prvOpenSelectedNetworkInterface( pxAllNetworkInterfaces );
+ }
+
+ if( pxOpenedInterfaceHandle != NULL )
+ {
+ xReturn = pdPASS;
+ }
+
+ return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+static void prvCreateThreadSafeBuffers( void )
+{
+ /* The buffer used to pass data to be transmitted from a FreeRTOS task to
+ * the Win32 thread that sends via the WinPCAP library. */
+ if( xSendBuffer == NULL )
+ {
+ xSendBuffer = ( StreamBuffer_t * ) malloc( sizeof( *xSendBuffer ) - sizeof( xSendBuffer->ucArray ) + xSEND_BUFFER_SIZE + 1 );
+ configASSERT( xSendBuffer );
+ memset( xSendBuffer, '\0', sizeof( *xSendBuffer ) - sizeof( xSendBuffer->ucArray ) );
+ xSendBuffer->LENGTH = xSEND_BUFFER_SIZE + 1;
+ }
+
+ /* The buffer used to pass received data from the Win32 thread that receives
+ * via the WinPCAP library to the FreeRTOS task. */
+ if( xRecvBuffer == NULL )
+ {
+ xRecvBuffer = ( StreamBuffer_t * ) malloc( sizeof( *xRecvBuffer ) - sizeof( xRecvBuffer->ucArray ) + xRECV_BUFFER_SIZE + 1 );
+ configASSERT( xRecvBuffer );
+ memset( xRecvBuffer, '\0', sizeof( *xRecvBuffer ) - sizeof( xRecvBuffer->ucArray ) );
+ xRecvBuffer->LENGTH = xRECV_BUFFER_SIZE + 1;
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+static size_t prvStreamBufferAdd( StreamBuffer_t * pxBuffer,
+ const uint8_t * pucData,
+ size_t uxByteCount )
+{
+ size_t uxSpace, uxNextHead, uxFirst;
+ size_t uxCount = uxByteCount;
+
+ uxSpace = uxStreamBufferGetSpace( pxBuffer );
+
+ /* The number of bytes that can be written is the minimum of the number of
+ * bytes requested and the number available. */
+ uxCount = FreeRTOS_min_size_t( uxSpace, uxCount );
+
+ if( uxCount != 0U )
+ {
+ uxNextHead = pxBuffer->uxHead;
+
+ if( pucData != NULL )
+ {
+ /* Calculate the number of bytes that can be added in the first
+ * write - which may be less than the total number of bytes that need
+ * to be added if the buffer will wrap back to the beginning. */
+ uxFirst = FreeRTOS_min_size_t( pxBuffer->LENGTH - uxNextHead, uxCount );
+
+ /* Write as many bytes as can be written in the first write. */
+ ( void ) memcpy( &( pxBuffer->ucArray[ uxNextHead ] ), pucData, uxFirst );
+
+ /* If the number of bytes written was less than the number that
+ * could be written in the first write... */
+ if( uxCount > uxFirst )
+ {
+ /* ...then write the remaining bytes to the start of the
+ * buffer. */
+ ( void ) memcpy( pxBuffer->ucArray, &( pucData[ uxFirst ] ), uxCount - uxFirst );
+ }
+ }
+
+ uxNextHead += uxCount;
+
+ if( uxNextHead >= pxBuffer->LENGTH )
+ {
+ uxNextHead -= pxBuffer->LENGTH;
+ }
+
+ pxBuffer->uxHead = uxNextHead;
+ }
+
+ return uxCount;
+}
+
+/*-----------------------------------------------------------*/
+
+BaseType_t xNetworkInterfaceOutput( NetworkBufferDescriptor_t * const pxNetworkBuffer,
+ BaseType_t bReleaseAfterSend )
+{
+ size_t xSpace;
+
+ iptraceNETWORK_INTERFACE_TRANSMIT();
+ configASSERT( xIsCallingFromIPTask() == pdTRUE );
+
+ /* Both the length of the data being sent and the actual data being sent
+ * are placed in the thread safe buffer used to pass data between the FreeRTOS
+ * tasks and the Win32 thread that sends data via the WinPCAP library. Drop
+ * the packet if there is insufficient space in the buffer to hold both. */
+ xSpace = uxStreamBufferGetSpace( xSendBuffer );
+
+ if( ( pxNetworkBuffer->xDataLength <= ( ipconfigNETWORK_MTU + ipSIZE_OF_ETH_HEADER ) ) &&
+ ( xSpace >= ( pxNetworkBuffer->xDataLength + sizeof( pxNetworkBuffer->xDataLength ) ) ) )
+ {
+ /* First write in the length of the data, then write in the data
+ * itself. */
+ uxStreamBufferAdd( xSendBuffer, 0, ( const uint8_t * ) &( pxNetworkBuffer->xDataLength ), sizeof( pxNetworkBuffer->xDataLength ) );
+ uxStreamBufferAdd( xSendBuffer, 0, ( const uint8_t * ) pxNetworkBuffer->pucEthernetBuffer, pxNetworkBuffer->xDataLength );
+ }
+ else
+ {
+ FreeRTOS_debug_printf( ( "xNetworkInterfaceOutput: send buffers full to store %lu\n", pxNetworkBuffer->xDataLength ) );
+ }
+
+ /* Kick the Tx task in either case in case it doesn't know the buffer is
+ * full. */
+ SetEvent( pvSendEvent );
+
+ /* The buffer has been sent so can be released. */
+ if( bReleaseAfterSend != pdFALSE )
+ {
+ vReleaseNetworkBufferAndDescriptor( pxNetworkBuffer );
+ }
+
+ return pdPASS;
+}
+/*-----------------------------------------------------------*/
+
+static pcap_if_t * prvPrintAvailableNetworkInterfaces( void )
+{
+ pcap_if_t * pxAllNetworkInterfaces = NULL, * xInterface;
+ int32_t lInterfaceNumber = 1;
+ char cBuffer[ 512 ];
+ static BaseType_t xInvalidInterfaceDetected = pdFALSE;
+
+ if( xInvalidInterfaceDetected == pdFALSE )
+ {
+ if( pcap_findalldevs_ex( PCAP_SRC_IF_STRING, NULL, &pxAllNetworkInterfaces, cErrorBuffer ) == -1 )
+ {
+ printf( "Could not obtain a list of network interfaces\n%s\n", cErrorBuffer );
+ pxAllNetworkInterfaces = NULL;
+ }
+ else
+ {
+ printf( "\r\n\r\nThe following network interfaces are available:\r\n\r\n" );
+ }
+
+ if( pxAllNetworkInterfaces != NULL )
+ {
+ /* Print out the list of network interfaces. The first in the list
+ * is interface '1', not interface '0'. */
+ for(xInterface = pxAllNetworkInterfaces; xInterface != NULL; xInterface = xInterface->next)
+ {
+ /* The descriptions of the devices can be full of spaces, clean them
+ * a little. printf() can only be used here because the network is not
+ * up yet - so no other network tasks will be running. */
+ printf( "Interface %d - %s\n", lInterfaceNumber, prvRemoveSpaces( cBuffer, sizeof( cBuffer ), xInterface->name ) );
+ printf( " (%s)\n", prvRemoveSpaces( cBuffer, sizeof( cBuffer ), xInterface->description ? xInterface->description : "No description" ) );
+ printf( "\n" );
+ lInterfaceNumber++;
+ }
+ }
+
+ if( lInterfaceNumber == 1 )
+ {
+ /* The interface number was never incremented, so the above for() loop
+ * did not execute meaning no interfaces were found. */
+ printf( " \nNo network interfaces were found.\n" );
+ pxAllNetworkInterfaces = NULL;
+ }
+
+ printf( "\r\nThe interface that will be opened is set by " );
+ printf( "\"configNETWORK_INTERFACE_TO_USE\", which\r\nshould be defined in FreeRTOSConfig.h\r\n" );
+
+ if( ( xConfigNetworkInterfaceToUse < 1L ) || ( xConfigNetworkInterfaceToUse >= lInterfaceNumber ) )
+ {
+ printf( "\r\nERROR: configNETWORK_INTERFACE_TO_USE is set to %d, which is an invalid value.\r\n", xConfigNetworkInterfaceToUse );
+ printf( "Please set configNETWORK_INTERFACE_TO_USE to one of the interface numbers listed above,\r\n" );
+ printf( "then re-compile and re-start the application. Only Ethernet (as opposed to WiFi)\r\n" );
+ printf( "interfaces are supported.\r\n\r\nHALTING\r\n\r\n\r\n" );
+ xInvalidInterfaceDetected = pdTRUE;
+
+ if( pxAllNetworkInterfaces != NULL )
+ {
+ /* Free the device list, as no devices are going to be opened. */
+ pcap_freealldevs( pxAllNetworkInterfaces );
+ pxAllNetworkInterfaces = NULL;
+ }
+ }
+ else
+ {
+ printf( "Attempting to open interface number %d.\n", xConfigNetworkInterfaceToUse );
+ }
+ }
+
+ return pxAllNetworkInterfaces;
+}
+/*-----------------------------------------------------------*/
+
+static int prvOpenInterface( const char * pucName )
+{
+ static char pucInterfaceName[ 256 ];
+
+ if( pucName != NULL )
+ {
+ strncpy( pucInterfaceName, pucName, sizeof( pucInterfaceName ) );
+ }
+
+ pxOpenedInterfaceHandle = pcap_open( pucInterfaceName, /* The name of the selected interface. */
+ ipTOTAL_ETHERNET_FRAME_SIZE, /* The size of the packet to capture. */
+ PCAP_OPENFLAG_PROMISCUOUS, /* Open in promiscuous mode as the MAC and
+ * IP address is going to be "simulated", and
+ * not be the real MAC and IP address. This allows
+ * traffic to the simulated IP address to be routed
+ * to uIP, and traffic to the real IP address to be
+ * routed to the Windows TCP/IP stack. */
+ 100,
+ NULL, /* No authentication is required as this is
+ * not a remote capture session. */
+ cErrorBuffer
+ );
+
+ if( pxOpenedInterfaceHandle == NULL )
+ {
+ printf( "\n%s is not supported by WinPcap and cannot be opened\n", pucInterfaceName );
+ return 1;
+ }
+ else
+ {
+ /* Configure the capture filter to allow blocking reads, and to filter
+ * out packets that are not of interest to this demo. */
+ prvConfigureCaptureBehaviour();
+ }
+
+ return 0;
+}
+/*-----------------------------------------------------------*/
+
+static void prvOpenSelectedNetworkInterface( pcap_if_t * pxAllNetworkInterfaces )
+{
+ pcap_if_t * pxInterface;
+ int32_t x;
+
+ /* Walk the list of devices until the selected device is located. */
+ pxInterface = pxAllNetworkInterfaces;
+
+ for(x = 0L; x < ( xConfigNetworkInterfaceToUse - 1L ); x++)
+ {
+ pxInterface = pxInterface->next;
+ }
+
+ /* Open the selected interface. */
+ if( prvOpenInterface( pxInterface->name ) == 0 )
+ {
+ printf( "Successfully opened interface number %d.\n", x + 1 );
+ }
+ else
+ {
+ printf( "Failed to open interface number %d.\n", x + 1 );
+ }
+
+ /* The device list is no longer required. */
+ pcap_freealldevs( pxAllNetworkInterfaces );
+}
+/*-----------------------------------------------------------*/
+
+static void prvConfigureCaptureBehaviour( void )
+{
+ struct bpf_program xFilterCode;
+ uint32_t ulNetMask;
+
+ /* Set up a filter so only the packets of interest are passed to the IP
+ * stack. cErrorBuffer is used for convenience to create the string. Don't
+ * confuse this with an error message. */
+ sprintf( cErrorBuffer, "broadcast or multicast or ether host %x:%x:%x:%x:%x:%x",
+ ipLOCAL_MAC_ADDRESS[ 0 ], ipLOCAL_MAC_ADDRESS[ 1 ], ipLOCAL_MAC_ADDRESS[ 2 ], ipLOCAL_MAC_ADDRESS[ 3 ], ipLOCAL_MAC_ADDRESS[ 4 ], ipLOCAL_MAC_ADDRESS[ 5 ] );
+
+ ulNetMask = ( configNET_MASK3 << 24UL ) | ( configNET_MASK2 << 16UL ) | ( configNET_MASK1 << 8L ) | configNET_MASK0;
+
+ if( pcap_compile( pxOpenedInterfaceHandle, &xFilterCode, cErrorBuffer, 1, ulNetMask ) < 0 )
+ {
+ printf( "\nThe packet filter string is invalid\n" );
+ }
+ else
+ {
+ if( pcap_setfilter( pxOpenedInterfaceHandle, &xFilterCode ) < 0 )
+ {
+ printf( "\nAn error occurred setting the packet filter.\n" );
+ }
+
+ /* When pcap_compile() succeeds, it allocates memory for the memory pointed to by the bpf_program struct
+ * parameter.pcap_freecode() will free that memory. */
+ pcap_freecode( &xFilterCode );
+ }
+
+ /* Create the buffers used to pass packets between the FreeRTOS simulator
+ * and the Win32 threads that are handling WinPCAP. */
+ prvCreateThreadSafeBuffers();
+
+ if( pvSendEvent == NULL )
+ {
+ /* Create event used to signal the Win32 WinPCAP Tx thread. */
+ pvSendEvent = CreateEvent( NULL, FALSE, TRUE, NULL );
+
+ /* Create the Win32 thread that handles WinPCAP Rx. */
+ vWinPcapRecvThreadHandle = CreateThread(
+ NULL, /* Pointer to thread security attributes. */
+ 0, /* Initial thread stack size, in bytes. */
+ prvWinPcapRecvThread, /* Pointer to thread function. */
+ NULL, /* Argument for new thread. */
+ 0, /* Creation flags. */
+ NULL );
+
+ /* Use the cores that are not used by the FreeRTOS tasks. */
+ SetThreadAffinityMask( vWinPcapRecvThreadHandle, ~0x01u );
+
+ /* Create the Win32 thread that handlers WinPCAP Tx. */
+ vWinPcapSendThreadHandle = CreateThread(
+ NULL, /* Pointer to thread security attributes. */
+ 0, /* initial thread stack size, in bytes. */
+ prvWinPcapSendThread, /* Pointer to thread function. */
+ NULL, /* Argument for new thread. */
+ 0, /* Creation flags. */
+ NULL );
+
+ /* Use the cores that are not used by the FreeRTOS tasks. */
+ SetThreadAffinityMask( vWinPcapSendThreadHandle, ~0x01u );
+
+ /* Create a task that simulates an interrupt in a real system. This will
+ * block waiting for packets, then send a message to the IP task when data
+ * is available. */
+ xTaskCreate( prvInterruptSimulatorTask, "MAC_ISR", configMINIMAL_STACK_SIZE, NULL, configMAC_ISR_SIMULATOR_PRIORITY, NULL );
+ }
+}
+/*-----------------------------------------------------------*/
+
+/* WinPCAP function. */
+void pcap_callback( u_char * user,
+ const struct pcap_pkthdr * pkt_header,
+ const u_char * pkt_data )
+{
+ ( void ) user;
+
+ /* THIS IS CALLED FROM A WINDOWS THREAD - DO NOT ATTEMPT ANY FREERTOS CALLS
+ * OR TO PRINT OUT MESSAGES HERE. */
+
+ /* Pass data to the FreeRTOS simulator on a thread safe circular buffer. */
+ if( ( pkt_header->caplen <= ( ipconfigNETWORK_MTU + ipSIZE_OF_ETH_HEADER ) ) &&
+ ( uxStreamBufferGetSpace( xRecvBuffer ) >= ( ( ( size_t ) pkt_header->caplen ) + sizeof( *pkt_header ) ) ) )
+ {
+ /* The received packets will be written to a C source file,
+ * only if 'ipconfigUSE_DUMP_PACKETS' is defined.
+ * Otherwise, there is no action. */
+ iptraceDUMP_PACKET( ( const uint8_t * ) pkt_data, ( size_t ) pkt_header->caplen, pdTRUE );
+
+ /* NOTE. The prvStreamBufferAdd function is used here in place of
+ * uxStreamBufferAdd since the uxStreamBufferAdd call will suspend
+ * the FreeRTOS scheduler to atomically update the head and front
+ * of the stream buffer. Since xRecvBuffer is being used as a regular
+ * circular buffer (i.e. only the head and tail are needed), this call
+ * only updates the head of the buffer, removing the need to suspend
+ * the scheduler, and allowing this function to be safely called from
+ * a Windows thread. */
+ prvStreamBufferAdd( xRecvBuffer, ( const uint8_t * ) pkt_header, sizeof( *pkt_header ) );
+ prvStreamBufferAdd( xRecvBuffer, ( const uint8_t * ) pkt_data, ( size_t ) pkt_header->caplen );
+ }
+}
+/*-----------------------------------------------------------*/
+
+DWORD WINAPI prvWinPcapRecvThread( void * pvParam )
+{
+ ( void ) pvParam;
+
+ /* THIS IS A WINDOWS THREAD - DO NOT ATTEMPT ANY FREERTOS CALLS OR TO PRINT
+ * OUT MESSAGES HERE. */
+
+ for( ; ; )
+ {
+ pcap_dispatch( pxOpenedInterfaceHandle, 1, pcap_callback, ( u_char * ) "mydata" );
+ }
+}
+/*-----------------------------------------------------------*/
+
+DWORD WINAPI prvWinPcapSendThread( void * pvParam )
+{
+ size_t xLength;
+ uint8_t ucBuffer[ ipconfigNETWORK_MTU + ipSIZE_OF_ETH_HEADER ];
+ static char cErrorMessage[ 1024 ];
+ const DWORD xMaxMSToWait = 1000;
+
+ /* THIS IS A WINDOWS THREAD - DO NOT ATTEMPT ANY FREERTOS CALLS OR TO PRINT
+ * OUT MESSAGES HERE. */
+
+ /* Remove compiler warnings about unused parameters. */
+ ( void ) pvParam;
+
+ for( ; ; )
+ {
+ /* Wait until notified of something to send. */
+ WaitForSingleObject( pvSendEvent, xMaxMSToWait );
+
+ /* Is there more than the length value stored in the circular buffer
+ * used to pass data from the FreeRTOS simulator into this Win32 thread? */
+ while( uxStreamBufferGetSize( xSendBuffer ) > sizeof( xLength ) )
+ {
+ uxStreamBufferGet( xSendBuffer, 0, ( uint8_t * ) &xLength, sizeof( xLength ), pdFALSE );
+ uxStreamBufferGet( xSendBuffer, 0, ( uint8_t * ) ucBuffer, xLength, pdFALSE );
+
+ /* The packets sent will be written to a C source file,
+ * only if 'ipconfigUSE_DUMP_PACKETS' is defined.
+ * Otherwise, there is no action. */
+ iptraceDUMP_PACKET( ucBuffer, xLength, pdFALSE );
+
+ if( pcap_sendpacket( pxOpenedInterfaceHandle, ucBuffer, xLength ) != 0 )
+ {
+ ulWinPCAPSendFailures++;
+ }
+ }
+ }
+}
+/*-----------------------------------------------------------*/
+
+static BaseType_t xPacketBouncedBack( const uint8_t * pucBuffer )
+{
+ EthernetHeader_t * pxEtherHeader;
+ BaseType_t xResult;
+
+ pxEtherHeader = ( EthernetHeader_t * ) pucBuffer;
+
+ /* Sometimes, packets are bounced back by the driver and we need not process them. Check
+ * whether this packet is one such packet. */
+ if( memcmp( ipLOCAL_MAC_ADDRESS, pxEtherHeader->xSourceAddress.ucBytes, ipMAC_ADDRESS_LENGTH_BYTES ) == 0 )
+ {
+ xResult = pdTRUE;
+ }
+ else
+ {
+ xResult = pdFALSE;
+ }
+
+ return xResult;
+}
+/*-----------------------------------------------------------*/
+
+static void prvInterruptSimulatorTask( void * pvParameters )
+{
+ struct pcap_pkthdr xHeader;
+ static struct pcap_pkthdr * pxHeader;
+ const uint8_t * pucPacketData;
+ uint8_t ucRecvBuffer[ ipconfigNETWORK_MTU + ipSIZE_OF_ETH_HEADER ];
+ NetworkBufferDescriptor_t * pxNetworkBuffer;
+ IPStackEvent_t xRxEvent = { eNetworkRxEvent, NULL };
+ eFrameProcessingResult_t eResult;
+
+ /* Remove compiler warnings about unused parameters. */
+ ( void ) pvParameters;
+
+ for( ; ; )
+ {
+ /* Does the circular buffer used to pass data from the Win32 thread that
+ * handles WinPCAP Rx into the FreeRTOS simulator contain another packet? */
+ if( uxStreamBufferGetSize( xRecvBuffer ) > sizeof( xHeader ) )
+ {
+ /* Get the next packet. */
+ uxStreamBufferGet( xRecvBuffer, 0, ( uint8_t * ) &xHeader, sizeof( xHeader ), pdFALSE );
+ uxStreamBufferGet( xRecvBuffer, 0, ( uint8_t * ) ucRecvBuffer, ( size_t ) xHeader.len, pdFALSE );
+ pucPacketData = ucRecvBuffer;
+ pxHeader = &xHeader;
+
+ iptraceNETWORK_INTERFACE_RECEIVE();
+
+ /* Check for minimal size. */
+ if( pxHeader->len >= sizeof( EthernetHeader_t ) )
+ {
+ eResult = ipCONSIDER_FRAME_FOR_PROCESSING( pucPacketData );
+ }
+ else
+ {
+ eResult = eReleaseBuffer;
+ }
+
+ if( eResult == eProcessBuffer )
+ {
+ /* Will the data fit into the frame buffer? */
+ if( pxHeader->len <= ipTOTAL_ETHERNET_FRAME_SIZE )
+ {
+ /* Obtain a buffer into which the data can be placed. This
+ * is only an interrupt simulator, not a real interrupt, so it
+ * is ok to call the task level function here, but note that
+ * some buffer implementations cannot be called from a real
+ * interrupt. */
+ if( xPacketBouncedBack( pucPacketData ) == pdFALSE )
+ {
+ pxNetworkBuffer = pxGetNetworkBufferWithDescriptor( pxHeader->len, 0 );
+ }
+ else
+ {
+ pxNetworkBuffer = NULL;
+ }
+
+ if( pxNetworkBuffer != NULL )
+ {
+ memcpy( pxNetworkBuffer->pucEthernetBuffer, pucPacketData, pxHeader->len );
+ pxNetworkBuffer->xDataLength = ( size_t ) pxHeader->len;
+
+ #if ( niDISRUPT_PACKETS == 1 )
+ {
+ pxNetworkBuffer = vRxFaultInjection( pxNetworkBuffer, pucPacketData );
+ }
+ #endif /* niDISRUPT_PACKETS */
+
+ if( pxNetworkBuffer != NULL )
+ {
+ xRxEvent.pvData = ( void * ) pxNetworkBuffer;
+
+ /* Data was received and stored. Send a message to
+ * the IP task to let it know. */
+ if( xSendEventStructToIPTask( &xRxEvent, ( TickType_t ) 0 ) == pdFAIL )
+ {
+ /* The buffer could not be sent to the stack so
+ * must be released again. This is only an
+ * interrupt simulator, not a real interrupt, so it
+ * is ok to use the task level function here, but
+ * note no all buffer implementations will allow
+ * this function to be executed from a real
+ * interrupt. */
+ vReleaseNetworkBufferAndDescriptor( pxNetworkBuffer );
+ iptraceETHERNET_RX_EVENT_LOST();
+ }
+ }
+ else
+ {
+ /* The packet was already released or stored inside
+ * vRxFaultInjection(). Don't release it here. */
+ }
+ }
+ else
+ {
+ iptraceETHERNET_RX_EVENT_LOST();
+ }
+ }
+ else
+ {
+ /* Log that a packet was dropped because it would have
+ * overflowed the buffer, but there may be more buffers to
+ * process. */
+ }
+ }
+ }
+ else
+ {
+ /* There is no real way of simulating an interrupt. Make sure
+ * other tasks can run. */
+ vTaskDelay( configWINDOWS_MAC_INTERRUPT_SIMULATOR_DELAY );
+ }
+ }
+}
+/*-----------------------------------------------------------*/
+
+static const char * prvRemoveSpaces( char * pcBuffer,
+ int aBuflen,
+ const char * pcMessage )
+{
+ char * pcTarget = pcBuffer;
+
+ /* Utility function used to format messages being printed only. */
+ while( ( *pcMessage != 0 ) && ( pcTarget < ( pcBuffer + aBuflen - 1 ) ) )
+ {
+ *( pcTarget++ ) = *pcMessage;
+
+ if( isspace( *pcMessage ) != pdFALSE )
+ {
+ while( isspace( *pcMessage ) != pdFALSE )
+ {
+ pcMessage++;
+ }
+ }
+ else
+ {
+ pcMessage++;
+ }
+ }
+
+ *pcTarget = '\0';
+
+ return pcBuffer;
+}
+
+#define BUFFER_SIZE ( ipTOTAL_ETHERNET_FRAME_SIZE + ipBUFFER_PADDING )
+#define BUFFER_SIZE_ROUNDED_UP ( ( BUFFER_SIZE + 7 ) & ~0x07UL )
+
+void vNetworkInterfaceAllocateRAMToBuffers( NetworkBufferDescriptor_t pxNetworkBuffers[ ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS ] )
+{
+ static uint8_t * pucNetworkPacketBuffers = NULL;
+ size_t uxIndex;
+
+ if( pucNetworkPacketBuffers == NULL )
+ {
+ pucNetworkPacketBuffers = ( uint8_t * ) malloc( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS * BUFFER_SIZE_ROUNDED_UP );
+ }
+
+ if( pucNetworkPacketBuffers == NULL )
+ {
+ FreeRTOS_printf( ( "Failed to allocate memory for pxNetworkBuffers" ) );
+ configASSERT( 0 );
+ }
+ else
+ {
+ for(uxIndex = 0; uxIndex < ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS; uxIndex++)
+ {
+ size_t uxOffset = uxIndex * BUFFER_SIZE_ROUNDED_UP;
+ NetworkBufferDescriptor_t ** ppDescriptor;
+
+ /* At the beginning of each pbuff is a pointer to the relevant descriptor */
+ ppDescriptor = ( NetworkBufferDescriptor_t ** ) &( pucNetworkPacketBuffers[ uxOffset ] );
+
+ /* Set this pointer to the address of the correct descriptor */
+ *ppDescriptor = &( pxNetworkBuffers[ uxIndex ] );
+
+ /* pucEthernetBuffer is set to point ipBUFFER_PADDING bytes in from the
+ * beginning of the allocated buffer. */
+ pxNetworkBuffers[ uxIndex ].pucEthernetBuffer = &( pucNetworkPacketBuffers[ uxOffset + ipBUFFER_PADDING ] );
+ }
+ }
+}
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/plus_tcp_hooks_winsim.c b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/plus_tcp_hooks_winsim.c
new file mode 100644
index 00000000000..4cdfb06e288
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS+TCP/plus_tcp_hooks_winsim.c
@@ -0,0 +1,179 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+/* Standard includes. */
+#include
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* TCP/IP stack includes. */
+#include "FreeRTOS_IP.h"
+#include "FreeRTOS_Sockets.h"
+
+/*-----------------------------------------------------------*/
+
+#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) || ( ipconfigDHCP_REGISTER_HOSTNAME == 1 )
+
+ const char * pcApplicationHostnameHook( void )
+ {
+ /* Assign the name "FreeRTOS" to this network node. This function will
+ * be called during the DHCP: the machine will be registered with an IP
+ * address plus this name. */
+ return "FreeRTOSWinSim";
+ }
+
+#endif
+
+/*-----------------------------------------------------------*/
+
+#if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 )
+
+ BaseType_t xApplicationDNSQueryHook( const char * pcName )
+ {
+ BaseType_t xReturn;
+
+ /* Determine if a name lookup is for this node. Two names are given
+ * to this node: that returned by pcApplicationHostnameHook() and that set
+ * by mainDEVICE_NICK_NAME. */
+ if( _stricmp( pcName, pcApplicationHostnameHook() ) == 0 )
+ {
+ xReturn = pdPASS;
+ }
+ else if( _stricmp( pcName, mainDEVICE_NICK_NAME ) == 0 )
+ {
+ xReturn = pdPASS;
+ }
+ else
+ {
+ xReturn = pdFAIL;
+ }
+
+ return xReturn;
+ }
+
+#endif /* if ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) */
+
+/*
+ * Set *pulNumber to a random number, and return pdTRUE. When the random number
+ * generator is broken, it shall return pdFALSE.
+ */
+BaseType_t xApplicationGetRandomNumber( uint32_t * pulNumber )
+{
+ *pulNumber = ( uint32_t ) uxRand();
+ return pdTRUE;
+}
+
+/*-----------------------------------------------------------*/
+
+/*
+ * Callback that provides the inputs necessary to generate a randomized TCP
+ * Initial Sequence Number per RFC 6528. THIS IS ONLY A DUMMY IMPLEMENTATION
+ * THAT RETURNS A PSEUDO RANDOM NUMBER SO IS NOT INTENDED FOR USE IN PRODUCTION
+ * SYSTEMS.
+ */
+uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
+ uint16_t usSourcePort,
+ uint32_t ulDestinationAddress,
+ uint16_t usDestinationPort )
+{
+ ( void ) ulSourceAddress;
+ ( void ) usSourcePort;
+ ( void ) ulDestinationAddress;
+ ( void ) usDestinationPort;
+
+ return ( uint32_t ) uxRand();
+}
+
+/* Called by FreeRTOS+TCP when the network connects or disconnects. Disconnect
+ * events are only received if implemented in the MAC driver. */
+void vApplicationIPNetworkEventHook( eIPCallbackEvent_t eNetworkEvent )
+{
+ uint32_t ulIPAddress, ulNetMask, ulGatewayAddress, ulDNSServerAddress;
+ char cBuffer[ 16 ];
+ static BaseType_t xTasksAlreadyCreated = pdFALSE;
+
+ /* If the network has just come up...*/
+ if( eNetworkEvent == eNetworkUp )
+ {
+ /* Print out the network configuration, which may have come from a DHCP
+ * server. */
+ FreeRTOS_GetAddressConfiguration( &ulIPAddress, &ulNetMask, &ulGatewayAddress, &ulDNSServerAddress );
+ FreeRTOS_inet_ntoa( ulIPAddress, cBuffer );
+ FreeRTOS_printf( ( "\r\n\r\nIP Address: %s\r\n", cBuffer ) );
+
+ FreeRTOS_inet_ntoa( ulNetMask, cBuffer );
+ FreeRTOS_printf( ( "Subnet Mask: %s\r\n", cBuffer ) );
+
+ FreeRTOS_inet_ntoa( ulGatewayAddress, cBuffer );
+ FreeRTOS_printf( ( "Gateway Address: %s\r\n", cBuffer ) );
+
+ FreeRTOS_inet_ntoa( ulDNSServerAddress, cBuffer );
+ FreeRTOS_printf( ( "DNS Server Address: %s\r\n\r\n\r\n", cBuffer ) );
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+void vPlatformInitIpStack( void )
+{
+ UBaseType_t uxRandomNumber;
+ BaseType_t xResult;
+ uint8_t ucIPAddress[ 4 ];
+ uint8_t ucNetMask[ 4 ] = { 255, 255, 0, 0 };
+ uint8_t ucNullAddress[ 4 ] = { 0, 0, 0, 0 };
+ uint8_t ucMACAddress[ 6 ];
+
+ /* Generate a random number */
+ uxRandomNumber = uxRand();
+
+ /* Generate a random MAC address in the reserved range */
+ ucMACAddress[ 0 ] = 0x00;
+ ucMACAddress[ 1 ] = 0x11;
+ ucMACAddress[ 2 ] = ( uxRandomNumber & 0xFF );
+ ucMACAddress[ 3 ] = ( ( uxRandomNumber >> 8 ) & 0xFF );
+ ucMACAddress[ 4 ] = ( ( uxRandomNumber >> 16 ) & 0xFF );
+ ucMACAddress[ 5 ] = ( ( uxRandomNumber >> 24 ) & 0xFF );
+
+ /* Assign a link-local address in the 169.254.0.0/16 range */
+ ucIPAddress[ 0 ] = 169U;
+ ucIPAddress[ 1 ] = 254U;
+ ucIPAddress[ 2 ] = ( ( uxRandomNumber >> 16 ) & 0xFF );
+ ucIPAddress[ 3 ] = ( ( uxRandomNumber >> 24 ) & 0xFF );
+
+ xResult = FreeRTOS_IPInit( ucIPAddress, ucNetMask, ucNullAddress, ucNullAddress, ucMACAddress );
+ configASSERT( xResult == pdTRUE );
+}
+
+/*-----------------------------------------------------------*/
+
+BaseType_t xPlatformIsNetworkUp( void )
+{
+ return FreeRTOS_IsNetworkUp();
+}
+
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOS-Kernel.vcxproj b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOS-Kernel.vcxproj
new file mode 100644
index 00000000000..b7f449ad8b6
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOS-Kernel.vcxproj
@@ -0,0 +1,176 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 17.0
+ {72C209C4-49A4-4942-A201-44706C9D77EC}
+ Win32Proj
+ 10.0
+ FreeRTOS-Kernel
+
+
+
+ StaticLibrary
+ true
+ v142
+
+
+ StaticLibrary
+ false
+ v142
+
+
+ StaticLibrary
+ true
+ v142
+
+
+ StaticLibrary
+ false
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);$(IncludePath)
+ ..\..\..\FreeRTOS\Source;$(SourcePath)
+ ..\..\..\FreeRTOS\Source;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\FreeRTOS\Source\portable\MemMang;$(PublicModuleDirectories)
+
+
+ true
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);$(IncludePath)
+ ..\..\..\FreeRTOS\Source;$(SourcePath)
+ ..\..\..\FreeRTOS\Source;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\FreeRTOS\Source\portable\MemMang;$(PublicModuleDirectories)
+
+
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ ..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\FreeRTOS\Source\include;.\;$(PublicIncludeDirectories)
+ true
+
+
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);$(IncludePath)
+ ..\..\..\FreeRTOS\Source;$(SourcePath)
+ ..\..\..\FreeRTOS\Source;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\FreeRTOS\Source\portable\MemMang;$(PublicModuleDirectories)
+
+
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ $(VC_IncludePath);$(WindowsSDK_IncludePath);$(IncludePath)
+ ..\..\..\FreeRTOS\Source;$(SourcePath)
+ ..\..\..\FreeRTOS\Source;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\FreeRTOS\Source\portable\MemMang;$(PublicModuleDirectories)
+
+
+ false
+
+
+
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ ProgramDatabase
+ Disabled
+
+
+ MachineX86
+ true
+ Windows
+
+
+
+
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+
+
+ ..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\FreeRTOS\Source\include;.\;%(AdditionalIncludeDirectories)
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOS-Kernel.vcxproj.filters b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOS-Kernel.vcxproj.filters
new file mode 100644
index 00000000000..b1ba92a1d74
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOS-Kernel.vcxproj.filters
@@ -0,0 +1,95 @@
+
+
+
+
+ {03334b83-3266-4cf4-9640-4962e653bdba}
+
+
+ {7eca6f04-3532-407e-990c-0ec553526fea}
+
+
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+ include
+
+
+
+
+
+
+ Kernel
+
+
+ Kernel
+
+
+ Kernel
+
+
+ Kernel
+
+
+ Kernel
+
+
+ Kernel
+
+
+
+
+
+
+
+
+ include
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/FreeRTOSConfig.h b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOSConfig.h
similarity index 81%
rename from FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/FreeRTOSConfig.h
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOSConfig.h
index 0b4128d2fbc..84e28f62d7a 100644
--- a/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo/FreeRTOSConfig.h
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/FreeRTOSConfig.h
@@ -27,6 +27,8 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+#include
+
/*-----------------------------------------------------------
* Application specific definitions.
*
@@ -43,23 +45,21 @@
*----------------------------------------------------------*/
#define configUSE_PREEMPTION 1
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
-#define configMAX_PRIORITIES ( 7 )
+#define configMAX_PRIORITIES ( 32 )
#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the Win32 thread. */
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2048U * 1024U ) )
#define configMAX_TASK_NAME_LEN ( 15 )
#define configUSE_TRACE_FACILITY 1
-#define configUSE_STATS_FORMATTING_FUNCTIONS 0
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
-#define configUSE_CO_ROUTINES 0
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configQUEUE_REGISTRY_SIZE 0
#define configUSE_APPLICATION_TASK_TAG 0
#define configUSE_COUNTING_SEMAPHORES 1
#define configUSE_ALTERNATIVE_API 0
-#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0
+#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 8
#define configENABLE_BACKWARD_COMPATIBILITY 1
#define configSUPPORT_STATIC_ALLOCATION 1
@@ -78,31 +78,34 @@
/* Event group related definitions. */
#define configUSE_EVENT_GROUPS 1
-/* Run time stats gathering configuration options. */
-#define configGENERATE_RUN_TIME_STATS 0
-
-/* Co-routine definitions. */
-#define configUSE_CO_ROUTINES 0
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
-
/* Set the following definitions to 1 to include the API function, or zero
* to exclude the API function. */
#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1
-#define INCLUDE_vTaskCleanUpResources 0
+#define INCLUDE_vTaskCleanUpResources 1
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_uxTaskGetStackHighWaterMark 1
#define INCLUDE_xTaskGetSchedulerState 1
-#define INCLUDE_xTimerGetTimerTaskHandle 0
-#define INCLUDE_xTaskGetIdleTaskHandle 0
+#define INCLUDE_xTimerGetTimerTaskHandle 1
+#define INCLUDE_xTaskGetIdleTaskHandle 1
#define INCLUDE_xQueueGetMutexHolder 1
#define INCLUDE_eTaskGetState 1
#define INCLUDE_xEventGroupSetBitsFromISR 1
#define INCLUDE_xTimerPendFunctionCall 1
#define INCLUDE_pcTaskGetTaskName 1
+#define INCLUDE_xTaskGetCurrentTaskHandle 1
+
+/* This demo makes use of one or more example stats formatting functions. These
+ * format the raw data provided by the uxTaskGetSystemState() function in to human
+ * readable ASCII form. See the notes in the implementation of vTaskList() within
+ * FreeRTOS/Source/tasks.c for limitations. configUSE_STATS_FORMATTING_FUNCTIONS
+ * is set to 2 so the formatting functions are included without the stdio.h being
+ * included in tasks.c. That is because this project defines its own sprintf()
+ * functions. */
+#define configUSE_STATS_FORMATTING_FUNCTIONS 1
/* Assert call defined for debug builds. */
#ifdef _DEBUG
@@ -111,6 +114,16 @@
#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
#endif /* _DEBUG */
+
+/* Run time stats gathering definitions. */
+unsigned long ulGetRunTimeCounterValue( void );
+void vConfigureTimerForRunTimeStats( void );
+
+#define configGENERATE_RUN_TIME_STATS 1
+#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats()
+#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()
+
+
/* Application specific definitions follow. **********************************/
/* Only used when running in the FreeRTOS Windows simulator. Defines the
@@ -126,7 +139,7 @@
* results in the wired network being used, while setting
* configNETWORK_INTERFACE_TO_USE to 2 results in the wireless network being
* used. */
-#define configNETWORK_INTERFACE_TO_USE ( 0L )
+#define configNETWORK_INTERFACE_TO_USE ( 1L )
/* The address to which logging is sent should UDP logging be enabled. */
#define configUDP_LOGGING_ADDR0 192
@@ -197,4 +210,19 @@ extern void vLoggingPrintf( const char * pcFormatString,
... );
#define configPRINTF( X ) vLoggingPrintf X
+#define portNOP() __nop()
+
+/* The UDP port to use for incoming command inputs. The outgoing port is
+set to ( configUDP_CLI_PORT_NUMBER + 1 ). */
+#define configUDP_CLI_PORT_NUMBER 5001
+
+/* The size of the global output buffer that is available for use when there
+are multiple command interpreters running at once (for example, one on a UART
+and one on TCP/IP). This is done to prevent an output buffer being defined by
+each implementation - which would waste RAM. In this case, there is only one
+command interpreter running, and it has its own local output buffer, so the
+global buffer is just set to be one byte long as it is not used and should not
+take up unnecessary RAM. */
+#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1
+
#endif /* FREERTOS_CONFIG_H */
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/freertos_hooks_winsim.c b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/freertos_hooks_winsim.c
new file mode 100644
index 00000000000..3953c515f7b
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/freertos_hooks_winsim.c
@@ -0,0 +1,283 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+/* Standard includes. */
+#include
+#include
+
+/* Visual studio intrinsics used so the __debugbreak() function is available
+ * should an assert get hit. */
+#include
+
+/* Windows Crypt api for uxRand() */
+#include
+#include
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/*-----------------------------------------------------------*/
+
+void vAssertCalled( const char * pcFile,
+ uint32_t ulLine )
+{
+ volatile uint32_t ulBlockVariable = 0UL;
+ volatile char * pcFileName = ( volatile char * ) pcFile;
+ volatile uint32_t ulLineNumber = ulLine;
+
+ ( void ) pcFileName;
+ ( void ) ulLineNumber;
+
+ printf( "vAssertCalled( %s, %u\n", pcFile, ulLine );
+
+ /* Setting ulBlockVariable to a non-zero value in the debugger will allow
+ * this function to be exited. */
+ taskENTER_CRITICAL();
+ {
+ while( ulBlockVariable == 0UL )
+ {
+ __debugbreak();
+ }
+ }
+ taskEXIT_CRITICAL();
+}
+/*-----------------------------------------------------------*/
+
+UBaseType_t uxRand( void )
+{
+ HCRYPTPROV hProv = 0;
+ BOOL xResult = 0;
+ UBaseType_t uxRandNum = 0U;
+
+ xResult = CryptAcquireContextA( &hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT );
+
+ configASSERT( xResult );
+
+ xResult = CryptGenRandom( hProv, sizeof( UBaseType_t ), ( uint8_t * ) ( &uxRandNum ) );
+
+ configASSERT( xResult );
+
+ CryptReleaseContext( hProv, 0 );
+
+ return uxRandNum;
+}
+
+/*-----------------------------------------------------------*/
+
+#if defined( configUSE_STATIC_ALLOCATION ) && ( configUSE_STATIC_ALLOCATION == 1U )
+ /* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an
+ * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
+ * used by the Idle task. */
+ void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,
+ StackType_t ** ppxIdleTaskStackBuffer,
+ uint32_t * pulIdleTaskStackSize )
+ {
+ /* If the buffers to be provided to the Idle task are declared inside this
+ * function then they must be declared static - otherwise they will be allocated on
+ * the stack and so not exists after this function exits. */
+ static StaticTask_t xIdleTaskTCB;
+ static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
+
+ /* Pass out a pointer to the StaticTask_t structure in which the Idle task's
+ * state will be stored. */
+ *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
+
+ /* Pass out the array that will be used as the Idle task's stack. */
+ *ppxIdleTaskStackBuffer = uxIdleTaskStack;
+
+ /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
+ * Note that, as the array is necessarily of type StackType_t,
+ * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
+ *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
+ }
+
+/*-----------------------------------------------------------*/
+
+ #if defined( configUSE_TIMERS ) && ( configUSE_TIMERS == 1U )
+ /* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
+ * application must provide an implementation of vApplicationGetTimerTaskMemory()
+ * to provide the memory that is used by the Timer service task. */
+ void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer,
+ StackType_t ** ppxTimerTaskStackBuffer,
+ uint32_t * pulTimerTaskStackSize )
+ {
+ /* If the buffers to be provided to the Timer task are declared inside this
+ * function then they must be declared static - otherwise they will be allocated on
+ * the stack and so not exists after this function exits. */
+ static StaticTask_t xTimerTaskTCB;
+ static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
+
+ /* Pass out a pointer to the StaticTask_t structure in which the Timer
+ * task's state will be stored. */
+ *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
+
+ /* Pass out the array that will be used as the Timer task's stack. */
+ *ppxTimerTaskStackBuffer = uxTimerTaskStack;
+
+ /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
+ * Note that, as the array is necessarily of type StackType_t,
+ * configMINIMAL_STACK_SIZE is specified in words, not bytes. */
+ *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
+ }
+ #endif /* defined( configUSE_TIMERS ) && ( configUSE_TIMERS == 1U ) */
+
+#endif /* defined( configUSE_STATIC_ALLOCATION ) && ( configUSE_STATIC_ALLOCATION == 1U ) */
+
+/*-----------------------------------------------------------*/
+
+#if( configUSE_MALLOC_FAILED_HOOK == 1U )
+ void vApplicationMallocFailedHook( void )
+ {
+ /*
+ * vApplicationMallocFailedHook() will only be called if
+ * configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook
+ * function that will get called if a call to pvPortMalloc() fails.
+ * pvPortMalloc() is called internally by the kernel whenever a task, queue,
+ * timer or semaphore is created. It is also called by various parts of the
+ * demo application. If heap_1.c, heap_2.c or heap_4.c is being used, then the
+ * size of the heap available to pvPortMalloc() is defined by
+ * configTOTAL_HEAP_SIZE in FreeRTOSConfig.h, and the xPortGetFreeHeapSize()
+ * API function can be used to query the size of free heap space that remains
+ * (although it does not provide information on how the remaining heap might be
+ * fragmented). See http://www.freertos.org/a00111.html for more
+ * information.
+ */
+ vAssertCalled( __FILE__, __LINE__ );
+ }
+#endif /* configUSE_MALLOC_FAILED_HOOK == 1U */
+
+/*-----------------------------------------------------------*/
+
+#if( configUSE_IDLE_HOOK == 1U )
+ void vApplicationIdleHook( void )
+ {
+ /*
+ * vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
+ * to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
+ * task. It is essential that code added to this hook function never attempts
+ * to block in any way (for example, call xQueueReceive() with a block time
+ * specified, or call vTaskDelay()). If application tasks make use of the
+ * vTaskDelete() API function to delete themselves then it is also important
+ * that vApplicationIdleHook() is permitted to return to its calling function,
+ * because it is the responsibility of the idle task to clean up memory
+ * allocated by the kernel to any task that has since deleted itself.
+ */
+ }
+#endif /* configUSE_IDLE_HOOK */
+
+/*-----------------------------------------------------------*/
+
+#if( configUSE_TICK_HOOK == 1U )
+ void vApplicationTickHook( void )
+ {
+ /*
+ * This function will be called by each tick interrupt if
+ * configUSE_TICK_HOOK is set to 1 in FreeRTOSConfig.h. User code can be
+ * added here, but the tick hook is called from an interrupt context, so
+ * code must not attempt to block, and only the interrupt safe FreeRTOS API
+ * functions can be used (those that end in FromISR()).
+ */
+ }
+#endif /* configUSE_TICK_HOOK == 1U */
+
+/*-----------------------------------------------------------*/
+
+#if( configSUPPORT_STATIC_ALLOCATION == 1U )
+ /*
+ * configSUPPORT_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the
+ * application must provide an implementation of vApplicationGetTimerTaskMemory()
+ * to provide the memory that is used by the Timer service task.
+ */
+ void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer,
+ StackType_t **ppxTimerTaskStackBuffer,
+ uint32_t *pulTimerTaskStackSize )
+ {
+ /*
+ * If the buffers to be provided to the Timer task are declared inside this
+ * function then they must be declared static - otherwise they will be allocated on
+ * the stack and so not exists after this function exits.
+ */
+ static StaticTask_t xTimerTaskTCB;
+ static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];
+
+ /*
+ * Pass out a pointer to the StaticTask_t structure in which the Timer
+ * task's state will be stored.
+ */
+ *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
+
+ /* Pass out the array that will be used as the Timer task's stack. */
+ *ppxTimerTaskStackBuffer = uxTimerTaskStack;
+
+ /*
+ * Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.
+ * Note that, as the array is necessarily of type StackType_t,
+ * configMINIMAL_STACK_SIZE is specified in words, not bytes.
+ */
+ *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
+ }
+#endif /* configSUPPORT_STATIC_ALLOCATION == 1U */
+
+/*-----------------------------------------------------------*/
+
+#if( configSUPPORT_STATIC_ALLOCATION == 1U )
+ /*
+ * configSUPPORT_STATIC_ALLOCATION is set to 1, so the application must provide an
+ * implementation of vApplicationGetIdleTaskMemory() to provide the memory that is
+ * used by the Idle task.
+ */
+ void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer,
+ StackType_t **ppxIdleTaskStackBuffer,
+ uint32_t *pulIdleTaskStackSize )
+ {
+ /*
+ * If the buffers to be provided to the Idle task are declared inside this
+ * function then they must be declared static - otherwise they will be allocated on
+ * the stack and so not exists after this function exits.
+ */
+ static StaticTask_t xIdleTaskTCB;
+ static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];
+
+ /*
+ * Pass out a pointer to the StaticTask_t structure in which the Idle task's
+ * state will be stored.
+ */
+ *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
+
+ /* Pass out the array that will be used as the Idle task's stack. */
+ *ppxIdleTaskStackBuffer = uxIdleTaskStack;
+
+ /*
+ * Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.
+ * Note that, as the array is necessarily of type StackType_t,
+ * configMINIMAL_STACK_SIZE is specified in words, not bytes.
+ */
+ *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
+ }
+#endif /* configSUPPORT_STATIC_ALLOCATION == 1U */
+
+/*-----------------------------------------------------------*/
\ No newline at end of file
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/runtime_stats_winsim.c b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/runtime_stats_winsim.c
new file mode 100644
index 00000000000..a019a0c4bbe
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS-Kernel/runtime_stats_winsim.c
@@ -0,0 +1,69 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+/*
+ * Utility functions required to gather run time statistics. See:
+ * https://www.FreeRTOS.org/rtos-run-time-stats.html
+ *
+ * Note that this is a simulated port, where simulated time is a lot slower than
+ * real time, therefore the run time counter values have no real meaningful
+ * units.
+ *
+ * Also note that it is assumed this demo is going to be used for short periods
+ * of time only, and therefore timer overflows are not handled.
+*/
+
+#include
+#include
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+
+#if configGENERATE_RUN_TIME_STATS == 1
+
+/* Time at start of day (in ns). */
+static LARGE_INTEGER lStartTime;
+
+/*-----------------------------------------------------------*/
+
+void vConfigureTimerForRunTimeStats( void )
+{
+ ( void ) QueryPerformanceCounter( &lStartTime );
+}
+/*-----------------------------------------------------------*/
+
+unsigned long ulGetRunTimeCounterValue( void )
+{
+ LARGE_INTEGER lCurrentTime;
+ ( void ) QueryPerformanceCounter( &lCurrentTime );
+
+ configASSERT( lCurrentTime.QuadPart > lStartTime.QuadPart );
+
+ return ( unsigned long ) ( lCurrentTime.QuadPart - lStartTime.QuadPart );
+
+}
+/*-----------------------------------------------------------*/
+#endif /* configGENERATE_RUN_TIME_STATS == 1 */
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS_Plus_Libs.sln b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS_Plus_Libs.sln
new file mode 100644
index 00000000000..2695edc7995
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/FreeRTOS_Plus_Libs.sln
@@ -0,0 +1,81 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32819.101
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS+TCP", "FreeRTOS+TCP\FreeRTOS+TCP.vcxproj", "{C90E6CC5-818B-4C97-8876-0986D989387C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeRTOS-Kernel", "FreeRTOS-Kernel\FreeRTOS-Kernel.vcxproj", "{72C209C4-49A4-4942-A201-44706C9D77EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MbedTLS", "MbedTLS\MbedTLS.vcxproj", "{E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coreHTTP", "coreHTTP\coreHTTP.vcxproj", "{EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logging", "Logging\Logging.vcxproj", "{BE362AC0-B10B-4276-B84E-6304652BA228}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "corePKCS11", "corePKCS11\corePKCS11.vcxproj", "{19F0FF1A-3368-491A-9932-A2F089508F51}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.ActiveCfg = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x64.Build.0 = Debug|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.ActiveCfg = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Debug|x86.Build.0 = Debug|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.ActiveCfg = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x64.Build.0 = Release|x64
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.ActiveCfg = Release|Win32
+ {C90E6CC5-818B-4C97-8876-0986D989387C}.Release|x86.Build.0 = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.ActiveCfg = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x64.Build.0 = Debug|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.ActiveCfg = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Debug|x86.Build.0 = Debug|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.ActiveCfg = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x64.Build.0 = Release|x64
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.ActiveCfg = Release|Win32
+ {72C209C4-49A4-4942-A201-44706C9D77EC}.Release|x86.Build.0 = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.ActiveCfg = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x64.Build.0 = Debug|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.ActiveCfg = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Debug|x86.Build.0 = Debug|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.ActiveCfg = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x64.Build.0 = Release|x64
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.ActiveCfg = Release|Win32
+ {E1016F3E-94E9-4864-9FD8-1D7C1FEFBFD7}.Release|x86.Build.0 = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.ActiveCfg = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x64.Build.0 = Debug|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x86.ActiveCfg = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Debug|x86.Build.0 = Debug|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.ActiveCfg = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x64.Build.0 = Release|x64
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x86.ActiveCfg = Release|Win32
+ {EE39FA0F-CEFB-4C29-A571-05A28FDD47FD}.Release|x86.Build.0 = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.ActiveCfg = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x64.Build.0 = Debug|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.ActiveCfg = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Debug|x86.Build.0 = Debug|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.ActiveCfg = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x64.Build.0 = Release|x64
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.ActiveCfg = Release|Win32
+ {BE362AC0-B10B-4276-B84E-6304652BA228}.Release|x86.Build.0 = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.ActiveCfg = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x64.Build.0 = Debug|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x86.ActiveCfg = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Debug|x86.Build.0 = Debug|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.ActiveCfg = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x64.Build.0 = Release|x64
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x86.ActiveCfg = Release|Win32
+ {19F0FF1A-3368-491A-9932-A2F089508F51}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {7FF11C8F-8F21-4D4D-9881-D9D35E3F70B3}
+ EndGlobalSection
+EndGlobal
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/Logging/Logging.vcxproj b/FreeRTOS-Plus/VisualStudio_StaticProjects/Logging/Logging.vcxproj
new file mode 100644
index 00000000000..8df642c3a30
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/Logging/Logging.vcxproj
@@ -0,0 +1,178 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ Logging
+ 10.0
+
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\Source\Utilities\logging;$(PublicIncludeDirectories)
+ true
+
+
+ ..\..\Source\Utilities\logging;$(PublicIncludeDirectories)
+ true
+
+
+ ..\..\Source\Utilities\logging;$(PublicIncludeDirectories)
+ true
+
+
+ ..\..\Source\Utilities\logging;$(PublicIncludeDirectories)
+ true
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ $(PublicIncludeDirectories)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ $(PublicIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ $(PublicIncludeDirectories)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ $(PublicIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ {c90e6cc5-818b-4c97-8876-0986d989387c}
+ false
+ false
+ true
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ false
+ false
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/Logging/Logging.vcxproj.filters b/FreeRTOS-Plus/VisualStudio_StaticProjects/Logging/Logging.vcxproj.filters
new file mode 100644
index 00000000000..dc525e99d54
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/Logging/Logging.vcxproj.filters
@@ -0,0 +1,33 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/MbedTLS.vcxproj
similarity index 53%
rename from FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/WIN32.vcxproj
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/MbedTLS.vcxproj
index c6e276ee5a1..9c84651a538 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/WIN32.vcxproj
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/MbedTLS.vcxproj
@@ -1,380 +1,375 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {C686325E-3261-42F7-AEB1-DDE5280E1CEB}
- RTOSDemo
- 10.0
-
-
-
- Application
- false
- MultiByte
- v142
-
-
- Application
- false
- MultiByte
- v142
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- .\Debug\
- .\Debug\
- true
- .\Release\
- .\Release\
- false
- AllRules.ruleset
-
-
-
- .\Debug/WIN32.tlb
-
-
-
-
- Disabled
- ..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\..\FreeRTOS-Plus\Source\corePKCS11\source\include;..\..\..\FreeRTOS-Plus\Source\corePKCS11\source\dependency\3rdparty\pkcs11;..\..\ThirdParty\mbedtls\include;..\..\..\FreeRTOS-Plus\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;examples;.;..\..\Source\corePKCS11\source\portable\os;%(AdditionalIncludeDirectories)
- WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;MBEDTLS_CONFIG_FILE="aws_mbedtls_config.h";CONFIG_MEDTLS_USE_AFR_MEMORY;%(PreprocessorDefinitions)
- false
- EnableFastChecks
- MultiThreadedDLL
- .\Debug/WIN32.pch
- .\Debug/
- .\Debug/
- .\Debug/
- Level4
- true
- false
- EditAndContinue
- /wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)
- true
- NotUsing
- false
- CompileAsC
- 4204;4221;%(DisableSpecificWarnings)
-
-
- _DEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Debug/RTOSDemo.exe
- true
- true
- .\Debug/WIN32.pdb
- Console
- MachineX86
- %(AdditionalDependencies)
-
-
- false
- false
-
-
- true
- .\Debug/WIN32.bsc
-
-
-
-
- .\Release/WIN32.tlb
-
-
-
-
- MaxSpeed
- OnlyExplicitInline
- _WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
- true
- MultiThreaded
- true
- .\Release/WIN32.pch
- .\Release/
- .\Release/
- .\Release/
- Level3
- true
- ..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)
-
-
- NDEBUG;%(PreprocessorDefinitions)
- 0x0c09
-
-
- .\Release/RTOSDemo.exe
- true
- .\Release/WIN32.pdb
- Console
- MachineX86
- ..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap
- wpcap.lib;%(AdditionalDependencies)
-
-
- true
- .\Release/WIN32.bsc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+ true
+ false
+
+
+
+ 16.0
+ Win32Proj
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+ MbedTLS
+ 10.0
+
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ build\$(ProjectName)\$(Platform)\$(Configuration)\
+ ..\..\ThirdParty\mbedtls\include;.\;$(PublicIncludeDirectories)
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ .\;..\..\ThirdParty\mbedtls\library;..\..\ThirdParty\mbedtls\include
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ .\;..\..\ThirdParty\mbedtls\library;..\..\ThirdParty\mbedtls\include
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions);MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ .\;..\..\ThirdParty\mbedtls\library;..\..\ThirdParty\mbedtls\include
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions);MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h"
+ true
+ .\;..\..\ThirdParty\mbedtls\library;..\..\ThirdParty\mbedtls\include
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/MbedTLS.vcxproj.filters b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/MbedTLS.vcxproj.filters
new file mode 100644
index 00000000000..1a629eeaaaa
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/MbedTLS.vcxproj.filters
@@ -0,0 +1,664 @@
+
+
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {d6421bca-1a38-4144-b1c3-ac3a279ac261}
+
+
+ {7cf97e0d-061b-496a-a961-2ef5816190ec}
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\mbedtls
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Headers\psa
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+
+
+
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+ MbedTLS Source
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/aws_mbedtls_config.h b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_config_v3.2.1.h
similarity index 65%
rename from FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/aws_mbedtls_config.h
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_config_v3.2.1.h
index 8fad6fccc25..1256d4273f7 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/aws_mbedtls_config.h
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_config_v3.2.1.h
@@ -1,5 +1,5 @@
/**
- * \file config.h
+ * \file mbedtls_config.h
*
* \brief Configuration options (set of defines)
*
@@ -8,7 +8,7 @@
* memory footprint.
*/
/*
- * Copyright (C) 2006-2018, ARM Limited, All Rights Reserved
+ * Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -22,16 +22,16 @@
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
- * This file is part of mbed TLS (https://tls.mbed.org)
*/
-#ifndef MBEDTLS_CONFIG_H
-#define MBEDTLS_CONFIG_H
-
-#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-#define _CRT_SECURE_NO_DEPRECATE 1
-#endif
+/**
+ * This is an optional version symbol that enables compatibility handling of
+ * config files.
+ *
+ * It is equal to the #MBEDTLS_VERSION_NUMBER of the Mbed TLS version that
+ * introduced the config format we want to be compatible with.
+ */
+//#define MBEDTLS_CONFIG_VERSION 0x03000000
/**
* \name SECTION: System support
@@ -49,8 +49,7 @@
*
* Used in:
* library/aria.c
- * library/timing.c
- * include/mbedtls/bn_mul.h
+ * library/bn_mul.h
*
* Required by:
* MBEDTLS_AESNI_C
@@ -60,7 +59,7 @@
*/
#define MBEDTLS_HAVE_ASM
- /**
+/**
* \def MBEDTLS_NO_UDBL_DIVISION
*
* The platform lacks support for double-width integer division (64-bit
@@ -130,7 +129,12 @@
* MBEDTLS_PLATFORM_TIME_MACRO, MBEDTLS_PLATFORM_TIME_TYPE_MACRO and
* MBEDTLS_PLATFORM_STD_TIME.
*
- * Comment if your system does not support time functions
+ * Comment if your system does not support time functions.
+ *
+ * \note If MBEDTLS_TIMING_C is set - to enable the semi-portable timing
+ * interface - timing.c will include time.h on suitable platforms
+ * regardless of the setting of MBEDTLS_HAVE_TIME, unless
+ * MBEDTLS_TIMING_ALT is used. See timing.c for more information.
*/
//#define MBEDTLS_HAVE_TIME
@@ -139,7 +143,7 @@
*
* System has time.h, time(), and an implementation for
* mbedtls_platform_gmtime_r() (see below).
- * The time needs to be correct (not necesarily very accurate, but at least
+ * The time needs to be correct (not necessarily very accurate, but at least
* the date should be correct). This is used to verify the validity period of
* X.509 certificates.
*
@@ -155,20 +159,6 @@
*/
//#define MBEDTLS_HAVE_TIME_DATE
-/**
- * \def MBEDTLS_CHECK_PARAMS_ASSERT
- *
- * Allow MBEDTLS_PARAM_FAILED() to call `assert`, and make it default to
- * `assert`. This macro is only used if #MBEDTLS_CHECK_PARAMS is defined.
- *
- * If this macro is not defined, then MBEDTLS_PARAM_FAILED() defaults to
- * calling a function mbedtls_param_failed(). See the documentation of
- * #MBEDTLS_CHECK_PARAMS for details.
- *
- * Uncomment to allow MBEDTLS_PARAM_FAILED() to call `assert`.
- */
-//#define MBEDTLS_CHECK_PARAMS_ASSERT
-
/**
* \def MBEDTLS_PLATFORM_MEMORY
*
@@ -194,12 +184,9 @@
#define MBEDTLS_PLATFORM_MEMORY
#include
-
-extern void * pvCalloc( size_t xNumElements,
- size_t xSize ) ;
-extern void vPortFree( void *pv );
-#define MBEDTLS_PLATFORM_CALLOC_MACRO pvCalloc
-#define MBEDTLS_PLATFORM_FREE_MACRO vPortFree
+void * mbedtls_platform_calloc( size_t nmemb,
+ size_t size );
+void mbedtls_platform_free( void * ptr );
/**
* \def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
@@ -243,84 +230,46 @@ extern void vPortFree( void *pv );
* Uncomment a macro to enable alternate implementation of specific base
* platform function
*/
+//#define MBEDTLS_PLATFORM_SETBUF_ALT
//#define MBEDTLS_PLATFORM_EXIT_ALT
//#define MBEDTLS_PLATFORM_TIME_ALT
//#define MBEDTLS_PLATFORM_FPRINTF_ALT
//#define MBEDTLS_PLATFORM_PRINTF_ALT
//#define MBEDTLS_PLATFORM_SNPRINTF_ALT
+//#define MBEDTLS_PLATFORM_VSNPRINTF_ALT
//#define MBEDTLS_PLATFORM_NV_SEED_ALT
//#define MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT
/**
* \def MBEDTLS_DEPRECATED_WARNING
*
- * Mark deprecated functions so that they generate a warning if used.
- * Functions deprecated in one version will usually be removed in the next
- * version. You can enable this to help you prepare the transition to a new
- * major version by making sure your code is not using these functions.
+ * Mark deprecated functions and features so that they generate a warning if
+ * used. Functionality deprecated in one version will usually be removed in the
+ * next version. You can enable this to help you prepare the transition to a
+ * new major version by making sure your code is not using this functionality.
*
* This only works with GCC and Clang. With other compilers, you may want to
* use MBEDTLS_DEPRECATED_REMOVED
*
- * Uncomment to get warnings on using deprecated functions.
+ * Uncomment to get warnings on using deprecated functions and features.
*/
-//#define MBEDTLS_DEPRECATED_WARNING
+#if defined(__GNUC__)
+ #define MBEDTLS_DEPRECATED_WARNING
+#endif
/**
* \def MBEDTLS_DEPRECATED_REMOVED
*
- * Remove deprecated functions so that they generate an error if used.
- * Functions deprecated in one version will usually be removed in the next
- * version. You can enable this to help you prepare the transition to a new
- * major version by making sure your code is not using these functions.
+ * Remove deprecated functions and features so that they generate an error if
+ * used. Functionality deprecated in one version will usually be removed in the
+ * next version. You can enable this to help you prepare the transition to a
+ * new major version by making sure your code is not using this functionality.
*
- * Uncomment to get errors on using deprecated functions.
+ * Uncomment to get errors on using deprecated functions and features.
*/
-#define MBEDTLS_DEPRECATED_REMOVED
+//#define MBEDTLS_DEPRECATED_REMOVED
-/**
- * \def MBEDTLS_CHECK_PARAMS
- *
- * This configuration option controls whether the library validates more of
- * the parameters passed to it.
- *
- * When this flag is not defined, the library only attempts to validate an
- * input parameter if: (1) they may come from the outside world (such as the
- * network, the filesystem, etc.) or (2) not validating them could result in
- * internal memory errors such as overflowing a buffer controlled by the
- * library. On the other hand, it doesn't attempt to validate parameters whose
- * values are fully controlled by the application (such as pointers).
- *
- * When this flag is defined, the library additionally attempts to validate
- * parameters that are fully controlled by the application, and should always
- * be valid if the application code is fully correct and trusted.
- *
- * For example, when a function accepts as input a pointer to a buffer that may
- * contain untrusted data, and its documentation mentions that this pointer
- * must not be NULL:
- * - the pointer is checked to be non-NULL only if this option is enabled
- * - the content of the buffer is always validated
- *
- * When this flag is defined, if a library function receives a parameter that
- * is invalid, it will:
- * - invoke the macro MBEDTLS_PARAM_FAILED() which by default expands to a
- * call to the function mbedtls_param_failed()
- * - immediately return (with a specific error code unless the function
- * returns void and can't communicate an error).
- *
- * When defining this flag, you also need to:
- * - either provide a definition of the function mbedtls_param_failed() in
- * your application (see platform_util.h for its prototype) as the library
- * calls that function, but does not provide a default definition for it,
- * - or provide a different definition of the macro MBEDTLS_PARAM_FAILED()
- * below if the above mechanism is not flexible enough to suit your needs.
- * See the documentation of this macro later in this file.
- *
- * Uncomment to enable validation of application-controlled parameters.
- */
-//#define MBEDTLS_CHECK_PARAMS
-
-/* \} name SECTION: System support */
+/** \} name SECTION: System support */
/**
* \name SECTION: mbed TLS feature support
@@ -333,7 +282,7 @@ extern void vPortFree( void *pv );
/**
* \def MBEDTLS_TIMING_ALT
*
- * Uncomment to provide your own alternate implementation for mbedtls_timing_hardclock(),
+ * Uncomment to provide your own alternate implementation for
* mbedtls_timing_get_timer(), mbedtls_set_alarm(), mbedtls_set/get_delay()
*
* Only works if you have MBEDTLS_TIMING_C enabled.
@@ -362,39 +311,34 @@ extern void vPortFree( void *pv );
* Uncomment a macro to enable alternate implementation of the corresponding
* module.
*
- * \warning MD2, MD4, MD5, ARC4, DES and SHA-1 are considered weak and their
+ * \warning MD5, DES and SHA-1 are considered weak and their
* use constitutes a security risk. If possible, we recommend
* avoiding dependencies on them, and considering stronger message
* digests and ciphers instead.
*
*/
- //#define MBEDTLS_AES_ALT
- //#define MBEDTLS_ARC4_ALT
- //#define MBEDTLS_ARIA_ALT
- //#define MBEDTLS_BLOWFISH_ALT
- //#define MBEDTLS_CAMELLIA_ALT
- //#define MBEDTLS_CCM_ALT
- //#define MBEDTLS_CHACHA20_ALT
- //#define MBEDTLS_CHACHAPOLY_ALT
- //#define MBEDTLS_CMAC_ALT
- //#define MBEDTLS_DES_ALT
- //#define MBEDTLS_DHM_ALT
- //#define MBEDTLS_ECJPAKE_ALT
- //#define MBEDTLS_GCM_ALT
- //#define MBEDTLS_NIST_KW_ALT
- //#define MBEDTLS_MD2_ALT
- //#define MBEDTLS_MD4_ALT
- //#define MBEDTLS_MD5_ALT
- //#define MBEDTLS_POLY1305_ALT
- //#define MBEDTLS_RIPEMD160_ALT
- //#define MBEDTLS_RSA_ALT
- //#define MBEDTLS_SHA1_ALT
- //#define MBEDTLS_SHA256_ALT
- //#define MBEDTLS_SHA512_ALT
- //#define MBEDTLS_XTEA_ALT
+//#define MBEDTLS_AES_ALT
+//#define MBEDTLS_ARIA_ALT
+//#define MBEDTLS_CAMELLIA_ALT
+//#define MBEDTLS_CCM_ALT
+//#define MBEDTLS_CHACHA20_ALT
+//#define MBEDTLS_CHACHAPOLY_ALT
+//#define MBEDTLS_CMAC_ALT
+//#define MBEDTLS_DES_ALT
+//#define MBEDTLS_DHM_ALT
+//#define MBEDTLS_ECJPAKE_ALT
+//#define MBEDTLS_GCM_ALT
+//#define MBEDTLS_NIST_KW_ALT
+//#define MBEDTLS_MD5_ALT
+//#define MBEDTLS_POLY1305_ALT
+//#define MBEDTLS_RIPEMD160_ALT
+//#define MBEDTLS_RSA_ALT
+//#define MBEDTLS_SHA1_ALT
+//#define MBEDTLS_SHA256_ALT
+//#define MBEDTLS_SHA512_ALT
/*
- * When replacing the elliptic curve module, pleace consider, that it is
+ * When replacing the elliptic curve module, please consider, that it is
* implemented with two .c files:
* - ecp.c
* - ecp_curves.c
@@ -405,7 +349,7 @@ extern void vPortFree( void *pv );
//#define MBEDTLS_ECP_ALT
/**
- * \def MBEDTLS_MD2_PROCESS_ALT
+ * \def MBEDTLS_SHA256_PROCESS_ALT
*
* MBEDTLS__FUNCTION_NAME__ALT: Uncomment a macro to let mbed TLS use you
* alternate core implementation of symmetric crypto or hash function. Keep in
@@ -420,27 +364,27 @@ extern void vPortFree( void *pv );
* of mbedtls_sha1_context, so your implementation of mbedtls_sha1_process must be compatible
* with this definition.
*
- * \note Because of a signature change, the core AES encryption and decryption routines are
- * currently named mbedtls_aes_internal_encrypt and mbedtls_aes_internal_decrypt,
- * respectively. When setting up alternative implementations, these functions should
- * be overriden, but the wrapper functions mbedtls_aes_decrypt and mbedtls_aes_encrypt
- * must stay untouched.
- *
- * \note If you use the AES_xxx_ALT macros, then is is recommended to also set
+ * \note If you use the AES_xxx_ALT macros, then it is recommended to also set
* MBEDTLS_AES_ROM_TABLES in order to help the linker garbage-collect the AES
* tables.
*
* Uncomment a macro to enable alternate implementation of the corresponding
* function.
*
- * \warning MD2, MD4, MD5, DES and SHA-1 are considered weak and their use
+ * \warning MD5, DES and SHA-1 are considered weak and their use
* constitutes a security risk. If possible, we recommend avoiding
* dependencies on them, and considering stronger message digests
* and ciphers instead.
*
+ * \warning If both MBEDTLS_ECDSA_SIGN_ALT and MBEDTLS_ECDSA_DETERMINISTIC are
+ * enabled, then the deterministic ECDH signature functions pass the
+ * the static HMAC-DRBG as RNG to mbedtls_ecdsa_sign(). Therefore
+ * alternative implementations should use the RNG only for generating
+ * the ephemeral key and nothing else. If this is not possible, then
+ * MBEDTLS_ECDSA_DETERMINISTIC should be disabled and an alternative
+ * implementation should be provided for mbedtls_ecdsa_sign_det_ext().
+ *
*/
-//#define MBEDTLS_MD2_PROCESS_ALT
-//#define MBEDTLS_MD4_PROCESS_ALT
//#define MBEDTLS_MD5_PROCESS_ALT
//#define MBEDTLS_RIPEMD160_PROCESS_ALT
//#define MBEDTLS_SHA1_PROCESS_ALT
@@ -473,6 +417,11 @@ extern void vPortFree( void *pv );
* is still present and it is used for group structures not supported by the
* alternative.
*
+ * The original implementation can in addition be removed by setting the
+ * MBEDTLS_ECP_NO_FALLBACK option, in which case any function for which the
+ * corresponding MBEDTLS_ECP__FUNCTION_NAME__ALT macro is defined will not be
+ * able to fallback to curves not supported by the alternative implementation.
+ *
* Any of these options become available by defining MBEDTLS_ECP_INTERNAL_ALT
* and implementing the following functions:
* unsigned char mbedtls_internal_ecp_grp_capable(
@@ -486,21 +435,28 @@ extern void vPortFree( void *pv );
* called before and after each point operation and provide an opportunity to
* implement optimized set up and tear down instructions.
*
- * Example: In case you uncomment MBEDTLS_ECP_INTERNAL_ALT and
- * MBEDTLS_ECP_DOUBLE_JAC_ALT, mbed TLS will still provide the ecp_double_jac
- * function, but will use your mbedtls_internal_ecp_double_jac if the group is
- * supported (your mbedtls_internal_ecp_grp_capable function returns 1 when
- * receives it as an argument). If the group is not supported then the original
- * implementation is used. The other functions and the definition of
- * mbedtls_ecp_group and mbedtls_ecp_point will not change, so your
- * implementation of mbedtls_internal_ecp_double_jac and
- * mbedtls_internal_ecp_grp_capable must be compatible with this definition.
+ * Example: In case you set MBEDTLS_ECP_INTERNAL_ALT and
+ * MBEDTLS_ECP_DOUBLE_JAC_ALT, mbed TLS will still provide the ecp_double_jac()
+ * function, but will use your mbedtls_internal_ecp_double_jac() if the group
+ * for the operation is supported by your implementation (i.e. your
+ * mbedtls_internal_ecp_grp_capable() function returns 1 for this group). If the
+ * group is not supported by your implementation, then the original mbed TLS
+ * implementation of ecp_double_jac() is used instead, unless this fallback
+ * behaviour is disabled by setting MBEDTLS_ECP_NO_FALLBACK (in which case
+ * ecp_double_jac() will return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE).
+ *
+ * The function prototypes and the definition of mbedtls_ecp_group and
+ * mbedtls_ecp_point will not change based on MBEDTLS_ECP_INTERNAL_ALT, so your
+ * implementation of mbedtls_internal_ecp__function_name__ must be compatible
+ * with their definitions.
*
* Uncomment a macro to enable alternate implementation of the corresponding
* function.
*/
/* Required for all the functions in this section */
//#define MBEDTLS_ECP_INTERNAL_ALT
+/* Turn off software fallback for curves not supported in hardware */
+//#define MBEDTLS_ECP_NO_FALLBACK
/* Support for Weierstrass curves with Jacobi representation */
//#define MBEDTLS_ECP_RANDOMIZE_JAC_ALT
//#define MBEDTLS_ECP_ADD_MIXED_ALT
@@ -512,23 +468,6 @@ extern void vPortFree( void *pv );
//#define MBEDTLS_ECP_RANDOMIZE_MXZ_ALT
//#define MBEDTLS_ECP_NORMALIZE_MXZ_ALT
-/**
- * \def MBEDTLS_TEST_NULL_ENTROPY
- *
- * Enables testing and use of mbed TLS without any configured entropy sources.
- * This permits use of the library on platforms before an entropy source has
- * been integrated (see for example the MBEDTLS_ENTROPY_HARDWARE_ALT or the
- * MBEDTLS_ENTROPY_NV_SEED switches).
- *
- * WARNING! This switch MUST be disabled in production builds, and is suitable
- * only for development.
- * Enabling the switch negates any security provided by the library.
- *
- * Requires MBEDTLS_ENTROPY_C, MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
- *
- */
-//#define MBEDTLS_TEST_NULL_ENTROPY
-
/**
* \def MBEDTLS_ENTROPY_HARDWARE_ALT
*
@@ -536,7 +475,8 @@ extern void vPortFree( void *pv );
* hardware entropy collector.
*
* Your function must be called \c mbedtls_hardware_poll(), have the same
- * prototype as declared in entropy_poll.h, and accept NULL as first argument.
+ * prototype as declared in library/entropy_poll.h, and accept NULL as first
+ * argument.
*
* Uncomment to use your own hardware entropy collector.
*/
@@ -560,9 +500,9 @@ extern void vPortFree( void *pv );
* This option is independent of \c MBEDTLS_AES_FEWER_TABLES.
*
*/
- #define MBEDTLS_AES_ROM_TABLES
+#define MBEDTLS_AES_ROM_TABLES
- /**
+/**
* \def MBEDTLS_AES_FEWER_TABLES
*
* Use less ROM/RAM for AES tables.
@@ -582,7 +522,7 @@ extern void vPortFree( void *pv );
* This option is independent of \c MBEDTLS_AES_ROM_TABLES.
*
*/
- //#define MBEDTLS_AES_FEWER_TABLES
+//#define MBEDTLS_AES_FEWER_TABLES
/**
* \def MBEDTLS_CAMELLIA_SMALL_MEMORY
@@ -593,12 +533,35 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_CAMELLIA_SMALL_MEMORY
+/**
+ * \def MBEDTLS_CHECK_RETURN_WARNING
+ *
+ * If this macro is defined, emit a compile-time warning if application code
+ * calls a function without checking its return value, but the return value
+ * should generally be checked in portable applications.
+ *
+ * This is only supported on platforms where #MBEDTLS_CHECK_RETURN is
+ * implemented. Otherwise this option has no effect.
+ *
+ * Uncomment to get warnings on using fallible functions without checking
+ * their return value.
+ *
+ * \note This feature is a work in progress.
+ * Warnings will be added to more functions in the future.
+ *
+ * \note A few functions are considered critical, and ignoring the return
+ * value of these functions will trigger a warning even if this
+ * macro is not defined. To completely disable return value check
+ * warnings, define #MBEDTLS_CHECK_RETURN with an empty expansion.
+ */
+//#define MBEDTLS_CHECK_RETURN_WARNING
+
/**
* \def MBEDTLS_CIPHER_MODE_CBC
*
* Enable Cipher Block Chaining mode (CBC) for symmetric ciphers.
*/
-//#define MBEDTLS_CIPHER_MODE_CBC
+#define MBEDTLS_CIPHER_MODE_CBC
/**
* \def MBEDTLS_CIPHER_MODE_CFB
@@ -619,14 +582,14 @@ extern void vPortFree( void *pv );
*
* Enable Output Feedback mode (OFB) for symmetric ciphers.
*/
-//#define MBEDTLS_CIPHER_MODE_OFB
+#define MBEDTLS_CIPHER_MODE_OFB
/**
* \def MBEDTLS_CIPHER_MODE_XTS
*
* Enable Xor-encrypt-xor with ciphertext stealing mode (XTS) for AES.
*/
-//#define MBEDTLS_CIPHER_MODE_XTS
+#define MBEDTLS_CIPHER_MODE_XTS
/**
* \def MBEDTLS_CIPHER_NULL_CIPHER
@@ -635,8 +598,7 @@ extern void vPortFree( void *pv );
* Warning: Only do so when you know what you are doing. This allows for
* encryption or channels without any security!
*
- * Requires MBEDTLS_ENABLE_WEAK_CIPHERSUITES as well to enable
- * the following ciphersuites:
+ * To enable the following ciphersuites:
* MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA
* MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA
* MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA
@@ -661,33 +623,6 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_CIPHER_NULL_CIPHER
-/** \def MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
- *
- * Uncomment this macro to use a 128-bit key in the CTR_DRBG module.
- * By default, CTR_DRBG uses a 256-bit key.
- */
-//#define MBEDTLS_CTR_DRBG_USE_128_BIT_KE
-
-/**
- * \def MBEDTLS_REMOVE_3DES_CIPHERSUITES
- *
- * Remove 3DES ciphersuites by default in SSL / TLS.
- * This flag removes the ciphersuites based on 3DES from the default list as
- * returned by mbedtls_ssl_list_ciphersuites(). However, it is still possible
- * to enable (some of) them with mbedtls_ssl_conf_ciphersuites() by including
- * them explicitly.
- *
- * A man-in-the-browser attacker can recover authentication tokens sent through
- * a TLS connection using a 3DES based cipher suite (see "On the Practical
- * (In-)Security of 64-bit Block Ciphers" by Karthikeyan Bhargavan and Gaëtan
- * Leurent, see https://sweet32.info/SWEET32_CCS16.pdf). If this attack falls
- * in your threat model or you are unsure, then you should keep this option
- * enabled to remove 3DES based cipher suites.
- *
- * Comment this macro to keep 3DES in the default ciphersuite list.
- */
-#define MBEDTLS_REMOVE_3DES_CIPHERSUITES
-
/**
* \def MBEDTLS_CIPHER_PADDING_PKCS7
*
@@ -704,36 +639,12 @@ extern void vPortFree( void *pv );
#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
#define MBEDTLS_CIPHER_PADDING_ZEROS
-/**
- * \def MBEDTLS_ENABLE_WEAK_CIPHERSUITES
- *
- * Enable weak ciphersuites in SSL / TLS.
- * Warning: Only do so when you know what you are doing. This allows for
- * channels with virtually no security at all!
- *
- * This enables the following ciphersuites:
- * MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA
- * MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA
- *
- * Uncomment this macro to enable weak ciphersuites
- *
- * \warning DES is considered a weak cipher and its use constitutes a
- * security risk. We recommend considering stronger ciphers instead.
-*/
-//#define MBEDTLS_ENABLE_WEAK_CIPHERSUITES
-
-/**
- * \def MBEDTLS_REMOVE_ARC4_CIPHERSUITES
- *
- * Remove RC4 ciphersuites by default in SSL / TLS.
- * This flag removes the ciphersuites based on RC4 from the default list as
- * returned by mbedtls_ssl_list_ciphersuites(). However, it is still possible to
- * enable (some of) them with mbedtls_ssl_conf_ciphersuites() by including them
- * explicitly.
+/** \def MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
*
- * Uncomment this macro to remove RC4 ciphersuites by default.
+ * Uncomment this macro to use a 128-bit key in the CTR_DRBG module.
+ * By default, CTR_DRBG uses a 256-bit key.
*/
-#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
+//#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
/**
* \def MBEDTLS_ECP_DP_SECP192R1_ENABLED
@@ -743,19 +654,21 @@ extern void vPortFree( void *pv );
*
* Comment macros to disable the curve and functions for it
*/
+/* Short Weierstrass curves (supporting ECP, ECDH, ECDSA) */
//#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-//#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
-//#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
+#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
+#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
//#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
//#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
//#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
//#define MBEDTLS_ECP_DP_BP256R1_ENABLED
//#define MBEDTLS_ECP_DP_BP384R1_ENABLED
//#define MBEDTLS_ECP_DP_BP512R1_ENABLED
-//#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
-//#define MBEDTLS_ECP_DP_CURVE448_ENABLED
+/* Montgomery curves (supporting ECP) */
+#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
+#define MBEDTLS_ECP_DP_CURVE448_ENABLED
/**
* \def MBEDTLS_ECP_NIST_OPTIM
@@ -788,7 +701,7 @@ extern void vPortFree( void *pv );
*
* \note This option only works with the default software implementation of
* elliptic curve functionality. It is incompatible with
- * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT and MBEDTLS_ECDSA_XXX_ALT.
+ * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT.
*/
//#define MBEDTLS_ECP_RESTARTABLE
@@ -800,11 +713,11 @@ extern void vPortFree( void *pv );
* may result in a compromise of the long-term signing key. This is avoided by
* the deterministic variant.
*
- * Requires: MBEDTLS_HMAC_DRBG_C
+ * Requires: MBEDTLS_HMAC_DRBG_C, MBEDTLS_ECDSA_C
*
* Comment this macro to disable deterministic ECDSA.
*/
-//#define MBEDTLS_ECDSA_DETERMINISTIC
+#define MBEDTLS_ECDSA_DETERMINISTIC
/**
* \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
@@ -823,8 +736,6 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
- * MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_PSK_WITH_RC4_128_SHA
*/
//#define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
@@ -847,8 +758,6 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
- * MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA
*
* \warning Using DHE constitutes a security risk as it
* is not possible to validate custom DH parameters.
@@ -874,8 +783,6 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
* MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
- * MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
*/
//#define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
@@ -899,8 +806,6 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
- * MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
*/
//#define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
@@ -926,11 +831,8 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
* MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
- * MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_RSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_RSA_WITH_RC4_128_MD5
*/
-//#define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
+#define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
/**
* \def MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
@@ -954,7 +856,6 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
* MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
- * MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
*
* \warning Using DHE constitutes a security risk as it
* is not possible to validate custom DH parameters.
@@ -985,8 +886,6 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
- * MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA
*/
#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
@@ -1009,8 +908,6 @@ extern void vPortFree( void *pv );
* MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
- * MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
*/
#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
@@ -1019,12 +916,10 @@ extern void vPortFree( void *pv );
*
* Enable the ECDH-ECDSA based ciphersuite modes in SSL / TLS.
*
- * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C
+ * Requires: MBEDTLS_ECDH_C, MBEDTLS_ECDSA_C, MBEDTLS_X509_CRT_PARSE_C
*
* This enables the following ciphersuites (if other requisites are
* enabled as well):
- * MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
* MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
* MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
@@ -1043,12 +938,10 @@ extern void vPortFree( void *pv );
*
* Enable the ECDH-RSA based ciphersuite modes in SSL / TLS.
*
- * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C
+ * Requires: MBEDTLS_ECDH_C, MBEDTLS_RSA_C, MBEDTLS_X509_CRT_PARSE_C
*
* This enables the following ciphersuites (if other requisites are
* enabled as well):
- * MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
* MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
* MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
* MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
@@ -1093,7 +986,7 @@ extern void vPortFree( void *pv );
*
* Disable if you only need to support RFC 5915 + 5480 key formats.
*/
-//#define MBEDTLS_PK_PARSE_EC_EXTENDED
+#define MBEDTLS_PK_PARSE_EC_EXTENDED
/**
* \def MBEDTLS_ERROR_STRERROR_DUMMY
@@ -1108,7 +1001,7 @@ extern void vPortFree( void *pv );
* Disable if you run into name conflicts and want to really remove the
* mbedtls_strerror()
*/
-//#define MBEDTLS_ERROR_STRERROR_DUMMY
+#define MBEDTLS_ERROR_STRERROR_DUMMY
/**
* \def MBEDTLS_GENPRIME
@@ -1129,8 +1022,7 @@ extern void vPortFree( void *pv );
/**
* \def MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
*
- * Do not add default entropy sources. These are the platform specific,
- * mbedtls_timing_hardclock and HAVEGE based poll functions.
+ * Do not add default entropy sources in mbedtls_entropy_init().
*
* This is useful to have more control over the added entropy sources in an
* application.
@@ -1164,7 +1056,7 @@ extern void vPortFree( void *pv );
* This option is only useful if both MBEDTLS_SHA256_C and
* MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used.
*/
-#define MBEDTLS_ENTROPY_FORCE_SHA256
+//#define MBEDTLS_ENTROPY_FORCE_SHA256
/**
* \def MBEDTLS_ENTROPY_NV_SEED
@@ -1194,6 +1086,18 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_ENTROPY_NV_SEED
+/* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
+ *
+ * Enable key identifiers that encode a key owner identifier.
+ *
+ * The owner of a key is identified by a value of type ::mbedtls_key_owner_id_t
+ * which is currently hard-coded to be int32_t.
+ *
+ * Note that this option is meant for internal use only and may be removed
+ * without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
+
/**
* \def MBEDTLS_MEMORY_DEBUG
*
@@ -1226,14 +1130,14 @@ extern void vPortFree( void *pv );
*
* Comment this macro to disable support for external private RSA keys.
*/
-#define MBEDTLS_PK_RSA_ALT_SUPPORT
+//#define MBEDTLS_PK_RSA_ALT_SUPPORT
/**
* \def MBEDTLS_PKCS1_V15
*
* Enable support for PKCS#1 v1.5 encoding.
*
- * Requires: MBEDTLS_RSA_C
+ * Requires: MBEDTLS_MD_C, MBEDTLS_RSA_C
*
* This enables support for PKCS#1 v1.5 operations.
*/
@@ -1248,7 +1152,116 @@ extern void vPortFree( void *pv );
*
* This enables support for RSAES-OAEP and RSASSA-PSS operations.
*/
-//#define MBEDTLS_PKCS1_V21
+#define MBEDTLS_PKCS1_V21
+
+/** \def MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+ *
+ * Enable support for platform built-in keys. If you enable this feature,
+ * you must implement the function mbedtls_psa_platform_get_builtin_key().
+ * See the documentation of that function for more information.
+ *
+ * Built-in keys are typically derived from a hardware unique key or
+ * stored in a secure element.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C.
+ *
+ * \warning This interface is experimental and may change or be removed
+ * without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+
+/** \def MBEDTLS_PSA_CRYPTO_CLIENT
+ *
+ * Enable support for PSA crypto client.
+ *
+ * \note This option allows to include the code necessary for a PSA
+ * crypto client when the PSA crypto implementation is not included in
+ * the library (MBEDTLS_PSA_CRYPTO_C disabled). The code included is the
+ * code to set and get PSA key attributes.
+ * The development of PSA drivers partially relying on the library to
+ * fulfill the hardware gaps is another possible usage of this option.
+ *
+ * \warning This interface is experimental and may change or be removed
+ * without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_CLIENT
+
+/** \def MBEDTLS_PSA_CRYPTO_DRIVERS
+ *
+ * Enable support for the experimental PSA crypto driver interface.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ * \warning This interface is experimental. We intend to maintain backward
+ * compatibility with application code that relies on drivers,
+ * but the driver interfaces may change without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_DRIVERS
+
+/** \def MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+ *
+ * Make the PSA Crypto module use an external random generator provided
+ * by a driver, instead of Mbed TLS's entropy and DRBG modules.
+ *
+ * \note This random generator must deliver random numbers with cryptographic
+ * quality and high performance. It must supply unpredictable numbers
+ * with a uniform distribution. The implementation of this function
+ * is responsible for ensuring that the random generator is seeded
+ * with sufficient entropy. If you have a hardware TRNG which is slow
+ * or delivers non-uniform output, declare it as an entropy source
+ * with mbedtls_entropy_add_source() instead of enabling this option.
+ *
+ * If you enable this option, you must configure the type
+ * ::mbedtls_psa_external_random_context_t in psa/crypto_platform.h
+ * and define a function called mbedtls_psa_external_get_random()
+ * with the following prototype:
+ * ```
+ * psa_status_t mbedtls_psa_external_get_random(
+ * mbedtls_psa_external_random_context_t *context,
+ * uint8_t *output, size_t output_size, size_t *output_length);
+ * );
+ * ```
+ * The \c context value is initialized to 0 before the first call.
+ * The function must fill the \c output buffer with \p output_size bytes
+ * of random data and set \c *output_length to \p output_size.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ * \warning If you enable this option, code that uses the PSA cryptography
+ * interface will not use any of the entropy sources set up for
+ * the entropy module, nor the NV seed that MBEDTLS_ENTROPY_NV_SEED
+ * enables.
+ *
+ * \note This option is experimental and may be removed without notice.
+ */
+//#define MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_SPM
+ *
+ * When MBEDTLS_PSA_CRYPTO_SPM is defined, the code is built for SPM (Secure
+ * Partition Manager) integration which separates the code into two parts: a
+ * NSPE (Non-Secure Process Environment) and an SPE (Secure Process
+ * Environment).
+ *
+ * Module: library/psa_crypto.c
+ * Requires: MBEDTLS_PSA_CRYPTO_C
+ *
+ */
+//#define MBEDTLS_PSA_CRYPTO_SPM
+
+/**
+ * \def MBEDTLS_PSA_INJECT_ENTROPY
+ *
+ * Enable support for entropy injection at first boot. This feature is
+ * required on systems that do not have a built-in entropy source (TRNG).
+ * This feature is currently not supported on systems that have a built-in
+ * entropy source.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_STORAGE_C, MBEDTLS_ENTROPY_NV_SEED
+ *
+ */
+//#define MBEDTLS_PSA_INJECT_ENTROPY
/**
* \def MBEDTLS_RSA_NO_CRT
@@ -1274,7 +1287,7 @@ extern void vPortFree( void *pv );
* Enable an implementation of SHA-256 that has lower ROM footprint but also
* lower performance.
*
- * The default implementation is meant to be a reasonnable compromise between
+ * The default implementation is meant to be a reasonable compromise between
* performance and size. This version optimizes more aggressively for size at
* the expense of performance. Eg on Cortex-M4 it reduces the size of
* mbedtls_sha256_process() from ~2KB to ~0.5KB for a performance hit of about
@@ -1284,6 +1297,16 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_SHA256_SMALLER
+/**
+ * \def MBEDTLS_SHA512_SMALLER
+ *
+ * Enable an implementation of SHA-512 that has lower ROM footprint but also
+ * lower performance.
+ *
+ * Uncomment to enable the smaller implementation of SHA512.
+ */
+//#define MBEDTLS_SHA512_SMALLER
+
/**
* \def MBEDTLS_SSL_ALL_ALERT_MESSAGES
*
@@ -1298,6 +1321,35 @@ extern void vPortFree( void *pv );
*/
#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
+/**
+ * \def MBEDTLS_SSL_DTLS_CONNECTION_ID
+ *
+ * Enable support for the DTLS Connection ID extension
+ * (version draft-ietf-tls-dtls-connection-id-05,
+ * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05)
+ * which allows to identify DTLS connections across changes
+ * in the underlying transport.
+ *
+ * Setting this option enables the SSL APIs `mbedtls_ssl_set_cid()`,
+ * mbedtls_ssl_get_own_cid()`, `mbedtls_ssl_get_peer_cid()` and
+ * `mbedtls_ssl_conf_cid()`. See the corresponding documentation for
+ * more information.
+ *
+ * \warning The Connection ID extension is still in draft state.
+ * We make no stability promises for the availability
+ * or the shape of the API controlled by this option.
+ *
+ * The maximum lengths of outgoing and incoming CIDs can be configured
+ * through the options
+ * - MBEDTLS_SSL_CID_OUT_LEN_MAX
+ * - MBEDTLS_SSL_CID_IN_LEN_MAX.
+ *
+ * Requires: MBEDTLS_SSL_PROTO_DTLS
+ *
+ * Uncomment to enable the Connection ID extension.
+ */
+//#define MBEDTLS_SSL_DTLS_CONNECTION_ID
+
/**
* \def MBEDTLS_SSL_ASYNC_PRIVATE
*
@@ -1309,6 +1361,33 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_SSL_ASYNC_PRIVATE
+/**
+ * \def MBEDTLS_SSL_CONTEXT_SERIALIZATION
+ *
+ * Enable serialization of the TLS context structures, through use of the
+ * functions mbedtls_ssl_context_save() and mbedtls_ssl_context_load().
+ *
+ * This pair of functions allows one side of a connection to serialize the
+ * context associated with the connection, then free or re-use that context
+ * while the serialized state is persisted elsewhere, and finally deserialize
+ * that state to a live context for resuming read/write operations on the
+ * connection. From a protocol perspective, the state of the connection is
+ * unaffected, in particular this is entirely transparent to the peer.
+ *
+ * Note: this is distinct from TLS session resumption, which is part of the
+ * protocol and fully visible by the peer. TLS session resumption enables
+ * establishing new connections associated to a saved session with shorter,
+ * lighter handshakes, while context serialization is a local optimization in
+ * handling a single, potentially long-lived connection.
+ *
+ * Enabling these APIs makes some SSL structures larger, as 64 extra bytes are
+ * saved after the handshake to allow for more efficient serialization, so if
+ * you don't need this feature you'll save RAM by disabling it.
+ *
+ * Comment to disable the context serialization APIs.
+ */
+//#define MBEDTLS_SSL_CONTEXT_SERIALIZATION
+
/**
* \def MBEDTLS_SSL_DEBUG_ALL
*
@@ -1335,70 +1414,51 @@ extern void vPortFree( void *pv );
*
* This only affects CBC ciphersuites, and is useless if none is defined.
*
- * Requires: MBEDTLS_SSL_PROTO_TLS1 or
- * MBEDTLS_SSL_PROTO_TLS1_1 or
- * MBEDTLS_SSL_PROTO_TLS1_2
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_2
*
* Comment this macro to disable support for Encrypt-then-MAC
*/
-//#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
+#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
/** \def MBEDTLS_SSL_EXTENDED_MASTER_SECRET
*
- * Enable support for Extended Master Secret, aka Session Hash
- * (draft-ietf-tls-session-hash-02).
+ * Enable support for RFC 7627: Session Hash and Extended Master Secret
+ * Extension.
*
- * This was introduced as "the proper fix" to the Triple Handshake familiy of
+ * This was introduced as "the proper fix" to the Triple Handshake family of
* attacks, but it is recommended to always use it (even if you disable
* renegotiation), since it actually fixes a more fundamental issue in the
* original SSL/TLS design, and has implications beyond Triple Handshake.
*
- * Requires: MBEDTLS_SSL_PROTO_TLS1 or
- * MBEDTLS_SSL_PROTO_TLS1_1 or
- * MBEDTLS_SSL_PROTO_TLS1_2
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_2
*
* Comment this macro to disable support for Extended Master Secret.
*/
#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
/**
- * \def MBEDTLS_SSL_FALLBACK_SCSV
- *
- * Enable support for FALLBACK_SCSV (draft-ietf-tls-downgrade-scsv-00).
- *
- * For servers, it is recommended to always enable this, unless you support
- * only one version of TLS, or know for sure that none of your clients
- * implements a fallback strategy.
- *
- * For clients, you only need this if you're using a fallback strategy, which
- * is not recommended in the first place, unless you absolutely need it to
- * interoperate with buggy (version-intolerant) servers.
+ * \def MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
*
- * Comment this macro to disable support for FALLBACK_SCSV
- */
-//#define MBEDTLS_SSL_FALLBACK_SCSV
-
-/**
- * \def MBEDTLS_SSL_HW_RECORD_ACCEL
+ * This option controls the availability of the API mbedtls_ssl_get_peer_cert()
+ * giving access to the peer's certificate after completion of the handshake.
*
- * Enable hooking functions in SSL module for hardware acceleration of
- * individual records.
+ * Unless you need mbedtls_ssl_peer_cert() in your application, it is
+ * recommended to disable this option for reduced RAM usage.
*
- * Uncomment this macro to enable hooking functions.
- */
-//#define MBEDTLS_SSL_HW_RECORD_ACCEL
-
-/**
- * \def MBEDTLS_SSL_CBC_RECORD_SPLITTING
+ * \note If this option is disabled, mbedtls_ssl_get_peer_cert() is still
+ * defined, but always returns \c NULL.
*
- * Enable 1/n-1 record splitting for CBC mode in SSLv3 and TLS 1.0.
+ * \note This option has no influence on the protection against the
+ * triple handshake attack. Even if it is disabled, Mbed TLS will
+ * still ensure that certificates do not change during renegotiation,
+ * for example by keeping a hash of the peer's certificate.
*
- * This is a countermeasure to the BEAST attack, which also minimizes the risk
- * of interoperability issues compared to sending 0-length records.
+ * \note This option is required if MBEDTLS_SSL_PROTO_TLS1_3 is set.
*
- * Comment this macro to disable 1/n-1 record splitting.
+ * Comment this macro to disable storing the peer's certificate
+ * after the handshake.
*/
-//#define MBEDTLS_SSL_CBC_RECORD_SPLITTING
+#define MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
/**
* \def MBEDTLS_SSL_RENEGOTIATION
@@ -1422,26 +1482,6 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_SSL_RENEGOTIATION
-/**
- * \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
- *
- * Enable support for receiving and parsing SSLv2 Client Hello messages for the
- * SSL Server module (MBEDTLS_SSL_SRV_C).
- *
- * Uncomment this macro to enable support for SSLv2 Client Hello messages.
- */
-//#define MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
-
-/**
- * \def MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE
- *
- * Pick the ciphersuite according to the client's preferences rather than ours
- * in the SSL Server module (MBEDTLS_SSL_SRV_C).
- *
- * Uncomment this macro to respect client's ciphersuite order
- */
-//#define MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE
-
/**
* \def MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
*
@@ -1449,70 +1489,76 @@ extern void vPortFree( void *pv );
*
* Comment this macro to disable support for the max_fragment_length extension
*/
-#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
/**
- * \def MBEDTLS_SSL_PROTO_SSL3
+ * \def MBEDTLS_SSL_PROTO_TLS1_2
*
- * Enable support for SSL 3.0.
+ * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled).
*
- * Requires: MBEDTLS_MD5_C
- * MBEDTLS_SHA1_C
+ * Requires: MBEDTLS_SHA1_C or MBEDTLS_SHA256_C or MBEDTLS_SHA512_C
+ * (Depends on ciphersuites)
*
- * Comment this macro to disable support for SSL 3.0
+ * Comment this macro to disable support for TLS 1.2 / DTLS 1.2
*/
-//#define MBEDTLS_SSL_PROTO_SSL3
+#define MBEDTLS_SSL_PROTO_TLS1_2
/**
- * \def MBEDTLS_SSL_PROTO_TLS1
+ * \def MBEDTLS_SSL_PROTO_TLS1_3
*
- * Enable support for TLS 1.0.
+ * Enable support for TLS 1.3.
*
- * Requires: MBEDTLS_MD5_C
- * MBEDTLS_SHA1_C
- *
- * Comment this macro to disable support for TLS 1.0
- */
-//#define MBEDTLS_SSL_PROTO_TLS1
-
-/**
- * \def MBEDTLS_SSL_PROTO_TLS1_1
+ * \note The support for TLS 1.3 is not comprehensive yet, in particular
+ * pre-shared keys are not supported.
+ * See docs/architecture/tls13-support.md for a description of the TLS
+ * 1.3 support that this option enables.
*
- * Enable support for TLS 1.1 (and DTLS 1.0 if DTLS is enabled).
+ * Requires: MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
+ * Requires: MBEDTLS_PSA_CRYPTO_C
*
- * Requires: MBEDTLS_MD5_C
- * MBEDTLS_SHA1_C
+ * Note: even though TLS 1.3 depends on PSA Crypto, if you want it to only use
+ * PSA for all crypto operations, you need to also enable
+ * MBEDTLS_USE_PSA_CRYPTO; otherwise X.509 operations, and functions that are
+ * common with TLS 1.2 (record protection, running handshake hash) will still
+ * use non-PSA crypto.
*
- * Comment this macro to disable support for TLS 1.1 / DTLS 1.0
+ * Uncomment this macro to enable the support for TLS 1.3.
*/
-//#define MBEDTLS_SSL_PROTO_TLS1_1
+//#define MBEDTLS_SSL_PROTO_TLS1_3
/**
- * \def MBEDTLS_SSL_PROTO_TLS1_2
+ * \def MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
*
- * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled).
+ * Enable TLS 1.3 middlebox compatibility mode.
*
- * Requires: MBEDTLS_SHA1_C or MBEDTLS_SHA256_C or MBEDTLS_SHA512_C
- * (Depends on ciphersuites)
+ * As specified in Section D.4 of RFC 8446, TLS 1.3 offers a compatibility
+ * mode to make a TLS 1.3 connection more likely to pass through middle boxes
+ * expecting TLS 1.2 traffic.
+ *
+ * Turning on the compatibility mode comes at the cost of a few added bytes
+ * on the wire, but it doesn't affect compatibility with TLS 1.3 implementations
+ * that don't use it. Therefore, unless transmission bandwidth is critical and
+ * you know that middlebox compatibility issues won't occur, it is therefore
+ * recommended to set this option.
+ *
+ * Comment to disable compatibility mode for TLS 1.3. If
+ * MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any
+ * effect on the build.
*
- * Comment this macro to disable support for TLS 1.2 / DTLS 1.2
*/
-#define MBEDTLS_SSL_PROTO_TLS1_2
+//#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
/**
* \def MBEDTLS_SSL_PROTO_DTLS
*
* Enable support for DTLS (all available versions).
*
- * Enable this and MBEDTLS_SSL_PROTO_TLS1_1 to enable DTLS 1.0,
- * and/or this and MBEDTLS_SSL_PROTO_TLS1_2 to enable DTLS 1.2.
+ * Enable this and MBEDTLS_SSL_PROTO_TLS1_2 to enable DTLS 1.2.
*
- * Requires: MBEDTLS_SSL_PROTO_TLS1_1
- * or MBEDTLS_SSL_PROTO_TLS1_2
+ * Requires: MBEDTLS_SSL_PROTO_TLS1_2
*
* Comment this macro to disable support for DTLS
*/
-//#define MBEDTLS_SSL_PROTO_DTLS
+#define MBEDTLS_SSL_PROTO_DTLS
/**
* \def MBEDTLS_SSL_ALPN
@@ -1536,7 +1582,7 @@ extern void vPortFree( void *pv );
*
* Comment this to disable anti-replay in DTLS.
*/
-//#define MBEDTLS_SSL_DTLS_ANTI_REPLAY
+#define MBEDTLS_SSL_DTLS_ANTI_REPLAY
/**
* \def MBEDTLS_SSL_DTLS_HELLO_VERIFY
@@ -1548,13 +1594,44 @@ extern void vPortFree( void *pv );
* unless you know for sure amplification cannot be a problem in the
* environment in which your server operates.
*
- * \warning Disabling this can ba a security risk! (see above)
+ * \warning Disabling this can be a security risk! (see above)
*
* Requires: MBEDTLS_SSL_PROTO_DTLS
*
* Comment this to disable support for HelloVerifyRequest.
*/
-//#define MBEDTLS_SSL_DTLS_HELLO_VERIFY
+#define MBEDTLS_SSL_DTLS_HELLO_VERIFY
+
+/**
+ * \def MBEDTLS_SSL_DTLS_SRTP
+ *
+ * Enable support for negotiation of DTLS-SRTP (RFC 5764)
+ * through the use_srtp extension.
+ *
+ * \note This feature provides the minimum functionality required
+ * to negotiate the use of DTLS-SRTP and to allow the derivation of
+ * the associated SRTP packet protection key material.
+ * In particular, the SRTP packet protection itself, as well as the
+ * demultiplexing of RTP and DTLS packets at the datagram layer
+ * (see Section 5 of RFC 5764), are not handled by this feature.
+ * Instead, after successful completion of a handshake negotiating
+ * the use of DTLS-SRTP, the extended key exporter API
+ * mbedtls_ssl_conf_export_keys_cb() should be used to implement
+ * the key exporter described in Section 4.2 of RFC 5764 and RFC 5705
+ * (this is implemented in the SSL example programs).
+ * The resulting key should then be passed to an SRTP stack.
+ *
+ * Setting this option enables the runtime API
+ * mbedtls_ssl_conf_dtls_srtp_protection_profiles()
+ * through which the supported DTLS-SRTP protection
+ * profiles can be configured. You must call this API at
+ * runtime if you wish to negotiate the use of DTLS-SRTP.
+ *
+ * Requires: MBEDTLS_SSL_PROTO_DTLS
+ *
+ * Uncomment this to enable support for use_srtp extension.
+ */
+//#define MBEDTLS_SSL_DTLS_SRTP
/**
* \def MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
@@ -1570,24 +1647,13 @@ extern void vPortFree( void *pv );
*
* Comment this to disable support for clients reusing the source port.
*/
-//#define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
-
-/**
- * \def MBEDTLS_SSL_DTLS_BADMAC_LIMIT
- *
- * Enable support for a limit of records with bad MAC.
- *
- * See mbedtls_ssl_conf_dtls_badmac_limit().
- *
- * Requires: MBEDTLS_SSL_PROTO_DTLS
- */
-//#define MBEDTLS_SSL_DTLS_BADMAC_LIMIT
+#define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
/**
* \def MBEDTLS_SSL_SESSION_TICKETS
*
* Enable support for RFC 5077 session tickets in SSL.
- * Client-side, provides full support for session tickets (maintainance of a
+ * Client-side, provides full support for session tickets (maintenance of a
* session store remains the responsibility of the application, though).
* Server-side, you also need to provide callbacks for writing and parsing
* tickets, including authenticated encryption and key management. Example
@@ -1595,17 +1661,7 @@ extern void vPortFree( void *pv );
*
* Comment this macro to disable support for SSL session tickets
*/
-//#define MBEDTLS_SSL_SESSION_TICKETS
-
-/**
- * \def MBEDTLS_SSL_EXPORT_KEYS
- *
- * Enable support for exporting key block and master secret.
- * This is required for certain users of TLS, e.g. EAP-TLS.
- *
- * Comment this macro to disable support for key export
- */
-//#define MBEDTLS_SSL_EXPORT_KEYS
+#define MBEDTLS_SSL_SESSION_TICKETS
/**
* \def MBEDTLS_SSL_SERVER_NAME_INDICATION
@@ -1619,37 +1675,69 @@ extern void vPortFree( void *pv );
#define MBEDTLS_SSL_SERVER_NAME_INDICATION
/**
- * \def MBEDTLS_SSL_TRUNCATED_HMAC
+ * \def MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
+ *
+ * When this option is enabled, the SSL buffer will be resized automatically
+ * based on the negotiated maximum fragment length in each direction.
+ *
+ * Requires: MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
+ */
+
+/**
+ * \def MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
*
- * Enable support for RFC 6066 truncated HMAC in SSL.
+ * Enable testing of the constant-flow nature of some sensitive functions with
+ * clang's MemorySanitizer. This causes some existing tests to also test
+ * this non-functional property of the code under test.
*
- * Comment this macro to disable support for truncated HMAC in SSL
+ * This setting requires compiling with clang -fsanitize=memory. The test
+ * suites can then be run normally.
+ *
+ * \warning This macro is only used for extended testing; it is not considered
+ * part of the library's API, so it may change or disappear at any time.
+ *
+ * Uncomment to enable testing of the constant-flow nature of selected code.
*/
-//#define MBEDTLS_SSL_TRUNCATED_HMAC
+//#define MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
/**
- * \def MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT
+ * \def MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+ *
+ * Enable testing of the constant-flow nature of some sensitive functions with
+ * valgrind's memcheck tool. This causes some existing tests to also test
+ * this non-functional property of the code under test.
+ *
+ * This setting requires valgrind headers for building, and is only useful for
+ * testing if the tests suites are run with valgrind's memcheck. This can be
+ * done for an individual test suite with 'valgrind ./test_suite_xxx', or when
+ * using CMake, this can be done for all test suites with 'make memcheck'.
*
- * Fallback to old (pre-2.7), non-conforming implementation of the truncated
- * HMAC extension which also truncates the HMAC key. Note that this option is
- * only meant for a transitory upgrade period and is likely to be removed in
- * a future version of the library.
+ * \warning This macro is only used for extended testing; it is not considered
+ * part of the library's API, so it may change or disappear at any time.
+ *
+ * Uncomment to enable testing of the constant-flow nature of selected code.
+ */
+//#define MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
+
+/**
+ * \def MBEDTLS_TEST_HOOKS
*
- * \warning The old implementation is non-compliant and has a security weakness
- * (2^80 brute force attack on the HMAC key used for a single,
- * uninterrupted connection). This should only be enabled temporarily
- * when (1) the use of truncated HMAC is essential in order to save
- * bandwidth, and (2) the peer is an Mbed TLS stack that doesn't use
- * the fixed implementation yet (pre-2.7).
+ * Enable features for invasive testing such as introspection functions and
+ * hooks for fault injection. This enables additional unit tests.
*
- * \deprecated This option is deprecated and will likely be removed in a
- * future version of Mbed TLS.
+ * Merely enabling this feature should not change the behavior of the product.
+ * It only adds new code, and new branching points where the default behavior
+ * is the same as when this feature is disabled.
+ * However, this feature increases the attack surface: there is an added
+ * risk of vulnerabilities, and more gadgets that can make exploits easier.
+ * Therefore this feature must never be enabled in production.
*
- * Uncomment to fallback to old, non-compliant truncated HMAC implementation.
+ * See `docs/architecture/testing/mbed-crypto-invasive-testing.md` for more
+ * information.
*
- * Requires: MBEDTLS_SSL_TRUNCATED_HMAC
+ * Uncomment to enable invasive tests.
*/
-//#define MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT
+//#define MBEDTLS_TEST_HOOKS
/**
* \def MBEDTLS_THREADING_ALT
@@ -1660,7 +1748,7 @@ extern void vPortFree( void *pv );
*
* Uncomment this to allow your own alternate threading implementation.
*/
-#define MBEDTLS_THREADING_ALT
+//#define MBEDTLS_THREADING_ALT
/**
* \def MBEDTLS_THREADING_PTHREAD
@@ -1674,66 +1762,96 @@ extern void vPortFree( void *pv );
//#define MBEDTLS_THREADING_PTHREAD
/**
- * \def MBEDTLS_VERSION_FEATURES
+ * \def MBEDTLS_USE_PSA_CRYPTO
*
- * Allow run-time checking of compile-time enabled features. Thus allowing users
- * to check at run-time if the library is for instance compiled with threading
- * support via mbedtls_version_check_feature().
+ * Make the X.509 and TLS library use PSA for cryptographic operations, and
+ * enable new APIs for using keys handled by PSA Crypto.
*
- * Requires: MBEDTLS_VERSION_C
+ * \note Development of this option is currently in progress, and parts of Mbed
+ * TLS's X.509 and TLS modules are not ported to PSA yet. However, these parts
+ * will still continue to work as usual, so enabling this option should not
+ * break backwards compatibility.
*
- * Comment this to disable run-time checking and save ROM space
+ * \note See docs/use-psa-crypto.md for a complete description of what this
+ * option currently does, and of parts that are not affected by it so far.
+ *
+ * \warning If you enable this option, you need to call `psa_crypto_init()`
+ * before calling any function from the SSL/TLS, X.509 or PK modules.
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C.
+ * Conflicts with: MBEDTLS_ECP_RESTARTABLE
+ *
+ * Uncomment this to enable internal use of PSA Crypto and new associated APIs.
*/
-//#define MBEDTLS_VERSION_FEATURES
+//#define MBEDTLS_USE_PSA_CRYPTO
/**
- * \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
+ * \def MBEDTLS_PSA_CRYPTO_CONFIG
+ *
+ * This setting allows support for cryptographic mechanisms through the PSA
+ * API to be configured separately from support through the mbedtls API.
+ *
+ * When this option is disabled, the PSA API exposes the cryptographic
+ * mechanisms that can be implemented on top of the `mbedtls_xxx` API
+ * configured with `MBEDTLS_XXX` symbols.
*
- * If set, the X509 parser will not break-off when parsing an X509 certificate
- * and encountering an extension in a v1 or v2 certificate.
+ * When this option is enabled, the PSA API exposes the cryptographic
+ * mechanisms requested by the `PSA_WANT_XXX` symbols defined in
+ * include/psa/crypto_config.h. The corresponding `MBEDTLS_XXX` settings are
+ * automatically enabled if required (i.e. if no PSA driver provides the
+ * mechanism). You may still freely enable additional `MBEDTLS_XXX` symbols
+ * in mbedtls_config.h.
*
- * Uncomment to prevent an error.
+ * If the symbol #MBEDTLS_PSA_CRYPTO_CONFIG_FILE is defined, it specifies
+ * an alternative header to include instead of include/psa/crypto_config.h.
+ *
+ * This feature is still experimental and is not ready for production since
+ * it is not completed.
*/
-//#define MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
+//#define MBEDTLS_PSA_CRYPTO_CONFIG
/**
- * \def MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
+ * \def MBEDTLS_VERSION_FEATURES
*
- * If set, the X509 parser will not break-off when parsing an X509 certificate
- * and encountering an unknown critical extension.
+ * Allow run-time checking of compile-time enabled features. Thus allowing users
+ * to check at run-time if the library is for instance compiled with threading
+ * support via mbedtls_version_check_feature().
*
- * \warning Depending on your PKI use, enabling this can be a security risk!
+ * Requires: MBEDTLS_VERSION_C
*
- * Uncomment to prevent an error.
+ * Comment this to disable run-time checking and save ROM space
*/
-//#define MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
+//#define MBEDTLS_VERSION_FEATURES
/**
- * \def MBEDTLS_X509_CHECK_KEY_USAGE
+ * \def MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
*
- * Enable verification of the keyUsage extension (CA and leaf certificates).
+ * If set, this enables the X.509 API `mbedtls_x509_crt_verify_with_ca_cb()`
+ * and the SSL API `mbedtls_ssl_conf_ca_cb()` which allow users to configure
+ * the set of trusted certificates through a callback instead of a linked
+ * list.
*
- * Disabling this avoids problems with mis-issued and/or misused
- * (intermediate) CA and leaf certificates.
+ * This is useful for example in environments where a large number of trusted
+ * certificates is present and storing them in a linked list isn't efficient
+ * enough, or when the set of trusted certificates changes frequently.
*
- * \warning Depending on your PKI use, disabling this can be a security risk!
+ * See the documentation of `mbedtls_x509_crt_verify_with_ca_cb()` and
+ * `mbedtls_ssl_conf_ca_cb()` for more information.
*
- * Comment to skip keyUsage checking for both CA and leaf certificates.
+ * Uncomment to enable trusted certificate callbacks.
*/
-#define MBEDTLS_X509_CHECK_KEY_USAGE
+#define MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
/**
- * \def MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
+ * \def MBEDTLS_X509_REMOVE_INFO
*
- * Enable verification of the extendedKeyUsage extension (leaf certificates).
+ * Disable mbedtls_x509_*_info() and related APIs.
*
- * Disabling this avoids problems with mis-issued and/or misused certificates.
- *
- * \warning Depending on your PKI use, disabling this can be a security risk!
- *
- * Comment to skip extendedKeyUsage checking for certificates.
+ * Uncomment to omit mbedtls_x509_*_info(), as well as mbedtls_debug_print_crt()
+ * and other functions/constants only used by these functions, thus reducing
+ * the code footprint by several KB.
*/
-#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
+//#define MBEDTLS_X509_REMOVE_INFO
/**
* \def MBEDTLS_X509_RSASSA_PSS_SUPPORT
@@ -1743,33 +1861,8 @@ extern void vPortFree( void *pv );
*
* Comment this macro to disallow using RSASSA-PSS in certificates.
*/
-//#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
-
-/**
- * \def MBEDTLS_ZLIB_SUPPORT
- *
- * If set, the SSL/TLS module uses ZLIB to support compression and
- * decompression of packet data.
- *
- * \warning TLS-level compression MAY REDUCE SECURITY! See for example the
- * CRIME attack. Before enabling this option, you should examine with care if
- * CRIME or similar exploits may be a applicable to your use case.
- *
- * \note Currently compression can't be used with DTLS.
- *
- * \deprecated This feature is deprecated and will be removed
- * in the next major revision of the library.
- *
- * Used in: library/ssl_tls.c
- * library/ssl_cli.c
- * library/ssl_srv.c
- *
- * This feature requires zlib library and headers to be present.
- *
- * Uncomment to enable use of ZLIB
- */
-//#define MBEDTLS_ZLIB_SUPPORT
-/* \} name SECTION: mbed TLS feature support */
+#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
+/** \} name SECTION: mbed TLS feature support */
/**
* \name SECTION: mbed TLS modules
@@ -1867,34 +1960,6 @@ extern void vPortFree( void *pv );
*/
#define MBEDTLS_AES_C
-/**
- * \def MBEDTLS_ARC4_C
- *
- * Enable the ARCFOUR stream cipher.
- *
- * Module: library/arc4.c
- * Caller: library/cipher.c
- *
- * This module enables the following ciphersuites (if other requisites are
- * enabled as well):
- * MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
- * MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA
- * MBEDTLS_TLS_RSA_WITH_RC4_128_SHA
- * MBEDTLS_TLS_RSA_WITH_RC4_128_MD5
- * MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
- * MBEDTLS_TLS_PSK_WITH_RC4_128_SHA
- *
- * \warning ARC4 is considered a weak cipher and its use constitutes a
- * security risk. If possible, we recommend avoidng dependencies on
- * it, and considering stronger ciphers instead.
- *
- */
-//#define MBEDTLS_ARC4_C
-
/**
* \def MBEDTLS_ASN1_PARSE_C
*
@@ -1945,22 +2010,13 @@ extern void vPortFree( void *pv );
* library/ecp.c
* library/ecdsa.c
* library/rsa.c
- * library/rsa_internal.c
+ * library/rsa_alt_helpers.c
* library/ssl_tls.c
*
* This module is required for RSA, DHM and ECC (ECDH, ECDSA) support.
*/
#define MBEDTLS_BIGNUM_C
-/**
- * \def MBEDTLS_BLOWFISH_C
- *
- * Enable the Blowfish block cipher.
- *
- * Module: library/blowfish.c
- */
-//#define MBEDTLS_BLOWFISH_C
-
/**
* \def MBEDTLS_CAMELLIA_C
*
@@ -2075,25 +2131,14 @@ extern void vPortFree( void *pv );
*
* Module: library/ccm.c
*
- * Requires: MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C
+ * Requires: MBEDTLS_CIPHER_C, MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C or
+ * MBEDTLS_ARIA_C
*
* This module enables the AES-CCM ciphersuites, if other requisites are
* enabled as well.
*/
//#define MBEDTLS_CCM_C
-/**
- * \def MBEDTLS_CERTS_C
- *
- * Enable the test certificates.
- *
- * Module: library/certs.c
- * Caller:
- *
- * This module is used for testing (ssl_client/server).
- */
-//#define MBEDTLS_CERTS_C
-
/**
* \def MBEDTLS_CHACHA20_C
*
@@ -2101,7 +2146,7 @@ extern void vPortFree( void *pv );
*
* Module: library/chacha20.c
*/
-//#define MBEDTLS_CHACHA20_C
+#define MBEDTLS_CHACHA20_C
/**
* \def MBEDTLS_CHACHAPOLY_C
@@ -2112,7 +2157,7 @@ extern void vPortFree( void *pv );
*
* This module requires: MBEDTLS_CHACHA20_C, MBEDTLS_POLY1305_C
*/
-//#define MBEDTLS_CHACHAPOLY_C
+#define MBEDTLS_CHACHAPOLY_C
/**
* \def MBEDTLS_CIPHER_C
@@ -2120,7 +2165,17 @@ extern void vPortFree( void *pv );
* Enable the generic cipher layer.
*
* Module: library/cipher.c
- * Caller: library/ssl_tls.c
+ * Caller: library/ccm.c
+ * library/cmac.c
+ * library/gcm.c
+ * library/nist_kw.c
+ * library/pkcs12.c
+ * library/pkcs5.c
+ * library/psa_crypto_aead.c
+ * library/psa_crypto_mac.c
+ * library/ssl_ciphersuites.c
+ * library/ssl_msg.c
+ * library/ssl_ticket.c (unless MBEDTLS_USE_PSA_CRYPTO is enabled)
*
* Uncomment to enable generic cipher wrappers.
*/
@@ -2132,9 +2187,14 @@ extern void vPortFree( void *pv );
* Enable the CMAC (Cipher-based Message Authentication Code) mode for block
* ciphers.
*
+ * \note When #MBEDTLS_CMAC_ALT is active, meaning that the underlying
+ * implementation of the CMAC algorithm is provided by an alternate
+ * implementation, that alternate implementation may opt to not support
+ * AES-192 or 3DES as underlying block ciphers for the CMAC operation.
+ *
* Module: library/cmac.c
*
- * Requires: MBEDTLS_AES_C or MBEDTLS_DES_C
+ * Requires: MBEDTLS_CIPHER_C, MBEDTLS_AES_C or MBEDTLS_DES_C
*
*/
#define MBEDTLS_CMAC_C
@@ -2144,7 +2204,11 @@ extern void vPortFree( void *pv );
*
* Enable the CTR_DRBG AES-based random generator.
* The CTR_DRBG generator uses AES-256 by default.
- * To use AES-128 instead, enable MBEDTLS_CTR_DRBG_USE_128_BIT_KEY below.
+ * To use AES-128 instead, enable \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY above.
+ *
+ * \note To achieve a 256-bit security strength with CTR_DRBG,
+ * you must use AES-256 *and* use sufficient entropy.
+ * See ctr_drbg.h for more details.
*
* Module: library/ctr_drbg.c
* Caller:
@@ -2161,9 +2225,10 @@ extern void vPortFree( void *pv );
* Enable the debug functions.
*
* Module: library/debug.c
- * Caller: library/ssl_cli.c
- * library/ssl_srv.c
+ * Caller: library/ssl_msg.c
* library/ssl_tls.c
+ * library/ssl_tls12_*.c
+ * library/ssl_tls13_*.c
*
* This module provides debugging functions.
*/
@@ -2178,19 +2243,6 @@ extern void vPortFree( void *pv );
* Caller: library/pem.c
* library/cipher.c
*
- * This module enables the following ciphersuites (if other requisites are
- * enabled as well):
- * MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
- * MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA
- *
* PEM_PARSE uses DES/3DES for decrypting encrypted keys.
*
* \warning DES is considered a weak cipher and its use constitutes a
@@ -2204,8 +2256,9 @@ extern void vPortFree( void *pv );
* Enable the Diffie-Hellman-Merkle module.
*
* Module: library/dhm.c
- * Caller: library/ssl_cli.c
- * library/ssl_srv.c
+ * Caller: library/ssl_tls.c
+ * library/ssl*_client.c
+ * library/ssl*_server.c
*
* This module is used by the following key exchanges:
* DHE-RSA, DHE-PSK
@@ -2217,7 +2270,7 @@ extern void vPortFree( void *pv );
* See dhm.h for more details.
*
*/
-//#define MBEDTLS_DHM_C
+#define MBEDTLS_DHM_C
/**
* \def MBEDTLS_ECDH_C
@@ -2225,8 +2278,10 @@ extern void vPortFree( void *pv );
* Enable the elliptic curve Diffie-Hellman library.
*
* Module: library/ecdh.c
- * Caller: library/ssl_cli.c
- * library/ssl_srv.c
+ * Caller: library/psa_crypto.c
+ * library/ssl_tls.c
+ * library/ssl*_client.c
+ * library/ssl*_server.c
*
* This module is used by the following key exchanges:
* ECDHE-ECDSA, ECDHE-RSA, DHE-PSK
@@ -2246,7 +2301,9 @@ extern void vPortFree( void *pv );
* This module is used by the following key exchanges:
* ECDHE-ECDSA
*
- * Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C
+ * Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C,
+ * and at least one MBEDTLS_ECP_DP_XXX_ENABLED for a
+ * short Weierstrass curve.
*/
#define MBEDTLS_ECDSA_C
@@ -2255,9 +2312,9 @@ extern void vPortFree( void *pv );
*
* Enable the elliptic curve J-PAKE library.
*
- * \warning This is currently experimental. EC J-PAKE support is based on the
- * Thread v1.0.0 specification; incompatible changes to the specification
- * might still happen. For this reason, this is disabled by default.
+ * \note EC J-PAKE support is based on the Thread v1.0.0 specification.
+ * It has not been reviewed for compliance with newer standards such as
+ * Thread v1.1 or RFC 8236.
*
* Module: library/ecjpake.c
* Caller:
@@ -2296,7 +2353,6 @@ extern void vPortFree( void *pv );
* This module provides a generic entropy pool
*/
#define MBEDTLS_ENTROPY_C
-#define MBEDTLS_ERROR_C
/**
* \def MBEDTLS_ERROR_C
@@ -2313,40 +2369,18 @@ extern void vPortFree( void *pv );
/**
* \def MBEDTLS_GCM_C
*
- * Enable the Galois/Counter Mode (GCM) for AES.
+ * Enable the Galois/Counter Mode (GCM).
*
* Module: library/gcm.c
*
- * Requires: MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C
+ * Requires: MBEDTLS_CIPHER_C, MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C or
+ * MBEDTLS_ARIA_C
*
* This module enables the AES-GCM and CAMELLIA-GCM ciphersuites, if other
* requisites are enabled as well.
*/
#define MBEDTLS_GCM_C
-/**
- * \def MBEDTLS_HAVEGE_C
- *
- * Enable the HAVEGE random generator.
- *
- * Warning: the HAVEGE random generator is not suitable for virtualized
- * environments
- *
- * Warning: the HAVEGE random generator is dependent on timing and specific
- * processor traits. It is therefore not advised to use HAVEGE as
- * your applications primary random generator or primary entropy pool
- * input. As a secondary input to your entropy pool, it IS able add
- * the (limited) extra entropy it provides.
- *
- * Module: library/havege.c
- * Caller:
- *
- * Requires: MBEDTLS_TIMING_C
- *
- * Uncomment to enable the HAVEGE random generator.
- */
-//#define MBEDTLS_HAVEGE_C
-
/**
* \def MBEDTLS_HKDF_C
*
@@ -2360,7 +2394,7 @@ extern void vPortFree( void *pv );
* This module adds support for the Hashed Message Authentication Code
* (HMAC)-based key derivation function (HKDF).
*/
-//#define MBEDTLS_HKDF_C
+#define MBEDTLS_HKDF_C
/**
* \def MBEDTLS_HMAC_DRBG_C
@@ -2372,9 +2406,9 @@ extern void vPortFree( void *pv );
*
* Requires: MBEDTLS_MD_C
*
- * Uncomment to enable the HMAC_DRBG random number geerator.
+ * Uncomment to enable the HMAC_DRBG random number generator.
*/
-//#define MBEDTLS_HMAC_DRBG_C
+#define MBEDTLS_HMAC_DRBG_C
/**
* \def MBEDTLS_NIST_KW_C
@@ -2387,7 +2421,7 @@ extern void vPortFree( void *pv );
*
* Requires: MBEDTLS_AES_C and MBEDTLS_CIPHER_C
*/
-//#define MBEDTLS_NIST_KW_C
+#define MBEDTLS_NIST_KW_C
/**
* \def MBEDTLS_MD_C
@@ -2395,46 +2429,29 @@ extern void vPortFree( void *pv );
* Enable the generic message digest layer.
*
* Module: library/md.c
- * Caller:
+ * Caller: library/constant_time.c
+ * library/ecdsa.c
+ * library/ecjpake.c
+ * library/hkdf.c
+ * library/hmac_drbg.c
+ * library/pk.c
+ * library/pkcs5.c
+ * library/pkcs12.c
+ * library/psa_crypto_ecp.c
+ * library/psa_crypto_rsa.c
+ * library/rsa.c
+ * library/ssl_cookie.c
+ * library/ssl_msg.c
+ * library/ssl_tls.c
+ * library/x509.c
+ * library/x509_crt.c
+ * library/x509write_crt.c
+ * library/x509write_csr.c
*
* Uncomment to enable generic message digest wrappers.
*/
#define MBEDTLS_MD_C
-/**
- * \def MBEDTLS_MD2_C
- *
- * Enable the MD2 hash algorithm.
- *
- * Module: library/md2.c
- * Caller:
- *
- * Uncomment to enable support for (rare) MD2-signed X.509 certs.
- *
- * \warning MD2 is considered a weak message digest and its use constitutes a
- * security risk. If possible, we recommend avoiding dependencies on
- * it, and considering stronger message digests instead.
- *
- */
-//#define MBEDTLS_MD2_C
-
-/**
- * \def MBEDTLS_MD4_C
- *
- * Enable the MD4 hash algorithm.
- *
- * Module: library/md4.c
- * Caller:
- *
- * Uncomment to enable support for (rare) MD4-signed X.509 certs.
- *
- * \warning MD4 is considered a weak message digest and its use constitutes a
- * security risk. If possible, we recommend avoiding dependencies on
- * it, and considering stronger message digests instead.
- *
- */
-//#define MBEDTLS_MD4_C
-
/**
* \def MBEDTLS_MD5_C
*
@@ -2445,17 +2462,16 @@ extern void vPortFree( void *pv );
* library/pem.c
* library/ssl_tls.c
*
- * This module is required for SSL/TLS up to version 1.1, and for TLS 1.2
- * depending on the handshake parameters. Further, it is used for checking
- * MD5-signed certificates, and for PBKDF1 when decrypting PEM-encoded
- * encrypted keys.
+ * This module is required for TLS 1.2 depending on the handshake parameters.
+ * Further, it is used for checking MD5-signed certificates, and for PBKDF1
+ * when decrypting PEM-encoded encrypted keys.
*
* \warning MD5 is considered a weak message digest and its use constitutes a
* security risk. If possible, we recommend avoiding dependencies on
* it, and considering stronger message digests instead.
*
*/
-//#define MBEDTLS_MD5_C
+#define MBEDTLS_MD5_C
/**
* \def MBEDTLS_MEMORY_BUFFER_ALLOC_C
@@ -2561,19 +2577,21 @@ extern void vPortFree( void *pv );
*
* This modules adds support for encoding / writing PEM files.
*/
-//#define MBEDTLS_PEM_WRITE_C
+#define MBEDTLS_PEM_WRITE_C
/**
* \def MBEDTLS_PK_C
*
- * Enable the generic public (asymetric) key layer.
+ * Enable the generic public (asymmetric) key layer.
*
* Module: library/pk.c
- * Caller: library/ssl_tls.c
- * library/ssl_cli.c
- * library/ssl_srv.c
+ * Caller: library/psa_crypto_rsa.c
+ * library/ssl_tls.c
+ * library/ssl*_client.c
+ * library/ssl*_server.c
+ * library/x509.c
*
- * Requires: MBEDTLS_RSA_C or MBEDTLS_ECP_C
+ * Requires: MBEDTLS_MD_C, MBEDTLS_RSA_C or MBEDTLS_ECP_C
*
* Uncomment to enable generic public key wrappers.
*/
@@ -2582,7 +2600,7 @@ extern void vPortFree( void *pv );
/**
* \def MBEDTLS_PK_PARSE_C
*
- * Enable the generic public (asymetric) key parser.
+ * Enable the generic public (asymmetric) key parser.
*
* Module: library/pkparse.c
* Caller: library/x509_crt.c
@@ -2597,7 +2615,7 @@ extern void vPortFree( void *pv );
/**
* \def MBEDTLS_PK_WRITE_C
*
- * Enable the generic public (asymetric) key writer.
+ * Enable the generic public (asymmetric) key writer.
*
* Module: library/pkwrite.c
* Caller: library/x509write.c
@@ -2615,26 +2633,11 @@ extern void vPortFree( void *pv );
*
* Module: library/pkcs5.c
*
- * Requires: MBEDTLS_MD_C
+ * Requires: MBEDTLS_CIPHER_C, MBEDTLS_MD_C
*
* This module adds support for the PKCS#5 functions.
*/
-//#define MBEDTLS_PKCS5_C
-
-/**
- * \def MBEDTLS_PKCS11_C
- *
- * Enable wrapper for PKCS#11 smartcard support.
- *
- * Module: library/pkcs11.c
- * Caller: library/pk.c
- *
- * Requires: MBEDTLS_PK_C
- *
- * This module enables SSL/TLS PKCS #11 smartcard support.
- * Requires the presence of the PKCS#11 helper library (libpkcs11-helper)
- */
-//#define MBEDTLS_PKCS11_C
+#define MBEDTLS_PKCS5_C
/**
* \def MBEDTLS_PKCS12_C
@@ -2646,11 +2649,10 @@ extern void vPortFree( void *pv );
* Caller: library/pkparse.c
*
* Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_CIPHER_C, MBEDTLS_MD_C
- * Can use: MBEDTLS_ARC4_C
*
* This module enables PKCS#12 functions.
*/
-//#define MBEDTLS_PKCS12_C
+#define MBEDTLS_PKCS12_C
/**
* \def MBEDTLS_PLATFORM_C
@@ -2680,7 +2682,63 @@ extern void vPortFree( void *pv );
* Module: library/poly1305.c
* Caller: library/chachapoly.c
*/
-//#define MBEDTLS_POLY1305_C
+#define MBEDTLS_POLY1305_C
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_C
+ *
+ * Enable the Platform Security Architecture cryptography API.
+ *
+ * Module: library/psa_crypto.c
+ *
+ * Requires: MBEDTLS_CIPHER_C,
+ * either MBEDTLS_CTR_DRBG_C and MBEDTLS_ENTROPY_C,
+ * or MBEDTLS_HMAC_DRBG_C and MBEDTLS_ENTROPY_C,
+ * or MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG.
+ *
+ */
+//#define MBEDTLS_PSA_CRYPTO_C
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_SE_C
+ *
+ * Enable dynamic secure element support in the Platform Security Architecture
+ * cryptography API.
+ *
+ * \deprecated This feature is deprecated. Please switch to the driver
+ * interface enabled by #MBEDTLS_PSA_CRYPTO_DRIVERS.
+ *
+ * Module: library/psa_crypto_se.c
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C, MBEDTLS_PSA_CRYPTO_STORAGE_C
+ *
+ */
+//#define MBEDTLS_PSA_CRYPTO_SE_C
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_STORAGE_C
+ *
+ * Enable the Platform Security Architecture persistent key storage.
+ *
+ * Module: library/psa_crypto_storage.c
+ *
+ * Requires: MBEDTLS_PSA_CRYPTO_C,
+ * either MBEDTLS_PSA_ITS_FILE_C or a native implementation of
+ * the PSA ITS interface
+ */
+//#define MBEDTLS_PSA_CRYPTO_STORAGE_C
+
+/**
+ * \def MBEDTLS_PSA_ITS_FILE_C
+ *
+ * Enable the emulation of the Platform Security Architecture
+ * Internal Trusted Storage (PSA ITS) over files.
+ *
+ * Module: library/psa_its_file.c
+ *
+ * Requires: MBEDTLS_FS_IO
+ */
+//#define MBEDTLS_PSA_ITS_FILE_C
/**
* \def MBEDTLS_RIPEMD160_C
@@ -2691,7 +2749,7 @@ extern void vPortFree( void *pv );
* Caller: library/md.c
*
*/
-//#define MBEDTLS_RIPEMD160_C
+#define MBEDTLS_RIPEMD160_C
/**
* \def MBEDTLS_RSA_C
@@ -2699,11 +2757,12 @@ extern void vPortFree( void *pv );
* Enable the RSA public-key cryptosystem.
*
* Module: library/rsa.c
- * library/rsa_internal.c
- * Caller: library/ssl_cli.c
- * library/ssl_srv.c
+ * library/rsa_alt_helpers.c
+ * Caller: library/pk.c
+ * library/psa_crypto.c
* library/ssl_tls.c
- * library/x509.c
+ * library/ssl*_client.c
+ * library/ssl*_server.c
*
* This module is used by the following key exchanges:
* RSA, DHE-RSA, ECDHE-RSA, RSA-PSK
@@ -2719,13 +2778,10 @@ extern void vPortFree( void *pv );
*
* Module: library/sha1.c
* Caller: library/md.c
- * library/ssl_cli.c
- * library/ssl_srv.c
- * library/ssl_tls.c
- * library/x509write_crt.c
+ * library/psa_crypto_hash.c
*
- * This module is required for SSL/TLS up to version 1.1, for TLS 1.2
- * depending on the handshake parameters, and for SHA1-signed certificates.
+ * This module is required for TLS 1.2 depending on the handshake parameters,
+ * and for SHA1-signed certificates.
*
* \warning SHA-1 is considered a weak message digest and its use constitutes
* a security risk. If possible, we recommend avoiding dependencies
@@ -2734,37 +2790,178 @@ extern void vPortFree( void *pv );
*/
#define MBEDTLS_SHA1_C
+/**
+ * \def MBEDTLS_SHA224_C
+ *
+ * Enable the SHA-224 cryptographic hash algorithm.
+ *
+ * Requires: MBEDTLS_SHA256_C. The library does not currently support enabling
+ * SHA-224 without SHA-256.
+ *
+ * Module: library/sha256.c
+ * Caller: library/md.c
+ * library/ssl_cookie.c
+ *
+ * This module adds support for SHA-224.
+ */
+#define MBEDTLS_SHA224_C
+
/**
* \def MBEDTLS_SHA256_C
*
- * Enable the SHA-224 and SHA-256 cryptographic hash algorithms.
+ * Enable the SHA-256 cryptographic hash algorithm.
+ *
+ * Requires: MBEDTLS_SHA224_C. The library does not currently support enabling
+ * SHA-256 without SHA-224.
*
* Module: library/sha256.c
* Caller: library/entropy.c
* library/md.c
- * library/ssl_cli.c
- * library/ssl_srv.c
* library/ssl_tls.c
+ * library/ssl*_client.c
+ * library/ssl*_server.c
*
- * This module adds support for SHA-224 and SHA-256.
+ * This module adds support for SHA-256.
* This module is required for the SSL/TLS 1.2 PRF function.
*/
#define MBEDTLS_SHA256_C
+/**
+ * \def MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
+ *
+ * Enable acceleration of the SHA-256 and SHA-224 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions if they are available at runtime.
+ * If not, the library will fall back to the C implementation.
+ *
+ * \note If MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT is defined when building
+ * for a non-Aarch64 build it will be silently ignored.
+ *
+ * \note The code uses Neon intrinsics, so \c CFLAGS must be set to a minimum
+ * of \c -march=armv8-a+crypto.
+ *
+ * \warning MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT cannot be defined at the
+ * same time as MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY.
+ *
+ * Requires: MBEDTLS_SHA256_C.
+ *
+ * Module: library/sha256.c
+ *
+ * Uncomment to have the library check for the A64 SHA-256 crypto extensions
+ * and use them if available.
+ */
+//#define MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
+
+/**
+ * \def MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
+ *
+ * Enable acceleration of the SHA-256 and SHA-224 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions, which must be available at runtime
+ * or else an illegal instruction fault will occur.
+ *
+ * \note This allows builds with a smaller code size than with
+ * MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
+ *
+ * \note The code uses Neon intrinsics, so \c CFLAGS must be set to a minimum
+ * of \c -march=armv8-a+crypto.
+ *
+ * \warning MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY cannot be defined at the same
+ * time as MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT.
+ *
+ * Requires: MBEDTLS_SHA256_C.
+ *
+ * Module: library/sha256.c
+ *
+ * Uncomment to have the library use the A64 SHA-256 crypto extensions
+ * unconditionally.
+ */
+//#define MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
+
+/**
+ * \def MBEDTLS_SHA384_C
+ *
+ * Enable the SHA-384 cryptographic hash algorithm.
+ *
+ * Requires: MBEDTLS_SHA512_C
+ *
+ * Module: library/sha512.c
+ * Caller: library/md.c
+ * library/psa_crypto_hash.c
+ * library/ssl_tls.c
+ * library/ssl*_client.c
+ * library/ssl*_server.c
+ *
+ * Comment to disable SHA-384
+ */
+#define MBEDTLS_SHA384_C
+
/**
* \def MBEDTLS_SHA512_C
*
- * Enable the SHA-384 and SHA-512 cryptographic hash algorithms.
+ * Enable SHA-512 cryptographic hash algorithms.
*
* Module: library/sha512.c
* Caller: library/entropy.c
* library/md.c
- * library/ssl_cli.c
- * library/ssl_srv.c
+ * library/ssl_tls.c
+ * library/ssl_cookie.c
+ *
+ * This module adds support for SHA-512.
+ */
+#define MBEDTLS_SHA512_C
+
+/**
+ * \def MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
+ *
+ * Enable acceleration of the SHA-512 and SHA-384 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions if they are available at runtime.
+ * If not, the library will fall back to the C implementation.
+ *
+ * \note If MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT is defined when building
+ * for a non-Aarch64 build it will be silently ignored.
+ *
+ * \note The code uses the SHA-512 Neon intrinsics, so requires GCC >= 8 or
+ * Clang >= 7, and \c CFLAGS must be set to a minimum of
+ * \c -march=armv8.2-a+sha3. An optimisation level of \c -O3 generates the
+ * fastest code.
+ *
+ * \warning MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT cannot be defined at the
+ * same time as MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY.
+ *
+ * Requires: MBEDTLS_SHA512_C.
+ *
+ * Module: library/sha512.c
+ *
+ * Uncomment to have the library check for the A64 SHA-512 crypto extensions
+ * and use them if available.
+ */
+//#define MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
+
+/**
+ * \def MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY
+ *
+ * Enable acceleration of the SHA-512 and SHA-384 cryptographic hash algorithms
+ * with the ARMv8 cryptographic extensions, which must be available at runtime
+ * or else an illegal instruction fault will occur.
+ *
+ * \note This allows builds with a smaller code size than with
+ * MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
*
- * This module adds support for SHA-384 and SHA-512.
+ * \note The code uses the SHA-512 Neon intrinsics, so requires GCC >= 8 or
+ * Clang >= 7, and \c CFLAGS must be set to a minimum of
+ * \c -march=armv8.2-a+sha3. An optimisation level of \c -O3 generates the
+ * fastest code.
+ *
+ * \warning MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY cannot be defined at the same
+ * time as MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT.
+ *
+ * Requires: MBEDTLS_SHA512_C.
+ *
+ * Module: library/sha512.c
+ *
+ * Uncomment to have the library use the A64 SHA-512 crypto extensions
+ * unconditionally.
*/
-//#define MBEDTLS_SHA512_C
+//#define MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY
/**
* \def MBEDTLS_SSL_CACHE_C
@@ -2776,7 +2973,7 @@ extern void vPortFree( void *pv );
*
* Requires: MBEDTLS_SSL_CACHE_C
*/
-//#define MBEDTLS_SSL_CACHE_C
+#define MBEDTLS_SSL_CACHE_C
/**
* \def MBEDTLS_SSL_COOKIE_C
@@ -2786,7 +2983,7 @@ extern void vPortFree( void *pv );
* Module: library/ssl_cookie.c
* Caller:
*/
-//#define MBEDTLS_SSL_COOKIE_C
+#define MBEDTLS_SSL_COOKIE_C
/**
* \def MBEDTLS_SSL_TICKET_C
@@ -2796,16 +2993,16 @@ extern void vPortFree( void *pv );
* Module: library/ssl_ticket.c
* Caller:
*
- * Requires: MBEDTLS_CIPHER_C
+ * Requires: MBEDTLS_CIPHER_C || MBEDTLS_USE_PSA_CRYPTO
*/
-//#define MBEDTLS_SSL_TICKET_C
+#define MBEDTLS_SSL_TICKET_C
/**
* \def MBEDTLS_SSL_CLI_C
*
* Enable the SSL/TLS client code.
*
- * Module: library/ssl_cli.c
+ * Module: library/ssl*_client.c
* Caller:
*
* Requires: MBEDTLS_SSL_TLS_C
@@ -2819,14 +3016,14 @@ extern void vPortFree( void *pv );
*
* Enable the SSL/TLS server code.
*
- * Module: library/ssl_srv.c
+ * Module: library/ssl*_server.c
* Caller:
*
* Requires: MBEDTLS_SSL_TLS_C
*
* This module is required for SSL/TLS server support.
*/
-//#define MBEDTLS_SSL_SRV_C
+//#define MBEDTLS_SSL_SRV
/**
* \def MBEDTLS_SSL_TLS_C
@@ -2834,8 +3031,8 @@ extern void vPortFree( void *pv );
* Enable the generic SSL/TLS code.
*
* Module: library/ssl_tls.c
- * Caller: library/ssl_cli.c
- * library/ssl_srv.c
+ * Caller: library/ssl*_client.c
+ * library/ssl*_server.c
*
* Requires: MBEDTLS_CIPHER_C, MBEDTLS_MD_C
* and at least one of the MBEDTLS_SSL_PROTO_XXX defines
@@ -2865,6 +3062,8 @@ extern void vPortFree( void *pv );
* Enable this layer to allow use of mutexes within mbed TLS
*/
#define MBEDTLS_THREADING_C
+#define MBEDTLS_THREADING_IMPL
+#include "mbedtls_freertos_port.h"
/**
* \def MBEDTLS_TIMING_C
@@ -2878,14 +3077,15 @@ extern void vPortFree( void *pv );
* your own implementation of the whole module by setting
* \c MBEDTLS_TIMING_ALT in the current file.
*
+ * \note The timing module will include time.h on suitable platforms
+ * regardless of the setting of MBEDTLS_HAVE_TIME, unless
+ * MBEDTLS_TIMING_ALT is used. See timing.c for more information.
+ *
* \note See also our Knowledge Base article about porting to a new
* environment:
* https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS
*
* Module: library/timing.c
- * Caller: library/havege.c
- *
- * This module is used by the HAVEGE random number generator.
*/
//#define MBEDTLS_TIMING_C
@@ -2923,9 +3123,9 @@ extern void vPortFree( void *pv );
* Enable X.509 certificate parsing.
*
* Module: library/x509_crt.c
- * Caller: library/ssl_cli.c
- * library/ssl_srv.c
- * library/ssl_tls.c
+ * Caller: library/ssl_tls.c
+ * library/ssl*_client.c
+ * library/ssl*_server.c
*
* Requires: MBEDTLS_X509_USE_C
*
@@ -2945,7 +3145,7 @@ extern void vPortFree( void *pv );
*
* This module is required for X.509 CRL parsing.
*/
-//#define MBEDTLS_X509_CRL_PARSE_C
+#define MBEDTLS_X509_CRL_PARSE_C
/**
* \def MBEDTLS_X509_CSR_PARSE_C
@@ -2959,7 +3159,7 @@ extern void vPortFree( void *pv );
*
* This module is used for reading X.509 certificate request.
*/
-//#define MBEDTLS_X509_CSR_PARSE_C
+#define MBEDTLS_X509_CSR_PARSE_C
/**
* \def MBEDTLS_X509_CREATE_C
@@ -2972,7 +3172,7 @@ extern void vPortFree( void *pv );
*
* This module is the basis for creating X.509 certificates and CSRs.
*/
-//#define MBEDTLS_X509_CREATE_C
+#define MBEDTLS_X509_CREATE_C
/**
* \def MBEDTLS_X509_CRT_WRITE_C
@@ -2985,7 +3185,7 @@ extern void vPortFree( void *pv );
*
* This module is required for X.509 certificate creation.
*/
-//#define MBEDTLS_X509_CRT_WRITE_C
+#define MBEDTLS_X509_CRT_WRITE_C
/**
* \def MBEDTLS_X509_CSR_WRITE_C
@@ -2998,19 +3198,91 @@ extern void vPortFree( void *pv );
*
* This module is required for X.509 certificate request writing.
*/
-//#define MBEDTLS_X509_CSR_WRITE_C
+#define MBEDTLS_X509_CSR_WRITE_C
+
+/** \} name SECTION: mbed TLS modules */
/**
- * \def MBEDTLS_XTEA_C
+ * \name SECTION: General configuration options
*
- * Enable the XTEA block cipher.
+ * This section contains Mbed TLS build settings that are not associated
+ * with a particular module.
*
- * Module: library/xtea.c
- * Caller:
+ * \{
+ */
+
+/**
+ * \def MBEDTLS_CONFIG_FILE
+ *
+ * If defined, this is a header which will be included instead of
+ * `"mbedtls/mbedtls_config.h"`.
+ * This header file specifies the compile-time configuration of Mbed TLS.
+ * Unlike other configuration options, this one must be defined on the
+ * compiler command line: a definition in `mbedtls_config.h` would have
+ * no effect.
+ *
+ * This macro is expanded after an \#include directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an \#include line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
*/
-//#define MBEDTLS_XTEA_C
+//#define MBEDTLS_CONFIG_FILE "mbedtls/mbedtls_config.h"
-/* \} name SECTION: mbed TLS modules */
+/**
+ * \def MBEDTLS_USER_CONFIG_FILE
+ *
+ * If defined, this is a header which will be included after
+ * `"mbedtls/mbedtls_config.h"` or #MBEDTLS_CONFIG_FILE.
+ * This allows you to modify the default configuration, including the ability
+ * to undefine options that are enabled by default.
+ *
+ * This macro is expanded after an \#include directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an \#include line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
+ */
+//#define MBEDTLS_USER_CONFIG_FILE "/dev/null"
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_CONFIG_FILE
+ *
+ * If defined, this is a header which will be included instead of
+ * `"psa/crypto_config.h"`.
+ * This header file specifies which cryptographic mechanisms are available
+ * through the PSA API when #MBEDTLS_PSA_CRYPTO_CONFIG is enabled, and
+ * is not used when #MBEDTLS_PSA_CRYPTO_CONFIG is disabled.
+ *
+ * This macro is expanded after an \#include directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an \#include line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
+ */
+//#define MBEDTLS_PSA_CRYPTO_CONFIG_FILE "psa/crypto_config.h"
+
+/**
+ * \def MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE
+ *
+ * If defined, this is a header which will be included after
+ * `"psa/crypto_config.h"` or #MBEDTLS_PSA_CRYPTO_CONFIG_FILE.
+ * This allows you to modify the default configuration, including the ability
+ * to undefine options that are enabled by default.
+ *
+ * This macro is expanded after an \#include directive. This is a popular but
+ * non-standard feature of the C language, so this feature is only available
+ * with compilers that perform macro expansion on an \#include line.
+ *
+ * The value of this symbol is typically a path in double quotes, either
+ * absolute or relative to a directory on the include search path.
+ */
+//#define MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE "/dev/null"
+
+/** \} name SECTION: General configuration options */
/**
* \name SECTION: Module configuration options
@@ -3021,14 +3293,18 @@ extern void vPortFree( void *pv );
*
* Our advice is to enable options and change their values here
* only if you have a good reason and know the consequences.
- *
- * Please check the respective header file for documentation on these
- * parameters (to prevent duplicate documentation).
* \{
*/
+/* The Doxygen documentation here is used when a user comments out a
+ * setting and runs doxygen themselves. On the other hand, when we typeset
+ * the full documentation including disabled settings, the documentation
+ * in specific modules' header files is used if present. When editing this
+ * file, make sure that each option is documented in exactly one place,
+ * plus optionally a same-line Doxygen comment here if there is a Doxygen
+ * comment in the specific module. */
/* MPI / BIGNUM options */
-//#define MBEDTLS_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */
+//#define MBEDTLS_MPI_WINDOW_SIZE 6 /**< Maximum window size used. */
//#define MBEDTLS_MPI_MAX_SIZE 1024 /**< Maximum number of bytes for usable MPIs. */
/* CTR_DRBG options */
@@ -3045,8 +3321,7 @@ extern void vPortFree( void *pv );
//#define MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
/* ECP options */
-//#define MBEDTLS_ECP_MAX_BITS 521 /**< Maximum bit size of groups */
-//#define MBEDTLS_ECP_WINDOW_SIZE 6 /**< Maximum window size used */
+//#define MBEDTLS_ECP_WINDOW_SIZE 4 /**< Maximum window size used */
//#define MBEDTLS_ECP_FIXED_POINT_OPTIM 1 /**< Enable fixed-point speed-up */
/* Entropy options */
@@ -3061,11 +3336,12 @@ extern void vPortFree( void *pv );
//#define MBEDTLS_PLATFORM_STD_MEM_HDR /**< Header to include if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
//#define MBEDTLS_PLATFORM_STD_CALLOC calloc /**< Default allocator to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */
+//#define MBEDTLS_PLATFORM_STD_SETBUF setbuf /**< Default setbuf to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_TIME time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
//#define MBEDTLS_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_PRINTF printf /**< Default printf to use, can be undefined */
-/* Note: your snprintf must correclty zero-terminate the buffer! */
+/* Note: your snprintf must correctly zero-terminate the buffer! */
//#define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf /**< Default snprintf to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 0 /**< Default exit value to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_EXIT_FAILURE 1 /**< Default exit value to use, can be undefined */
@@ -3075,47 +3351,66 @@ extern void vPortFree( void *pv );
/* To Use Function Macros MBEDTLS_PLATFORM_C must be enabled */
/* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
-//#define MBEDTLS_PLATFORM_CALLOC_MACRO calloc /**< Default allocator macro to use, can be undefined */
-//#define MBEDTLS_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined */
+#define MBEDTLS_PLATFORM_CALLOC_MACRO mbedtls_platform_calloc /**< Default allocator macro to use, can be undefined */
+#define MBEDTLS_PLATFORM_FREE_MACRO mbedtls_platform_free /**< Default free macro to use, can be undefined */
//#define MBEDTLS_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */
+//#define MBEDTLS_PLATFORM_SETBUF_MACRO setbuf /**< Default setbuf macro to use, can be undefined */
//#define MBEDTLS_PLATFORM_TIME_MACRO time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
//#define MBEDTLS_PLATFORM_TIME_TYPE_MACRO time_t /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
//#define MBEDTLS_PLATFORM_FPRINTF_MACRO fprintf /**< Default fprintf macro to use, can be undefined */
//#define MBEDTLS_PLATFORM_PRINTF_MACRO printf /**< Default printf macro to use, can be undefined */
-/* Note: your snprintf must correclty zero-terminate the buffer! */
+/* Note: your snprintf must correctly zero-terminate the buffer! */
//#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf /**< Default snprintf macro to use, can be undefined */
+//#define MBEDTLS_PLATFORM_VSNPRINTF_MACRO vsnprintf /**< Default vsnprintf macro to use, can be undefined */
//#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
//#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
-/**
- * \brief This macro is invoked by the library when an invalid parameter
- * is detected that is only checked with MBEDTLS_CHECK_PARAMS
- * (see the documentation of that option for context).
+/** \def MBEDTLS_CHECK_RETURN
*
- * When you leave this undefined here, a default definition is
- * provided that invokes the function mbedtls_param_failed(),
- * which is declared in platform_util.h for the benefit of the
- * library, but that you need to define in your application.
+ * This macro is used at the beginning of the declaration of a function
+ * to indicate that its return value should be checked. It should
+ * instruct the compiler to emit a warning or an error if the function
+ * is called without checking its return value.
*
- * When you define this here, this replaces the default
- * definition in platform_util.h (which no longer declares the
- * function mbedtls_param_failed()) and it is your responsibility
- * to make sure this macro expands to something suitable (in
- * particular, that all the necessary declarations are visible
- * from within the library - you can ensure that by providing
- * them in this file next to the macro definition).
+ * There is a default implementation for popular compilers in platform_util.h.
+ * You can override the default implementation by defining your own here.
*
- * Note that you may define this macro to expand to nothing, in
- * which case you don't have to worry about declarations or
- * definitions. However, you will then be notified about invalid
- * parameters only in non-void functions, and void function will
- * just silently return early on invalid parameters, which
- * partially negates the benefits of enabling
- * #MBEDTLS_CHECK_PARAMS in the first place, so is discouraged.
+ * If the implementation here is empty, this will effectively disable the
+ * checking of functions' return values.
+ */
+//#define MBEDTLS_CHECK_RETURN __attribute__((__warn_unused_result__))
+
+/** \def MBEDTLS_IGNORE_RETURN
*
- * \param cond The expression that should evaluate to true, but doesn't.
+ * This macro requires one argument, which should be a C function call.
+ * If that function call would cause a #MBEDTLS_CHECK_RETURN warning, this
+ * warning is suppressed.
*/
-//#define MBEDTLS_PARAM_FAILED( cond ) assert( cond )
+//#define MBEDTLS_IGNORE_RETURN( result ) ((void) !(result))
+
+/* PSA options */
+/**
+ * Use HMAC_DRBG with the specified hash algorithm for HMAC_DRBG for the
+ * PSA crypto subsystem.
+ *
+ * If this option is unset:
+ * - If CTR_DRBG is available, the PSA subsystem uses it rather than HMAC_DRBG.
+ * - Otherwise, the PSA subsystem uses HMAC_DRBG with either
+ * #MBEDTLS_MD_SHA512 or #MBEDTLS_MD_SHA256 based on availability and
+ * on unspecified heuristics.
+ */
+//#define MBEDTLS_PSA_HMAC_DRBG_MD_TYPE MBEDTLS_MD_SHA256
+
+/** \def MBEDTLS_PSA_KEY_SLOT_COUNT
+ * Restrict the PSA library to supporting a maximum amount of simultaneously
+ * loaded keys. A loaded key is a key stored by the PSA Crypto core as a
+ * volatile key, or a persistent key which is loaded temporarily by the
+ * library as part of a crypto operation in flight.
+ *
+ * If this option is unset, the library will fall back to a default value of
+ * 32 keys.
+ */
+//#define MBEDTLS_PSA_KEY_SLOT_COUNT 32
/* SSL Cache options */
//#define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT 86400 /**< 1 day */
@@ -3123,17 +3418,13 @@ extern void vPortFree( void *pv );
/* SSL options */
-/** \def MBEDTLS_SSL_MAX_CONTENT_LEN
- *
- * Maximum length (in bytes) of incoming and outgoing plaintext fragments.
+/** \def MBEDTLS_SSL_IN_CONTENT_LEN
*
- * This determines the size of both the incoming and outgoing TLS I/O buffers
- * in such a way that both are capable of holding the specified amount of
- * plaintext data, regardless of the protection mechanism used.
+ * Maximum length (in bytes) of incoming plaintext fragments.
*
- * To configure incoming and outgoing I/O buffers separately, use
- * #MBEDTLS_SSL_IN_CONTENT_LEN and #MBEDTLS_SSL_OUT_CONTENT_LEN,
- * which overwrite the value set by this option.
+ * This determines the size of the incoming TLS I/O buffer in such a way
+ * that it is capable of holding the specified amount of plaintext data,
+ * regardless of the protection mechanism used.
*
* \note When using a value less than the default of 16KB on the client, it is
* recommended to use the Maximum Fragment Length (MFL) extension to
@@ -3144,35 +3435,39 @@ extern void vPortFree( void *pv );
* to only change the outgoing buffer size #MBEDTLS_SSL_OUT_CONTENT_LEN
* while keeping the default value of 16KB for the incoming buffer.
*
- * Uncomment to set the maximum plaintext size of both
- * incoming and outgoing I/O buffers.
+ * Uncomment to set the maximum plaintext size of the incoming I/O buffer.
*/
-#define MBEDTLS_SSL_MAX_CONTENT_LEN 8192
+//#define MBEDTLS_SSL_IN_CONTENT_LEN 16384
-/** \def MBEDTLS_SSL_IN_CONTENT_LEN
+/** \def MBEDTLS_SSL_CID_IN_LEN_MAX
*
- * Maximum length (in bytes) of incoming plaintext fragments.
+ * The maximum length of CIDs used for incoming DTLS messages.
*
- * This determines the size of the incoming TLS I/O buffer in such a way
- * that it is capable of holding the specified amount of plaintext data,
- * regardless of the protection mechanism used.
+ */
+//#define MBEDTLS_SSL_CID_IN_LEN_MAX 32
+
+/** \def MBEDTLS_SSL_CID_OUT_LEN_MAX
*
- * If this option is undefined, it inherits its value from
- * #MBEDTLS_SSL_MAX_CONTENT_LEN.
+ * The maximum length of CIDs used for outgoing DTLS messages.
*
- * \note When using a value less than the default of 16KB on the client, it is
- * recommended to use the Maximum Fragment Length (MFL) extension to
- * inform the server about this limitation. On the server, there
- * is no supported, standardized way of informing the client about
- * restriction on the maximum size of incoming messages, and unless
- * the limitation has been communicated by other means, it is recommended
- * to only change the outgoing buffer size #MBEDTLS_SSL_OUT_CONTENT_LEN
- * while keeping the default value of 16KB for the incoming buffer.
+ */
+//#define MBEDTLS_SSL_CID_OUT_LEN_MAX 32
+
+/** \def MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY
+ *
+ * This option controls the use of record plaintext padding
+ * in TLS 1.3 and when using the Connection ID extension in DTLS 1.2.
+ *
+ * The padding will always be chosen so that the length of the
+ * padded plaintext is a multiple of the value of this option.
*
- * Uncomment to set the maximum plaintext size of the incoming I/O buffer
- * independently of the outgoing I/O buffer.
+ * Note: A value of \c 1 means that no padding will be used
+ * for outgoing records.
+ *
+ * Note: On systems lacking division instructions,
+ * a power of two should be preferred.
*/
-//#define MBEDTLS_SSL_IN_CONTENT_LEN 16384
+//#define MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 16
/** \def MBEDTLS_SSL_OUT_CONTENT_LEN
*
@@ -3182,9 +3477,6 @@ extern void vPortFree( void *pv );
* that it is capable of holding the specified amount of plaintext data,
* regardless of the protection mechanism used.
*
- * If this option undefined, it inherits its value from
- * #MBEDTLS_SSL_MAX_CONTENT_LEN.
- *
* It is possible to save RAM by setting a smaller outward buffer, while keeping
* the default inward 16384 byte buffer to conform to the TLS specification.
*
@@ -3193,8 +3485,7 @@ extern void vPortFree( void *pv );
* The specific size requirement depends on the configured ciphers and any
* certificate data which is sent during the handshake.
*
- * Uncomment to set the maximum plaintext size of the outgoing I/O buffer
- * independently of the incoming I/O buffer.
+ * Uncomment to set the maximum plaintext size of the outgoing I/O buffer.
*/
//#define MBEDTLS_SSL_OUT_CONTENT_LEN 16384
@@ -3203,7 +3494,7 @@ extern void vPortFree( void *pv );
* Maximum number of heap-allocated bytes for the purpose of
* DTLS handshake message reassembly and future message buffering.
*
- * This should be at least 9/8 * MBEDTLSSL_IN_CONTENT_LEN
+ * This should be at least 9/8 * MBEDTLS_SSL_IN_CONTENT_LEN
* to account for a reassembled handshake message of maximum size,
* together with its reassembly bitmap.
*
@@ -3215,10 +3506,20 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_SSL_DTLS_MAX_BUFFERING 32768
-//#define MBEDTLS_SSL_DEFAULT_TICKET_LIFETIME 86400 /**< Lifetime of session tickets (if enabled) */
//#define MBEDTLS_PSK_MAX_LEN 32 /**< Max size of TLS pre-shared keys, in bytes (default 256 bits) */
//#define MBEDTLS_SSL_COOKIE_TIMEOUT 60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */
+/** \def MBEDTLS_TLS_EXT_CID
+ *
+ * At the time of writing, the CID extension has not been assigned its
+ * final value. Set this configuration option to make Mbed TLS use a
+ * different value.
+ *
+ * A future minor revision of Mbed TLS may change the default value of
+ * this option to match evolving standards and usage.
+ */
+//#define MBEDTLS_TLS_EXT_CID 254
+
/**
* Complete list of ciphersuites to use, in order of preference.
*
@@ -3237,37 +3538,6 @@ extern void vPortFree( void *pv );
//#define MBEDTLS_X509_MAX_INTERMEDIATE_CA 8 /**< Maximum number of intermediate CAs in a verification chain. */
//#define MBEDTLS_X509_MAX_FILE_PATH_LEN 512 /**< Maximum length of a path/filename string in bytes including the null terminator character ('\0'). */
-/**
- * Allow SHA-1 in the default TLS configuration for certificate signing.
- * Without this build-time option, SHA-1 support must be activated explicitly
- * through mbedtls_ssl_conf_cert_profile. Turning on this option is not
- * recommended because of it is possible to generate SHA-1 collisions, however
- * this may be safe for legacy infrastructure where additional controls apply.
- *
- * \warning SHA-1 is considered a weak message digest and its use constitutes
- * a security risk. If possible, we recommend avoiding dependencies
- * on it, and considering stronger message digests instead.
- *
- */
-//#define MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATES
-
-/**
- * Allow SHA-1 in the default TLS configuration for TLS 1.2 handshake
- * signature and ciphersuite selection. Without this build-time option, SHA-1
- * support must be activated explicitly through mbedtls_ssl_conf_sig_hashes.
- * The use of SHA-1 in TLS <= 1.1 and in HMAC-SHA-1 is always allowed by
- * default. At the time of writing, there is no practical attack on the use
- * of SHA-1 in handshake signatures, hence this option is turned on by default
- * to preserve compatibility with existing peers, but the general
- * warning applies nonetheless:
- *
- * \warning SHA-1 is considered a weak message digest and its use constitutes
- * a security risk. If possible, we recommend avoiding dependencies
- * on it, and considering stronger message digests instead.
- *
- */
-//#define MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE
-
/**
* Uncomment the macro to let mbed TLS use your alternate implementation of
* mbedtls_platform_zeroize(). This replaces the default implementation in
@@ -3307,17 +3577,13 @@ extern void vPortFree( void *pv );
*/
//#define MBEDTLS_PLATFORM_GMTIME_R_ALT
-/* \} name SECTION: Customisation configuration options */
-
-/* Target and application specific configurations
- *
- * Allow user to override any previous default.
+/**
+ * Enable the verified implementations of ECDH primitives from Project Everest
+ * (currently only Curve25519). This feature changes the layout of ECDH
+ * contexts and therefore is a compatibility break for applications that access
+ * fields of a mbedtls_ecdh_context structure directly. See also
+ * MBEDTLS_ECDH_LEGACY_CONTEXT in include/mbedtls/ecdh.h.
*/
-#if defined(MBEDTLS_USER_CONFIG_FILE)
-#include MBEDTLS_USER_CONFIG_FILE
-#endif
-
-#include "mbedtls/check_config.h"
+//#define MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
-#endif /* MBEDTLS_CONFIG_H */
-
+/** \} name SECTION: Module configuration options */
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_freertos_port.c b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_freertos_port.c
new file mode 100644
index 00000000000..583fd76ba5c
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_freertos_port.c
@@ -0,0 +1,359 @@
+/*
+ * FreeRTOS V202112.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+#include
+#include
+
+#include "FreeRTOSConfig.h"
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "semphr.h"
+
+/* mbed TLS includes. */
+#if defined( MBEDTLS_CONFIG_FILE )
+#include MBEDTLS_CONFIG_FILE
+#else
+#include "mbedtls/mbedtls_config.h"
+#endif
+#include "mbedtls/entropy.h"
+
+#include "entropy_poll.h"
+
+#include "mbedtls_freertos_port.h"
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Allocates memory for an array of members.
+ *
+ * @param[in] nmemb Number of members that need to be allocated.
+ * @param[in] size Size of each member.
+ *
+ * @return Pointer to the beginning of newly allocated memory.
+ */
+void * mbedtls_platform_calloc( size_t nmemb,
+ size_t size )
+{
+ size_t totalSize = nmemb * size;
+ void * pBuffer = NULL;
+
+ /* Check that neither nmemb nor size were 0. */
+ if( totalSize > 0 )
+ {
+ /* Overflow check. */
+ if( ( totalSize / size ) == nmemb )
+ {
+ pBuffer = pvPortMalloc( totalSize );
+
+ if( pBuffer != NULL )
+ {
+ ( void ) memset( pBuffer, 0U, totalSize );
+ }
+ }
+ }
+
+ return pBuffer;
+}
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Frees the space previously allocated by calloc.
+ *
+ * @param[in] ptr Pointer to the memory to be freed.
+ */
+void mbedtls_platform_free( void * ptr )
+{
+ if( ptr != NULL )
+ {
+ vPortFree( ptr );
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+#if defined( MBEDTLS_THREADING_C )
+
+/**
+ * @brief Creates a mutex.
+ *
+ * @param[in, out] pMutex mbedtls mutex handle.
+ */
+static void mbedtls_platform_mutex_init( mbedtls_threading_mutex_t * pMutex )
+{
+ configASSERT( pMutex != NULL );
+
+ #if( configSUPPORT_STATIC_ALLOCATION == 1 )
+ /* Create a statically-allocated FreeRTOS mutex. This should never fail as
+ * storage is provided. */
+
+ pMutex->mutexHandle = xSemaphoreCreateMutexStatic( &( pMutex->mutexStorage ) );
+ #elif( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
+ pMutex->mutexHandle = xSemaphoreCreateMutex();
+ #endif
+
+ configASSERT( pMutex->mutexHandle != NULL );
+}
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Frees a mutex.
+ *
+ * @param[in] pMutex mbedtls mutex handle.
+ *
+ * @note This function is an empty stub as nothing needs to be done to free
+ * a statically allocated FreeRTOS mutex.
+ */
+static void mbedtls_platform_mutex_free( mbedtls_threading_mutex_t * pMutex )
+{
+ vSemaphoreDelete( pMutex->mutexHandle );
+ pMutex->mutexHandle = NULL;
+}
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Function to lock a mutex.
+ *
+ * @param[in] pMutex mbedtls mutex handle.
+ *
+ * @return 0 (success) is always returned as any other failure is asserted.
+ */
+static int mbedtls_platform_mutex_lock( mbedtls_threading_mutex_t * pMutex )
+{
+ BaseType_t mutexStatus = 0;
+
+ configASSERT( pMutex != NULL );
+ configASSERT( pMutex->mutexHandle != NULL );
+
+ /* mutexStatus is not used if asserts are disabled. */
+ ( void ) mutexStatus;
+
+ /* This function should never fail if the mutex is initialized. */
+ mutexStatus = xSemaphoreTake( pMutex->mutexHandle, portMAX_DELAY );
+
+ configASSERT( mutexStatus == pdTRUE );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Function to unlock a mutex.
+ *
+ * @param[in] pMutex mbedtls mutex handle.
+ *
+ * @return 0 is always returned as any other failure is asserted.
+ */
+static int mbedtls_platform_mutex_unlock( mbedtls_threading_mutex_t * pMutex )
+{
+ BaseType_t mutexStatus = 0;
+
+ configASSERT( pMutex != NULL );
+ configASSERT( pMutex->mutexHandle != NULL );
+ /* mutexStatus is not used if asserts are disabled. */
+ ( void ) mutexStatus;
+
+ /* This function should never fail if the mutex is initialized. */
+ mutexStatus = xSemaphoreGive( pMutex->mutexHandle );
+ configASSERT( mutexStatus == pdTRUE );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+#if defined( MBEDTLS_THREADING_ALT )
+int mbedtls_platform_threading_init( void )
+{
+ mbedtls_threading_set_alt( mbedtls_platform_mutex_init,
+ mbedtls_platform_mutex_free,
+ mbedtls_platform_mutex_lock,
+ mbedtls_platform_mutex_unlock );
+ return 0;
+}
+
+#else /* !MBEDTLS_THREADING_ALT */
+
+void (* mbedtls_mutex_init)( mbedtls_threading_mutex_t * mutex ) = mbedtls_platform_mutex_init;
+void (* mbedtls_mutex_free)( mbedtls_threading_mutex_t * mutex ) = mbedtls_platform_mutex_free;
+int (* mbedtls_mutex_lock)( mbedtls_threading_mutex_t * mutex ) = mbedtls_platform_mutex_lock;
+int (* mbedtls_mutex_unlock)( mbedtls_threading_mutex_t * mutex ) = mbedtls_platform_mutex_unlock;
+
+#endif /* !MBEDTLS_THREADING_ALT */
+
+#endif /* MBEDTLS_THREADING_C */
+/*-----------------------------------------------------------*/
+
+#if defined( MBEDTLS_ENTROPY_HARDWARE_ALT )
+ /* Determine which API is available */
+ #if defined(_WIN32)
+ #define RNG_SOURCE_WINDOWS_CRYPT
+ #elif defined(__linux__)
+ #include
+ #include
+ #if defined(SYS_getrandom)
+ #define RNG_SOURCE_GETRANDOM
+ #endif /* SYS_getrandom */
+ #elif defined( ARM_RDI_MONITOR ) || defined( SEMIHOSTING )
+ #define RNG_SOURCE_SEMIHOST
+ #else
+ #define RNG_SOURCE_DEV_RANDOM
+ #endif
+
+ #if defined(RNG_SOURCE_WINDOWS_CRYPT)
+ #include
+ #include
+ int mbedtls_hardware_poll( void * data,
+ unsigned char * output,
+ size_t len,
+ size_t * olen )
+ {
+ int lStatus = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ HCRYPTPROV hProv = 0;
+
+ /* Unferenced parameter. */
+ ( void ) data;
+
+ /*
+ * This is port-specific for the Windows simulator, so just use Crypto API.
+ */
+
+ if( TRUE == CryptAcquireContextA(
+ &hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT ) )
+ {
+ if( TRUE == CryptGenRandom( hProv, len, output ) )
+ {
+ lStatus = 0;
+ *olen = len;
+ }
+
+ CryptReleaseContext( hProv, 0 );
+ }
+
+ return lStatus;
+ }
+ #elif defined( RNG_SOURCE_GETRANDOM )
+ int mbedtls_hardware_poll( void * data,
+ unsigned char * output,
+ size_t len,
+ size_t * olen )
+ {
+ ( void ) data;
+ int rslt = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+
+ configASSERT( olen != NULL );
+
+ rslt = getrandom( output, len, 0 );
+
+ if( rslt >= 0 )
+ {
+ *olen = (size_t) rslt;
+ rslt = 0;
+ }
+ else
+ {
+ rslt = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ }
+ return rslt;
+ }
+ #elif defined( RNG_SOURCE_SEMIHOST )
+ int mbedtls_hardware_poll( void * data,
+ unsigned char * output,
+ size_t len,
+ size_t * olen )
+ {
+ int rslt = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ int file;
+
+ (void) data;
+
+ configASSERT( olen != NULL );
+ configASSERT( output != NULL );
+
+ file = _open( "/dev/urandom", O_RDONLY );
+
+ if( file >= 0 )
+ {
+ rslt = _read( file, ( char * ) output, len );
+ }
+
+ if( rslt >= 0 )
+ {
+ *olen = len;
+ }
+
+ if( rslt >= 0 )
+ {
+ *olen = len;
+ rslt = 0;
+ }
+ else
+ {
+ rslt = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ }
+
+ ( void ) _close( file );
+ return rslt;
+ }
+ #else
+ #include
+ int mbedtls_hardware_poll( void * data,
+ unsigned char * output,
+ size_t len,
+ size_t * olen )
+ {
+ int rslt = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ FILE * file;
+ size_t read_length = 0U;
+
+ configASSERT( olen != NULL );
+ configASSERT( output != NULL );
+
+ file = fopen("/dev/urandom", "rb");
+ if( file != NULL )
+ {
+ rslt = fread( output, 1, len, file );
+ fclose( file );
+ }
+
+ if( rslt >= 0 )
+ {
+ *olen = len;
+ rslt = 0;
+ }
+ else
+ {
+ rslt = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ }
+ return rslt;
+ }
+ #endif
+#endif
+/*-----------------------------------------------------------*/
diff --git a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/threading_alt.h b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_freertos_port.h
similarity index 63%
rename from FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/threading_alt.h
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_freertos_port.h
index 6ac85f3c830..25e1c802e06 100644
--- a/FreeRTOS-Plus/Source/Utilities/mbedtls_freertos/threading_alt.h
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/mbedtls_freertos_port.h
@@ -25,35 +25,42 @@
*/
/**
- * @file threading_alt.h
+ * @file mbedtls_freertos_port.h
* @brief mbed TLS threading functions implemented for FreeRTOS.
*/
-
-#ifndef MBEDTLS_THREADING_ALT_H_
-#define MBEDTLS_THREADING_ALT_H_
+#ifndef MBEDTLS_FREERTOS_PORT_H_
+#define MBEDTLS_FREERTOS_PORT_H_
/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "semphr.h"
/**
- * @brief mbed TLS mutex type.
- *
- * mbed TLS requires platform specific definition for the mutext type. Defining the type for
- * FreeRTOS with FreeRTOS semaphore
- * handle and semaphore storage as members.
+ * @brief mbed TLS mutex type definition for MBEDTLS_THREADING_C implementation.
*/
typedef struct mbedtls_threading_mutex
{
SemaphoreHandle_t mutexHandle;
- StaticSemaphore_t mutexStorage;
+
+ #if( configSUPPORT_STATIC_ALLOCATION == 1 )
+ StaticSemaphore_t mutexStorage;
+ #endif /* configSUPPORT_STATIC_ALLOCATION == 1 */
} mbedtls_threading_mutex_t;
-/* mbed TLS mutex functions. */
-void mbedtls_platform_mutex_init( mbedtls_threading_mutex_t * pMutex );
-void mbedtls_platform_mutex_free( mbedtls_threading_mutex_t * pMutex );
-int mbedtls_platform_mutex_lock( mbedtls_threading_mutex_t * pMutex );
-int mbedtls_platform_mutex_unlock( mbedtls_threading_mutex_t * pMutex );
+#if defined( MBEDTLS_THREADING_ALT )
+int mbedtls_platform_threading_init( void );
+#endif
+
+int mbedtls_platform_send( void * ctx,
+ const unsigned char * buf,
+ size_t len );
+int mbedtls_platform_recv( void * ctx,
+ unsigned char * buf,
+ size_t len );
+
+void * mbedtls_platform_calloc( size_t nmemb,
+ size_t size );
+void mbedtls_platform_free( void * ptr );
-#endif /* ifndef MBEDTLS_THREADING_ALT_H_ */
+#endif /* ifndef MBEDTLS_FREERTOS_PORT_H_ */
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/threading_alt.h b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/threading_alt.h
similarity index 65%
rename from FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/threading_alt.h
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/threading_alt.h
index d83db13a8d5..25ac1d2b5fc 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/threading_alt.h
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/MbedTLS/threading_alt.h
@@ -27,24 +27,6 @@
#ifndef __THREADING_ALT_H__
#define __THREADING_ALT_H__
-
-#include "FreeRTOS.h"
-#include "semphr.h"
-
-/**
- * @brief Mutex struct used to synchronize mbed TLS operations.
- *
- */
-typedef struct
-{
- SemaphoreHandle_t mutex; /**< @brief FreeRTOS semaphore. */
- char is_valid; /**< @brief Flag used by mbedTLS to track wether a mutex is valid. */
-} mbedtls_threading_mutex_t;
-
-extern void mbedtls_threading_set_alt( void ( * mutex_init )( mbedtls_threading_mutex_t * ),
- void ( * mutex_free )( mbedtls_threading_mutex_t * ),
- int ( * mutex_lock )( mbedtls_threading_mutex_t * ),
- int ( * mutex_unlock )( mbedtls_threading_mutex_t * ) );
-
+#include "mbedtls_freertos_port.h"
#endif /* ifndef __THREADING_ALT_H__ */
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/coreHTTP.vcxproj b/FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/coreHTTP.vcxproj
new file mode 100644
index 00000000000..69d92c481fd
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/coreHTTP.vcxproj
@@ -0,0 +1,184 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {ee39fa0f-cefb-4c29-a571-05a28fdd47fd}
+ coreHTTP
+ 10.0
+
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories);$(PublicIncludeDirectories)
+ true
+
+
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories);$(PublicIncludeDirectories)
+ true
+
+
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories);$(PublicIncludeDirectories)
+ true
+
+
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories);$(PublicIncludeDirectories)
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\llhttp\include;..\..\Source\Application-Protocols\coreHTTP\source\interface;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+ false
+ true
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/coreHTTP.vcxproj.filters b/FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/coreHTTP.vcxproj.filters
new file mode 100644
index 00000000000..e7ad04eba1c
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/coreHTTP.vcxproj.filters
@@ -0,0 +1,51 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {25550967-a280-49b0-a199-9d2d754afb4b}
+
+
+ {be7b37ec-e95c-4fe8-8bab-707d7b545230}
+
+
+
+
+ llhttp
+
+
+ llhttp
+
+
+ llhttp
+
+
+ coreHTTP
+
+
+
+
+ llhttp
+
+
+ coreHTTP
+
+
+ coreHTTP
+
+
+ coreHTTP
+
+
+ coreHTTP
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/core_http_config.h b/FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/core_http_config.h
similarity index 100%
rename from FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth/core_http_config.h
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/coreHTTP/core_http_config.h
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/corePKCS11.vcxproj b/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/corePKCS11.vcxproj
new file mode 100644
index 00000000000..f97344c01a2
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/corePKCS11.vcxproj
@@ -0,0 +1,187 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {19f0ff1a-3368-491a-9932-a2f089508f51}
+ corePKCS11
+ 10.0
+
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+ StaticLibrary
+ true
+ v142
+ Unicode
+
+
+ StaticLibrary
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\
+ true
+
+
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\
+ true
+
+
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\
+ true
+
+
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\
+ true
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\portable\os;..\..\Source\corePKCS11\source\portable\os\freertos_winsim;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\portable\os;..\..\Source\corePKCS11\source\portable\os\freertos_winsim;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\portable\os;..\..\Source\corePKCS11\source\portable\os\freertos_winsim;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ MBEDTLS_CONFIG_FILE="mbedtls_config_v3.2.1.h";NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\Source\corePKCS11\source\include;..\..\Source\corePKCS11\source\portable\os;..\..\Source\corePKCS11\source\portable\os\freertos_winsim;..\..\Source\corePKCS11\source\dependency\3rdparty\mbedtls_utils;..\..\Source\corePKCS11\source\dependency\3rdparty\pkcs11;.\;%(AdditionalIncludeDirectories)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ {72c209c4-49a4-4942-a201-44706c9d77ec}
+
+
+ {be362ac0-b10b-4276-b84e-6304652ba228}
+
+
+ {e1016f3e-94e9-4864-9fd8-1d7c1fefbfd7}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/corePKCS11.vcxproj.filters b/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/corePKCS11.vcxproj.filters
new file mode 100644
index 00000000000..c731ecd4d69
--- /dev/null
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/corePKCS11.vcxproj.filters
@@ -0,0 +1,78 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {87f448f0-826d-4964-8c17-2dafde7cdc17}
+
+
+ {f837be63-52d6-4f7a-b057-323ad9c20295}
+
+
+ {a67eb7ab-543a-475e-88ea-d2543002780c}
+
+
+
+
+ corePKCS11
+
+
+ corePKCS11
+
+
+ corePKCS11
+
+
+ corePKCS11
+
+
+ corePKCS11
+
+
+ corePKCS11
+
+
+
+
+ pkcs11_api
+
+
+ pkcs11_api
+
+
+ pkcs11_api
+
+
+ corePKCS11\include
+
+
+ corePKCS11\include
+
+
+ corePKCS11\include
+
+
+ corePKCS11\include
+
+
+ corePKCS11\include
+
+
+ corePKCS11\include
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/core_pkcs11_config.h b/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/core_pkcs11_config.h
similarity index 88%
rename from FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/core_pkcs11_config.h
rename to FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/core_pkcs11_config.h
index fa10304f7db..5a4c0372e5e 100644
--- a/FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/core_pkcs11_config.h
+++ b/FreeRTOS-Plus/VisualStudio_StaticProjects/corePKCS11/core_pkcs11_config.h
@@ -64,6 +64,7 @@
extern void vLoggingPrintf( const char * pcFormatString,
... );
+
/* Map the SdkLog macro to the logging function to enable logging
* on Windows simulator. */
#ifndef SdkLog
@@ -72,6 +73,10 @@ extern void vLoggingPrintf( const char * pcFormatString,
#include "logging_stack.h"
+/************ End of logging configuration ****************/
+
+#include
+
/**
* @brief Malloc API used by core_pkcs11.h
*/
@@ -100,19 +105,19 @@ extern void vLoggingPrintf( const char * pcFormatString,
* @brief Maximum length (in characters) for a PKCS #11 CKA_LABEL
* attribute.
*/
-#define pkcs11configMAX_LABEL_LENGTH 32
+#define pkcs11configMAX_LABEL_LENGTH 32UL
/**
* @brief Maximum number of token objects that can be stored
* by the PKCS #11 module.
*/
-#define pkcs11configMAX_NUM_OBJECTS 6
+#define pkcs11configMAX_NUM_OBJECTS 6UL
/**
* @brief Maximum number of sessions that can be stored
* by the PKCS #11 module.
*/
-#define pkcs11configMAX_SESSIONS 10
+#define pkcs11configMAX_SESSIONS 10UL
/**
* @brief Set to 1 if a PAL destroy object is implemented.
@@ -120,7 +125,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
* If set to 0, no PAL destroy object is implemented, and this functionality
* is implemented in the common PKCS #11 layer.
*/
-#define pkcs11configPAL_DESTROY_SUPPORTED 0
+#define pkcs11configPAL_DESTROY_SUPPORTED 1
/**
* @brief Set to 1 if OTA image verification via PKCS #11 module is supported.
@@ -128,7 +133,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
* If set to 0, OTA code signing certificate is built in via
* aws_ota_codesigner_certificate.h.
*/
-#define pkcs11configOTA_SUPPORTED 0
+#define pkcs11configOTA_SUPPORTED 1
/**
* @brief Set to 1 if PAL supports storage for JITP certificate,
@@ -137,7 +142,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
* If set to 0, PAL does not support storage mechanism for these, and
* they are accessed via headers compiled into the code.
*/
-#define pkcs11configJITP_CODEVERIFY_ROOT_CERT_SUPPORTED 0
+#define pkcs11configJITP_CODEVERIFY_ROOT_CERT_SUPPORTED 1
/**
* @brief The PKCS #11 label for the object to be used for HMAC operations.
@@ -178,6 +183,16 @@ extern void vLoggingPrintf( const char * pcFormatString,
*/
#define pkcs11configLABEL_CODE_VERIFICATION_KEY "Code Verify Key"
+/**
+ * @brief The PKCS #11 label for the claim certificate for Fleet Provisioning.
+ */
+#define pkcs11configLABEL_CLAIM_CERTIFICATE "Claim Cert"
+
+/**
+ * @brief The PKCS #11 label for the claim private key for Fleet Provisioning.
+ */
+#define pkcs11configLABEL_CLAIM_PRIVATE_KEY "Claim Key"
+
/**
* @brief The PKCS #11 label for Just-In-Time-Provisioning.
*
diff --git a/FreeRTOS/Source b/FreeRTOS/Source
index f789a0e7907..def7d2df2b0 160000
--- a/FreeRTOS/Source
+++ b/FreeRTOS/Source
@@ -1 +1 @@
-Subproject commit f789a0e7907feca1a9019637219f0fd113a6c380
+Subproject commit def7d2df2b0506d3d249334974f51e427c17a41c
diff --git a/FreeRTOS/Test/CBMC/proofs/CMakeLists.txt b/FreeRTOS/Test/CBMC/proofs/CMakeLists.txt
index e493850e1c8..cd5fbc64ad2 100644
--- a/FreeRTOS/Test/CBMC/proofs/CMakeLists.txt
+++ b/FreeRTOS/Test/CBMC/proofs/CMakeLists.txt
@@ -16,9 +16,9 @@ list(APPEND cbmc_compile_definitions
list(APPEND cbmc_compile_includes
${CMAKE_SOURCE_DIR}/Source/include
${CMAKE_SOURCE_DIR}/Source/portable/MSVC-MingW
- ${CMAKE_SOURCE_DIR}/Source/../../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/portable/BufferManagement
- ${CMAKE_SOURCE_DIR}/Source/../../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include
- ${CMAKE_SOURCE_DIR}/Source/../../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/portable/Compiler/MSVC
+ ${CMAKE_SOURCE_DIR}/Source/../../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/portable/BufferManagement
+ ${CMAKE_SOURCE_DIR}/Source/../../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include
+ ${CMAKE_SOURCE_DIR}/Source/../../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/portable/Compiler/MSVC
${cbmc_dir}/include
${cbmc_dir}/windows
)
diff --git a/FreeRTOS/Test/CBMC/proofs/MakefileCommon.json b/FreeRTOS/Test/CBMC/proofs/MakefileCommon.json
index d938edceb35..d0250d9661c 100644
--- a/FreeRTOS/Test/CBMC/proofs/MakefileCommon.json
+++ b/FreeRTOS/Test/CBMC/proofs/MakefileCommon.json
@@ -21,8 +21,8 @@
"INC ": [
"$(FREERTOS)/Source/include",
- "$(FREERTOS)/../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include",
- "$(FREERTOS)/../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/portable/Compiler/MSVC",
+ "$(FREERTOS)/../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include",
+ "$(FREERTOS)/../FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/portable/Compiler/MSVC",
"$(FREERTOS)/../FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/WinPCap",
"$(FREERTOS)/Demo/Common/include",
"$(FREERTOS)/Test/CBMC/include",
diff --git a/lexicon.txt b/lexicon.txt
index 80d382cb338..5a30f535dec 100644
--- a/lexicon.txt
+++ b/lexicon.txt
@@ -18,13 +18,16 @@ addvectoredexceptionhandler
adel
ades
adp
+aead
aes
+aesni
afer
afio
ahb
aic
aiec
ajax
+aka
alpn
alt
altera
@@ -75,6 +78,7 @@ aws
backlight
backoff
backoffalgorithm
+backtrace
balternatesetting
baltimore
barry
@@ -157,6 +161,7 @@ brdiv
brdl
brgh
brs
+bsd
bsl
bslaveinterface
bsp
@@ -183,7 +188,9 @@ cac
cachable
calender
calloc
+cas
cb
+cbc
cbconfigurationvalue
cbdescriptortype
cbio
@@ -204,6 +211,7 @@ cd
cdatastring
cdc
cec
+cellularconnect
cellularconnectionloop
cellulardemo
cellulardemotask
@@ -225,7 +233,9 @@ ceu
cexception
cexpectednumberofparameters
cexpectedstring
+cfb
cfginitialize
+cflags
cg
cgreg
ch
@@ -238,9 +248,13 @@ checktimer
checkval
checkvalue
checon
+chinese
chunked
ci
ciconfiguration
+cid
+ciphersuite
+ciphertext
circleos
ck
cka
@@ -271,6 +285,7 @@ clocksource
closesession
cloudformation
cmac
+cmake
cmaxpower
cmcnt
cmd
@@ -437,6 +452,8 @@ crend
crflash
crfmax
crgflg
+crl
+crls
crossstudio
crredentials
crstart
@@ -445,6 +462,7 @@ crxlock
crxstring
crypotki
crypto
+cryptoapi
cryptointerface
cryptoki
csamplepagefirstpart
@@ -453,6 +471,7 @@ cserialputchar
cserverhost
csr
csrc
+csrs
css
cstring
ctaskwokenbypost
@@ -526,6 +545,7 @@ demoiptrace
demosetup
demotask
demotimer
+demultiplexing
der
des
desc
@@ -544,9 +564,11 @@ dfreertos
dgram
dgst
dhcp
+dhe
dhm
didn
diff
+diffie
digicert
digitcounter
dimentions
@@ -603,13 +625,19 @@ eblocked
ebset
ebwait
ec
+ecc
+ecdh
+ecdhe
ecdsa
echobuffer
echomultitx
+ecjpake
ecmd
ecp
+ecparameters
ecparams
ecparamsptr
+ecpoint
edbg
edk
edrx
@@ -786,6 +814,7 @@ fp
fpe
fpga
fpidiv
+fprintf
fpu
fr
framming
@@ -804,6 +833,7 @@ freq
freqency
fromisr
fs
+fsanitize
fseek
fsl
fsram
@@ -823,6 +853,7 @@ fx
fxp
fxx
galileo
+galois
gc
gcc
gcm
@@ -846,6 +877,7 @@ getstate
getsubackstatuscodes
gettopic
gettopicstring
+gf
gic
gio
giosetbit
@@ -853,7 +885,9 @@ gir
girq
girqm
github
+glibc
gmon
+gmtime
gnd
gnuc
googleapis
@@ -868,6 +902,7 @@ gpios
greacefully
grec
gree
+grp
gsm
hal
halboardinit
@@ -878,6 +913,8 @@ hcomm
hcs
hed
hein
+hellman
+helloverifyrequest
het
hetbase
hetport
@@ -925,6 +962,7 @@ hw
hwmax
hyperterminal
hz
+ia
iar
iasmarm
ibe
@@ -1100,6 +1138,7 @@ khz
kib
kickstart
knowns
+kw
kx
lapic
lastsynctickcount
@@ -1283,13 +1322,16 @@ mec
mechanims
mechansim
mem
+memcheck
memcmp
memcpy
memfault
memmanage
memoryleak
+memorysanitizer
mems
memset
+merkle
messagebufferlocations
messagetype
metadata
@@ -1302,6 +1344,7 @@ microcontrollers
microsemi
microsoft
microzed
+middlebox
mii
mikroc
miliseconds
@@ -1319,12 +1362,14 @@ mkdir
mmcr
mno
mnos
+montgomery
mosquitto
mov
movs
mp
mpc
mpi
+mpis
mps
mpsoc
mpu
@@ -1389,6 +1434,7 @@ netstat
networkcontext
networkcredentials
nextjobexecutionchanged
+ni
nic
nirq
nist
@@ -1412,6 +1458,7 @@ ns
nsc
nscfunction
nsec
+nspe
nt
ntp
ntpdemo
@@ -1422,14 +1469,18 @@ num
numaker
numberofitems
numofservers
+nv
nvic
nvs
nxp
+oaep
ocd
oe
oer
oerr
+ofb
oid
+oids
ok
oled
olen
@@ -1488,6 +1539,7 @@ ovfl
pacdata
packetid
pactopic
+pake
palpnprotos
param
paramater
@@ -1506,7 +1558,9 @@ payloadlength
pb
pbasetime
pbclk
+pbe
pbuf
+pbuff
pbuffer
pbufs
pc
@@ -1669,6 +1723,8 @@ pj
pk
pkcs
pki
+pkparse
+pkwrite
plaformimagestate
plaintext
plaintexthttpexample
@@ -1681,11 +1737,13 @@ pllclk
pllclock
pllon
plls
+plrng
pm
pmc
pml
pmp
pmqttagentcontext
+pmqttcontext
pmsg
pmsgctx
pmu
@@ -1944,6 +2002,7 @@ prvstatcommand
prvstatfscommand
prvstaticallyallocatedcreator
prvstaticallyallocatedtask
+prvstreambufferadd
prvsubscribetodefendertopics
prvsynctask
prvtaskstatscommand
@@ -1970,8 +2029,11 @@ prvunlockqueue
prvupdateacceptedhandler
prvupdatedeltahandler
prvwin
+prvwinpcaprecvthread
+prvwinpcapsendthread
prvzerocopyechoclienttask
ps
+psa
psc
pscheckvariable
psel
@@ -1979,6 +2041,7 @@ pserver
pserverinfo
pservertime
psignature
+psk
psl
pslotlist
psm
@@ -1989,6 +2052,7 @@ psoc
psocket
psr
psregistrationstatus
+pss
psslcontext
pstartheaderloc
pstplatformimagestate
@@ -1999,6 +2063,7 @@ ptal
ptcpsocket
pth
pthingname
+pthread
ptime
ptimeserver
ptimeservers
@@ -2025,6 +2090,7 @@ pucethernetbufferpointeres
pucethernetbufferpointers
puchash
pucindex
+pucinterfacename
pucmessage
pucpayloadbuffer
pucqueuestorage
@@ -2066,6 +2132,7 @@ putc
putchar
puxstackbuffer
pv
+pvalue
pvargs
pvbuffer
pvcontext
@@ -2086,6 +2153,7 @@ pwm
pwpr
pwr
pxaddresslen
+pxattrs
pxbuffer
pxcallback
pxcertificatebufferlength
@@ -2109,6 +2177,7 @@ pxecparamsptr
pxexpiredtimer
pxfilesize
pxftpclient
+pxfunctionlist
pxheadersdatalen
pxhigherprioritytaskwoken
pxincomingpacket
@@ -2118,6 +2187,7 @@ pxisrfunction
pxknownmessage
pxlist
pxmbedpkcontext
+pxmbedtlspkctx
pxmetrics
pxmqttcontext
pxnetif
@@ -2200,6 +2270,7 @@ queuesuspend
ra
rampz
rand
+random
randomisation
randomise
randomised
@@ -2258,6 +2329,7 @@ reportid
reqds
reqenc
reqens
+reseed
resending
resetart
resetprg
@@ -2265,6 +2337,7 @@ resoltion
resp
responsebuffer
responsesize
+restartable
resubscribe
resubscribes
resync
@@ -2299,6 +2372,8 @@ rootdelay
rootdispersion
rowley
rsa
+rsaes
+rsassa
rsk
rskrl
rskrx
@@ -2318,6 +2393,7 @@ rtccprsch
rti
rtos
rtosdemo
+rtp
rts
rv
rw
@@ -2365,6 +2441,7 @@ sdk
sdklog
sec
secretaccesskey
+seedfile
seg
segfault
sel
@@ -2397,6 +2474,7 @@ serverhost
serverport
sessiontoken
setbaudratevalue
+setbuf
setfaketaskpriority
setimagestate
setpollisr
@@ -2465,14 +2543,19 @@ softbaugh
somewebsite
sp
spbrg
+spdx
+spe
+specifiedecdomain
spen
spi
+spm
sprintf
spu
sr
sram
src
sren
+srtp
ss
sscanf
ssi
@@ -2502,6 +2585,7 @@ statictask
statictimer
statusmessage
stdarg
+stderr
stdint
stdlib
stdout
@@ -2648,6 +2732,7 @@ topiclen
topiclength
tp
tracelisttasks
+traceonenter
tracetask
trafic
transmaskget
@@ -2671,6 +2756,7 @@ trustzone
tscr
tskidle
tskyield
+tt
ttc
ttl
twoechoclient
@@ -2860,6 +2946,7 @@ ultimer
ultotalframelength
ultrascale
ultx
+ulvaluelen
ulvaluetosend
ulwantedbaud
umount
@@ -2867,6 +2954,7 @@ un
unblockes
unconfigure
unconfigured
+undefine
unferenced
unicast
uninitialised
@@ -2885,6 +2973,7 @@ unusued
updatejobexecution
uploadhttpexample
upto
+urandom
urc
urcevent
uri
@@ -2947,6 +3036,8 @@ uxbitsgetval
uxbitssetval
uxbufferlength
uxbytesleft
+uxbytesreceived
+uxbytessent
uxcreatortaskstackbuffer
uxerrorhasoccurred
uxeventgroupgetnumber
@@ -2966,6 +3057,8 @@ uxmaxcount
uxmessageswaiting
uxnewpriority
uxnumbertocreate
+uxpacketsreceived
+uxpacketssent
uxparameternumber
uxpriority
uxqueue
@@ -2984,6 +3077,7 @@ uxsecs
uxsemaphoregetcount
uxstackbuffer
uxstate
+uxstreambufferadd
uxstringlength
uxsynchronisationbit
uxtaskgetnumberoftasks
@@ -2997,6 +3091,7 @@ uxtick
uxtxstackbuffer
uxvariabletoincrement
valdiate
+valgrind
vanexampleisr
vapplicationfpusafeirqhandler
vapplicationftpreceivedhook
@@ -3018,6 +3113,8 @@ vblink
vbus
vbuttonhandlertask
vbuttonisrhandler
+vcellularconnecttask
+vcellulardemotask
vclearemactxbuffer
vconfiguretimerforruntimestats
vcore
@@ -3064,6 +3161,8 @@ vlistinsertend
vlistintert
vlistintertend
vlogginginit
+vloggingprintf
+vlt
vlwipappsreleasetxbuffer
vmain
vmaindeleteme
@@ -3107,6 +3206,7 @@ vqueueunregisterqueue
vqueuewaitformessagerestricted
vregistercheck
vregtest
+vrxfaultinjection
vsecondregistertesttask
vsemaphorecreatebinary
vsemaphoredelete
@@ -3116,6 +3216,7 @@ vsetandcheckregisters
vsetuphighfrequencytimer
vsetuptimertest
vsimplesubscribepublishtask
+vsnprintf
vstart
vstartdefenderdemo
vstartfleetprovisioningdemo
@@ -3169,6 +3270,7 @@ wasn
wdt
wdtm
webmax
+weierstrass
wether
wi
wifi
@@ -3409,6 +3511,7 @@ xpendingreadylist
xperiod
xpingreqtimer
xpingresptimer
+xpkhandle
xplained
xport
xportalt
@@ -3490,6 +3593,7 @@ xreadblocktime
xreceived
xreceivedbytes
xreceivelength
+xrecvbuffer
xrecvloop
xregions
xregionssettings
@@ -3546,7 +3650,10 @@ xserialportinitminimal
xserialsendstring
xserver
xsession
+xsessionhandle
xsetupcomplete
+xsigbuffersize
+xsiglen
xsignature
xsignaturelength
xsignercertificatelength
@@ -3643,12 +3750,14 @@ xtransfercompletedelay
xtransfersocket
xtransmitted
xtrueobject
+xts
xttcps
xtxbuffermutex
xtxdescriptors
xtxhasended
xtxmessages
xtxtcbbuffer
+xtype
xudpportsarraylength
xupdatedmessagebuffer
xurllen
diff --git a/manifest.yml b/manifest.yml
index 3babe5ce4ac..caba23f7a03 100644
--- a/manifest.yml
+++ b/manifest.yml
@@ -4,77 +4,77 @@ description: "This is the standard distribution of FreeRTOS."
dependencies:
- name: "FreeRTOS-Kernel"
- version: "f789a0e79"
+ version: "V10.5.1"
repository:
type: "git"
url: "https://github.com/FreeRTOS/FreeRTOS-Kernel.git"
path: "FreeRTOS/Source"
- name: "FreeRTOS-Plus-TCP"
- version: "V2.4.0"
+ version: "V3.1.0"
repository:
type: "git"
url: "https://github.com/FreeRTOS/FreeRTOS-Plus-TCP.git"
path: "FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP"
- name: "coreJSON"
- version: "v3.1.0"
+ version: "v3.2.0"
repository:
type: "git"
url: "https://github.com/FreeRTOS/coreJSON.git"
path: "FreeRTOS-Plus/Source/coreJSON"
- name: "sigv4"
- version: "v1.1.0"
+ version: "v1.2.0"
repository:
type: "git"
url: "https://github.com/aws/SigV4-for-AWS-IoT-embedded-sdk.git"
path: "FreeRTOS-Plus/Source/AWS/sigv4"
- name: "coreHTTP"
- version: "7fbd7c3"
+ version: "v3.0.0"
repository:
type: "git"
url: "https://github.com/FreeRTOS/coreHTTP.git"
path: "FreeRTOS-Plus/Source/Application-Protocols/coreHTTP"
- name: "coreMQTT"
- version: "v1.2.0"
+ version: "v2.1.1"
repository:
type: "git"
url: "https://github.com/FreeRTOS/coreMQTT.git"
path: "FreeRTOS-Plus/Source/Application-Protocols/coreMQTT"
- name: "coreMQTT Agent"
- version: "v1.1.0"
+ version: "v1.2.0"
repository:
type: "git"
url: "https://github.com/FreeRTOS/coreMQTT-Agent.git"
path: "FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent"
- name: "corePKCS11"
- version: "v3.4.0"
+ version: "v3.5.0"
repository:
type: "git"
url: "https://github.com/FreeRTOS/corePKCS11.git"
path: "FreeRTOS-Plus/Source/corePKCS11"
- name: "device-defender"
- version: "v1.2.0"
+ version: "v1.3.0"
repository:
type: "git"
url: "https://github.com/aws/Device-Defender-for-AWS-IoT-embedded-sdk.git"
path: "FreeRTOS-Plus/Source/AWS/device-defender"
- name: "device-shadow"
- version: "v1.2.0"
+ version: "v1.3.0"
repository:
type: "git"
url: "https://github.com/aws/Device-Shadow-for-AWS-IoT-embedded-sdk.git"
path: "FreeRTOS-Plus/Source/AWS/device-shadow"
- name: "jobs"
- version: "v1.2.0"
+ version: "v1.3.0"
repository:
type: "git"
url: "https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk.git"
@@ -88,28 +88,28 @@ dependencies:
path: "FreeRTOS-Plus/ThirdParty/wolfSSL"
- name: "mbedtls"
- version: "v2.28.0"
+ version: "v3.2.1"
repository:
type: "git"
- url: "https://github.com/ARMmbed/mbedtls"
+ url: "https://github.com/Mbed-TLS/mbedtls.git"
path: "FreeRTOS-Plus/ThirdParty/mbedtls"
- name: "backoffAlgorithm"
- version: "v1.2.0"
+ version: "v1.3.0"
repository:
type: "git"
url: "https://github.com/FreeRTOS/backoffAlgorithm"
path: "FreeRTOS-Plus/Source/Utilities/backoff_algorithm"
- name: "ota"
- version: "v3.3.0"
+ version: "v3.4.0"
repository:
type: "git"
url: "https://github.com/aws/ota-for-aws-iot-embedded-sdk"
path: "FreeRTOS-Plus/Source/AWS/ota"
- name: "coreSNTP"
- version: "v1.1.0"
+ version: "v1.2.0"
repository:
type: "git"
url: "https://github.com/FreeRTOS/coreSNTP"
@@ -158,7 +158,7 @@ dependencies:
path: "FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4"
- name: "fleet-provisioning"
- version: "v1.0.1"
+ version: "v1.1.0"
repository:
type: "git"
url: "https://github.com/aws/Fleet-Provisioning-for-AWS-IoT-embedded-sdk.git"