/*
#progos: linux
*/

#include <unistd.h>
#include <sys/syscall.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

/* I can't seem to include the right things, so we do it brute force.  */
int main (void)
{
  static int sysctl_args[] = { 1, 4 };
  size_t x = 8;

  struct __sysctl_args {
    int *name;
    int nlen;
    void *oldval;
    size_t *oldlenp;
    void *newval;
    size_t newlen;
    unsigned long __unused[4];
  } scargs
      =
    {
     sysctl_args,
     sizeof (sysctl_args) / sizeof (sysctl_args[0]),
     (void *) -1, &x, NULL, 0
    };

  if (syscall (SYS__sysctl, &scargs) != -1
      || errno != EFAULT)
    abort ();
  printf ("pass\n");
  exit (0);
}
