diff --git a/arch/arm64/kernel/syscall.c b/arch/arm64/kernel/syscall.c index b4e6a6cc..890f6374 100644 --- a/arch/arm64/kernel/syscall.c +++ b/arch/arm64/kernel/syscall.c @@ -13,6 +13,7 @@ #include #include #include +#include extern void ptrace_report_signal(struct thread *thread, int sig); extern void clear_single_step(struct thread *thread); @@ -2497,4 +2498,15 @@ out: return mpsr->phase_ret; } +time_t time(void) { + struct timespec ats; + + if (gettime_local_support) { + calculate_time_from_tsc(&ats); + return ats.tv_sec; + } + + return (time_t)0; +} + /*** End of File ***/ diff --git a/arch/x86_64/kernel/syscall.c b/arch/x86_64/kernel/syscall.c index 29dbd047..68f1e0b4 100644 --- a/arch/x86_64/kernel/syscall.c +++ b/arch/x86_64/kernel/syscall.c @@ -30,6 +30,7 @@ #include #include #include +#include void terminate(int, int); extern long do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact); @@ -2540,4 +2541,14 @@ out: return mpsr->phase_ret; } +time_t time(void) { + struct syscall_request sreq IHK_DMA_ALIGN; + struct thread *thread = cpu_local_var(current); + time_t ret; + sreq.number = __NR_time; + sreq.args[0] = (uintptr_t)NULL; + ret = (time_t)do_syscall(&sreq, ihk_mc_get_processor_id(), thread->proc->pid); + return ret; +} + /*** End of File ***/ diff --git a/kernel/include/syscall.h b/kernel/include/syscall.h index 6e486ae1..24a2833b 100644 --- a/kernel/include/syscall.h +++ b/kernel/include/syscall.h @@ -472,6 +472,7 @@ int arch_setup_vdso(void); int arch_cpu_read_write_register(struct ihk_os_cpu_register *desc, enum mcctrl_os_cpu_operation op); struct vm_range_numa_policy *vm_range_policy_search(struct process_vm *vm, uintptr_t addr); +time_t time(void); #ifndef POSTK_DEBUG_ARCH_DEP_52 #define VDSO_MAXPAGES 2 diff --git a/kernel/syscall.c b/kernel/syscall.c index 33030376..6f13d429 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -4689,30 +4689,6 @@ struct shminfo the_shminfo = { }; struct shm_info the_shm_info = { 0, }; -time_t time(void) { -#ifndef POSTK_DEBUG_ARCH_DEP_13 /* arch depend tmp hide */ - struct syscall_request sreq IHK_DMA_ALIGN; - struct thread *thread = cpu_local_var(current); -#endif /* POSTK_DEBUG_ARCH_DEP_13 */ - -#ifdef POSTK_DEBUG_ARCH_DEP_49 /* time() local calculate added. */ - struct timespec ats; - - if (gettime_local_support) { - calculate_time_from_tsc(&ats); - return ats.tv_sec; - } -#endif /* POSTK_DEBUG_ARCH_DEP_49 */ - -#ifdef POSTK_DEBUG_ARCH_DEP_13 /* arch depend tmp hide */ - return (time_t)0; -#else /* POSTK_DEBUG_ARCH_DEP_13 */ - sreq.number = __NR_time; - sreq.args[0] = (uintptr_t)NULL; - return (time_t)do_syscall(&sreq, ihk_mc_get_processor_id(), thread->proc->pid); -#endif /* POSTK_DEBUG_ARCH_DEP_13 */ -} - static int make_shmid(struct shmobj *obj) { return ((int)obj->index << 16) | obj->ds.shm_perm.seq;