Add rtc.h header file

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3493 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-04-12 14:14:47 +00:00
parent 75661bee13
commit f96fb2fa03
7 changed files with 54 additions and 39 deletions

View file

@ -2092,9 +2092,9 @@ static int fat_stat(struct inode *mountpt, const char *relpath, struct stat *buf
{ {
struct fat_mountpt_s *fs; struct fat_mountpt_s *fs;
struct fat_dirinfo_s dirinfo; struct fat_dirinfo_s dirinfo;
uint16_t date; uint16_t fatdate;
uint16_t date2; uint16_t date2;
uint16_t time; uint16_t fattime;
uint8_t attribute; uint8_t attribute;
int ret; int ret;
@ -2174,12 +2174,12 @@ static int fat_stat(struct inode *mountpt, const char *relpath, struct stat *buf
/* Times */ /* Times */
date = DIR_GETWRTDATE(dirinfo.fd_entry); fatdate = DIR_GETWRTDATE(dirinfo.fd_entry);
time = DIR_GETWRTTIME(dirinfo.fd_entry); fattime = DIR_GETWRTTIME(dirinfo.fd_entry);
buf->st_mtime = fat_fattime2systime(time, date); buf->st_mtime = fat_fattime2systime(fattime, fatdate);
date2 = DIR_GETLASTACCDATE(dirinfo.fd_entry); date2 = DIR_GETLASTACCDATE(dirinfo.fd_entry);
if (date == date2) if (fatdate == date2)
{ {
buf->st_atime = buf->st_mtime; buf->st_atime = buf->st_mtime;
} }
@ -2188,9 +2188,9 @@ static int fat_stat(struct inode *mountpt, const char *relpath, struct stat *buf
buf->st_atime = fat_fattime2systime(0, date2); buf->st_atime = fat_fattime2systime(0, date2);
} }
date = DIR_GETCRDATE(dirinfo.fd_entry); fatdate = DIR_GETCRDATE(dirinfo.fd_entry);
time = DIR_GETCRTIME(dirinfo.fd_entry); fattime = DIR_GETCRTIME(dirinfo.fd_entry);
buf->st_ctime = fat_fattime2systime(time, date); buf->st_ctime = fat_fattime2systime(fattime, fatdate);
ret = OK; ret = OK;

View file

@ -1895,7 +1895,7 @@ int fat_dirtruncate(struct fat_mountpt_s *fs, struct fat_dirinfo_s *dirinfo)
int fat_dircreate(struct fat_mountpt_s *fs, struct fat_dirinfo_s *dirinfo) int fat_dircreate(struct fat_mountpt_s *fs, struct fat_dirinfo_s *dirinfo)
{ {
uint8_t *direntry; uint8_t *direntry;
uint32_t time; uint32_t fattime;
int ret; int ret;
/* Set up the directory entry */ /* Set up the directory entry */
@ -1924,11 +1924,11 @@ int fat_dircreate(struct fat_mountpt_s *fs, struct fat_dirinfo_s *dirinfo)
/* ARCHIVE attribute, write time, creation time */ /* ARCHIVE attribute, write time, creation time */
DIR_PUTATTRIBUTES(dirinfo->fd_entry, FATATTR_ARCHIVE); DIR_PUTATTRIBUTES(dirinfo->fd_entry, FATATTR_ARCHIVE);
time = fat_systime2fattime(); fattime = fat_systime2fattime();
DIR_PUTWRTTIME(dirinfo->fd_entry, time & 0xffff); DIR_PUTWRTTIME(dirinfo->fd_entry, fattime & 0xffff);
DIR_PUTCRTIME(dirinfo->fd_entry, time & 0xffff); DIR_PUTCRTIME(dirinfo->fd_entry, fattime & 0xffff);
DIR_PUTWRTDATE(dirinfo->fd_entry, time >> 16); DIR_PUTWRTDATE(dirinfo->fd_entry, fattime >> 16);
DIR_PUTCRDATE(dirinfo->fd_entry, time >> 16); DIR_PUTCRDATE(dirinfo->fd_entry, fattime >> 16);
fs->fs_dirty = true; fs->fs_dirty = true;
return OK; return OK;

View file

@ -33,8 +33,8 @@
* *
****************************************************************************/ ****************************************************************************/
#ifndef __SYS_MMAN_H #ifndef __INCLUDE_SYS_TIME_H
#define __SYS_MMAN_H #define __INCLUDE_SYS_TIME_H
/**************************************************************************** /****************************************************************************
* Included Files * Included Files
@ -71,4 +71,4 @@ EXTERN int gettimeofday(struct timeval *tp, FAR void *tzp);
} }
#endif #endif
#endif /* __SYS_MMAN_H */ #endif /* __INCLUDE_SYS_TIME_H */

View file

@ -179,6 +179,10 @@ typedef int16_t blksize_t;
typedef unsigned int socklen_t; typedef unsigned int socklen_t;
typedef uint16_t sa_family_t; typedef uint16_t sa_family_t;
/* Used for system times in clock ticks */
typedef uint32_t clock_t;
/* The type useconds_t shall be an unsigned integer type capable of storing /* The type useconds_t shall be an unsigned integer type capable of storing
* values at least in the range [0, 1000000]. The type suseconds_t shall be * values at least in the range [0, 1000000]. The type suseconds_t shall be
* a signed integer type capable of storing values at least in the range * a signed integer type capable of storing values at least in the range

View file

@ -49,15 +49,22 @@
* Pre-processor Definitions * Pre-processor Definitions
********************************************************************************/ ********************************************************************************/
/* Clock tick of the system (frequency Hz). The default value is 100Hz, but this /* Clock tick of the system (frequency Hz).
* default setting can be overridden by defining the clock interval in *
* milliseconds as CONFIG_MSEC_PER_TICK in the board configuration file. * NOTE: This symbolic name CLK_TCK has been removed from the standard. It is
* replaced with CLOCKS_PER_SEC. Both are defined here.
*
* The default value is 100Hz, but this default setting can be overridden by
* defining the clock interval in milliseconds as CONFIG_MSEC_PER_TICK in the
* board configuration file.
*/ */
#ifdef CONFIG_MSEC_PER_TICK #ifdef CONFIG_MSEC_PER_TICK
# define CLK_TCK (1000/CONFIG_MSEC_PER_TICK) # define CLK_TCK (1000/CONFIG_MSEC_PER_TICK)
# define CLOCKS_PER_SEC (1000/CONFIG_MSEC_PER_TICK)
#else #else
# define CLK_TCK (100) # define CLK_TCK (100)
# define CLOCKS_PER_SEC (100)
#endif #endif
/* This is the only clock_id supported by the "Clock and Timer /* This is the only clock_id supported by the "Clock and Timer
@ -141,15 +148,19 @@ extern "C" {
#define EXTERN extern #define EXTERN extern
#endif #endif
EXTERN clock_t clock(void);
EXTERN int clock_settime(clockid_t clockid, const struct timespec *tp); EXTERN int clock_settime(clockid_t clockid, const struct timespec *tp);
EXTERN int clock_gettime(clockid_t clockid, struct timespec *tp); EXTERN int clock_gettime(clockid_t clockid, struct timespec *tp);
EXTERN int clock_getres(clockid_t clockid, struct timespec *res); EXTERN int clock_getres(clockid_t clockid, struct timespec *res);
EXTERN time_t mktime(const struct tm *tp); EXTERN time_t mktime(const struct tm *tp);
EXTERN struct tm *gmtime(const time_t *clock); EXTERN struct tm *gmtime(const time_t *timer);
EXTERN struct tm *gmtime_r(const time_t *clock, struct tm *result); EXTERN struct tm *gmtime_r(const time_t *timer, struct tm *result);
EXTERN size_t strftime(char *s, size_t max, const char *format, const struct tm *tm); EXTERN size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
EXTERN time_t time(time_t *tloc);
EXTERN int timer_create(clockid_t clockid, FAR struct sigevent *evp, FAR timer_t *timerid); EXTERN int timer_create(clockid_t clockid, FAR struct sigevent *evp, FAR timer_t *timerid);
EXTERN int timer_delete(timer_t timerid); EXTERN int timer_delete(timer_t timerid);
EXTERN int timer_settime(timer_t timerid, int flags, FAR const struct itimerspec *value, EXTERN int timer_settime(timer_t timerid, int flags, FAR const struct itimerspec *value,

View file

@ -85,9 +85,9 @@
* *
****************************************************************************/ ****************************************************************************/
struct tm *gmtime(const time_t *clock) struct tm *gmtime(const time_t *timer)
{ {
static struct tm tm; static struct tm tm;
return gmtime_r(clock, &tm); return gmtime_r(timer, &tm);
} }

View file

@ -296,9 +296,9 @@ static void clock_utc2calendar(time_t days, int *year, int *month, int *day)
* *
****************************************************************************/ ****************************************************************************/
struct tm *gmtime_r(const time_t *clock, struct tm *result) struct tm *gmtime_r(const time_t *timer, struct tm *result)
{ {
time_t time; time_t epoch;
time_t jdn; time_t jdn;
int year; int year;
int month; int month;
@ -309,21 +309,21 @@ struct tm *gmtime_r(const time_t *clock, struct tm *result)
/* Get the seconds since the EPOCH */ /* Get the seconds since the EPOCH */
time = *clock; epoch = *timer;
sdbg("clock=%d\n", (int)time); sdbg("timer=%d\n", (int)epoch);
/* Convert to days, hours, minutes, and seconds since the EPOCH */ /* Convert to days, hours, minutes, and seconds since the EPOCH */
jdn = time / SEC_PER_DAY; jdn = epoch / SEC_PER_DAY;
time -= SEC_PER_DAY * jdn; epoch -= SEC_PER_DAY * jdn;
hour = time / SEC_PER_HOUR; hour = epoch / SEC_PER_HOUR;
time -= SEC_PER_HOUR * hour; epoch -= SEC_PER_HOUR * hour;
min = time / SEC_PER_MIN; min = epoch / SEC_PER_MIN;
time -= SEC_PER_MIN * min; epoch -= SEC_PER_MIN * min;
sec = time; sec = epoch;
sdbg("hour=%d min=%d sec=%d\n", sdbg("hour=%d min=%d sec=%d\n",
(int)hour, (int)min, (int)sec); (int)hour, (int)min, (int)sec);