linux 遍历event设备,Linux增加event事件上报机制

linux4.9版本增加event事件上报流程

1:先声明一个input_dev设备,并初始化为空。

static struct input_dev* sif_input_dev = NULL;

2:在驱动入口函数中申请input_dev设备空间。

sif_input_dev  = input_allocate_device();

3:设置event事件名

sif_input_dev->name = "sif_event";

4:配置event事件类型和code

set_bit(EV_MSC,  sif_input_dev->evbit);

set_bit(MSC_RAW, sif_input_dev->mscbit);

5:将初始化后的event事件注册进入input子系统

input_register_device(sif_input_dev)

6:设置event事件对应code的值和上报

input_event(sif_input_dev, EV_MSC, MSC_RAW, 1);

input_sync(sif_input_dev);

应用层监听该event事件

1:使用阻塞方式打开上述驱动创建的设备节点

open(INPUT_DEV, O_RDONLY);

2:阻塞读取该设备数据

read(fd, &event, sizeof(event));

3:获取底层上报的类型/code/和code的值

printf("type:%d, code:%d, value:%d\n", event.type, event.code, event.value);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值