blob: f58fad969cf217dc6a9122debd0dbd525f3ae715 [file] [log] [blame]
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +00001#ifdef HAVE_CONFIG_H
2# include "config.h"
3#endif
Dmitry V. Levinfb2a5432015-09-22 21:22:37 +00004
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +00005#include <fcntl.h>
Dmitry V. Levinfb2a5432015-09-22 21:22:37 +00006#include <stdio.h>
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +00007#include <stdint.h>
8#include <unistd.h>
9#include <termios.h>
10#include <sys/ioctl.h>
11
12#ifdef HAVE_LINUX_MMTIMER_H
13# include <linux/mmtimer.h>
14#endif
15#ifdef HAVE_LINUX_HIDDEV_H
16# include <linux/hiddev.h>
17#endif
18#ifdef HAVE_LINUX_INPUT_H
19# include <linux/input.h>
20#endif
21
Dmitry V. Levin8c20d892015-05-21 16:19:40 +000022#include <linux/videodev2.h>
23
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +000024#if defined MMTIMER_GETRES \
Dmitry V. Levin8c20d892015-05-21 16:19:40 +000025 && defined VIDIOC_ENUMINPUT \
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +000026 && defined HIDIOCGVERSION \
27 && defined HIDIOCGPHYS \
28 && defined EVIOCGBIT \
29 && defined EV_KEY
30
31int
32main(void )
33{
Dmitry V. Levinfb2a5432015-09-22 21:22:37 +000034 uint64_t data = 0;
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +000035
Dmitry V. Levin0f8af612015-11-16 01:53:43 +000036#ifndef POWERPC
37 struct termios tty;
Dmitry V. Levinfb2a5432015-09-22 21:22:37 +000038 (void) ioctl(-1, TCGETS, &tty);
39 printf("ioctl(-1, TCGETS, %p)"
40 " = -1 EBADF (Bad file descriptor)\n", &tty);
Dmitry V. Levin0f8af612015-11-16 01:53:43 +000041#endif
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +000042
Dmitry V. Levinfb2a5432015-09-22 21:22:37 +000043 (void) ioctl(-1, MMTIMER_GETRES, &data);
44 printf("ioctl(-1, MMTIMER_GETRES, %p)"
45 " = -1 EBADF (Bad file descriptor)\n", &data);
46
47 (void) ioctl(-1, VIDIOC_ENUMINPUT, 0);
48 printf("ioctl(-1, VIDIOC_ENUMINPUT, 0)"
49 " = -1 EBADF (Bad file descriptor)\n");
50
51 (void) ioctl(-1, HIDIOCGVERSION, &data);
52 printf("ioctl(-1, HIDIOCGRDESCSIZE or HIDIOCGVERSION, %p)"
53 " = -1 EBADF (Bad file descriptor)\n", &data);
54
55 (void) ioctl(-1, HIDIOCGPHYS(8), &data);
56 printf("ioctl(-1, HIDIOCGPHYS(8), %p)"
57 " = -1 EBADF (Bad file descriptor)\n", &data);
58
59 (void) ioctl(-1, EVIOCGBIT(EV_KEY, 8), &data);
60 printf("ioctl(-1, EVIOCGBIT(EV_KEY, 8), %p)"
61 " = -1 EBADF (Bad file descriptor)\n", &data);
62
Gabriel Laskar9c4fc342015-09-23 10:11:55 +020063 (void) ioctl(-1, _IOR('M', 13, int), &data);
64 printf("ioctl(-1, MIXER_READ(13) or OTPSELECT, [MTD_OTP_OFF])"
65 " = -1 EBADF (Bad file descriptor)\n");
66
Dmitry V. Levinfb2a5432015-09-22 21:22:37 +000067 (void) ioctl(-1, _IOR(0xde, 0xad, data), &data);
68 printf("ioctl(-1, _IOC(_IOC_READ, 0xde, 0xad, 0x08), %p)"
69 " = -1 EBADF (Bad file descriptor)\n", &data);
70
71 puts("+++ exited with 0 +++");
Dmitry V. Levindf7aa2b2015-01-19 17:02:16 +000072 return 0;
73}
74
75#else
76
77int
78main(void )
79{
80 return 77;
81}
82
83#endif