vinput.h 900 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * vinput.h
  3. */
  4. #ifndef VINPUT_H
  5. #define VINPUT_H
  6. #include <linux/input.h>
  7. #include <linux/spinlock.h>
  8. #define VINPUT_MAX_LEN 128
  9. #define MAX_VINPUT 32
  10. #define VINPUT_MINORS MAX_VINPUT
  11. #define dev_to_vinput(dev) container_of(dev, struct vinput, dev)
  12. struct vinput_device;
  13. struct vinput {
  14. long id;
  15. long devno;
  16. long last_entry;
  17. spinlock_t lock;
  18. void *priv_data;
  19. struct device dev;
  20. struct list_head list;
  21. struct input_dev *input;
  22. struct vinput_device *type;
  23. };
  24. struct vinput_ops {
  25. int (*init)(struct vinput *);
  26. int (*kill)(struct vinput *);
  27. int (*send)(struct vinput *, char *, int);
  28. int (*read)(struct vinput *, char *, int);
  29. };
  30. struct vinput_device {
  31. char name[16];
  32. struct list_head list;
  33. struct vinput_ops *ops;
  34. };
  35. int vinput_register(struct vinput_device *dev);
  36. void vinput_unregister(struct vinput_device *dev);
  37. #endif