我正在努力寻找uinput
的文档,但我发现的唯一内容是linux/uinput.h
。我也在互联网上找到了一些教程,但根本没有文档!
例如,我想知道UI_SET_MSCBIT
做了什么,但我找不到任何相关信息。
人们如何知道如何使用uinput
?
答案 0 :(得分:3)
嗯,需要对这些微妙的事情进行一些调查。从
drivers/input/misc/uinput.c
和include/uapi/linux/uinput.h
个文件可以看到UI_SET_*
定义的位,如下所示:
MSC
REL
LED
等
在内核源目录中运行next命令:
$ git grep --all-match -e 'MSC' -e 'REL' -e 'LED' -- Documentation/*
或使用常规grep
,如果您的内核没有.git
目录:
$ grep -rl MSC Documentation/* | xargs grep -l REL | xargs grep -l LED
您将收到此文件:Documentation/input/event-codes.txt,您可以从中看到:
EV_MSC
:用于描述不适合其他类型的杂项输入数据。
EV_MSC
个事件用于不属于其他类别的输入和输出事件。一些
EV_MSC
代码具有特殊含义:
MSC_TIMESTAMP
:用于报告自上次重置以来的微秒数。此事件应编码为uint32
值,允许环绕并且没有特殊后果。假设两个连续事件之间的时间差在合理的时间尺度(小时)内是可靠的。可以发生重置为零,在这种情况下,自上次事件以来的时间未知。如果设备未提供此信息,则驱动程序不得将其提供给用户空间。
我担心这是UI_SET_MSCBIT
那里最好的。