diff mbox

[04/34] ptrlist: add helper __PTR_STRIP_TAG()

Message ID 20170707134002.49500-5-luc.vanoostenryck@gmail.com (mailing list archive)
State Rejected, archived
Headers show

Commit Message

Luc Van Oostenryck July 7, 2017, 1:39 p.m. UTC
---
 ptrlist.h | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/ptrlist.h b/ptrlist.h
index 7ecf2b529..93de46c0b 100644
--- a/ptrlist.h
+++ b/ptrlist.h
@@ -62,8 +62,15 @@  extern int linearize_ptr_list(struct ptr_list *, void **, int);
 #define free_ptr_list(list) \
 	do { VRFY_PTR_LIST(*(list)); __free_ptr_list((struct ptr_list **)(list)); } while (0)
 
-#define PTR_ENTRY_NOTAG(h,i)	((h)->list[i])
-#define PTR_ENTRY(h,i)	(void *)(~3UL & (unsigned long)PTR_ENTRY_NOTAG(h,i))
+static inline void *__ptr_entry(const struct ptr_list *l, unsigned int i)
+{
+	return l->list[i];
+}
+
+#define PTR_ENTRY_NOTAG(h,i)	__ptr_entry(h, i)
+#define __PTR_STRIP_TAG(ptr)	(void *)(~3UL & (unsigned long)(ptr))
+#define __PTR_KEEP_TAG(ptr)	(ptr)
+#define PTR_ENTRY(h,i)		__PTR_STRIP_TAG(PTR_ENTRY_NOTAG(h,i))
 
 static inline void *first_ptr_list(struct ptr_list *list)
 {