[riot-notifications] [RIOT-OS/RIOT] periph/gpio: add gpio_set_cb() function (#12082)

Kaspar Schleiser notifications at github.com
Tue Sep 17 13:37:12 CEST 2019


kaspar030 commented on this pull request.



> @@ -416,6 +416,25 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
     return 0;
 }
 
+int gpio_set_cb(gpio_t pin, gpio_cb_t cb, void *arg)
+{
+    int8_t int_num = _int_num(pin);
+
+    if (int_num < 0) {
+        return -1;
+    }
+
+    if (cb) {
+        config[int_num].cb = cb;
+    }
+
+    if (arg) {
+        config[int_num].arg = arg;
+    }

> I can't think of a use case where one would want to exchange the isr callback without changing the argument

How about a driver that gets context info via ```driver_t *ctx = arg;``` in more than one ISR handler, but changes the callback along with going through its state machine? (I can see myself doing that...)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/12082#discussion_r325117971
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20190917/dbacd9de/attachment.htm>


More information about the notifications mailing list