Remove TIME_EXTENDED option to more conform C standard

Gregory Nutt <gnutt@nuttx.org>

    Run all .c and .h files modified in this PR through nxstyle and correct all coding standard problems.

Xiang Xiao <xiaoxiang@xiaomi.com>

    Remove TIME_EXTENDED option to more conform C standard

    Note: the code/data size increment is small
This commit is contained in:
Xiang Xiao 2020-01-23 08:17:22 -06:00 committed by Gregory Nutt
parent c09071ffe8
commit 1e3f457c9e
33 changed files with 145 additions and 244 deletions

View File

@ -4359,9 +4359,7 @@ FAR struct tm *localtime(FAR const time_t *timep);
</p>
<ul><pre>
#include &lt;time.h&gt;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
FAR char *asctime(FAR const struct tm *tp);
#endif
</pre></ul>
<p>
<b>Description:</b>
@ -4388,9 +4386,7 @@ FAR char *asctime(FAR const struct tm *tp);
</p>
<ul><pre>
#include &lt;time.h&gt;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
FAR char *ctime(FAR const time_t *timep);
#endif
</pre></ul>
<p>
<b>Description:</b>
@ -4479,9 +4475,7 @@ FAR struct tm *localtime_r(FAR const time_t *timep, FAR struct tm *result);
</p>
<ul><pre>
#include &lt;time.h&gt;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
FAR char *asctime_r(FAR const struct tm *tp, FAR char *buf);
#endif
</pre></ul>
<p>
<b>Description:</b>
@ -4511,9 +4505,7 @@ FAR char *asctime_r(FAR const struct tm *tp, FAR char *buf);
</p>
<ul><pre>
#include &lt;time.h&gt;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
FAR char *ctime_r(FAR const time_t *timep, FAR char *buf);
#endif
</pre></ul>
<p>
<b>Description:</b>

View File

@ -65,6 +65,7 @@
************************************************************************************/
/* Configuration ********************************************************************/
/* This RTC implementation supports only date/time RTC hardware */
#ifndef CONFIG_RTC_DATETIME
@ -310,11 +311,8 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tp->tm_mday = ((getreg32(LPC43_RTC_DOM) & RTC_DOM_MASK));
tp->tm_mon = ((getreg32(LPC43_RTC_MONTH) & RTC_MONTH_MASK)) - 1;
tp->tm_year = ((getreg32(LPC43_RTC_YEAR) & RTC_YEAR_MASK)-1900);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
tp->tm_wday = ((getreg32(LPC43_RTC_DOW) & RTC_DOW_MASK));
tp->tm_yday = ((getreg32(LPC43_RTC_DOY) & RTC_DOY_MASK));
#endif
rtc_dumptime(tp, "Returning");
return OK;
@ -352,11 +350,8 @@ int up_rtc_settime(FAR const struct timespec *tp)
putreg32(((newtime.tm_mday) & RTC_DOM_MASK), LPC43_RTC_DOM);
putreg32((((newtime.tm_mon)+1) & RTC_MONTH_MASK), LPC43_RTC_MONTH);
putreg32(((newtime.tm_year) & RTC_YEAR_MASK)+1900, LPC43_RTC_YEAR);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
putreg32(((newtime.tm_wday) & RTC_DOW_MASK), LPC43_RTC_DOW);
putreg32(((newtime.tm_yday) & RTC_DOY_MASK), LPC43_RTC_DOY);
#endif
return OK;
}
@ -390,13 +385,16 @@ int lpc43_rtc_setalarm(FAR const struct timespec *tp, alarmcb_t callback)
g_alarmcb = callback;
/* Break out the time values */
#warning "Missing logic"
/* The set the alarm */
#warning "Missing logic"
ret = OK;
}
return ret;
}
#endif

View File

@ -61,7 +61,9 @@
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
/* Configuration ********************************************************************/
/* This RTC implementation supports only date/time RTC hardware */
#ifndef CONFIG_RTC_DATETIME
@ -102,6 +104,7 @@ volatile bool g_rtc_enabled = false;
/************************************************************************************
* Private Functions
************************************************************************************/
/************************************************************************************
* Name: rtc_dumpregs
************************************************************************************/
@ -523,6 +526,7 @@ int up_rtc_initialize(void)
rtc_dumpregs("On reset");
/* Select the clock source */
/* Save the token before losing it when resetting */
regval = getreg32(RTC_MAGIC_REG);
@ -776,6 +780,7 @@ int up_rtc_getdatetime(FAR struct tm *tp)
continue;
}
#endif
tmp = getreg32(STM32_RTC_DR);
if (tmp == dr)
{
@ -818,12 +823,12 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tmp = (dr & (RTC_DR_YU_MASK | RTC_DR_YT_MASK)) >> RTC_DR_YU_SHIFT;
tp->tm_year = rtc_bcd2bin(tmp) + 100;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
tmp = (dr & RTC_DR_WDU_MASK) >> RTC_DR_WDU_SHIFT;
tp->tm_wday = tmp % 7;
tp->tm_yday = tp->tm_mday + clock_daysbeforemonth(tp->tm_mon, clock_isleapyear(tp->tm_year + 1900));
tp->tm_yday = tp->tm_mday +
clock_daysbeforemonth(tp->tm_mon,
clock_isleapyear(tp->tm_year + 1900));
tp->tm_isdst = 0;
#endif
#ifdef CONFIG_STM32_HAVE_RTC_SUBSECONDS
/* Return RTC sub-seconds if no configured and if a non-NULL value
@ -964,9 +969,7 @@ int stm32_rtc_setdatetime(FAR const struct tm *tp)
dr = (rtc_bin2bcd(tp->tm_mday) << RTC_DR_DU_SHIFT) |
((rtc_bin2bcd(tp->tm_mon + 1)) << RTC_DR_MU_SHIFT) |
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
((tp->tm_wday == 0 ? 7 : (tp->tm_wday & 7)) << RTC_DR_WDU_SHIFT) |
#endif
((rtc_bin2bcd(tp->tm_year - 100)) << RTC_DR_YU_SHIFT);
dr &= ~RTC_DR_RESERVED_BITS;
@ -1063,9 +1066,11 @@ int stm32_rtc_setalarm(FAR const struct timespec *tp, alarmcb_t callback)
g_alarmcb = callback;
/* Break out the time values */
#warning "Missing logic"
/* The set the alarm */
#warning "Missing logic"
ret = OK;

View File

@ -65,6 +65,7 @@
****************************************************************************/
/* Configuration ************************************************************/
/* This RTC implementation supports
* - date/time RTC hardware
* - extended functions Alarm A and B for STM32F4xx and onwards
@ -198,7 +199,7 @@ static void rtc_dumpregs(FAR const char *msg)
((getreg32(STM32_EXTI_FTSR) & EXTI_RTC_ALARM) ? 0x0100 : 0) |
((getreg32(STM32_EXTI_IMR) & EXTI_RTC_ALARM) ? 0x0010 : 0) |
((getreg32(STM32_EXTI_EMR) & EXTI_RTC_ALARM) ? 0x0001 : 0);
rtcinfo("EXTI (RTSR FTSR ISR EVT): %01x\n",rtc_state);
rtcinfo("EXTI (RTSR FTSR ISR EVT): %01x\n", rtc_state);
}
#else
# define rtc_dumpregs(msg)
@ -852,7 +853,8 @@ static inline void rtc_enable_alarm(void)
#ifdef CONFIG_RTC_ALARM
static int stm32_rtc_getalarmdatetime(rtc_alarmreg_t reg, FAR struct tm *tp)
{
uint32_t data, tmp;
uint32_t data;
uint32_t tmp;
DEBUGASSERT(tp != NULL);
@ -915,6 +917,7 @@ int up_rtc_initialize(void)
*/
/* Select the clock source */
/* Save the token before losing it when resetting */
regval = getreg32(RTC_MAGIC_REG);
@ -1085,7 +1088,7 @@ int up_rtc_initialize(void)
return OK;
}
/************************************************************************************
/****************************************************************************
* Name: stm32_rtc_irqinitialize
*
* Description:
@ -1098,7 +1101,7 @@ int up_rtc_initialize(void)
* Returned Value:
* Zero (OK) on success; a negated errno on failure
*
************************************************************************************/
****************************************************************************/
int stm32_rtc_irqinitialize(void)
{
@ -1162,6 +1165,7 @@ int up_rtc_getdatetime(FAR struct tm *tp)
continue;
}
#endif
tmp = getreg32(STM32_RTC_DR);
if (tmp == dr)
{
@ -1204,12 +1208,12 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tmp = (dr & (RTC_DR_YU_MASK | RTC_DR_YT_MASK)) >> RTC_DR_YU_SHIFT;
tp->tm_year = rtc_bcd2bin(tmp) + 100;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
tmp = (dr & RTC_DR_WDU_MASK) >> RTC_DR_WDU_SHIFT;
tp->tm_wday = tmp % 7;
tp->tm_yday = tp->tm_mday + clock_daysbeforemonth(tp->tm_mon, clock_isleapyear(tp->tm_year + 1900));
tp->tm_yday = tp->tm_mday +
clock_daysbeforemonth(tp->tm_mon,
clock_isleapyear(tp->tm_year + 1900));
tp->tm_isdst = 0;
#endif
#ifdef CONFIG_STM32_HAVE_RTC_SUBSECONDS
/* Return RTC sub-seconds if no configured and if a non-NULL value
@ -1318,9 +1322,7 @@ int stm32_rtc_setdatetime(FAR const struct tm *tp)
dr = (rtc_bin2bcd(tp->tm_mday) << RTC_DR_DU_SHIFT) |
((rtc_bin2bcd(tp->tm_mon + 1)) << RTC_DR_MU_SHIFT) |
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
((tp->tm_wday == 0 ? 7 : (tp->tm_wday & 7)) << RTC_DR_WDU_SHIFT) |
#endif
((rtc_bin2bcd(tp->tm_year - 100)) << RTC_DR_YU_SHIFT);
dr &= ~RTC_DR_RESERVED_BITS;

View File

@ -66,6 +66,7 @@
****************************************************************************/
/* Configuration ************************************************************/
/* This RTC implementation supports
* - date/time RTC hardware
* - extended functions Alarm A and B
@ -216,7 +217,7 @@ static void rtc_dumptime(FAR const struct tm *tp, FAR const char *msg)
rtcinfo(" tm_year: %08x\n", tp->tm_year);
#else
rtcinfo(" tm: %04d-%02d-%02d %02d:%02d:%02d\n",
tp->tm_year+1900, tp->tm_mon+1, tp->tm_mday,
tp->tm_year + 1900, tp->tm_mon + 1, tp->tm_mday,
tp->tm_hour, tp->tm_min, tp->tm_sec);
#endif
}
@ -493,7 +494,8 @@ static void rtc_resume(void)
****************************************************************************/
#ifdef CONFIG_RTC_ALARM
static int stm32_rtc_alarm_handler(int irq, FAR void *context, FAR void *rtc_handler_arg)
static int stm32_rtc_alarm_handler(int irq, FAR void *context,
FAR void *rtc_handler_arg)
{
FAR struct alm_cbinfo_s *cbinfo;
alm_callback_t cb;
@ -802,7 +804,8 @@ static inline void rtc_enable_alarm(void)
#ifdef CONFIG_RTC_ALARM
static int stm32_rtc_getalarmdatetime(rtc_alarmreg_t reg, FAR struct tm *tp)
{
uint32_t data, tmp;
uint32_t data;
uint32_t tmp;
DEBUGASSERT(tp != NULL);
@ -1017,7 +1020,7 @@ int up_rtc_initialize(void)
return OK;
}
/************************************************************************************
/****************************************************************************
* Name: stm32_rtc_irqinitialize
*
* Description:
@ -1030,7 +1033,7 @@ int up_rtc_initialize(void)
* Returned Value:
* Zero (OK) on success; a negated errno on failure
*
************************************************************************************/
****************************************************************************/
int stm32_rtc_irqinitialize(void)
{
@ -1089,6 +1092,7 @@ int stm32_rtc_getdatetime_with_subseconds(FAR struct tm *tp, FAR long *nsec)
continue;
}
#endif
tmp = getreg32(STM32_RTC_DR);
if (tmp == dr)
{
@ -1131,12 +1135,12 @@ int stm32_rtc_getdatetime_with_subseconds(FAR struct tm *tp, FAR long *nsec)
tmp = (dr & (RTC_DR_YU_MASK | RTC_DR_YT_MASK)) >> RTC_DR_YU_SHIFT;
tp->tm_year = rtc_bcd2bin(tmp) + 100;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
tmp = (dr & RTC_DR_WDU_MASK) >> RTC_DR_WDU_SHIFT;
tp->tm_wday = tmp % 7;
tp->tm_yday = tp->tm_mday + clock_daysbeforemonth(tp->tm_mon, clock_isleapyear(tp->tm_year + 1900));
tp->tm_yday = tp->tm_mday +
clock_daysbeforemonth(tp->tm_mon,
clock_isleapyear(tp->tm_year + 1900));
tp->tm_isdst = 0;
#endif
/* Return RTC sub-seconds if a non-NULL value
* of nsec has been provided to receive the sub-second value.
@ -1202,14 +1206,15 @@ int up_rtc_getdatetime(FAR struct tm *tp)
* Description:
* Get the current date and time from the date/time RTC. This interface
* is only supported by the date/time RTC hardware implementation.
* It is used to replace the system timer. It is only used by the RTOS during
* initialization to set up the system time when CONFIG_RTC and CONFIG_RTC_DATETIME
* are selected (and CONFIG_RTC_HIRES is not).
* It is used to replace the system timer. It is only used by the RTOS
* during initialization to set up the system time when CONFIG_RTC and
* CONFIG_RTC_DATETIME are selected (and CONFIG_RTC_HIRES is not).
*
* NOTE: This interface exposes sub-second accuracy capability of RTC hardware.
* This interface allow maintaining timing accuracy when system time needs constant
* resynchronization with RTC, for example with board level power-save mode utilizing
* deep-sleep modes such as STOP on STM32 MCUs.
* NOTE: This interface exposes sub-second accuracy capability of RTC
* hardware. This interface allow maintaining timing accuracy when
* system time needs constant resynchronization with RTC, for example
* with board level power-save mode utilizing deep-sleep modes such as
* STOP on STM32 MCUs.
*
* Input Parameters:
* tp - The location to return the high resolution time value.
@ -1277,9 +1282,7 @@ int stm32_rtc_setdatetime(FAR const struct tm *tp)
dr = (rtc_bin2bcd(tp->tm_mday) << RTC_DR_DU_SHIFT) |
((rtc_bin2bcd(tp->tm_mon + 1)) << RTC_DR_MU_SHIFT) |
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
((tp->tm_wday == 0 ? 7 : (tp->tm_wday & 7)) << RTC_DR_WDU_SHIFT) |
#endif
((rtc_bin2bcd(tp->tm_year - 100)) << RTC_DR_YU_SHIFT);
dr &= ~RTC_DR_RESERVED_BITS;
@ -1661,13 +1664,13 @@ static inline void rtc_enable_wakeup(void)
}
#endif
/************************************************************************************
/****************************************************************************
* Name: rtc_set_wcksel
*
* Description:
* Sets RTC wakeup clock selection value
*
************************************************************************************/
****************************************************************************/
#ifdef CONFIG_RTC_PERIODIC
static inline void rtc_set_wcksel(unsigned int wucksel)
@ -1711,7 +1714,7 @@ int stm32_rtc_setperiodic(FAR const struct timespec *period, wakeupcb_t callback
#elif defined(CONFIG_STM32_RTC_LSICLOCK)
# error "Periodic wakeup not available for LSI (and it is too inaccurate!)"
#elif defined(CONFIG_STM32_RTC_LSECLOCK)
const uint32_t rtc_div16_max_msecs = 16 * 1000 * 0xffffU / STM32_LSE_FREQUENCY;
const uint32_t rtc_div16_max_msecs = 16 * 1000 * 0xffffu / STM32_LSE_FREQUENCY;
#else
# error "No clock for RTC!"
#endif
@ -1722,12 +1725,12 @@ int stm32_rtc_setperiodic(FAR const struct timespec *period, wakeupcb_t callback
* We currently go for subseconds accuracy instead of maximum period.
*/
if (period->tv_sec > 0xffffU ||
(period->tv_sec == 0xffffU && period->tv_nsec > 0))
if (period->tv_sec > 0xffffu ||
(period->tv_sec == 0xffffu && period->tv_nsec > 0))
{
/* More than max. */
secs = 0xffffU;
secs = 0xffffu;
millisecs = secs * 1000;
}
else
@ -1833,6 +1836,7 @@ int stm32_rtc_setperiodic(FAR const struct timespec *period, wakeupcb_t callback
* Zero (OK) on success; a negated errno on failure
*
****************************************************************************/
#ifdef CONFIG_RTC_PERIODIC
int stm32_rtc_cancelperiodic(void)
{

View File

@ -1147,6 +1147,7 @@ int up_rtc_getdatetime(FAR struct tm *tp)
continue;
}
#endif
tmp = getreg32(STM32_RTC_DR);
if (tmp == dr)
{
@ -1189,13 +1190,11 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tmp = (dr & (RTC_DR_YU_MASK | RTC_DR_YT_MASK)) >> RTC_DR_YU_SHIFT;
tp->tm_year = rtc_bcd2bin(tmp) + 100;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
tmp = (dr & RTC_DR_WDU_MASK) >> RTC_DR_WDU_SHIFT;
tp->tm_wday = tmp % 7;
tp->tm_yday = tp->tm_mday +
clock_daysbeforemonth(tp->tm_mon, clock_isleapyear(tp->tm_year + 1900));
tp->tm_isdst = 0;
#endif
#ifdef CONFIG_STM32F7_HAVE_RTC_SUBSECONDS
/* Return RTC sub-seconds if a non-NULL value
@ -1340,9 +1339,7 @@ int stm32_rtc_setdatetime(FAR const struct tm *tp)
dr = (rtc_bin2bcd(tp->tm_mday) << RTC_DR_DU_SHIFT) |
((rtc_bin2bcd(tp->tm_mon + 1)) << RTC_DR_MU_SHIFT) |
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
((tp->tm_wday == 0 ? 7 : (tp->tm_wday & 7)) << RTC_DR_WDU_SHIFT) |
#endif
((rtc_bin2bcd(tp->tm_year - 100)) << RTC_DR_YU_SHIFT);
dr &= ~RTC_DR_RESERVED_BITS;
@ -1742,13 +1739,13 @@ static inline void rtc_enable_wakeup(void)
}
#endif
/************************************************************************************
/****************************************************************************
* Name: rtc_set_wcksel
*
* Description:
* Sets RTC wakeup clock selection value
*
************************************************************************************/
****************************************************************************/
#ifdef CONFIG_RTC_PERIODIC
static inline void rtc_set_wcksel(unsigned int wucksel)

View File

@ -1147,6 +1147,7 @@ int up_rtc_getdatetime(FAR struct tm *tp)
continue;
}
#endif
tmp = getreg32(STM32_RTC_DR);
if (tmp == dr)
{
@ -1189,13 +1190,11 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tmp = (dr & (RTC_DR_YU_MASK | RTC_DR_YT_MASK)) >> RTC_DR_YU_SHIFT;
tp->tm_year = rtc_bcd2bin(tmp) + 100;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
tmp = (dr & RTC_DR_WDU_MASK) >> RTC_DR_WDU_SHIFT;
tp->tm_wday = tmp % 7;
tp->tm_yday = tp->tm_mday +
clock_daysbeforemonth(tp->tm_mon, clock_isleapyear(tp->tm_year + 1900));
tp->tm_isdst = 0;
#endif
#ifdef CONFIG_STM32H7_HAVE_RTC_SUBSECONDS
/* Return RTC sub-seconds if a non-NULL value
@ -1340,9 +1339,7 @@ int stm32_rtc_setdatetime(FAR const struct tm *tp)
dr = (rtc_bin2bcd(tp->tm_mday) << RTC_DR_DU_SHIFT) |
((rtc_bin2bcd(tp->tm_mon + 1)) << RTC_DR_MU_SHIFT) |
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
((tp->tm_wday == 0 ? 7 : (tp->tm_wday & 7)) << RTC_DR_WDU_SHIFT) |
#endif
((rtc_bin2bcd(tp->tm_year - 100)) << RTC_DR_YU_SHIFT);
dr &= ~RTC_DR_RESERVED_BITS;
@ -1742,13 +1739,13 @@ static inline void rtc_enable_wakeup(void)
}
#endif
/************************************************************************************
/****************************************************************************
* Name: rtc_set_wcksel
*
* Description:
* Sets RTC wakeup clock selection value
*
************************************************************************************/
****************************************************************************/
#ifdef CONFIG_RTC_PERIODIC
static inline void rtc_set_wcksel(unsigned int wucksel)

View File

@ -67,6 +67,7 @@
****************************************************************************/
/* Configuration ************************************************************/
/* This RTC implementation supports
* - date/time RTC hardware
* - extended functions Alarm A and B
@ -195,7 +196,7 @@ static void rtc_dumptime(FAR const struct tm *tp, FAR const char *msg)
rtcinfo(" tm_year: %08x\n", tp->tm_year);
#else
rtcinfo(" tm: %04d-%02d-%02d %02d:%02d:%02d\n",
tp->tm_year+1900, tp->tm_mon+1, tp->tm_mday,
tp->tm_year + 1900, tp->tm_mon + 1, tp->tm_mday,
tp->tm_hour, tp->tm_min, tp->tm_sec);
#endif
}
@ -226,7 +227,7 @@ static void rtc_wprunlock(void)
/* The following steps are required to unlock the write protection on all the
* RTC registers (except for RTC_ISR[13:8], RTC_TAFCR, and RTC_BKPxR).
*
* 1. Write 0xCA into the RTC_WPR register.
* 1. Write 0xca into the RTC_WPR register.
* 2. Write 0x53 into the RTC_WPR register.
*
* Writing a wrong key re-activates the write protection.
@ -472,7 +473,8 @@ static void rtc_resume(void)
****************************************************************************/
#ifdef CONFIG_RTC_ALARM
static int stm32l4_rtc_alarm_handler(int irq, FAR void *context, FAR void *rtc_handler_arg)
static int stm32l4_rtc_alarm_handler(int irq, FAR void *context,
FAR void *rtc_handler_arg)
{
FAR struct alm_cbinfo_s *cbinfo;
alm_callback_t cb;
@ -781,7 +783,8 @@ static inline void rtc_enable_alarm(void)
#ifdef CONFIG_RTC_ALARM
static int stm32l4_rtc_getalarmdatetime(rtc_alarmreg_t reg, FAR struct tm *tp)
{
uint32_t data, tmp;
uint32_t data;
uint32_t tmp;
DEBUGASSERT(tp != NULL);
@ -1046,6 +1049,7 @@ int stm32l4_rtc_getdatetime_with_subseconds(FAR struct tm *tp, FAR long *nsec)
continue;
}
#endif
tmp = getreg32(STM32L4_RTC_DR);
if (tmp == dr)
{
@ -1088,12 +1092,12 @@ int stm32l4_rtc_getdatetime_with_subseconds(FAR struct tm *tp, FAR long *nsec)
tmp = (dr & (RTC_DR_YU_MASK | RTC_DR_YT_MASK)) >> RTC_DR_YU_SHIFT;
tp->tm_year = rtc_bcd2bin(tmp) + 100;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
tmp = (dr & RTC_DR_WDU_MASK) >> RTC_DR_WDU_SHIFT;
tp->tm_wday = tmp % 7;
tp->tm_yday = tp->tm_mday + clock_daysbeforemonth(tp->tm_mon, clock_isleapyear(tp->tm_year + 1900));
tp->tm_yday = tp->tm_mday +
clock_daysbeforemonth(tp->tm_mon,
clock_isleapyear(tp->tm_year + 1900));
tp->tm_isdst = 0;
#endif
/* Return RTC sub-seconds if a non-NULL value
* of nsec has been provided to receive the sub-second value.
@ -1159,14 +1163,15 @@ int up_rtc_getdatetime(FAR struct tm *tp)
* Description:
* Get the current date and time from the date/time RTC. This interface
* is only supported by the date/time RTC hardware implementation.
* It is used to replace the system timer. It is only used by the RTOS during
* initialization to set up the system time when CONFIG_RTC and CONFIG_RTC_DATETIME
* are selected (and CONFIG_RTC_HIRES is not).
* It is used to replace the system timer. It is only used by the RTOS
* during initialization to set up the system time when CONFIG_RTC and
* CONFIG_RTC_DATETIME are selected (and CONFIG_RTC_HIRES is not).
*
* NOTE: This interface exposes sub-second accuracy capability of RTC hardware.
* This interface allow maintaining timing accuracy when system time needs constant
* resynchronization with RTC, for example with board level power-save mode utilizing
* deep-sleep modes such as STOP on STM32 MCUs.
* NOTE: This interface exposes sub-second accuracy capability of RTC
* hardware. This interface allow maintaining timing accuracy when system
* time needs constant resynchronization with RTC, for example with board
* level power-save mode utilizing deep-sleep modes such as STOP on STM32
* MCUs.
*
* Input Parameters:
* tp - The location to return the high resolution time value.
@ -1234,9 +1239,7 @@ int stm32l4_rtc_setdatetime(FAR const struct tm *tp)
dr = (rtc_bin2bcd(tp->tm_mday) << RTC_DR_DU_SHIFT) |
((rtc_bin2bcd(tp->tm_mon + 1)) << RTC_DR_MU_SHIFT) |
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
((tp->tm_wday == 0 ? 7 : (tp->tm_wday & 7)) << RTC_DR_WDU_SHIFT) |
#endif
((rtc_bin2bcd(tp->tm_year - 100)) << RTC_DR_YU_SHIFT);
dr &= ~RTC_DR_RESERVED_BITS;
@ -1618,13 +1621,13 @@ static inline void rtc_enable_wakeup(void)
}
#endif
/************************************************************************************
/****************************************************************************
* Name: rtc_set_wcksel
*
* Description:
* Sets RTC wakeup clock selection value
*
************************************************************************************/
****************************************************************************/
#ifdef CONFIG_RTC_PERIODIC
static inline void rtc_set_wcksel(unsigned int wucksel)
@ -1668,7 +1671,7 @@ int stm32l4_rtc_setperiodic(FAR const struct timespec *period, wakeupcb_t callba
#elif defined(CONFIG_STM32L4_RTC_LSICLOCK)
# error "Periodic wakeup not available for LSI (and it is too inaccurate!)"
#elif defined(CONFIG_STM32L4_RTC_LSECLOCK)
const uint32_t rtc_div16_max_msecs = 16 * 1000 * 0xffffU / STM32L4_LSE_FREQUENCY;
const uint32_t rtc_div16_max_msecs = 16 * 1000 * 0xffffu / STM32L4_LSE_FREQUENCY;
#else
# error "No clock for RTC!"
#endif
@ -1679,12 +1682,12 @@ int stm32l4_rtc_setperiodic(FAR const struct timespec *period, wakeupcb_t callba
* We currently go for subseconds accuracy instead of maximum period.
*/
if (period->tv_sec > 0xffffU ||
(period->tv_sec == 0xffffU && period->tv_nsec > 0))
if (period->tv_sec > 0xffffu ||
(period->tv_sec == 0xffffu && period->tv_nsec > 0))
{
/* More than max. */
secs = 0xffffU;
secs = 0xffffu;
millisecs = secs * 1000;
}
else
@ -1790,6 +1793,7 @@ int stm32l4_rtc_setperiodic(FAR const struct timespec *period, wakeupcb_t callba
* Zero (OK) on success; a negated errno on failure
*
****************************************************************************/
#ifdef CONFIG_RTC_PERIODIC
int stm32l4_rtc_cancelperiodic(void)
{

View File

@ -35,7 +35,6 @@ config EZ80_RTC
default n
select RTC
select RTC_DATETIME
select TIME_EXTENDED
config EZ80_EMAC
bool "Ethernet MAC"

View File

@ -72,7 +72,7 @@
/****************************************************************************
* Private Types
*****************************************************************************/
****************************************************************************/
/* Raw time from the RTC. All are binary. */
@ -198,9 +198,7 @@ static void rtc_dumptime(FAR const struct tm *tp, FAR const char *msg)
rtcinfo(" tm_sec: %08x\n", tp->tm_sec);
rtcinfo(" tm_min: %08x\n", tp->tm_min);
rtcinfo(" tm_hour: %08x\n", tp->tm_hour);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
rtcinfo(" tm_wday: %08x\n", tp->tm_wday);
#endif
rtcinfo(" tm_mday: %08x\n", tp->tm_mday);
rtcinfo(" tm_mon: %08x\n", tp->tm_mon);
rtcinfo(" tm_year: %08x\n", tp->tm_year);
@ -229,7 +227,7 @@ static void rtc_unlock(void)
regval = inp(EZ80_RTC_CTRL);
regval |= EZ80_RTC_UNLOCK;
outp(EZ80_RTC_CTRL,regval);
outp(EZ80_RTC_CTRL, regval);
}
/****************************************************************************
@ -252,7 +250,7 @@ static void rtc_lock(void)
regval = inp(EZ80_RTC_CTRL);
regval &= ~EZ80_RTC_UNLOCK;
outp(EZ80_RTC_CTRL,regval);
outp(EZ80_RTC_CTRL, regval);
}
/****************************************************************************
@ -453,7 +451,7 @@ int up_rtc_initialize(void)
return OK;
}
/************************************************************************************
/****************************************************************************
* Name: z80_rtc_irqinitialize
*
* Description:
@ -466,7 +464,7 @@ int up_rtc_initialize(void)
* Returned Value:
* Zero (OK) on success; a negated errno on failure
*
************************************************************************************/
****************************************************************************/
#ifdef CONFIG_RTC_ALARM
int z80_rtc_irqinitialize(void)
@ -642,9 +640,7 @@ int ez80_rtc_setalarm(FAR struct alm_setalarm_s *alminfo)
almregs.sec = alminfo->as_time.tm_sec;
almregs.min = alminfo->as_time.tm_min;
almregs.hrs = alminfo->as_time.tm_hour;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
almregs.dow = alminfo->as_time.tm_wday;
#endif
set_raw_alarm(&almregs);
@ -747,9 +743,7 @@ int ez80_rtc_rdalarm(FAR struct tm *almtime)
almtime->tm_sec = almregs.sec;
almtime->tm_min = almregs.min;
almtime->tm_hour = almregs.hrs;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
almtime->tm_wday = almregs.dow;
#endif
rtc_dumptime((FAR const struct tm *)almtime, "Returning");
return OK;

View File

@ -70,7 +70,6 @@ CONFIG_SIM_WALLTIME=y
CONFIG_START_DAY=3
CONFIG_START_MONTH=4
CONFIG_SYSTEM_NSH=y
CONFIG_TIME_EXTENDED=y
CONFIG_USERMAIN_STACKSIZE=4096
CONFIG_USER_ENTRYPOINT="nsh_main"
CONFIG_WIRELESS=y

View File

@ -72,7 +72,6 @@ CONFIG_SIM_WALLTIME=y
CONFIG_START_MONTH=6
CONFIG_START_YEAR=2008
CONFIG_SYSTEM_NSH=y
CONFIG_TIME_EXTENDED=y
CONFIG_TUN_NINTERFACES=2
CONFIG_USERMAIN_STACKSIZE=4096
CONFIG_USER_ENTRYPOINT="nsh_main"

View File

@ -51,6 +51,5 @@ CONFIG_SIM_WALLTIME=y
CONFIG_START_MONTH=6
CONFIG_START_YEAR=2008
CONFIG_SYSTEM_NSH=m
CONFIG_TIME_EXTENDED=y
CONFIG_USERMAIN_STACKSIZE=4096
CONFIG_USER_INITPATH="/system/bin/nsh"

View File

@ -56,6 +56,5 @@ CONFIG_SIM_WALLTIME=y
CONFIG_START_MONTH=6
CONFIG_START_YEAR=2008
CONFIG_SYSTEM_NSH=y
CONFIG_TIME_EXTENDED=y
CONFIG_USERMAIN_STACKSIZE=4096
CONFIG_USER_ENTRYPOINT="nsh_main"

View File

@ -58,6 +58,5 @@ CONFIG_SIM_WALLTIME=y
CONFIG_START_MONTH=6
CONFIG_START_YEAR=2008
CONFIG_SYSTEM_NSH=y
CONFIG_TIME_EXTENDED=y
CONFIG_USERMAIN_STACKSIZE=4096
CONFIG_USER_ENTRYPOINT="nsh_main"

View File

@ -61,6 +61,5 @@ CONFIG_SIM_WALLTIME=y
CONFIG_START_MONTH=6
CONFIG_START_YEAR=2008
CONFIG_SYSTEM_NSH=y
CONFIG_TIME_EXTENDED=y
CONFIG_USERMAIN_STACKSIZE=8192
CONFIG_USER_ENTRYPOINT="nsh_main"

View File

@ -78,18 +78,16 @@ Version 5.2.1
This is the change to suppress building these files:
diff --git a/libs/libc/time/Make.defs b/libs/libc/time/Make.defs
index 5c9b746778..8327e287f4 100644
index 2a26d556ff..08fd0b7bcd 100644
--- a/libs/libc/time/Make.defs
+++ b/libs/libc/time/Make.defs
@@ -44,7 +44,7 @@ ifdef CONFIG_LIBC_LOCALTIME
CSRCS += lib_localtime.c lib_asctime.c lib_asctimer.c lib_ctime.c
CSRCS += lib_ctimer.c
@@ -44,7 +44,7 @@ CSRCS += lib_asctime.c lib_asctimer.c lib_ctime.c lib_ctimer.c
ifdef CONFIG_LIBC_LOCALTIME
CSRCS += lib_localtime.c
else
-CSRCS += lib_mktime.c lib_gmtime.c lib_gmtimer.c
+CSRCS += lib_mktime.c # lib_gmtime.c lib_gmtimer.c
ifdef CONFIG_TIME_EXTENDED
CSRCS += lib_dayofweek.c lib_asctime.c lib_asctimer.c lib_ctime.c
CSRCS += lib_ctimer.c
+CSRCS += lib_mktime.c #lib_gmtime.c lib_gmtimer.c
endif
The consequence is, of course, that these interfaces will not be available
to applications.

View File

@ -136,11 +136,9 @@ static void rtc_dumptime(FAR struct tm *tp, FAR const char *msg)
rtcinfo(" tm_mday: %08x\n", tp->tm_mday);
rtcinfo(" tm_mon: %08x\n", tp->tm_mon);
rtcinfo(" tm_year: %08x\n", tp->tm_year);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
rtcinfo(" tm_wday: %08x\n", tp->tm_wday);
rtcinfo(" tm_yday: %08x\n", tp->tm_yday);
rtcinfo(" tm_isdst: %08x\n", tp->tm_isdst);
#endif
}
#else
# define rtc_dumptime(tp, msg)
@ -270,12 +268,9 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tp->tm_min = 0;
tp->tm_hour = 0;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/* Jan 1, 1970 was a Thursday */
tp->tm_wday = 4;
#endif
tp->tm_mday = 1;
tp->tm_mon = 0;
tp->tm_year = 70;
@ -346,11 +341,9 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tp->tm_hour = rtc_bcd2bin(buffer[2] & DSXXXX_TIME_HOUR24_BCDMASK);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/* Return the day of the week (0-6) */
tp->tm_wday = (rtc_bcd2bin(buffer[3]) & DSXXXX_TIME_DAY_MASK) - 1;
#endif
/* Return the day of the month (1-31) */
@ -469,11 +462,7 @@ int up_rtc_settime(FAR const struct timespec *tp)
/* Save the day of the week (1-7) */
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
buffer[4] = rtc_bin2bcd(newtm.tm_wday + 1);
#else
buffer[4] = 1;
#endif
/* Save the day of the month (1-31) */

View File

@ -142,11 +142,9 @@ static void rtc_dumptime(FAR struct tm *tp, FAR const char *msg)
rtcinfo(" tm_mday: %08x\n", tp->tm_mday);
rtcinfo(" tm_mon: %08x\n", tp->tm_mon);
rtcinfo(" tm_year: %08x\n", tp->tm_year);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
rtcinfo(" tm_wday: %08x\n", tp->tm_wday);
rtcinfo(" tm_yday: %08x\n", tp->tm_yday);
rtcinfo(" tm_isdst: %08x\n", tp->tm_isdst);
#endif
}
#else
# define rtc_dumptime(tp, msg)
@ -280,12 +278,9 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tp->tm_min = 0;
tp->tm_hour = 0;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/* Jan 1, 1970 was a Thursday */
tp->tm_wday = 4;
#endif
tp->tm_mday = 1;
tp->tm_mon = 0;
tp->tm_year = 70;
@ -358,11 +353,9 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tp->tm_hour = rtc_bcd2bin(buffer[2] & MCP794XX_RTCHOUR_BCDMASK);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/* Return the day of the week (0-6) */
tp->tm_wday = (rtc_bcd2bin(buffer[3]) & MCP794XX_RTCWKDAY_BCDMASK) - 1;
#endif
/* Return the day of the month (1-31) */
@ -523,11 +516,7 @@ int up_rtc_settime(FAR const struct timespec *tp)
/* Save the day of the week (1-7) and enable VBAT. */
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
buffer[4] = rtc_bin2bcd(newtm.tm_wday + 1) | MCP794XX_RTCWKDAY_VBATEN;
#else
buffer[4] = 1 | MCP794XX_RTCWKDAY_VBATEN;
#endif
/* Save the day of the month (1-31) */

View File

@ -136,11 +136,9 @@ static void rtc_dumptime(FAR struct tm *tp, FAR const char *msg)
rtcinfo(" tm_mday: %08x\n", tp->tm_mday);
rtcinfo(" tm_mon: %08x\n", tp->tm_mon);
rtcinfo(" tm_year: %08x\n", tp->tm_year);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
rtcinfo(" tm_wday: %08x\n", tp->tm_wday);
rtcinfo(" tm_yday: %08x\n", tp->tm_yday);
rtcinfo(" tm_isdst: %08x\n", tp->tm_isdst);
#endif
}
#else
# define rtc_dumptime(tp, msg)
@ -269,12 +267,9 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tp->tm_min = 0;
tp->tm_hour = 0;
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/* Jan 1, 1970 was a Thursday */
tp->tm_wday = 4;
#endif
tp->tm_mday = 1;
tp->tm_mon = 0;
tp->tm_year = 70;
@ -349,11 +344,9 @@ int up_rtc_getdatetime(FAR struct tm *tp)
tp->tm_mday = rtc_bcd2bin(buffer[3] & PCF85263_RTC_DAYS_MASK);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/* Return the day of the week (0-6) */
tp->tm_wday = (rtc_bcd2bin(buffer[4]) & PCF85263_RTC_WEEKDAYS_MASK);
#endif
/* Return the month (0-11) */
@ -460,11 +453,7 @@ int up_rtc_settime(FAR const struct timespec *tp)
/* Save the day of the week (1-7) */
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
buffer[6] = rtc_bin2bcd(newtm.tm_wday);
#else
buffer[6] = 0;
#endif
/* Save the month (1-12) */

View File

@ -116,9 +116,7 @@ int clock_daysbeforemonth(int month, bool leapyear);
*
****************************************************************************/
#if defined(CONFIG_TIME_EXTENDED)
int clock_dayoftheweek(int mday, int month, int year);
#endif
/****************************************************************************
* Name: clock_calendar2utc

View File

@ -60,7 +60,9 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
/* CONFIG_RTC - Enables general support for a hardware RTC. Specific
* architectures may require other specific settings.
*
@ -125,6 +127,7 @@
#ifdef CONFIG_RTC_DRIVER
/* IOCTL Commands ***********************************************************/
/* RTC driver IOCTL commands. These are Linux compatible command names, not
* all of these commands are supported by all RTC drivers, however.
*/
@ -145,7 +148,6 @@
#define RTC_SET_TIME _RTCIOC(0x0002)
/* RTC_HAVE_SET_TIME checks if RTC's time had been set
*
* Argument: A writable reference to a bool to receive true/false return value
@ -212,6 +214,7 @@
/****************************************************************************
* Public Types
****************************************************************************/
/* IOCTL data structures */
/* Broken-out time representation used with RTC IOCTL commands:
@ -229,11 +232,9 @@ struct rtc_time
int tm_mday; /* Day of the month (1-31) */
int tm_mon; /* Month (0-11) */
int tm_year; /* Years since 1900 */
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
int tm_wday; /* Day of the week (0-6) (unused) */
int tm_yday; /* Day of the year (0-365) (unused) */
int tm_isdst; /* Non-0 if daylight savings time is in effect (unused) */
#endif
#if defined(CONFIG_RTC_HIRES) || defined(CONFIG_ARCH_HAVE_RTC_SUBSECONDS)
long tm_nsec; /* Nanosecond (0-999999999) */
#endif
@ -246,29 +247,29 @@ struct rtc_time
struct rtc_rdalarm_s
{
uint8_t id; /* Indicates the alarm being queried */
bool active; /* Alarm actively timing or disabled */
struct rtc_time time; /* Current RTC time (if enabled) */
uint8_t id; /* Indicates the alarm being queried */
bool active; /* Alarm actively timing or disabled */
struct rtc_time time; /* Current RTC time (if enabled) */
};
/* Structure used with the RTC_SET_ALARM IOCTL command. */
struct rtc_setalarm_s
{
uint8_t id; /* Indicates the alarm to be set */
pid_t pid; /* Identifies task to be notified (0=caller) */
struct sigevent event; /* Describe the way a task is to be notified */
struct rtc_time time; /* Alarm time */
uint8_t id; /* Indicates the alarm to be set */
pid_t pid; /* Identifies task to be notified (0=caller) */
struct sigevent event; /* Describe the way a task is to be notified */
struct rtc_time time; /* Alarm time */
};
/* Structure used with the RTC_SET_RELATIVE IOCTL command. */
struct rtc_setrelative_s
{
uint8_t id; /* Indicates the alarm to be set */
pid_t pid; /* Identifies task to be notified (0=caller) */
struct sigevent event; /* Describe the way a task is to be notified */
time_t reltime; /* Relative time in seconds */
uint8_t id; /* Indicates the alarm to be set */
pid_t pid; /* Identifies task to be notified (0=caller) */
struct sigevent event; /* Describe the way a task is to be notified */
time_t reltime; /* Relative time in seconds */
};
/* Callback type used by the RTC hardware to notify the RTC driver when the
@ -281,29 +282,29 @@ typedef CODE void (*rtc_alarm_callback_t)(FAR void *priv, int alarmid);
struct lower_setalarm_s
{
uint8_t id; /* Indicates the alarm to be set */
rtc_alarm_callback_t cb; /* Callback when the alarm expires */
FAR void *priv; /* Private argument to accompany callback */
struct rtc_time time; /* Alarm time */
uint8_t id; /* Indicates the alarm to be set */
rtc_alarm_callback_t cb; /* Callback when the alarm expires */
FAR void *priv; /* Private argument to accompany callback */
struct rtc_time time; /* Alarm time */
};
/* Structure used with the setrelative method */
struct lower_setrelative_s
{
uint8_t id; /* Indicates the alarm to be set */
rtc_alarm_callback_t cb; /* Callback when the alarm expires */
FAR void *priv; /* Private argument to accompany callback */
time_t reltime; /* Relative time in seconds */
uint8_t id; /* Indicates the alarm to be set */
rtc_alarm_callback_t cb; /* Callback when the alarm expires */
FAR void *priv; /* Private argument to accompany callback */
time_t reltime; /* Relative time in seconds */
};
/* Structure used with the rdalarm method */
struct lower_rdalarm_s
{
uint8_t id; /* Indicates the alarm to be set */
FAR void *priv; /* Private argument to accompany callback */
FAR struct rtc_time *time;/* Queried RTC time pointer */
uint8_t id; /* Indicates the alarm to be set */
FAR void *priv; /* Private argument to accompany callback */
FAR struct rtc_time *time; /* Queried RTC time pointer */
};
#endif
@ -313,10 +314,10 @@ struct lower_rdalarm_s
struct rtc_setperiodic_s
{
uint8_t id; /* Indicates the alarm to be set */
pid_t pid; /* Identifies task to be notified (0=caller) */
struct sigevent event; /* Describe the way a task is to be notified */
struct timespec period; /* Period between wakeups */
uint8_t id; /* Indicates the alarm to be set */
pid_t pid; /* Identifies task to be notified (0=caller) */
struct sigevent event; /* Describe the way a task is to be notified */
struct timespec period; /* Period between wakeups */
};
/* Callback type used by the RTC hardware to notify the RTC driver when the
@ -399,16 +400,16 @@ struct rtc_ops_s
#endif
#ifdef CONFIG_RTC_IOCTL
/* Support for architecture-specific RTC operations */
/* Support for architecture-specific RTC operations */
CODE int (*ioctl)(FAR struct rtc_lowerhalf_s *lower, int cmd,
unsigned long arg);
#endif
#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
/* The driver has been unlinked and there are no further open references
* to the driver.
*/
/* The driver has been unlinked and there are no further open references
* to the driver.
*/
CODE int (*destroy)(FAR struct rtc_lowerhalf_s *lower);
#endif
@ -447,7 +448,7 @@ extern "C"
#endif
/****************************************************************************
* Public Functions
* Public Function Prototypes
****************************************************************************/
/****************************************************************************

View File

@ -140,11 +140,9 @@ struct tm
int tm_mday; /* Day of the month (1-31) */
int tm_mon; /* Month (0-11) */
int tm_year; /* Years since 1900 */
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
int tm_wday; /* Day of the week (0-6) */
int tm_yday; /* Day of the year (0-365) */
int tm_isdst; /* Non-0 if daylight savings time is in effect */
#endif
};
/* Struct itimerspec is used to define settings for an interval timer */
@ -175,9 +173,11 @@ extern "C"
#ifdef CONFIG_LIBC_LOCALTIME
/* daylight - Daylight savings time flag */
/* EXTERN int daylight; not supported */
/* timezone - Difference from UTC and local standard time */
/* EXTERN long int timezone; not supported */
/* tzname[] - Timezone strings
@ -209,12 +209,10 @@ FAR struct tm *localtime_r(FAR const time_t *timep, FAR struct tm *result);
size_t strftime(FAR char *s, size_t max, FAR const char *format,
FAR const struct tm *tm);
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
FAR char *asctime(FAR const struct tm *tp);
FAR char *asctime_r(FAR const struct tm *tp, FAR char *buf);
FAR char *ctime(FAR const time_t *timep);
FAR char *ctime_r(FAR const time_t *timep, FAR char *buf);
#endif
time_t time(FAR time_t *timep);

View File

@ -68,16 +68,4 @@ config LIB_ZONEINFO_ROMFS
endif # LIB_ZONEINFO
endif # LIBC_LOCALTIME
config TIME_EXTENDED
bool "Add day of week, year support"
default "n"
depends on !LIBC_LOCALTIME
---help---
Selecting TIME_EXTENDED adds tm_wday, tm_yday and tm_isdst
to the tm struct. This allows integration with 3rd party libraries
that expect the tm struct to contain these members.
Note: tm_isdst is always 0
endmenu # Time/Time Zone Support

View File

@ -38,17 +38,13 @@
CSRCS += lib_strftime.c lib_calendar2utc.c lib_daysbeforemonth.c
CSRCS += lib_gettimeofday.c lib_isleapyear.c lib_settimeofday.c lib_time.c
CSRCS += lib_nanosleep.c lib_difftime.c
CSRCS += lib_nanosleep.c lib_difftime.c lib_dayofweek.c
CSRCS += lib_asctime.c lib_asctimer.c lib_ctime.c lib_ctimer.c
ifdef CONFIG_LIBC_LOCALTIME
CSRCS += lib_localtime.c lib_asctime.c lib_asctimer.c lib_ctime.c
CSRCS += lib_ctimer.c
CSRCS += lib_localtime.c
else
CSRCS += lib_mktime.c lib_gmtime.c lib_gmtimer.c
ifdef CONFIG_TIME_EXTENDED
CSRCS += lib_dayofweek.c lib_asctime.c lib_asctimer.c lib_ctime.c
CSRCS += lib_ctimer.c
endif
endif
# Add the time directory to the build

View File

@ -41,8 +41,6 @@
#include <time.h>
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/****************************************************************************
* Public Functions
****************************************************************************/
@ -69,5 +67,3 @@ FAR char *asctime(FAR const struct tm *tp)
static char buf[26];
return asctime_r(tp, buf);
}
#endif /* CONFIG_LIBC_LOCALTIME || CONFIG_TIME_EXTENDED */

View File

@ -42,11 +42,10 @@
#include <stdio.h>
#include <time.h>
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/****************************************************************************
* Private Data
****************************************************************************/
/* Note: These strings duplicate other definitions in other files. These
* definitions could be combined to save a little FLASH space.
*/
@ -93,5 +92,3 @@ FAR char *asctime_r(FAR const struct tm *tp, FAR char *buf)
return buf;
}
#endif /* CONFIG_LIBC_LOCALTIME || CONFIG_TIME_EXTENDED */

View File

@ -41,8 +41,6 @@
#include <time.h>
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/****************************************************************************
* Public Functions
****************************************************************************/
@ -78,5 +76,3 @@ FAR char *ctime(FAR const time_t *timep)
return asctime(gmtime(timep));
#endif
}
#endif /* CONFIG_LIBC_LOCALTIME || CONFIG_TIME_EXTENDED */

View File

@ -41,8 +41,6 @@
#include <time.h>
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/****************************************************************************
* Private Data
****************************************************************************/
@ -79,5 +77,3 @@ FAR char *ctime_r(FAR const time_t *timep, FAR char *buf)
return asctime_r(gmtime_r(timep, &tm), buf);
#endif
}
#endif /* CONFIG_LIBC_LOCALTIME || CONFIG_TIME_EXTENDED */

View File

@ -45,8 +45,6 @@
#include <nuttx/time.h>
#if defined(CONFIG_TIME_EXTENDED)
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
@ -107,4 +105,3 @@ int clock_dayoftheweek(int mday, int month, int year)
return (mday + year + year / 4 - year / 100 + year / 400 +
(31 * month) / 12) % 7;
}
#endif /* CONFIG_TIME_EXTENDED */

View File

@ -122,7 +122,7 @@ static void clock_utc2gregorian(time_t jd, FAR int *year, FAR int *month,
l = jd + 68569;
n = (4 * l) / 146097;
l = l - (146097 * n + 3)/4;
l = l - (146097 * n + 3) / 4;
i = (4000 * (l + 1)) / 1461001;
l = l - (1461 * i) / 4 + 31;
j = (80 * l) / 2447;
@ -156,7 +156,7 @@ static void clock_utc2julian(time_t jd, FAR int *year, FAR int *month,
n = (l - 1) / 365 - l / 1461;
i = l - 365 * n + 30;
j = (80 * i) / 2447;
d = i - (2447 * j)/80;
d = i - (2447 * j) / 80;
i = j / 11;
m = j + 2 - 12 * i;
y = 4 * k + n + i - 4716;
@ -267,9 +267,9 @@ static void clock_utc2calendar(time_t days, FAR int *year, FAR int *month,
}
else
{
/* No... The one we want is somwhere between value+1 and max */
/* No... The one we want is somwhere between value+1 and max */
min = value + 1;
min = value + 1;
}
/* If we break out of the loop because min == max, then we want value
@ -356,13 +356,11 @@ FAR struct tm *gmtime_r(FAR const time_t *timer, FAR struct tm *result)
result->tm_min = (int)min;
result->tm_sec = (int)sec;
#if defined(CONFIG_TIME_EXTENDED)
result->tm_wday = clock_dayoftheweek(day, month, year);
result->tm_yday = day +
clock_daysbeforemonth(result->tm_mon,
clock_isleapyear(year));
result->tm_isdst = 0;
#endif
return result;
}

View File

@ -70,7 +70,6 @@
* Private Data
****************************************************************************/
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
static const char * const g_abbrev_wdayname[7] =
{
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
@ -80,7 +79,6 @@ static const char * const g_wdayname[7] =
{
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
};
#endif
static const char * const g_abbrev_monthname[12] =
{
@ -181,7 +179,6 @@ size_t strftime(FAR char *s, size_t max, FAR const char *format,
switch (*format++)
{
#if defined(CONFIG_LIBC_LOCALTIME) || defined(CONFIG_TIME_EXTENDED)
/* %a: A three-letter abbreviation for the day of the week. */
case 'a':
@ -205,17 +202,6 @@ size_t strftime(FAR char *s, size_t max, FAR const char *format,
}
}
break;
#else
/* %a: A three-letter abbreviation for the day of the week. */
/* %A: The full name for the day of the week. */
case 'a':
case 'A':
{
len = snprintf(dest, chleft, "Day"); /* Not supported */
}
break;
#endif
/* %h: Equivalent to %b */
@ -301,7 +287,9 @@ size_t strftime(FAR char *s, size_t max, FAR const char *format,
{
if (tm->tm_mon < 12)
{
value = clock_daysbeforemonth(tm->tm_mon, clock_isleapyear(tm->tm_year)) + tm->tm_mday;
value = clock_daysbeforemonth(tm->tm_mon,
clock_isleapyear(tm->tm_year)) +
tm->tm_mday;
len = snprintf(dest, chleft, "%03d", value);
}
}
@ -364,6 +352,7 @@ size_t strftime(FAR char *s, size_t max, FAR const char *format,
{
str = "AM";
}
len = snprintf(dest, chleft, "%s", str);
}
break;
@ -380,6 +369,7 @@ size_t strftime(FAR char *s, size_t max, FAR const char *format,
{
str = "am";
}
len = snprintf(dest, chleft, "%s", str);
}
break;

View File

@ -44,7 +44,6 @@ config LIBCXX
select CLOCK_MONOTONIC
select LIBC_WCHAR
select LIBC_LOCALE
select TIME_EXTENDED
---help---
If you have installed libcxx into the NuttX source tree, then it can
be built by selecting this option. See the README.txt file in the