/*
#progos: linux
*/

#define _GNU_SOURCE
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/mman.h>

int main (int argc, char *argv[])
{
  volatile unsigned char *a;

  /* Check that we can map a non-multiple of a page and still get a full page.  */
  a = mmap (NULL, 0x4c, PROT_READ | PROT_WRITE | PROT_EXEC,
	    MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
  if (a == NULL || a == (unsigned char *) -1)
    abort ();

  a[0] = 0xbe;
  a[8191] = 0xef;
  memset ((char *) a + 1, 0, 8190);

  if (a[0] != 0xbe || a[8191] != 0xef)
    abort ();

  printf ("pass\n");
  exit (0);
}
