ioctl32.h 897 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef IOCTL32_H
  2. #define IOCTL32_H 1
  3. struct file;
  4. typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int,
  5. unsigned long, struct file *);
  6. struct ioctl_trans {
  7. unsigned long cmd;
  8. ioctl_trans_handler_t handler;
  9. struct ioctl_trans *next;
  10. };
  11. /*
  12. * Register an 32bit ioctl translation handler for ioctl cmd.
  13. *
  14. * handler == NULL: use 64bit ioctl handler.
  15. * arguments to handler: fd: file descriptor
  16. * cmd: ioctl command.
  17. * arg: ioctl argument
  18. * struct file *file: file descriptor pointer.
  19. */
  20. #ifdef CONFIG_COMPAT
  21. extern int register_ioctl32_conversion(unsigned int cmd,
  22. ioctl_trans_handler_t handler);
  23. extern int unregister_ioctl32_conversion(unsigned int cmd);
  24. #else
  25. #define register_ioctl32_conversion(cmd, handler) ({ 0; })
  26. #define unregister_ioctl32_conversion(cmd) ({ 0; })
  27. #endif
  28. #endif