PM_TIME_SEC into 64bit
Change-Id: I609ee8cac7aae8af2c0c0381710433a5df0caebd
This commit is contained in:
parent
3eaea2dc69
commit
4a0199d66d
@ -82,7 +82,7 @@
|
|||||||
*/
|
*/
|
||||||
#define PM_TIME_CLK_ID m2_i1 /* clockid_t */
|
#define PM_TIME_CLK_ID m2_i1 /* clockid_t */
|
||||||
#define PM_TIME_NOW m2_i2 /* int */
|
#define PM_TIME_NOW m2_i2 /* int */
|
||||||
#define PM_TIME_SEC m2_l1 /* time_t */
|
#define PM_TIME_SEC m2_ll1 /* time_t */
|
||||||
#define PM_TIME_USEC m2_l2 /* long */
|
#define PM_TIME_USEC m2_l2 /* long */
|
||||||
#define PM_TIME_NSEC m2_l2 /* long */
|
#define PM_TIME_NSEC m2_l2 /* long */
|
||||||
|
|
||||||
|
|||||||
@ -25,12 +25,13 @@ typedef struct {
|
|||||||
_ASSERT_MSG_SIZE(mess_1);
|
_ASSERT_MSG_SIZE(mess_1);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
int64_t m2ll1;
|
||||||
int m2i1, m2i2, m2i3;
|
int m2i1, m2i2, m2i3;
|
||||||
long m2l1, m2l2;
|
long m2l1, m2l2;
|
||||||
char *m2p1;
|
char *m2p1;
|
||||||
sigset_t sigset;
|
sigset_t sigset;
|
||||||
short m2s1;
|
short m2s1;
|
||||||
uint8_t padding[14];
|
uint8_t padding[6];
|
||||||
} mess_2;
|
} mess_2;
|
||||||
_ASSERT_MSG_SIZE(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_p4 m_u.m_m1.m1p4
|
||||||
#define m1_ull1 m_u.m_m1.m1ull1
|
#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_i1 m_u.m_m2.m2i1
|
||||||
#define m2_i2 m_u.m_m2.m2i2
|
#define m2_i2 m_u.m_m2.m2i2
|
||||||
#define m2_i3 m_u.m_m2.m2i3
|
#define m2_i3 m_u.m_m2.m2i3
|
||||||
|
|||||||
@ -17,8 +17,8 @@ int adjtime(const struct timeval *delta, struct timeval *olddelta)
|
|||||||
memset(&m, 0, sizeof(m));
|
memset(&m, 0, sizeof(m));
|
||||||
m.PM_TIME_CLK_ID = (clockid_t) CLOCK_REALTIME;
|
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_NOW = 0; /* use adjtime() method to slowly adjust the clock. */
|
||||||
m.PM_TIME_SEC = (int32_t)delta->tv_sec;
|
m.PM_TIME_SEC = delta->tv_sec;
|
||||||
m.PM_TIME_NSEC = (int32_t)delta->tv_usec * 1000; /* convert usec to nsec */
|
m.PM_TIME_NSEC = delta->tv_usec * 1000; /* convert usec to nsec */
|
||||||
|
|
||||||
if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
|
if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@ -14,7 +14,7 @@ int clock_getres(clockid_t clock_id, struct timespec *res)
|
|||||||
message m;
|
message m;
|
||||||
|
|
||||||
memset(&m, 0, sizeof(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)
|
if (_syscall(PM_PROC_NR, PM_CLOCK_GETRES, &m) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@ -14,13 +14,13 @@ int clock_gettime(clockid_t clock_id, struct timespec *res)
|
|||||||
message m;
|
message m;
|
||||||
|
|
||||||
memset(&m, 0, sizeof(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)
|
if (_syscall(PM_PROC_NR, PM_CLOCK_GETTIME, &m) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
res->tv_sec = (time_t) m.PM_TIME_SEC;
|
res->tv_sec = m.PM_TIME_SEC;
|
||||||
res->tv_nsec = (long) m.PM_TIME_USEC;
|
res->tv_nsec = m.PM_TIME_NSEC;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,10 +14,10 @@ int clock_settime(clockid_t clock_id, const struct timespec *ts)
|
|||||||
message m;
|
message m;
|
||||||
|
|
||||||
memset(&m, 0, sizeof(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_NOW = 1; /* set time immediately. don't use adjtime() method. */
|
||||||
m.PM_TIME_SEC = (time_t) ts->tv_sec;
|
m.PM_TIME_SEC = ts->tv_sec;
|
||||||
m.PM_TIME_NSEC = (long) ts->tv_nsec;
|
m.PM_TIME_NSEC = ts->tv_nsec;
|
||||||
|
|
||||||
if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
|
if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@ -14,6 +14,6 @@ int stime(time_t *top)
|
|||||||
message m;
|
message m;
|
||||||
|
|
||||||
memset(&m, 0, sizeof(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));
|
return(_syscall(PM_PROC_NR, PM_STIME, &m));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -661,7 +661,7 @@ register struct mproc *child; /* tells which process is exiting */
|
|||||||
static void tell_tracer(child)
|
static void tell_tracer(child)
|
||||||
struct mproc *child; /* tells which process is exiting */
|
struct mproc *child; /* tells which process is exiting */
|
||||||
{
|
{
|
||||||
int exitstatus, mp_tracer;
|
int mp_tracer;
|
||||||
struct mproc *tracer;
|
struct mproc *tracer;
|
||||||
|
|
||||||
mp_tracer = child->mp_tracer;
|
mp_tracer = child->mp_tracer;
|
||||||
|
|||||||
@ -38,8 +38,7 @@ int do_gettime()
|
|||||||
return EINVAL; /* invalid/unsupported clock_id */
|
return EINVAL; /* invalid/unsupported clock_id */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For now simply truncate time to a 32b value. */
|
mp->mp_reply.PM_TIME_SEC = boottime + (clock / system_hz);
|
||||||
mp->mp_reply.PM_TIME_SEC = (int32_t) (boottime + (clock / system_hz));
|
|
||||||
mp->mp_reply.PM_TIME_NSEC =
|
mp->mp_reply.PM_TIME_NSEC =
|
||||||
(uint32_t) ((clock % system_hz) * 1000000000ULL / system_hz);
|
(uint32_t) ((clock % system_hz) * 1000000000ULL / system_hz);
|
||||||
|
|
||||||
@ -102,8 +101,7 @@ int do_time()
|
|||||||
if ( (s=getuptime(&ticks, &realtime, &boottime)) != OK)
|
if ( (s=getuptime(&ticks, &realtime, &boottime)) != OK)
|
||||||
panic("do_time couldn't get uptime: %d", s);
|
panic("do_time couldn't get uptime: %d", s);
|
||||||
|
|
||||||
/* For now simply truncate time to a 32b value. */
|
mp->mp_reply.PM_TIME_SEC = boottime + (realtime / system_hz);
|
||||||
mp->mp_reply.PM_TIME_SEC = (int32_t) (boottime + (realtime / system_hz));
|
|
||||||
mp->mp_reply.PM_TIME_USEC =
|
mp->mp_reply.PM_TIME_USEC =
|
||||||
(uint32_t) ((realtime % system_hz) * 1000000ULL / system_hz);
|
(uint32_t) ((realtime % system_hz) * 1000000ULL / system_hz);
|
||||||
return(OK);
|
return(OK);
|
||||||
@ -126,7 +124,7 @@ int do_stime()
|
|||||||
}
|
}
|
||||||
if ( (s=getuptime(&uptime, &realtime, &boottime)) != OK)
|
if ( (s=getuptime(&uptime, &realtime, &boottime)) != OK)
|
||||||
panic("do_stime couldn't get uptime: %d", s);
|
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 */
|
s= sys_stime(boottime); /* Tell kernel about boottime */
|
||||||
if (s != OK)
|
if (s != OK)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user