procfs: Fix uptime being close to maximum 32-bit value in certain config
This commit is contained in:
parent
25c1f4407e
commit
cc7af2b0d0
@ -240,7 +240,7 @@ static ssize_t uptime_read(FAR struct file *filep, FAR char *buffer,
|
|||||||
{
|
{
|
||||||
/* System time */
|
/* System time */
|
||||||
|
|
||||||
ticktime = clock_systimer();
|
ticktime = clock_systimer() - INITIAL_SYSTEM_TIMER_TICKS;
|
||||||
|
|
||||||
#if defined(CONFIG_HAVE_DOUBLE) && defined(CONFIG_LIBC_FLOATINGPOINT)
|
#if defined(CONFIG_HAVE_DOUBLE) && defined(CONFIG_LIBC_FLOATINGPOINT)
|
||||||
/* Convert the system up time to a seconds + hundredths of seconds string */
|
/* Convert the system up time to a seconds + hundredths of seconds string */
|
||||||
|
@ -178,6 +178,19 @@
|
|||||||
#define TICK2HSEC(tick) (((tick)+(TICK_PER_HSEC/2))/TICK_PER_HSEC) /* Rounds */
|
#define TICK2HSEC(tick) (((tick)+(TICK_PER_HSEC/2))/TICK_PER_HSEC) /* Rounds */
|
||||||
#define TICK2SEC(tick) (((tick)+(TICK_PER_SEC/2))/TICK_PER_SEC) /* Rounds */
|
#define TICK2SEC(tick) (((tick)+(TICK_PER_SEC/2))/TICK_PER_SEC) /* Rounds */
|
||||||
|
|
||||||
|
#if defined(CONFIG_DEBUG_FEATURES) && defined(CONFIG_SYSTEM_TIME64) && \
|
||||||
|
defined(CONFIG_CLOCK_MONOTONIC)
|
||||||
|
/* Initial system timer ticks value close to maximum 32-bit value, to test
|
||||||
|
* 64-bit system-timer after going over 32-bit value. This is to make errors
|
||||||
|
* of casting 64-bit system-timer to 32-bit variables more visible.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define INITIAL_SYSTEM_TIMER_TICKS \
|
||||||
|
((uint64_t)(UINT32_MAX - (TICK_PER_SEC * 5)))
|
||||||
|
#else
|
||||||
|
# define INITIAL_SYSTEM_TIMER_TICKS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Types
|
* Public Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
@ -68,19 +68,6 @@
|
|||||||
#define SEC_PER_HOUR ((time_t)60 * SEC_PER_MIN)
|
#define SEC_PER_HOUR ((time_t)60 * SEC_PER_MIN)
|
||||||
#define SEC_PER_DAY ((time_t)24 * SEC_PER_HOUR)
|
#define SEC_PER_DAY ((time_t)24 * SEC_PER_HOUR)
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUG_FEATURES) && defined(CONFIG_SYSTEM_TIME64) && \
|
|
||||||
defined(CONFIG_CLOCK_MONOTONIC)
|
|
||||||
/* Initial system timer ticks value close to maximum 32-bit value, to test
|
|
||||||
* 64-bit system-timer after going over 32-bit value. This is to make errors
|
|
||||||
* of casting 64-bit system-timer to 32-bit variables more visible.
|
|
||||||
*/
|
|
||||||
|
|
||||||
# define INITIAL_SYSTEM_TIMER_TICKS \
|
|
||||||
((uint64_t)(UINT32_MAX - (TICK_PER_SEC * 5)))
|
|
||||||
#else
|
|
||||||
# define INITIAL_SYSTEM_TIMER_TICKS 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Data
|
* Public Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
Loading…
Reference in New Issue
Block a user