clock_gettime: clock_id != CLOCK_REALTIME -> offload to linux
This commit is contained in:
@ -20,6 +20,10 @@
|
||||
#define __TIME_H
|
||||
|
||||
#define NS_PER_SEC 1000000000UL
|
||||
#define CLOCK_REALTIME 0
|
||||
#define CLOCK_MONOTONIC 1
|
||||
#define CLOCK_PROCESS_CPUTIME_ID 2
|
||||
#define CLOCK_THREAD_CPUTIME_ID 3
|
||||
|
||||
typedef long int __time_t;
|
||||
|
||||
|
||||
@ -5083,6 +5083,7 @@ SYSCALL_DECLARE(clock_gettime)
|
||||
{
|
||||
/* TODO: handle clock_id */
|
||||
struct timespec *ts = (struct timespec *)ihk_mc_syscall_arg1(ctx);
|
||||
int clock_id = (int)ihk_mc_syscall_arg0(ctx);
|
||||
struct syscall_request request IHK_DMA_ALIGN;
|
||||
int error;
|
||||
struct timespec ats;
|
||||
@ -5093,7 +5094,7 @@ SYSCALL_DECLARE(clock_gettime)
|
||||
}
|
||||
|
||||
/* Do it locally if supported */
|
||||
if (gettime_local_support) {
|
||||
if (gettime_local_support && clock_id == CLOCK_REALTIME) {
|
||||
calculate_time_from_tsc(&ats);
|
||||
|
||||
error = copy_to_user(ts, &ats, sizeof(ats));
|
||||
|
||||
Reference in New Issue
Block a user