summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-16 07:01:48 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-16 07:52:45 +0100
commit478dc8968fe54f8762e77ca17db98d6b290dd2b8 (patch)
treeb8b59893b937656f0d643b81a71f6754bdea3cf6
parentAdd PowerPC paravirtualization support (diff)
downloadrtems-478dc8968fe54f8762e77ca17db98d6b290dd2b8.tar.bz2
imfs: Use most efficient way to get the time
As a side-effect, this fixes some warnings. Close #3350.
-rw-r--r--cpukit/include/rtems/imfs.h35
1 files changed, 17 insertions, 18 deletions
diff --git a/cpukit/include/rtems/imfs.h b/cpukit/include/rtems/imfs.h
index fe3c5b12a9..3d2048afeb 100644
--- a/cpukit/include/rtems/imfs.h
+++ b/cpukit/include/rtems/imfs.h
@@ -16,6 +16,7 @@
#ifndef _RTEMS_IMFS_H
#define _RTEMS_IMFS_H
+#include <sys/time.h>
#include <limits.h>
#include <rtems/libio_.h>
@@ -337,41 +338,39 @@ static inline IMFS_memfile_t *IMFS_iop_to_memfile( const rtems_libio_t *iop )
return (IMFS_memfile_t *) iop->pathinfo.node_access;
}
-static inline void IMFS_update_atime( IMFS_jnode_t *jnode )
+static inline time_t _IMFS_get_time( void )
{
- struct timeval now;
+ struct bintime now;
- gettimeofday( &now, 0 );
+ /* Use most efficient way to get the time in seconds (CLOCK_REALTIME) */
+ _Timecounter_Getbintime( &now );
- jnode->stat_atime = now.tv_sec;
+ return now.sec;
}
-static inline void IMFS_update_mtime( IMFS_jnode_t *jnode )
+static inline void IMFS_update_atime( IMFS_jnode_t *jnode )
{
- struct timeval now;
-
- gettimeofday( &now, 0 );
+ jnode->stat_atime = _IMFS_get_time();
+}
- jnode->stat_mtime = now.tv_sec;
+static inline void IMFS_update_mtime( IMFS_jnode_t *jnode )
+{
+ jnode->stat_mtime = _IMFS_get_time();
}
static inline void IMFS_update_ctime( IMFS_jnode_t *jnode )
{
- struct timeval now;
-
- gettimeofday( &now, 0 );
-
- jnode->stat_ctime = now.tv_sec;
+ jnode->stat_ctime = _IMFS_get_time();
}
static inline void IMFS_mtime_ctime_update( IMFS_jnode_t *jnode )
{
- struct timeval now;
+ time_t now;
- gettimeofday( &now, 0 );
+ now = _IMFS_get_time();
- jnode->stat_mtime = now.tv_sec;
- jnode->stat_ctime = now.tv_sec;
+ jnode->stat_mtime = now;
+ jnode->stat_ctime = now;
}
typedef struct {