From 3fa6818962007cc9ffed79c13851fb6fb2c54899 Mon Sep 17 00:00:00 2001 From: Naoki Hamada Date: Thu, 31 Jul 2014 18:30:39 +0900 Subject: [PATCH] Merge from master. --- executer/include/uprotocol.h | 1 + executer/user/mcexec.c | 1 + kernel/include/process.h | 2 +- kernel/include/syscall.h | 1 + kernel/process.c | 2 ++ 5 files changed, 6 insertions(+), 1 deletion(-) diff --git a/executer/include/uprotocol.h b/executer/include/uprotocol.h index 47540578..87b53892 100644 --- a/executer/include/uprotocol.h +++ b/executer/include/uprotocol.h @@ -79,6 +79,7 @@ struct program_load_desc { unsigned long at_phent; unsigned long at_phnum; unsigned long at_entry; + unsigned long at_clktck; char *args; unsigned long args_len; char *envs; diff --git a/executer/user/mcexec.c b/executer/user/mcexec.c index 96525e5a..500cde0d 100644 --- a/executer/user/mcexec.c +++ b/executer/user/mcexec.c @@ -221,6 +221,7 @@ struct program_load_desc *load_elf(FILE *fp, char **interp_pathp) desc->at_phent = sizeof(phdr); desc->at_phnum = hdr.e_phnum; desc->at_entry = hdr.e_entry; + desc->at_clktck = sysconf(_SC_CLK_TCK); return desc; } diff --git a/kernel/include/process.h b/kernel/include/process.h index 6a0fbdb2..09ea47e0 100644 --- a/kernel/include/process.h +++ b/kernel/include/process.h @@ -91,7 +91,7 @@ #include #include -#define AUXV_LEN 12 +#define AUXV_LEN 14 struct vm_range { struct list_head list; diff --git a/kernel/include/syscall.h b/kernel/include/syscall.h index 6657770a..fcb718fe 100644 --- a/kernel/include/syscall.h +++ b/kernel/include/syscall.h @@ -119,6 +119,7 @@ struct program_load_desc { unsigned long at_phent; unsigned long at_phnum; unsigned long at_entry; + unsigned long at_clktck; char *args; unsigned long args_len; char *envs; diff --git a/kernel/process.c b/kernel/process.c index 3964d5e7..e8888974 100644 --- a/kernel/process.c +++ b/kernel/process.c @@ -1399,6 +1399,8 @@ int init_process_stack(struct process *process, struct program_load_desc *pn, p[s_ind--] = AT_PHDR; p[s_ind--] = 4096; /* AT_PAGESZ */ p[s_ind--] = AT_PAGESZ; + p[s_ind--] = pn->at_clktck; /* AT_CLKTCK */ + p[s_ind--] = AT_CLKTCK; /* save auxiliary vector for core dump */ memcpy(process->saved_auxv, &p[s_ind + 1], sizeof(process->saved_auxv));