diff options
Diffstat (limited to 'src/timer/posix_rt')
-rw-r--r-- | src/timer/posix_rt/modinfo.txt | 23 | ||||
-rw-r--r-- | src/timer/posix_rt/tm_posix.cpp | 31 | ||||
-rw-r--r-- | src/timer/posix_rt/tm_posix.h | 24 |
3 files changed, 78 insertions, 0 deletions
diff --git a/src/timer/posix_rt/modinfo.txt b/src/timer/posix_rt/modinfo.txt new file mode 100644 index 000000000..e9298a81c --- /dev/null +++ b/src/timer/posix_rt/modinfo.txt @@ -0,0 +1,23 @@ +realname "POSIX Timer" + +define TIMER_POSIX + +load_on auto + +<add> +tm_posix.cpp +tm_posix.h +</add> + +<libs> +linux -> rt +</libs> + +# The *BSDs put clock_gettime in sys/time.h, not time.h like POSIX says +<os> +cygwin +linux +#freebsd +#netbsd +#openbsd +</os> diff --git a/src/timer/posix_rt/tm_posix.cpp b/src/timer/posix_rt/tm_posix.cpp new file mode 100644 index 000000000..601b2b43d --- /dev/null +++ b/src/timer/posix_rt/tm_posix.cpp @@ -0,0 +1,31 @@ +/************************************************* +* POSIX Timer Source File * +* (C) 1999-2007 Jack Lloyd * +*************************************************/ + +#include <botan/tm_posix.h> +#include <botan/util.h> + +#ifndef _POSIX_C_SOURCE + #define _POSIX_C_SOURCE 199309 +#endif + +#include <time.h> + +#ifndef CLOCK_REALTIME + #define CLOCK_REALTIME 0 +#endif + +namespace Botan { + +/************************************************* +* Get the timestamp * +*************************************************/ +u64bit POSIX_Timer::clock() const + { + struct ::timespec tv; + ::clock_gettime(CLOCK_REALTIME, &tv); + return combine_timers(tv.tv_sec, tv.tv_nsec, 1000000000); + } + +} diff --git a/src/timer/posix_rt/tm_posix.h b/src/timer/posix_rt/tm_posix.h new file mode 100644 index 000000000..fc3ccdc74 --- /dev/null +++ b/src/timer/posix_rt/tm_posix.h @@ -0,0 +1,24 @@ +/************************************************* +* POSIX Timer Header File * +* (C) 1999-2007 Jack Lloyd * +*************************************************/ + +#ifndef BOTAN_TIMER_POSIX_H__ +#define BOTAN_TIMER_POSIX_H__ + +#include <botan/timers.h> + +namespace Botan { + +/************************************************* +* POSIX Timer * +*************************************************/ +class POSIX_Timer : public Timer + { + public: + u64bit clock() const; + }; + +} + +#endif |