From 1d119d58c1f355e4b5143b8565cfff33d93e1eaf Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Tue, 14 Nov 2017 09:25:32 -0800 Subject: [PATCH] watchlist: added macro for notifying with no args The macros currently did not support notifying a watchlist with no extra arguments. --- src/watchlist.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/watchlist.h b/src/watchlist.h index 737b80d3..3d878100 100644 --- a/src/watchlist.h +++ b/src/watchlist.h @@ -2,7 +2,7 @@ * * Wireless daemon for Linux * - * Copyright (C) 2016 Intel Corporation. All rights reserved. + * Copyright (C) 2016-2017 Intel Corporation. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -92,3 +92,19 @@ void __watchlist_prune_stale(struct watchlist *watchlist); if ((watchlist)->stale_items) \ __watchlist_prune_stale(watchlist); \ } while (false) + +#define WATCHLIST_NOTIFY_NO_ARGS(watchlist, type) \ + do { \ + const struct l_queue_entry *entry = \ + l_queue_get_entries((watchlist)->items);\ + \ + (watchlist)->in_notify = true; \ + for (; entry; entry = entry->next) { \ + struct watchlist_item *item = entry->data; \ + type t = item->notify; \ + t(item->notify_data); \ + } \ + (watchlist)->in_notify = false; \ + if ((watchlist)->stale_items) \ + __watchlist_prune_stale(watchlist); \ + } while (false)