1 .. SPDX-License-Identifier: GPL-2.0 2 3 .. _GPIO_LINEEVENT_DATA_READ: 4 5 ************************ 6 GPIO_LINEEVENT_DATA_READ 7 ************************ 8 9 .. warning:: 10 This ioctl is part of chardev_v1.rst and i 11 gpio-v2-line-event-read.rst. 12 13 Name 14 ==== 15 16 GPIO_LINEEVENT_DATA_READ - Read edge detection 17 18 Synopsis 19 ======== 20 21 ``int read(int event_fd, void *buf, size_t cou 22 23 Arguments 24 ========= 25 26 ``event_fd`` 27 The file descriptor of the GPIO character 28 :c:type:`request.fd<gpioevent_request>` by 29 30 ``buf`` 31 The buffer to contain the :c:type:`events< 32 33 ``count`` 34 The number of bytes available in ``buf``, 35 least the size of a :c:type:`gpioevent_dat 36 37 Description 38 =========== 39 40 Read edge detection events for a line from a l 41 42 Edge detection must be enabled for the input l 43 ``GPIOEVENT_REQUEST_RISING_EDGE`` or ``GPIOEVE 44 both. Edge events are then generated whenever 45 the input line. 46 47 Edges are defined in terms of changes to the l 48 to active transition is a rising edge. If ``G 49 set then logical polarity is the opposite of p 50 ``GPIOEVENT_REQUEST_RISING_EDGE`` then corresp 51 52 The kernel captures and timestamps edge events 53 occurrence and stores them in a buffer from wh 54 userspace at its convenience using `read()`. 55 56 The source of the clock for :c:type:`event.tim 57 ``CLOCK_MONOTONIC``, except for kernels earlie 58 ``CLOCK_REALTIME``. There is no indication in 59 as to which clock source is used, it must be d 60 version or sanity checks on the timestamp itse 61 62 Events read from the buffer are always in the 63 detected by the kernel. 64 65 The size of the kernel event buffer is fixed a 66 67 The buffer may overflow if bursts of events oc 68 by userspace. If an overflow occurs then the m 69 Overflow cannot be detected from userspace. 70 71 To minimize the number of calls required to co 72 userspace, `read()` supports copying multiple 73 copied is the lower of the number available in 74 number that will fit in the userspace buffer ( 75 76 The `read()` will block if no event is availab 77 been set **O_NONBLOCK**. 78 79 The presence of an event can be tested for by 80 readable using `poll()` or an equivalent. 81 82 Return Value 83 ============ 84 85 On success the number of bytes read, which wil 86 a :c:type:`gpio_lineevent_data` event. 87 88 On error -1 and the ``errno`` variable is set 89 Common error codes are described in error-code
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.