[1/5] drm: add a macro DRMLISTFOREACHENTRYREVERSE

Submitted by James Xiong on March 16, 2018, 1:20 a.m.

Details

Message ID 1521163214-13521-2-git-send-email-james.xiong@intel.com
State New
Series "improve reuse implementation"
Headers show

Commit Message

James Xiong March 16, 2018, 1:20 a.m.
From: "Xiong, James" <james.xiong@intel.com>

it goes through DRMLIST in a reverse order

Signed-off-by: Xiong, James <james.xiong@intel.com>
---
 libdrm_lists.h | 6 ++++++
 1 file changed, 6 insertions(+)

Patch hide | download patch | download mbox

diff --git a/libdrm_lists.h b/libdrm_lists.h
index 8926d8d..400c731 100644
--- a/libdrm_lists.h
+++ b/libdrm_lists.h
@@ -101,6 +101,12 @@  typedef struct _drmMMListHead
 	     (__item) = DRMLISTENTRY(typeof(*__item),                          \
 				     (__item)->__head.next, __head))
 
+#define DRMLISTFOREACHENTRYREVERSE(__item, __list, __head)                     \
+	for ((__item) = DRMLISTENTRY(typeof(*__item), (__list)->prev, __head); \
+	     &(__item)->__head != (__list);                                    \
+	     (__item) = DRMLISTENTRY(typeof(*__item),                          \
+				     (__item)->__head.prev, __head))
+
 #define DRMLISTFOREACHENTRYSAFE(__item, __temp, __list, __head)                \
 	for ((__item) = DRMLISTENTRY(typeof(*__item), (__list)->next, __head), \
 	     (__temp) = DRMLISTENTRY(typeof(*__item),                          \