(root)/
strace-6.5/
tests-mx32/
ioctl.c
       1  /*
       2   * Copyright (c) 2015-2016 Dmitry V. Levin <ldv@strace.io>
       3   * Copyright (c) 2015-2021 The strace developers.
       4   * All rights reserved.
       5   *
       6   * SPDX-License-Identifier: GPL-2.0-or-later
       7   */
       8  
       9  #include "tests.h"
      10  #include <fcntl.h>
      11  #include <stdio.h>
      12  #include <stdint.h>
      13  #include <unistd.h>
      14  #include <termios.h>
      15  #include <sys/ioctl.h>
      16  
      17  #include <linux/hiddev.h>
      18  #include <linux/input.h>
      19  #include <linux/mmtimer.h>
      20  #include <linux/videodev2.h>
      21  
      22  int
      23  main(void)
      24  {
      25  	uint64_t data = 0;
      26  
      27  #ifndef POWERPC
      28  	struct termios tty;
      29  	(void) ioctl(-1, TCGETS, &tty);
      30  	printf("ioctl(-1, TCGETS, %p)"
      31  	       " = -1 EBADF (%m)\n", &tty);
      32  #endif
      33  
      34  	(void) ioctl(-1, MMTIMER_GETRES, &data);
      35  	printf("ioctl(-1, MMTIMER_GETRES, %p)"
      36  	       " = -1 EBADF (%m)\n", &data);
      37  
      38  	(void) ioctl(-1, VIDIOC_ENUMINPUT, 0);
      39  	printf("ioctl(-1, VIDIOC_ENUMINPUT, NULL)"
      40  	       " = -1 EBADF (%m)\n");
      41  
      42  	(void) ioctl(-1, HIDIOCGVERSION, &data);
      43  	printf("ioctl(-1, HIDIOCGRDESCSIZE or HIDIOCGVERSION, %p)"
      44  	       " = -1 EBADF (%m)\n", &data);
      45  
      46  	(void) ioctl(-1, HIDIOCGPHYS(8), &data);
      47  	printf("ioctl(-1, HIDIOCGPHYS(8), %p)"
      48  	       " = -1 EBADF (%m)\n", &data);
      49  
      50  	(void) ioctl(-1, EVIOCGBIT(EV_KEY, 8), &data);
      51  	printf("ioctl(-1, EVIOCGBIT(EV_KEY, 8), %p)"
      52  	       " = -1 EBADF (%m)\n", &data);
      53  
      54  	(void) ioctl(-1, _IOR('M', 13, int), &data);
      55  	printf("ioctl(-1, MIXER_READ(13) or OTPSELECT, [MTD_OTP_OFF])"
      56  	       " = -1 EBADF (%m)\n");
      57  
      58  	(void) ioctl(-1, _IOC(_IOC_WRITE, 0xde, 0, 0), (kernel_ulong_t) -1ULL);
      59  	printf("ioctl(-1, _IOC(_IOC_WRITE, 0xde, 0, 0), %#lx)"
      60  	       " = -1 EBADF (%m)\n", -1UL);
      61  
      62  	(void) ioctl(-1, _IOR(0xde, 0xad, data), &data);
      63  	printf("ioctl(-1, _IOC(_IOC_READ, 0xde, 0xad, 0x8), %p)"
      64  	       " = -1 EBADF (%m)\n", &data);
      65  
      66  	(void) ioctl(-1, 'Z' << 8, &data);
      67  	printf("ioctl(-1, ZFS_IOC_POOL_CREATE, %p)"
      68  	       " = -1 EBADF (%m)\n", &data);
      69  
      70  	(void) ioctl(-1, 'Z' << 8 | 'A', &data);
      71  	printf("ioctl(-1, ZFS_IOC_SEND_SPACE, %p)"
      72  	       " = -1 EBADF (%m)\n", &data);
      73  
      74  	(void) ioctl(-1, _IOR(0x12, 125, char[256]), &data);
      75  	printf("ioctl(-1, BLKZNAME, %p)"
      76  	       " = -1 EBADF (%m)\n", &data);
      77  
      78  	(void) ioctl(-1, ('K' << 8) + 1, &data);
      79  	printf("ioctl(-1, KSTAT_IOC_CHAIN_ID, %p)"
      80  	       " = -1 EBADF (%m)\n", &data);
      81  
      82  	puts("+++ exited with 0 +++");
      83  	return 0;
      84  }