@ -291,6 +291,21 @@ static inline bool list_empty_nodebug(const struct list_head *h)
}
}
# endif
# endif
/**
* list_empty_nocheck - is a list empty ?
* @ h : the list_head
*
* If the list is empty , returns true . This doesn ' t perform any
* debug check for list consistency , so it can be called without
* locks , racing with the list being modified . This is ok for
* checks where an incorrect result is not an issue ( optimized
* bail out path for example ) .
*/
static inline bool list_empty_nocheck ( const struct list_head * h )
{
return h - > n . next = = & h - > n ;
}
/**
/**
* list_del - delete an entry from an ( unknown ) linked list .
* list_del - delete an entry from an ( unknown ) linked list .
* @ n : the list_node to delete from the list .
* @ n : the list_node to delete from the list .
@ -701,12 +716,12 @@ static inline void list_prepend_list_(struct list_head *to,
* so you can break and continue as normal .
* so you can break and continue as normal .
*
*
* WARNING ! Being the low - level macro that it is , this wrapper doesn ' t know
* WARNING ! Being the low - level macro that it is , this wrapper doesn ' t know
* nor care about the type of @ i . The only assumtion made is that @ i points
* nor care about the type of @ i . The only assump tion made is that @ i points
* to a chunk of memory that at some @ offset , relative to @ i , contains a
* to a chunk of memory that at some @ offset , relative to @ i , contains a
* properly filled ` struct node_ list' which in turn contains pointers to
* properly filled ` struct list_node ' which in turn contains pointers to
* memory chunks and it ' s turtles all the way down . Wh ith all that in mind
* memory chunks and it ' s turtles all the way down . With all that in mind
* remember that given the wrong pointer / offset couple this macro will
* remember that given the wrong pointer / offset couple this macro will
* happill y churn all you memory until l SEGFAULT stops it , in other words
* happily churn all you memory until SEGFAULT stops it , in other words
* caveat emptor .
* caveat emptor .
*
*
* It is worth mentioning that one of legitimate use - cases for that wrapper
* It is worth mentioning that one of legitimate use - cases for that wrapper