#include <sys/auxv.h>
#include <errno.h>
#include <stdio.h>
int
main(void)
{
int ret = 0;
int a;
unsigned long b;
unsigned long long c;
if (elf_aux_info(AT_PAGESZ, &a, sizeof(a)))
ret |= 1;
else
fprintf(stderr, "AT_PAGESZ %d\n", a);
if (elf_aux_info(AT_PAGESZ, &c, sizeof(c)) != EINVAL)
ret |= 2;
if (elf_aux_info(-1, &a, sizeof(a)) != EINVAL)
ret |= 4;
switch (elf_aux_info(AT_HWCAP, &b, sizeof(b))) {
case 0:
fprintf(stderr, "AT_HWCAP %lx\n", b);
break;
case ENOENT:
break;
default:
ret |= 8;
}
switch (elf_aux_info(AT_HWCAP2, &b, sizeof(b))) {
case 0:
fprintf(stderr, "AT_HWCAP2 %lx\n", b);
break;
case ENOENT:
break;
default:
ret |= 16;
}
if (ret)
fprintf(stderr, "FAILED (status %x)\n", ret);
return ret;
}