1/* Tests Valgrind moans about unknown ioctl.
2   10 unique moans should be produced.
3 */
4
5#include <unistd.h>
6#include <sys/ioctl.h>
7
8/* An ioctl request for a strange ioctl device driver.
9   The choice of values here needs to match the logic in
10   ML_(PRE_unknown_ioctl) and take into account that _IOC_NONE
11   is not == 0 everywhere. */
12# if defined(VGO_linux)
13#define IOCTL_REQUEST_BASE (0x12345670 | _IOC(_IOC_NONE,0,0,0))
14# else
15#define IOCTL_REQUEST_BASE  0x12345670
16# endif
17
18int main(int argc, const char *argv[])
19{
20   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
21   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
22   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
23   ioctl(-1, IOCTL_REQUEST_BASE + 0x2);
24   ioctl(-1, IOCTL_REQUEST_BASE + 0x3);
25   ioctl(-1, IOCTL_REQUEST_BASE + 0x4);
26   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
27   ioctl(-1, IOCTL_REQUEST_BASE + 0x5);
28   ioctl(-1, IOCTL_REQUEST_BASE + 0x5);
29   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
30   ioctl(-1, IOCTL_REQUEST_BASE + 0x6);
31   ioctl(-1, IOCTL_REQUEST_BASE + 0x7);
32   ioctl(-1, IOCTL_REQUEST_BASE + 0x8);
33   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
34   ioctl(-1, IOCTL_REQUEST_BASE + 0x9);
35   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
36   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
37   ioctl(-1, IOCTL_REQUEST_BASE + 0xa);
38   ioctl(-1, IOCTL_REQUEST_BASE + 0xb);
39   ioctl(-1, IOCTL_REQUEST_BASE + 0xc);
40   ioctl(-1, IOCTL_REQUEST_BASE + 0xd);
41   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
42   ioctl(-1, IOCTL_REQUEST_BASE + 0xe);
43   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
44   ioctl(-1, IOCTL_REQUEST_BASE + 0xf);
45
46   return 0;
47}
48