diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h index b0296eb8db..109f217bf3 100644 --- a/include/mbedtls/config.h +++ b/include/mbedtls/config.h @@ -128,7 +128,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 @@ -3466,6 +3471,10 @@ * 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 diff --git a/library/timing.c b/library/timing.c index d46a6d85ec..57bc9bcc12 100644 --- a/library/timing.c +++ b/library/timing.c @@ -57,14 +57,14 @@ struct _hr_time #include #include #include -#if defined(MBEDTLS_HAVE_TIME) +/* time.h should be included independently of MBEDTLS_HAVE_TIME. If the + * platform matches the ifdefs above, it will be used. */ #include #include struct _hr_time { struct timeval start; }; -#endif #endif /* _WIN32 && !EFIX64 && !EFI32 */ #if !defined(HAVE_HARDCLOCK) && defined(MBEDTLS_HAVE_ASM) && \ diff --git a/tests/suites/test_suite_timing.data b/tests/suites/test_suite_timing.data index b7b089c443..2522da1eaf 100644 --- a/tests/suites/test_suite_timing.data +++ b/tests/suites/test_suite_timing.data @@ -1,23 +1,17 @@ Timing: hardclock -depends_on:MBEDTLS_HAVE_TIME timing_hardclock: Timing: get timer -depends_on:MBEDTLS_HAVE_TIME timing_get_timer: Timing: set alarm with no delay -depends_on:MBEDTLS_HAVE_TIME timing_set_alarm:0: Timing: set alarm with 1s delay -depends_on:MBEDTLS_HAVE_TIME timing_set_alarm:1: Timing: delay 0ms -depends_on:MBEDTLS_HAVE_TIME timing_delay:0: Timing: delay 100ms -depends_on:MBEDTLS_HAVE_TIME timing_delay:100: