Magellan Linux

Diff of /trunk/mkinitrd-magellan/busybox/libbb/rtc.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 983 by niro, Fri Apr 24 18:33:46 2009 UTC revision 984 by niro, Sun May 30 11:32:42 2010 UTC
# Line 1  Line 1 
1  /*  /*
2   * Common RTC functions   * Common RTC functions
3     *
4     * Licensed under GPLv2, see file LICENSE in this tarball for details.
5   */   */
6    
7  #include "libbb.h"  #include "libbb.h"
# Line 17  int FAST_FUNC rtc_adjtime_is_utc(void) Line 19  int FAST_FUNC rtc_adjtime_is_utc(void)
19   FILE *f = fopen_for_read(ADJTIME_PATH);   FILE *f = fopen_for_read(ADJTIME_PATH);
20    
21   if (f) {   if (f) {
22   RESERVE_CONFIG_BUFFER(buffer, 128);   char buffer[128];
23    
24   while (fgets(buffer, sizeof(buffer), f)) {   while (fgets(buffer, sizeof(buffer), f)) {
25   int len = strlen(buffer);   int len = strlen(buffer);
# Line 33  int FAST_FUNC rtc_adjtime_is_utc(void) Line 35  int FAST_FUNC rtc_adjtime_is_utc(void)
35   }   }
36   }   }
37   fclose(f);   fclose(f);
   
  RELEASE_CONFIG_BUFFER(buffer);  
38   }   }
39    
40   return utc;   return utc;
# Line 59  int FAST_FUNC rtc_xopen(const char **def Line 59  int FAST_FUNC rtc_xopen(const char **def
59   return xopen(*default_rtc, flags);   return xopen(*default_rtc, flags);
60  }  }
61    
62  time_t FAST_FUNC rtc_read_time(int fd, int utc)  void FAST_FUNC rtc_read_tm(struct tm *ptm, int fd)
63    {
64     memset(ptm, 0, sizeof(*ptm));
65     xioctl(fd, RTC_RD_TIME, ptm);
66     ptm->tm_isdst = -1; /* "not known" */
67    }
68    
69    time_t FAST_FUNC rtc_tm2time(struct tm *ptm, int utc)
70  {  {
71   struct tm tm;   char *oldtz = oldtz; /* for compiler */
72   char *oldtz = 0;   time_t t;
  time_t t = 0;  
   
  memset(&tm, 0, sizeof(struct tm));  
  xioctl(fd, RTC_RD_TIME, &tm);  
  tm.tm_isdst = -1; /* not known */  
73    
74   if (utc) {   if (utc) {
75   oldtz = getenv("TZ");   oldtz = getenv("TZ");
# Line 75  time_t FAST_FUNC rtc_read_time(int fd, i Line 77  time_t FAST_FUNC rtc_read_time(int fd, i
77   tzset();   tzset();
78   }   }
79    
80   t = mktime(&tm);   t = mktime(ptm);
81    
82   if (utc) {   if (utc) {
83   unsetenv("TZ");   unsetenv("TZ");

Legend:
Removed from v.983  
changed lines
  Added in v.984