/* Tests Valgrind moans about unknown ioctl.
   10 unique moans should be produced.
 */

#include <sys/ioctl.h>

/* An ioctl request for a strange ioctl device driver.
   The choice of values here needs to match the logic in
   ML_(PRE_unknown_ioctl) and take into account that _IOC_NONE
   is not == 0 everywhere. */
# if defined(VGO_linux)
#define IOCTL_REQUEST_BASE (0x12345670 | _IOC(_IOC_NONE,0,0,0))
# else
#define IOCTL_REQUEST_BASE  0x12345670
# endif

int main(int argc, const char *argv[])
{
   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x2);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x3);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x4);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x5);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x5);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x6);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x7);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x8);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x9);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
   ioctl(-1, IOCTL_REQUEST_BASE + 0xa);
   ioctl(-1, IOCTL_REQUEST_BASE + 0xb);
   ioctl(-1, IOCTL_REQUEST_BASE + 0xc);
   ioctl(-1, IOCTL_REQUEST_BASE + 0xd);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x1);
   ioctl(-1, IOCTL_REQUEST_BASE + 0xe);
   ioctl(-1, IOCTL_REQUEST_BASE + 0x0);
   ioctl(-1, IOCTL_REQUEST_BASE + 0xf);

   return 0;
}
