mirror of
https://github.com/FreeRTOS/FreeRTOS.git
synced 2026-09-28 16:16:47 +08:00
Restructure platform directory (#382)
This updates the platform and logging directory and moves it to the following places: FreeRTOS\FreeRTOS-Plus\Source\Utilities FreeRTOS\FreeRTOS-Plus\Source\Application-Protocols\network_transport\freertos_plus_tcp Project files are updated to follow suite. All updated demos are tested to work as expected.
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file exponential_backoff.c
|
||||
* @brief Utility implementation of backoff logic, used for attempting retries of failed processes.
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <stdint.h>
|
||||
|
||||
/* Kernel includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
#include "exponential_backoff.h"
|
||||
|
||||
#define MILLISECONDS_PER_SECOND ( 1000U ) /**< @brief Milliseconds per second. */
|
||||
|
||||
extern UBaseType_t uxRand( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
RetryUtilsStatus_t RetryUtils_BackoffAndSleep( RetryUtilsParams_t * pRetryParams )
|
||||
{
|
||||
RetryUtilsStatus_t status = RetryUtilsRetriesExhausted;
|
||||
uint32_t backOffDelayMs = 0;
|
||||
|
||||
/* If pRetryParams->maxRetryAttempts is set to 0, try forever. */
|
||||
if( ( pRetryParams->attemptsDone < pRetryParams->maxRetryAttempts ) ||
|
||||
( 0U == pRetryParams->maxRetryAttempts ) )
|
||||
{
|
||||
/* Choose a random value for back-off time between 0 and the max jitter value. */
|
||||
backOffDelayMs = uxRand() % pRetryParams->nextJitterMax;
|
||||
|
||||
/* Wait for backoff time to expire for the next retry. */
|
||||
vTaskDelay( pdMS_TO_TICKS( backOffDelayMs * MILLISECONDS_PER_SECOND ) );
|
||||
|
||||
/* Increment backoff counts. */
|
||||
pRetryParams->attemptsDone++;
|
||||
|
||||
/* Double the max jitter value for the next retry attempt, only
|
||||
* if the new value will be less than the max backoff time value. */
|
||||
if( pRetryParams->nextJitterMax < ( MAX_RETRY_BACKOFF_SECONDS / 2U ) )
|
||||
{
|
||||
pRetryParams->nextJitterMax += pRetryParams->nextJitterMax;
|
||||
}
|
||||
else
|
||||
{
|
||||
pRetryParams->nextJitterMax = MAX_RETRY_BACKOFF_SECONDS;
|
||||
}
|
||||
|
||||
status = RetryUtilsSuccess;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* When max retry attempts are exhausted, let application know by
|
||||
* returning RetryUtilsRetriesExhausted. Application may choose to
|
||||
* restart the retry process after calling RetryUtils_ParamsReset(). */
|
||||
status = RetryUtilsRetriesExhausted;
|
||||
RetryUtils_ParamsReset( pRetryParams );
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void RetryUtils_ParamsReset( RetryUtilsParams_t * pRetryParams )
|
||||
{
|
||||
uint32_t jitter = 0;
|
||||
|
||||
/* Reset attempts done to zero so that the next retry cycle can start. */
|
||||
pRetryParams->attemptsDone = 0;
|
||||
|
||||
/* Calculate jitter value using picking a random number. */
|
||||
jitter = ( uxRand() % MAX_JITTER_VALUE_SECONDS );
|
||||
|
||||
/* Reset the backoff value to the initial time out value plus jitter. */
|
||||
pRetryParams->nextJitterMax = INITIAL_RETRY_BACKOFF_SECONDS + jitter;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* FreeRTOS Kernel V10.3.0
|
||||
* 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.
|
||||
*
|
||||
* http://www.FreeRTOS.org
|
||||
* http://aws.amazon.com/freertos
|
||||
*
|
||||
* 1 tab == 4 spaces!
|
||||
*/
|
||||
|
||||
#ifndef DEMO_LOGGING_H
|
||||
#define DEMO_LOGGING_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.
|
||||
*
|
||||
* Set xLogToStdout, xLogToFile and xLogToUDP to either pdTRUE or pdFALSE to
|
||||
* lot to stdout, a disk file and a UDP port respectively.
|
||||
*
|
||||
* If xLogToUDP is pdTRUE then ulRemoteIPAddress and usRemotePort must be set
|
||||
* to the IP address and port number to which UDP log messages will be sent.
|
||||
*/
|
||||
void vLoggingInit( BaseType_t xLogToStdout,
|
||||
BaseType_t xLogToFile,
|
||||
BaseType_t xLogToUDP,
|
||||
uint32_t ulRemoteIPAddress,
|
||||
uint16_t usRemotePort );
|
||||
|
||||
#endif /* DEMO_LOGGING_H */
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* FreeRTOS Kernel V10.3.0
|
||||
* 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.
|
||||
*
|
||||
* http://www.FreeRTOS.org
|
||||
* http://aws.amazon.com/freertos
|
||||
*
|
||||
* 1 tab == 4 spaces!
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file logging_levels.h
|
||||
* @brief Defines the logging level macros.
|
||||
*/
|
||||
|
||||
#ifndef LOGGING_LEVELS_H_
|
||||
#define LOGGING_LEVELS_H_
|
||||
|
||||
/**
|
||||
* @constantspage{logging,logging library}
|
||||
*
|
||||
* @section logging_constants_levels Log levels
|
||||
* @brief Log levels for the libraries in this SDK.
|
||||
*
|
||||
* Each library should specify a log level by setting @ref LIBRARY_LOG_LEVEL.
|
||||
* All log messages with a level at or below the specified level will be printed
|
||||
* for that library.
|
||||
*
|
||||
* Currently, there are 4 log levels. In the order of lowest to highest, they are:
|
||||
* - #LOG_NONE <br>
|
||||
* @copybrief LOG_NONE
|
||||
* - #LOG_ERROR <br>
|
||||
* @copybrief LOG_ERROR
|
||||
* - #LOG_WARN <br>
|
||||
* @copybrief LOG_WARN
|
||||
* - #LOG_INFO <br>
|
||||
* @copybrief LOG_INFO
|
||||
* - #LOG_DEBUG <br>
|
||||
* @copybrief LOG_DEBUG
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief No log messages.
|
||||
*
|
||||
* When @ref LIBRARY_LOG_LEVEL is #LOG_NONE, logging is disabled and no
|
||||
* logging messages are printed.
|
||||
*/
|
||||
#define LOG_NONE 0
|
||||
|
||||
/**
|
||||
* @brief Represents erroneous application state or event.
|
||||
*
|
||||
* These messages describe the situations when a library encounters an error from
|
||||
* which it cannot recover.
|
||||
*
|
||||
* These messages are printed when @ref LIBRARY_LOG_LEVEL is defined as either
|
||||
* of #LOG_ERROR, #LOG_WARN, #LOG_INFO or #LOG_DEBUG.
|
||||
*/
|
||||
#define LOG_ERROR 1
|
||||
|
||||
/**
|
||||
* @brief Message about an abnormal event.
|
||||
*
|
||||
* These messages describe the situations when a library encounters
|
||||
* abnormal event that may be indicative of an error. Libraries continue
|
||||
* execution after logging a warning.
|
||||
*
|
||||
* These messages are printed when @ref LIBRARY_LOG_LEVEL is defined as either
|
||||
* of #LOG_WARN, #LOG_INFO or #LOG_DEBUG.
|
||||
*/
|
||||
#define LOG_WARN 2
|
||||
|
||||
/**
|
||||
* @brief A helpful, informational message.
|
||||
*
|
||||
* These messages describe normal execution of a library. They provide
|
||||
* the progress of the program at a coarse-grained level.
|
||||
*
|
||||
* These messages are printed when @ref LIBRARY_LOG_LEVEL is defined as either
|
||||
* of #LOG_INFO or #LOG_DEBUG.
|
||||
*/
|
||||
#define LOG_INFO 3
|
||||
|
||||
/**
|
||||
* @brief Detailed and excessive debug information.
|
||||
*
|
||||
* Debug log messages are used to provide the
|
||||
* progress of the program at a fine-grained level. These are mostly used
|
||||
* for debugging and may contain excessive information such as internal
|
||||
* variables, buffers, or other specific information.
|
||||
*
|
||||
* These messages are only printed when @ref LIBRARY_LOG_LEVEL is defined as
|
||||
* #LOG_DEBUG.
|
||||
*/
|
||||
#define LOG_DEBUG 4
|
||||
|
||||
#endif /* ifndef LOGGING_LEVELS_H_ */
|
||||
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
* FreeRTOS Kernel V10.3.0
|
||||
* 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.
|
||||
*
|
||||
* http://www.FreeRTOS.org
|
||||
* http://aws.amazon.com/freertos
|
||||
*
|
||||
* 1 tab == 4 spaces!
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file logging_stack.h
|
||||
* @brief Reference implementation of Logging stack as a header-only library.
|
||||
*/
|
||||
|
||||
#ifndef LOGGING_STACK_H_
|
||||
#define LOGGING_STACK_H_
|
||||
|
||||
/* Include header for logging level macros. */
|
||||
#include "logging_levels.h"
|
||||
|
||||
/* Standard Include. */
|
||||
#include <stdint.h>
|
||||
|
||||
/* Metadata information to prepend to every log message. */
|
||||
#define LOG_METADATA_FORMAT "[%s:%d] "
|
||||
#define LOG_METADATA_ARGS __FUNCTION__, __LINE__
|
||||
|
||||
/* Common macro for all logging interface macros. */
|
||||
#if !defined( DISABLE_LOGGING )
|
||||
|
||||
/* 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 SdkLog( string ) vLoggingPrintf string
|
||||
#else
|
||||
#define SdkLog( string )
|
||||
#endif
|
||||
|
||||
/* Check that LIBRARY_LOG_LEVEL is defined and has a valid value. */
|
||||
#if !defined( LIBRARY_LOG_LEVEL ) || \
|
||||
( ( LIBRARY_LOG_LEVEL != LOG_NONE ) && \
|
||||
( LIBRARY_LOG_LEVEL != LOG_ERROR ) && \
|
||||
( LIBRARY_LOG_LEVEL != LOG_WARN ) && \
|
||||
( LIBRARY_LOG_LEVEL != LOG_INFO ) && \
|
||||
( LIBRARY_LOG_LEVEL != LOG_DEBUG ) )
|
||||
#error "Please define LIBRARY_LOG_LEVEL as either LOG_NONE, LOG_ERROR, LOG_WARN, LOG_INFO, or LOG_DEBUG."
|
||||
#elif !defined( LIBRARY_LOG_NAME )
|
||||
#error "Please define LIBRARY_LOG_NAME for the library."
|
||||
#else
|
||||
#if LIBRARY_LOG_LEVEL == LOG_DEBUG
|
||||
/* All log level messages will logged. */
|
||||
#define LogError( message ) SdkLog( ( "[ERROR] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogWarn( message ) SdkLog( ( "[WARN] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogInfo( message ) SdkLog( ( "[INFO] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogDebug( message ) SdkLog( ( "[DEBUG] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
|
||||
#elif LIBRARY_LOG_LEVEL == LOG_INFO
|
||||
/* Only INFO, WARNING and ERROR messages will be logged. */
|
||||
#define LogError( message ) SdkLog( ( "[ERROR] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogWarn( message ) SdkLog( ( "[WARN] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogInfo( message ) SdkLog( ( "[INFO] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogDebug( message )
|
||||
|
||||
#elif LIBRARY_LOG_LEVEL == LOG_WARN
|
||||
/* Only WARNING and ERROR messages will be logged.*/
|
||||
#define LogError( message ) SdkLog( ( "[ERROR] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogWarn( message ) SdkLog( ( "[WARN] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogInfo( message )
|
||||
#define LogDebug( message )
|
||||
|
||||
#elif LIBRARY_LOG_LEVEL == LOG_ERROR
|
||||
/* Only ERROR messages will be logged. */
|
||||
#define LogError( message ) SdkLog( ( "[ERROR] [%s] "LOG_METADATA_FORMAT, LIBRARY_LOG_NAME, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
|
||||
#define LogWarn( message )
|
||||
#define LogInfo( message )
|
||||
#define LogDebug( message )
|
||||
|
||||
#else /* if LIBRARY_LOG_LEVEL == LOG_ERROR */
|
||||
|
||||
#define LogError( message )
|
||||
#define LogWarn( message )
|
||||
#define LogInfo( message )
|
||||
#define LogDebug( message )
|
||||
|
||||
#endif /* if LIBRARY_LOG_LEVEL == LOG_ERROR */
|
||||
#endif /* if !defined( LIBRARY_LOG_LEVEL ) || ( ( LIBRARY_LOG_LEVEL != LOG_NONE ) && ( LIBRARY_LOG_LEVEL != LOG_ERROR ) && ( LIBRARY_LOG_LEVEL != LOG_WARN ) && ( LIBRARY_LOG_LEVEL != LOG_INFO ) && ( LIBRARY_LOG_LEVEL != LOG_DEBUG ) ) */
|
||||
|
||||
#endif /* ifndef LOGGING_STACK_H_ */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* FreeRTOS Error Code Stringification utilities for mbed TLS v2.16.0
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file mbedtls_error.h
|
||||
* @brief Stringification utilities for high-level and low-level codes of mbed TLS.
|
||||
*/
|
||||
|
||||
#ifndef MBEDTLS_ERROR_H_
|
||||
#define MBEDTLS_ERROR_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Translate an mbed TLS high level code into its string representation.
|
||||
* Result includes a terminating null byte.
|
||||
*
|
||||
* @param errnum The error code containing the high-level code.
|
||||
* @return The string representation if high-level code is present; otherwise NULL.
|
||||
*
|
||||
* @warning The string returned by this function must never be modified.
|
||||
*/
|
||||
const char * mbedtls_strerror_highlevel( int32_t errnum );
|
||||
|
||||
/**
|
||||
* @brief Translate an mbed TLS low level code into its string representation,
|
||||
* Result includes a terminating null byte.
|
||||
*
|
||||
* @param errnum The error code containing the low-level code.
|
||||
* @return The string representation if low-level code is present; otherwise NULL.
|
||||
*
|
||||
* @warning The string returned by this function must never be modified.
|
||||
*/
|
||||
const char * mbedtls_strerror_lowlevel( int32_t errnum );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ifndef MBEDTLS_ERROR_H_ */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file threading_alt.h
|
||||
* @brief mbed TLS threading functions implemented for FreeRTOS.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef MBEDTLS_THREADING_ALT_H_
|
||||
#define MBEDTLS_THREADING_ALT_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.
|
||||
*/
|
||||
typedef struct mbedtls_threading_mutex
|
||||
{
|
||||
SemaphoreHandle_t mutexHandle;
|
||||
StaticSemaphore_t mutexStorage;
|
||||
} 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 );
|
||||
|
||||
#endif /* ifndef MBEDTLS_THREADING_ALT_H_ */
|
||||
Reference in New Issue
Block a user