mbed TLS library

Dependents:   HTTPClient-SSL WS_SERVER

Committer:
ansond
Date:
Thu Jun 11 03:27:03 2015 +0000
Revision:
0:137634ff4186
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ansond 0:137634ff4186 1 /**
ansond 0:137634ff4186 2 * \file timing.h
ansond 0:137634ff4186 3 *
ansond 0:137634ff4186 4 * \brief Portable interface to the CPU cycle counter
ansond 0:137634ff4186 5 *
ansond 0:137634ff4186 6 * Copyright (C) 2006-2014, ARM Limited, All Rights Reserved
ansond 0:137634ff4186 7 *
ansond 0:137634ff4186 8 * This file is part of mbed TLS (https://tls.mbed.org)
ansond 0:137634ff4186 9 *
ansond 0:137634ff4186 10 * This program is free software; you can redistribute it and/or modify
ansond 0:137634ff4186 11 * it under the terms of the GNU General Public License as published by
ansond 0:137634ff4186 12 * the Free Software Foundation; either version 2 of the License, or
ansond 0:137634ff4186 13 * (at your option) any later version.
ansond 0:137634ff4186 14 *
ansond 0:137634ff4186 15 * This program is distributed in the hope that it will be useful,
ansond 0:137634ff4186 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ansond 0:137634ff4186 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ansond 0:137634ff4186 18 * GNU General Public License for more details.
ansond 0:137634ff4186 19 *
ansond 0:137634ff4186 20 * You should have received a copy of the GNU General Public License along
ansond 0:137634ff4186 21 * with this program; if not, write to the Free Software Foundation, Inc.,
ansond 0:137634ff4186 22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ansond 0:137634ff4186 23 */
ansond 0:137634ff4186 24 #ifndef POLARSSL_TIMING_H
ansond 0:137634ff4186 25 #define POLARSSL_TIMING_H
ansond 0:137634ff4186 26
ansond 0:137634ff4186 27 #if !defined(POLARSSL_CONFIG_FILE)
ansond 0:137634ff4186 28 #include "config.h"
ansond 0:137634ff4186 29 #else
ansond 0:137634ff4186 30 #include POLARSSL_CONFIG_FILE
ansond 0:137634ff4186 31 #endif
ansond 0:137634ff4186 32
ansond 0:137634ff4186 33 #if !defined(POLARSSL_TIMING_ALT)
ansond 0:137634ff4186 34 // Regular implementation
ansond 0:137634ff4186 35 //
ansond 0:137634ff4186 36
ansond 0:137634ff4186 37 #ifdef __cplusplus
ansond 0:137634ff4186 38 extern "C" {
ansond 0:137634ff4186 39 #endif
ansond 0:137634ff4186 40
ansond 0:137634ff4186 41 /**
ansond 0:137634ff4186 42 * \brief timer structure
ansond 0:137634ff4186 43 */
ansond 0:137634ff4186 44 struct hr_time
ansond 0:137634ff4186 45 {
ansond 0:137634ff4186 46 unsigned char opaque[32];
ansond 0:137634ff4186 47 };
ansond 0:137634ff4186 48
ansond 0:137634ff4186 49 extern volatile int alarmed;
ansond 0:137634ff4186 50
ansond 0:137634ff4186 51 /**
ansond 0:137634ff4186 52 * \brief Return the CPU cycle counter value
ansond 0:137634ff4186 53 */
ansond 0:137634ff4186 54 unsigned long hardclock( void );
ansond 0:137634ff4186 55
ansond 0:137634ff4186 56 /**
ansond 0:137634ff4186 57 * \brief Return the elapsed time in milliseconds
ansond 0:137634ff4186 58 *
ansond 0:137634ff4186 59 * \param val points to a timer structure
ansond 0:137634ff4186 60 * \param reset if set to 1, the timer is restarted
ansond 0:137634ff4186 61 */
ansond 0:137634ff4186 62 unsigned long get_timer( struct hr_time *val, int reset );
ansond 0:137634ff4186 63
ansond 0:137634ff4186 64 /**
ansond 0:137634ff4186 65 * \brief Setup an alarm clock
ansond 0:137634ff4186 66 *
ansond 0:137634ff4186 67 * \param seconds delay before the "alarmed" flag is set
ansond 0:137634ff4186 68 *
ansond 0:137634ff4186 69 * \warning Only one alarm at a time is supported. In a threaded
ansond 0:137634ff4186 70 * context, this means one for the whole process, not one per
ansond 0:137634ff4186 71 * thread.
ansond 0:137634ff4186 72 */
ansond 0:137634ff4186 73 void set_alarm( int seconds );
ansond 0:137634ff4186 74
ansond 0:137634ff4186 75 /**
ansond 0:137634ff4186 76 * \brief Sleep for a certain amount of time
ansond 0:137634ff4186 77 *
ansond 0:137634ff4186 78 * \param milliseconds delay in milliseconds
ansond 0:137634ff4186 79 */
ansond 0:137634ff4186 80 void m_sleep( int milliseconds );
ansond 0:137634ff4186 81
ansond 0:137634ff4186 82 #if defined(POLARSSL_SELF_TEST)
ansond 0:137634ff4186 83 /**
ansond 0:137634ff4186 84 * \brief Checkup routine
ansond 0:137634ff4186 85 *
ansond 0:137634ff4186 86 * \return 0 if successful, or 1 if a test failed
ansond 0:137634ff4186 87 */
ansond 0:137634ff4186 88 int timing_self_test( int verbose );
ansond 0:137634ff4186 89 #endif
ansond 0:137634ff4186 90
ansond 0:137634ff4186 91 #ifdef __cplusplus
ansond 0:137634ff4186 92 }
ansond 0:137634ff4186 93 #endif
ansond 0:137634ff4186 94
ansond 0:137634ff4186 95 #else /* POLARSSL_TIMING_ALT */
ansond 0:137634ff4186 96 #include "timing_alt.h"
ansond 0:137634ff4186 97 #endif /* POLARSSL_TIMING_ALT */
ansond 0:137634ff4186 98
ansond 0:137634ff4186 99 #endif /* timing.h */
ansond 0:137634ff4186 100