4
* \brief Portable interface to the CPU cycle counter
6
* Copyright (C) 2006-2010, Brainspark B.V.
8
* This file is part of PolarSSL (http://www.polarssl.org)
9
* Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
11
* All rights reserved.
13
* This program is free software; you can redistribute it and/or modify
14
* it under the terms of the GNU General Public License as published by
15
* the Free Software Foundation; either version 2 of the License, or
16
* (at your option) any later version.
18
* This program is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
23
* You should have received a copy of the GNU General Public License along
24
* with this program; if not, write to the Free Software Foundation, Inc.,
25
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27
#ifndef POLARSSL_TIMING_H
28
#define POLARSSL_TIMING_H
31
* \brief timer structure
35
unsigned char opaque[32];
42
extern volatile int alarmed;
45
* \brief Return the CPU cycle counter value
47
unsigned long hardclock( void );
50
* \brief Return the elapsed time in milliseconds
52
* \param val points to a timer structure
53
* \param reset if set to 1, the timer is restarted
55
unsigned long get_timer( struct hr_time *val, int reset );
58
* \brief Setup an alarm clock
60
* \param seconds delay before the "alarmed" flag is set
62
void set_alarm( int seconds );
65
* \brief Sleep for a certain amount of time
67
* \param milliseconds delay in milliseconds
69
void m_sleep( int milliseconds );