mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-07 00:31:11 +00:00
platform: add nmp_cache_iter_for_each_reverse() helper
This commit is contained in:
parent
53070705b0
commit
9c99c948fd
|
@ -120,4 +120,5 @@ ForEachMacros: ['c_list_for_each',
|
||||||
'nm_platform_iter_obj_for_each',
|
'nm_platform_iter_obj_for_each',
|
||||||
'nmp_cache_iter_for_each',
|
'nmp_cache_iter_for_each',
|
||||||
'nmp_cache_iter_for_each_link',
|
'nmp_cache_iter_for_each_link',
|
||||||
|
'nmp_cache_iter_for_each_reverse',
|
||||||
]
|
]
|
||||||
|
|
|
@ -777,6 +777,18 @@ nmp_cache_iter_next(NMDedupMultiIter *iter, const NMPObject **out_obj)
|
||||||
return has_next;
|
return has_next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline gboolean
|
||||||
|
nmp_cache_iter_prev(NMDedupMultiIter *iter, const NMPObject **out_obj)
|
||||||
|
{
|
||||||
|
gboolean has_prev;
|
||||||
|
|
||||||
|
has_prev = nm_dedup_multi_iter_prev(iter);
|
||||||
|
nm_assert(!has_prev || NMP_OBJECT_IS_VALID(iter->current->obj));
|
||||||
|
if (out_obj)
|
||||||
|
*out_obj = has_prev ? iter->current->obj : NULL;
|
||||||
|
return has_prev;
|
||||||
|
}
|
||||||
|
|
||||||
static inline gboolean
|
static inline gboolean
|
||||||
nmp_cache_iter_next_link(NMDedupMultiIter *iter, const NMPlatformLink **out_obj)
|
nmp_cache_iter_next_link(NMDedupMultiIter *iter, const NMPlatformLink **out_obj)
|
||||||
{
|
{
|
||||||
|
@ -792,6 +804,9 @@ nmp_cache_iter_next_link(NMDedupMultiIter *iter, const NMPlatformLink **out_obj)
|
||||||
#define nmp_cache_iter_for_each(iter, head, obj) \
|
#define nmp_cache_iter_for_each(iter, head, obj) \
|
||||||
for (nm_dedup_multi_iter_init((iter), (head)); nmp_cache_iter_next((iter), (obj));)
|
for (nm_dedup_multi_iter_init((iter), (head)); nmp_cache_iter_next((iter), (obj));)
|
||||||
|
|
||||||
|
#define nmp_cache_iter_for_each_reverse(iter, head, obj) \
|
||||||
|
for (nm_dedup_multi_iter_init_reverse((iter), (head)); nmp_cache_iter_prev((iter), (obj));)
|
||||||
|
|
||||||
#define nmp_cache_iter_for_each_link(iter, head, obj) \
|
#define nmp_cache_iter_for_each_link(iter, head, obj) \
|
||||||
for (nm_dedup_multi_iter_init((iter), (head)); nmp_cache_iter_next_link((iter), (obj));)
|
for (nm_dedup_multi_iter_init((iter), (head)); nmp_cache_iter_next_link((iter), (obj));)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue