userio.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */
  2. /*
  3. * userio: virtual serio device support
  4. * Copyright (C) 2015 Red Hat
  5. * Copyright (C) 2015 Lyude (Stephen Chandler Paul) <[email protected]>
  6. *
  7. * This program is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU Lesser General Public License as published by the
  9. * Free Software Foundation; either version 2 of the License, or (at your
  10. * option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful, but WITHOUT
  13. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  14. * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  15. * details.
  16. *
  17. * This is the public header used for user-space communication with the userio
  18. * driver. __attribute__((__packed__)) is used for all structs to keep ABI
  19. * compatibility between all architectures.
  20. */
  21. #ifndef _USERIO_H
  22. #define _USERIO_H
  23. #include <linux/types.h>
  24. enum userio_cmd_type {
  25. USERIO_CMD_REGISTER = 0,
  26. USERIO_CMD_SET_PORT_TYPE = 1,
  27. USERIO_CMD_SEND_INTERRUPT = 2
  28. };
  29. /*
  30. * userio Commands
  31. * All commands sent to /dev/userio are encoded using this structure. The type
  32. * field should contain a USERIO_CMD* value that indicates what kind of command
  33. * is being sent to userio. The data field should contain the accompanying
  34. * argument for the command, if there is one.
  35. */
  36. struct userio_cmd {
  37. __u8 type;
  38. __u8 data;
  39. } __attribute__((__packed__));
  40. #endif /* !_USERIO_H */