[list] Add list_check_contains()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
9e3604168a
commit
df58a19015
@ -212,4 +212,23 @@ static inline int list_empty ( const struct list_head *list ) {
|
|||||||
pos = tmp, \
|
pos = tmp, \
|
||||||
tmp = list_entry ( tmp->member.next, typeof ( *tmp ), member ) )
|
tmp = list_entry ( tmp->member.next, typeof ( *tmp ), member ) )
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check list contains a specified entry
|
||||||
|
*
|
||||||
|
* @v entry Entry
|
||||||
|
* @v head List head
|
||||||
|
* @v member Name of list field within iterator's type
|
||||||
|
*/
|
||||||
|
#define list_check_contains( entry, head, member ) do { \
|
||||||
|
if ( ASSERTING ) { \
|
||||||
|
typeof ( entry ) tmp; \
|
||||||
|
int found = 0; \
|
||||||
|
list_for_each_entry ( tmp, head, member ) { \
|
||||||
|
if ( tmp == entry ) \
|
||||||
|
found = 1; \
|
||||||
|
} \
|
||||||
|
assert ( found ); \
|
||||||
|
} \
|
||||||
|
} while ( 0 )
|
||||||
|
|
||||||
#endif /* _IPXE_LIST_H */
|
#endif /* _IPXE_LIST_H */
|
||||||
|
Reference in New Issue
Block a user