GPIO_GET_LINEEVENT_IOCTL

警告

此 ioctl 是 GPIO 字符设备用户空间 API (v1) 的一部分,并且已被 GPIO_V2_GET_LINE_IOCTL 废弃。

名称

GPIO_GET_LINEEVENT_IOCTL - 从内核请求具有边沿检测的线路。

概要

GPIO_GET_LINEEVENT_IOCTL

int ioctl(int chip_fd, GPIO_GET_LINEEVENT_IOCTL, struct gpioevent_request *request)

参数

chip_fd

open() 返回的 GPIO 字符设备的文件描述符。

request

指定要请求的线路及其配置的 event_request

描述

从内核请求具有边沿检测的线路。

成功后,请求进程将被授予对线路值的独占访问权,并且当在线路上检测到边沿时,可以接收事件,如 GPIO_LINEEVENT_DATA_READ 中所述。

保证线路的状态在返回的文件描述符关闭之前保持请求的状态。一旦文件描述符关闭,从用户空间的角度来看,线路的状态将变得不受控制,并且可能会恢复到其默认状态。

请求已在使用的线路是一个错误 (EBUSY)。

在不支持中断的线路上请求边沿检测是一个错误 (ENXIO)。

线路句柄 一样,偏置配置是尽力而为。

关闭 chip_fd 对现有线路事件没有影响。

配置规则

以下配置规则适用

线路事件被请求为输入,因此不能设置特定于输出线路的标志,GPIOHANDLE_REQUEST_OUTPUTGPIOHANDLE_REQUEST_OPEN_DRAINGPIOHANDLE_REQUEST_OPEN_SOURCE

只能设置一个偏置标志,GPIOHANDLE_REQUEST_BIAS_xxx。如果未设置任何偏置标志,则偏置配置不会更改。

可以组合边沿标志,GPIOEVENT_REQUEST_RISING_EDGEGPIOEVENT_REQUEST_FALLING_EDGE,以检测上升沿和下降沿。

请求无效配置是一个错误 (EINVAL)。

返回值

成功时返回 0,并且 request.fd 包含请求的文件描述符。

出错时返回 -1,并且 errno 变量会设置为适当的值。常见的错误代码在 GPIO 错误代码 中描述。