#include <sys/mman.h>
#include <errno.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>

static char aaa[123];

int main(void)
{
#define TEST(addr) \
	{ \
		errno = 0; \
		void *p = (void *)((uintptr_t)addr & ~0xfffULL); \
		char vec[8]; \
		int ret = mincore(p, 4096, (void *)vec); \
		printf("mincore(%p) => %d (errno: %d, %s)\n", \
			p, ret, errno, strerror(errno)); \
	}
	TEST(0);
	TEST(0x3);
	TEST(0x200000);
	TEST(aaa);
	TEST(main);
	return 0;
}
