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; +}