mirror of
https://github.com/sysprog21/lkmpg.git
synced 2024-11-25 17:56:36 +08:00
04465b1a44
The description of the attribute was added in sysfs section and referenced in vinput section. In vinput section, just described the class_attribute and some macros about sysfs class. Add file name at vinput-related examples begin.
50 lines
900 B
C
50 lines
900 B
C
/*
|
|
* vinput.h
|
|
*/
|
|
|
|
#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
|