aboutsummaryrefslogtreecommitdiffstats
path: root/src/pdclib/platform/example/functions/time
diff options
context:
space:
mode:
authortcsullivan <tullivan99@gmail.com>2018-11-17 13:02:57 -0500
committertcsullivan <tullivan99@gmail.com>2018-11-17 13:02:57 -0500
commitc6ef89664b8c0d7aa85bddd5c7014aa6df82cbe7 (patch)
treed1f9d09412a46bdf4344fe30392455070a72993d /src/pdclib/platform/example/functions/time
parentdb38c4b9dac461de0ed75bf6d079dacba1b31bc9 (diff)
added pdclib, removed sash
Diffstat (limited to 'src/pdclib/platform/example/functions/time')
-rw-r--r--src/pdclib/platform/example/functions/time/clock.c35
-rw-r--r--src/pdclib/platform/example/functions/time/time.c41
-rw-r--r--src/pdclib/platform/example/functions/time/timespec_get.c42
3 files changed, 118 insertions, 0 deletions
diff --git a/src/pdclib/platform/example/functions/time/clock.c b/src/pdclib/platform/example/functions/time/clock.c
new file mode 100644
index 0000000..825e040
--- /dev/null
+++ b/src/pdclib/platform/example/functions/time/clock.c
@@ -0,0 +1,35 @@
+/* clock( void )
+
+ This file is part of the Public Domain C Library (PDCLib).
+ Permission is granted to use, modify, and / or redistribute at will.
+*/
+
+#include <time.h>
+
+#ifndef REGTEST
+
+#include <sys/times.h>
+
+clock_t clock( void )
+{
+ struct tms buf;
+ if ( times( &buf ) != (clock_t)-1 )
+ {
+ return buf.tms_utime + buf.tms_stime;
+ }
+ return -1;
+}
+
+#endif
+
+#ifdef TEST
+
+#include "_PDCLIB_test.h"
+
+int main( void )
+{
+ TESTCASE( NO_TESTDRIVER );
+ return TEST_RESULTS;
+}
+
+#endif
diff --git a/src/pdclib/platform/example/functions/time/time.c b/src/pdclib/platform/example/functions/time/time.c
new file mode 100644
index 0000000..cbb29e1
--- /dev/null
+++ b/src/pdclib/platform/example/functions/time/time.c
@@ -0,0 +1,41 @@
+/* time( time_t * )
+
+ This file is part of the Public Domain C Library (PDCLib).
+ Permission is granted to use, modify, and / or redistribute at will.
+*/
+
+#include <time.h>
+
+#ifndef REGTEST
+
+#include <sys/time.h>
+
+/* See comments in time.h on the semantics of time_t. */
+
+time_t time( time_t * timer )
+{
+ struct timeval tv;
+ if ( gettimeofday( &tv, NULL ) == 0 )
+ {
+ if ( timer != NULL )
+ {
+ *timer = tv.tv_sec;
+ }
+ return tv.tv_sec;
+ }
+ return -1;
+}
+
+#endif
+
+#ifdef TEST
+
+#include "_PDCLIB_test.h"
+
+int main( void )
+{
+ TESTCASE( NO_TESTDRIVER );
+ return TEST_RESULTS;
+}
+
+#endif
diff --git a/src/pdclib/platform/example/functions/time/timespec_get.c b/src/pdclib/platform/example/functions/time/timespec_get.c
new file mode 100644
index 0000000..d8cbab7
--- /dev/null
+++ b/src/pdclib/platform/example/functions/time/timespec_get.c
@@ -0,0 +1,42 @@
+/* timespec_get( struct timespec *, int )
+
+ This file is part of the Public Domain C Library (PDCLib).
+ Permission is granted to use, modify, and / or redistribute at will.
+*/
+
+#include <time.h>
+
+#ifndef REGTEST
+
+#include <sys/time.h>
+
+int timespec_get( struct timespec * ts, int base )
+{
+ if ( base == TIME_UTC )
+ {
+ /* We can make do with a really thin wrapper here. */
+ struct timeval tv;
+ if ( gettimeofday( &tv, NULL ) == 0 )
+ {
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+ return base;
+ }
+ }
+ /* Not supporting any other time base than TIME_UTC for now. */
+ return 0;
+}
+
+#endif
+
+#ifdef TEST
+
+#include "_PDCLIB_test.h"
+
+int main( void )
+{
+ TESTCASE( NO_TESTDRIVER );
+ return TEST_RESULTS;
+}
+
+#endif