Extending time_t to 64bits.

Change-Id: Ia96b8bfba19cb8179a0237a7d2122d415c24d73f
This commit is contained in:
2013-09-20 19:47:18 +02:00
parent 42e13282d7
commit 55d9e9954b
19 changed files with 62 additions and 60 deletions

View 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 = (time_t) delta->tv_sec;
m.PM_TIME_NSEC = (long) delta->tv_usec * 1000; /* convert usec to nsec */
m.PM_TIME_SEC = (int32_t)delta->tv_sec;
m.PM_TIME_NSEC = (int32_t)delta->tv_usec * 1000; /* convert usec to nsec */
if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
return -1;

View File

@@ -19,8 +19,8 @@ int clock_getres(clockid_t clock_id, struct timespec *res)
if (_syscall(PM_PROC_NR, PM_CLOCK_GETRES, &m) < 0)
return -1;
res->tv_sec = (time_t) m.PM_TIME_SEC;
res->tv_nsec = (long) m.PM_TIME_NSEC;
res->tv_sec = m.PM_TIME_SEC;
res->tv_nsec = m.PM_TIME_NSEC;
return 0;
}

View File

@@ -14,10 +14,11 @@ int futimens(int fd, const struct timespec tv[2])
memset(&m, 0, sizeof(m));
m.VFS_UTIMENS_FD = fd;
m.VFS_UTIMENS_ATIME = tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = tv[0].tv_nsec;
m.VFS_UTIMENS_MNSEC = tv[1].tv_nsec;
/* For now just truncate to 32bit time_t values. */
m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_nsec;
m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_nsec;
m.VFS_UTIMENS_NAME = NULL;
m.VFS_UTIMENS_FLAGS = 0;

View File

@@ -21,10 +21,10 @@ int futimes(int fd, const struct timeval tv[2])
m.VFS_UTIMENS_ANSEC = m.VFS_UTIMENS_MNSEC = UTIME_NOW;
}
else {
m.VFS_UTIMENS_ATIME = tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = tv[0].tv_usec * 1000;
m.VFS_UTIMENS_MNSEC = tv[1].tv_usec * 1000;
m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_usec * 1000;
m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_usec * 1000;
}
m.VFS_UTIMENS_NAME = NULL;
m.VFS_UTIMENS_FLAGS = 0;

View File

@@ -32,10 +32,11 @@ int lutimes(const char *name, const struct timeval tv[2])
m.VFS_UTIMENS_ANSEC = m.VFS_UTIMENS_MNSEC = UTIME_NOW;
}
else {
m.VFS_UTIMENS_ATIME = tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = tv[0].tv_usec * 1000;
m.VFS_UTIMENS_MNSEC = tv[1].tv_usec * 1000;
/* For now just truncate time_t values to 32bits. */
m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_usec * 1000;
m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_usec * 1000;
}
m.VFS_UTIMENS_FLAGS = AT_SYMLINK_NOFOLLOW;

View File

@@ -46,10 +46,11 @@ int utimensat(int fd, const char *name, const struct timespec tv[2],
memset(&m, 0, sizeof(m));
m.VFS_UTIMENS_LEN = strlen(name) + 1;
m.VFS_UTIMENS_NAME = (char *) __UNCONST(name);
m.VFS_UTIMENS_ATIME = tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = tv[0].tv_nsec;
m.VFS_UTIMENS_MNSEC = tv[1].tv_nsec;
/* For now just truncate time_t values to 32bits. */
m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_nsec;
m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_nsec;
m.VFS_UTIMENS_FLAGS = flags;
return(_syscall(VFS_PROC_NR, VFS_UTIMENS, &m));

View File

@@ -31,10 +31,11 @@ int utimes(const char *name, const struct timeval tv[2])
m.VFS_UTIMENS_ANSEC = m.VFS_UTIMENS_MNSEC = UTIME_NOW;
}
else {
m.VFS_UTIMENS_ATIME = tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = tv[0].tv_usec * 1000;
m.VFS_UTIMENS_MNSEC = tv[1].tv_usec * 1000;
/* For now just truncate time_t values to 32bits. */
m.VFS_UTIMENS_ATIME = (int32_t)tv[0].tv_sec;
m.VFS_UTIMENS_MTIME = (int32_t)tv[1].tv_sec;
m.VFS_UTIMENS_ANSEC = (int32_t)tv[0].tv_usec * 1000;
m.VFS_UTIMENS_MNSEC = (int32_t)tv[1].tv_usec * 1000;
}
m.VFS_UTIMENS_FLAGS = 0;

View File

@@ -1,20 +1,16 @@
#include "syslib.h"
#include <time.h>
int sys_settime(now, clk_id, sec, nsec)
int now;
clockid_t clk_id;
time_t sec;
long nsec;
int sys_settime(int now, clockid_t clk_id, time_t sec, long nsec)
{
message m;
int r;
message m;
int r;
m.T_SETTIME_NOW = now;
m.T_CLOCK_ID = clk_id;
m.T_TIME_SEC = sec;
m.T_TIME_NSEC = nsec;
m.T_SETTIME_NOW = now;
m.T_CLOCK_ID = clk_id;
m.T_TIME_SEC = sec;
m.T_TIME_NSEC = nsec;
r = _kernel_call(SYS_SETTIME, &m);
return(r);
r = _kernel_call(SYS_SETTIME, &m);
return r;
}