]> Zhao Yanbai Git Server - minix.git/commitdiff
PM_TIME_SEC into 64bit
authorLionel Sambuc <lionel@minix3.org>
Wed, 27 Nov 2013 11:01:26 +0000 (12:01 +0100)
committerLionel Sambuc <lionel@minix3.org>
Mon, 3 Mar 2014 19:45:28 +0000 (20:45 +0100)
Change-Id: I609ee8cac7aae8af2c0c0381710433a5df0caebd

include/minix/callnr.h
include/minix/ipc.h
lib/libc/sys-minix/adjtime.c
lib/libc/sys-minix/clock_getres.c
lib/libc/sys-minix/clock_gettime.c
lib/libc/sys-minix/clock_settime.c
lib/libc/sys-minix/stime.c
servers/pm/forkexit.c
servers/pm/time.c

index 40459736dd8dbbc0beddeae13c59c62245377bc5..d6910d9542815c6e408d4c4f33d5c57390666072 100644 (file)
@@ -82,7 +82,7 @@
  */
 #define PM_TIME_CLK_ID         m2_i1   /* clockid_t */
 #define PM_TIME_NOW            m2_i2   /* int */
-#define PM_TIME_SEC            m2_l  /* time_t */
+#define PM_TIME_SEC            m2_ll1  /* time_t */
 #define PM_TIME_USEC           m2_l2   /* long */
 #define PM_TIME_NSEC           m2_l2   /* long */
 
index 3290a9dcfd8d75990b64c6f0adbd9851ecffb2de..27643443019e2a9971ab58c251f83e055ba40cbb 100644 (file)
@@ -25,12 +25,13 @@ typedef struct {
 _ASSERT_MSG_SIZE(mess_1);
 
 typedef struct {
+       int64_t m2ll1;
        int m2i1, m2i2, m2i3;
        long m2l1, m2l2;
        char *m2p1;
        sigset_t sigset;
        short m2s1;
-       uint8_t padding[14];
+       uint8_t padding[6];
 } mess_2;
 _ASSERT_MSG_SIZE(mess_2);
 
@@ -206,6 +207,7 @@ typedef int _ASSERT_message[/* CONSTCOND */sizeof(message) == 64 ?1 : -1];
 #define m1_p4  m_u.m_m1.m1p4
 #define m1_ull1  m_u.m_m1.m1ull1
 
+#define m2_ll1  m_u.m_m2.m2ll1
 #define m2_i1  m_u.m_m2.m2i1
 #define m2_i2  m_u.m_m2.m2i2
 #define m2_i3  m_u.m_m2.m2i3
index a8526e411d1bd742e18457bd2bd1c402dd55b063..2aaa17b67c0b6ef98bd91e7938b613d2f79ff2fc 100644 (file)
@@ -17,8 +17,8 @@ int adjtime(const struct timeval *delta, struct timeval *olddelta)
   memset(&m, 0, sizeof(m));
   m.PM_TIME_CLK_ID = (clockid_t) CLOCK_REALTIME;
   m.PM_TIME_NOW = 0; /* use adjtime() method to slowly adjust the clock. */
-  m.PM_TIME_SEC = (int32_t)delta->tv_sec;
-  m.PM_TIME_NSEC = (int32_t)delta->tv_usec * 1000; /* convert usec to nsec */
+  m.PM_TIME_SEC = delta->tv_sec;
+  m.PM_TIME_NSEC = delta->tv_usec * 1000; /* convert usec to nsec */
 
   if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
        return -1;
index c25da3efdf624bb17ca405e66e0272e0c0b02ebc..3e58be7c62048a0b71d6ed99f9eb08fda74431e4 100644 (file)
@@ -14,7 +14,7 @@ int clock_getres(clockid_t clock_id, struct timespec *res)
   message m;
 
   memset(&m, 0, sizeof(m));
-  m.PM_TIME_CLK_ID = (clockid_t) clock_id;
+  m.PM_TIME_CLK_ID = clock_id;
 
   if (_syscall(PM_PROC_NR, PM_CLOCK_GETRES, &m) < 0)
        return -1;
index 9a3f98ca607521ed7403e0b8d89d4570854a3819..bef4a063ae4082dc945e6a58bdd647673ec8e7ce 100644 (file)
@@ -14,13 +14,13 @@ int clock_gettime(clockid_t clock_id, struct timespec *res)
   message m;
 
   memset(&m, 0, sizeof(m));
-  m.PM_TIME_CLK_ID = (clockid_t) clock_id;
+  m.PM_TIME_CLK_ID = clock_id;
 
   if (_syscall(PM_PROC_NR, PM_CLOCK_GETTIME, &m) < 0)
        return -1;
 
-  res->tv_sec = (time_t) m.PM_TIME_SEC;
-  res->tv_nsec = (long) m.PM_TIME_USEC;
+  res->tv_sec = m.PM_TIME_SEC;
+  res->tv_nsec = m.PM_TIME_NSEC;
 
   return 0;
 }
index 4e0e3a5102ceb85f5da8d505ec52273c8cf8867d..0b18ef5c314db22509453e460312b4d29fcf89e0 100644 (file)
@@ -14,10 +14,10 @@ int clock_settime(clockid_t clock_id, const struct timespec *ts)
   message m;
 
   memset(&m, 0, sizeof(m));
-  m.PM_TIME_CLK_ID = (clockid_t) clock_id;
+  m.PM_TIME_CLK_ID = clock_id;
   m.PM_TIME_NOW = 1; /* set time immediately. don't use adjtime() method. */
-  m.PM_TIME_SEC = (time_t) ts->tv_sec;
-  m.PM_TIME_NSEC = (long) ts->tv_nsec;
+  m.PM_TIME_SEC = ts->tv_sec;
+  m.PM_TIME_NSEC = ts->tv_nsec;
 
   if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
        return -1;
index 1f9d1c65360807153d1e8b3796c0594299cfb0a6..42d255ca2ef9025cdc1ff4a34c4b33b185769ee5 100644 (file)
@@ -14,6 +14,6 @@ int stime(time_t *top)
   message m;
 
   memset(&m, 0, sizeof(m));
-  m.PM_TIME_SEC = (long)*top;
+  m.PM_TIME_SEC = *top;
   return(_syscall(PM_PROC_NR, PM_STIME, &m));
 }
index 55ceef3fc7593b36408cfed84f21307e5e7039c2..9f5f0e7431d29874dc56fd8735fb7b67ff2f0819 100644 (file)
@@ -661,7 +661,7 @@ register struct mproc *child;       /* tells which process is exiting */
 static void tell_tracer(child)
 struct mproc *child;                   /* tells which process is exiting */
 {
-  int exitstatus, mp_tracer;
+  int mp_tracer;
   struct mproc *tracer;
 
   mp_tracer = child->mp_tracer;
index cac0c48c0de7e8888c3e0de90b121361b27624a0..dcc610fd0260576e9de1a883b94cc51e958d9acb 100644 (file)
@@ -38,8 +38,7 @@ int do_gettime()
                return EINVAL; /* invalid/unsupported clock_id */
   }
 
-  /* For now simply truncate time to a 32b value. */
-  mp->mp_reply.PM_TIME_SEC = (int32_t) (boottime + (clock / system_hz));
+  mp->mp_reply.PM_TIME_SEC = boottime + (clock / system_hz);
   mp->mp_reply.PM_TIME_NSEC =
        (uint32_t) ((clock % system_hz) * 1000000000ULL / system_hz);
 
@@ -102,8 +101,7 @@ int do_time()
   if ( (s=getuptime(&ticks, &realtime, &boottime)) != OK)
        panic("do_time couldn't get uptime: %d", s);
 
-  /* For now simply truncate time to a 32b value. */
-  mp->mp_reply.PM_TIME_SEC = (int32_t) (boottime + (realtime / system_hz));
+  mp->mp_reply.PM_TIME_SEC = boottime + (realtime / system_hz);
   mp->mp_reply.PM_TIME_USEC =
        (uint32_t) ((realtime % system_hz) * 1000000ULL / system_hz);
   return(OK);
@@ -126,7 +124,7 @@ int do_stime()
   }
   if ( (s=getuptime(&uptime, &realtime, &boottime)) != OK) 
       panic("do_stime couldn't get uptime: %d", s);
-  boottime = (time_t)m_in.PM_TIME_SEC - (realtime/system_hz);
+  boottime = m_in.PM_TIME_SEC - (realtime/system_hz);
 
   s= sys_stime(boottime);              /* Tell kernel about boottime */
   if (s != OK)