(root)/
strace-6.5/
tests-mx32/
ioctl_watchdog.c
       1  /*
       2   * Check decoding of WDIOC* commands of ioctl syscall.
       3   *
       4   * Copyright (c) 2019 The strace developers.
       5   * All rights reserved.
       6   *
       7   * SPDX-License-Identifier: GPL-2.0-or-later
       8   */
       9  
      10  #include "tests.h"
      11  
      12  #include <stdio.h>
      13  #include <string.h>
      14  #include <sys/ioctl.h>
      15  #include <linux/watchdog.h>
      16  
      17  #define XLAT_MACROS_ONLY
      18  #include "xlat/watchdog_ioctl_cmds.h"
      19  #undef XLAT_MACROS_ONLY
      20  
      21  #define RVAL_EBADF " = -1 EBADF (%m)\n"
      22  
      23  int
      24  main(void)
      25  {
      26  	int val = 123;
      27  
      28  	ioctl(-1, WDIOC_GETSTATUS, &val);
      29  	printf("ioctl(-1, WDIOC_GETSTATUS, %p)" RVAL_EBADF, &val);
      30  
      31  	ioctl(-1, WDIOC_GETBOOTSTATUS, &val);
      32  	printf("ioctl(-1, WDIOC_GETBOOTSTATUS, %p)" RVAL_EBADF, &val);
      33  
      34  	ioctl(-1, WDIOC_GETTEMP, &val);
      35  	printf("ioctl(-1, WDIOC_GETTEMP, %p)" RVAL_EBADF, &val);
      36  
      37  	ioctl(-1, WDIOC_GETTIMEOUT, &val);
      38  	printf("ioctl(-1, WDIOC_GETTIMEOUT, %p)" RVAL_EBADF, &val);
      39  
      40  	ioctl(-1, WDIOC_GETPRETIMEOUT, &val);
      41  	printf("ioctl(-1, WDIOC_GETPRETIMEOUT, %p)" RVAL_EBADF, &val);
      42  
      43  	ioctl(-1, WDIOC_GETTIMELEFT, &val);
      44  	printf("ioctl(-1, WDIOC_GETTIMELEFT, %p)" RVAL_EBADF, &val);
      45  
      46  	ioctl(-1, WDIOC_SETTIMEOUT, &val);
      47  	printf("ioctl(-1, WDIOC_SETTIMEOUT, [123])" RVAL_EBADF);
      48  
      49  	ioctl(-1, WDIOC_SETPRETIMEOUT, &val);
      50  	printf("ioctl(-1, WDIOC_SETPRETIMEOUT, [123])" RVAL_EBADF);
      51  
      52  	ioctl(-1, WDIOC_KEEPALIVE);
      53  	printf("ioctl(-1, WDIOC_KEEPALIVE)" RVAL_EBADF);
      54  
      55  	ioctl(-1, _IOC(_IOC_NONE, 'W', 0xff, 0), &val);
      56  	printf("ioctl(-1, _IOC(_IOC_NONE, %#x, 0xff, 0), %p)" RVAL_EBADF,
      57  	       'W', &val);
      58  
      59  	puts("+++ exited with 0 +++");
      60  	return 0;
      61  }