From 21ada94c4b8c01589367cea300916d7db8461ae7 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 7 Apr 2014 02:46:15 -0400 Subject: [PATCH] add getauxval function in a sense this implementation is incomplete since it doesn't provide the HWCAP_* macros for use with AT_HWCAP, which is perhaps the most important intended usage case for getauxval. they will be added at a later time. --- include/sys/auxv.h | 16 ++++++++++++++++ src/misc/getauxval.c | 12 ++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 include/sys/auxv.h create mode 100644 src/misc/getauxval.c diff --git a/include/sys/auxv.h b/include/sys/auxv.h new file mode 100644 index 00000000..6dcf9adc --- /dev/null +++ b/include/sys/auxv.h @@ -0,0 +1,16 @@ +#ifndef _SYS_AUXV_H +#define _SYS_AUXV_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +unsigned long getauxval(unsigned long); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/misc/getauxval.c b/src/misc/getauxval.c new file mode 100644 index 00000000..5ac8b3d2 --- /dev/null +++ b/src/misc/getauxval.c @@ -0,0 +1,12 @@ +#include +#include +#include "libc.h" + +unsigned long getauxval(unsigned long item) +{ + size_t *auxv = libc.auxv; + for (; *auxv; auxv+=2) + if (*auxv==item) return auxv[1]; + errno = ENOENT; + return 0; +} -- 2.25.1