| /* 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); |
| } |