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);

你可能感兴趣的:(Linux增加event事件上报机制)