summaryrefslogtreecommitdiff
path: root/lib/igt_aux.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-12-13 12:27:47 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2016-12-13 12:49:41 +0000
commit2e2a7d0852abcdacacfb3ba18c38a09f746b20fe (patch)
tree5ef5ab154579fe61d9ff7dbaacafdef319cd2a06 /lib/igt_aux.h
parentcd0dc8b3b113a204d3cad4e483816e72dad127ed (diff)
lib/kselftest: Parse embedded test number from parameter
Order the tests by an embedded test number from the parameter string. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'lib/igt_aux.h')
-rw-r--r--lib/igt_aux.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index ca728c26..30f914b9 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -289,7 +289,7 @@ struct igt_list {
};
#define __IGT_INIT_LIST(name) { &(name), &(name) }
-#define IGT_LIST(name) struct igt_list name = __IGT_INIT_LIST(name);
+#define IGT_LIST(name) struct igt_list name = __IGT_INIT_LIST(name)
static inline void igt_list_init(struct igt_list *list)
{
@@ -352,14 +352,24 @@ static inline bool igt_list_empty(const struct igt_list *list)
#define igt_list_first_entry(head, pos, member) \
container_of((head)->next, (pos), member)
+#define igt_list_last_entry(head, pos, member) \
+ container_of((head)->prev, (pos), member)
+
#define igt_list_next_entry(pos, member) \
container_of((pos)->member.next, (pos), member)
+#define igt_list_prev_entry(pos, member) \
+ container_of((pos)->member.prev, (pos), member)
#define igt_list_for_each(pos, head, member) \
- for (pos = igt_list_first_entry(head, pos, member); \
+ for (pos = igt_list_first_entry(head, pos, member); \
&pos->member != (head); \
pos = igt_list_next_entry(pos, member))
+#define igt_list_for_each_reverse(pos, head, member) \
+ for (pos = igt_list_last_entry(head, pos, member); \
+ &pos->member != (head); \
+ pos = igt_list_prev_entry(pos, member))
+
#define igt_list_for_each_safe(pos, tmp, head, member) \
for (pos = igt_list_first_entry(head, pos, member), \
tmp = igt_list_next_entry(pos, member); \