diff options
Diffstat (limited to 'tools/include/nolibc/stdlib.h')
| -rw-r--r-- | tools/include/nolibc/stdlib.h | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/include/nolibc/stdlib.h b/tools/include/nolibc/stdlib.h index 92378c4b9660..894c955d027e 100644 --- a/tools/include/nolibc/stdlib.h +++ b/tools/include/nolibc/stdlib.h @@ -12,6 +12,7 @@  #include "types.h"  #include "sys.h"  #include "string.h" +#include <linux/auxvec.h>  struct nolibc_heap {  	size_t	len; @@ -109,6 +110,32 @@ char *getenv(const char *name)  }  static __attribute__((unused)) +unsigned long getauxval(unsigned long type) +{ +	const unsigned long *auxv = _auxv; +	unsigned long ret; + +	if (!auxv) +		return 0; + +	while (1) { +		if (!auxv[0] && !auxv[1]) { +			ret = 0; +			break; +		} + +		if (auxv[0] == type) { +			ret = auxv[1]; +			break; +		} + +		auxv += 2; +	} + +	return ret; +} + +static __attribute__((unused))  void *malloc(size_t len)  {  	struct nolibc_heap *heap; @@ -419,4 +446,7 @@ char *u64toa(uint64_t in)  	return itoa_buffer;  } +/* make sure to include all global symbols */ +#include "nolibc.h" +  #endif /* _NOLIBC_STDLIB_H */  |