vinput.h 880 B

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