Thread (67 messages) 67 messages, 5 authors, 2021-02-28

Re: [PATCH v8 18/22] docs: counter: Document character device interface

From: Pavel Machek <hidden>
Date: 2021-02-22 10:14:35
Also in: linux-iio, lkml

Hi!
quoted
+* COUNTER_ENABLE_EVENTS_IOCTL:
+  Enables monitoring the events specified by the Counter watches that
+  were queued by ``COUNTER_ADD_WATCH_IOCTL``. If events are already
+  enabled, the new set of watches replaces the old one. Calling this
+  ioctl also has the effect of clearing the queue of watches added by
+  ``COUNTER_ADD_WATCH_IOCTL``.
+
+* COUNTER_DISABLE_EVENTS_IOCTL:
+  Stops monitoring the previously enabled events.
Is there a way to remove a watch? 
Is there a way to eat all kernel memory and crash the system by adding
too many watches?
quoted
+For example, the following userspace code opens ``/dev/counter0``,
+configures the ``COUNTER_EVENT_INDEX`` event channel 0 to gather Count 0
+and Count 1, and prints out the data as it becomes available on the
+character device node::
+
Consider adding an example program under tools/
quoted
+        #include <fcntl.h>
+        #include <linux/counter.h>
+        #include <stdio.h>
+        #include <string.h>
+        #include <sys/ioctl.h>
+        #include <unistd.h>
+
+        struct counter_watch watches[2] = {
+                {
+                        .component.type = COUNTER_COMPONENT_COUNT,
+                        .component.scope = COUNTER_SCOPE_COUNT,
+                        .component.parent = 0,
Good to add comments on what these elements actually are?
quoted
+                fd = open("/dev/counter0", O_RDWR);
+
+                ioctl(fd, COUNTER_ADD_WATCH_IOCTL, watches);
+                ioctl(fd, COUNTER_ADD_WATCH_IOCTL, watches + 1);
+                ioctl(fd, COUNTER_ENABLE_EVENTS_IOCTL);
quoted
+                for (;;) {
+                        read(fd, event_data, sizeof(event_data));
If this goes to tools it really should have error handling and
handling of short read.

Best regards,
							Pavel

-- 
http://www.livejournal.com/~pavelmachek
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help