return container_of(node, struct kmod_list, node);
}
+KMOD_EXPORT struct kmod_list *kmod_list_prev(struct kmod_list *list,
+ struct kmod_list *curr)
+{
+ if (list == NULL || curr == NULL)
+ return NULL;
+
+ if (curr->node.prev == &list->node)
+ return NULL;
+
+ return container_of(curr->node.prev, struct kmod_list, node);
+}
+
KMOD_EXPORT struct kmod_list *kmod_list_next(struct kmod_list *list,
struct kmod_list *curr)
{
struct kmod_list;
struct kmod_list *kmod_list_next(struct kmod_list *first_entry,
struct kmod_list *list_entry);
+struct kmod_list *kmod_list_prev(struct kmod_list *first_entry,
+ struct kmod_list *list_entry);
#define kmod_list_foreach(list_entry, first_entry) \
for (list_entry = first_entry; \
list_entry != NULL; \