/* Check error message for invalid sysctl call.
#xerror:
#output: Unimplemented _sysctl syscall *\n
#output: program stopped with signal 4.\n
#notarget: cris*-*-elf
*/

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

int main (void)
{
  static int sysctl_args[] = { 99, 99 };
  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
   };

  int err = syscall (SYS__sysctl, &scargs);
  if (err == -1 && errno == ENOSYS)
    printf ("ENOSYS\n");
 printf ("xyzzy\n");
 exit (0);
}
