diff options
Diffstat (limited to 'lib/libc/gen/aux.c')
-rw-r--r-- | lib/libc/gen/aux.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/libc/gen/aux.c b/lib/libc/gen/aux.c index 4bf8643..3767ac0 100644 --- a/lib/libc/gen/aux.c +++ b/lib/libc/gen/aux.c @@ -66,6 +66,7 @@ __init_elf_aux_vector(void) static pthread_once_t aux_once = PTHREAD_ONCE_INIT; static int pagesize, osreldate, canary_len, ncpus, pagesizes_len; static char *canary, *pagesizes; +static void *timekeep; static void init_aux(void) @@ -101,6 +102,10 @@ init_aux(void) case AT_NCPUS: ncpus = aux->a_un.a_val; break; + + case AT_TIMEKEEP: + timekeep = aux->a_un.a_ptr; + break; } } } @@ -163,6 +168,16 @@ _elf_aux_info(int aux, void *buf, int buflen) } else res = EINVAL; break; + case AT_TIMEKEEP: + if (buflen == sizeof(void *)) { + if (timekeep != NULL) { + *(void **)buf = timekeep; + res = 0; + } else + res = ENOENT; + } else + res = EINVAL; + break; default: res = ENOENT; break; |