2022-04-17 22:20:18 +08:00
|
|
|
/*
|
|
|
|
* vinput.h
|
|
|
|
*/
|
|
|
|
|
2022-04-05 23:51:54 +08:00
|
|
|
#ifndef VINPUT_H
|
|
|
|
#define VINPUT_H
|
|
|
|
|
|
|
|
#include <linux/input.h>
|
|
|
|
#include <linux/spinlock.h>
|
|
|
|
|
|
|
|
#define VINPUT_MAX_LEN 128
|
|
|
|
#define MAX_VINPUT 32
|
|
|
|
#define VINPUT_MINORS MAX_VINPUT
|
|
|
|
|
|
|
|
#define dev_to_vinput(dev) container_of(dev, struct vinput, dev)
|
|
|
|
|
|
|
|
struct vinput_device;
|
|
|
|
|
|
|
|
struct vinput {
|
|
|
|
long id;
|
|
|
|
long devno;
|
|
|
|
long last_entry;
|
|
|
|
spinlock_t lock;
|
|
|
|
|
|
|
|
void *priv_data;
|
|
|
|
|
|
|
|
struct device dev;
|
|
|
|
struct list_head list;
|
|
|
|
struct input_dev *input;
|
|
|
|
struct vinput_device *type;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct vinput_ops {
|
|
|
|
int (*init)(struct vinput *);
|
|
|
|
int (*kill)(struct vinput *);
|
|
|
|
int (*send)(struct vinput *, char *, int);
|
|
|
|
int (*read)(struct vinput *, char *, int);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct vinput_device {
|
|
|
|
char name[16];
|
|
|
|
struct list_head list;
|
|
|
|
struct vinput_ops *ops;
|
|
|
|
};
|
|
|
|
|
|
|
|
int vinput_register(struct vinput_device *dev);
|
|
|
|
void vinput_unregister(struct vinput_device *dev);
|
|
|
|
|
|
|
|
#endif
|