[list] Add list_first_entry()

There are several points in the iPXE codebase where
list_for_each_entry() is (ab)used to extract only the first entry from
a list.  Add a macro list_first_entry() to make this code easier to
read.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2010-11-08 02:51:18 +00:00
parent 295ba15bd6
commit ea631f6fb8
7 changed files with 41 additions and 28 deletions

View File

@@ -668,11 +668,11 @@ struct io_buffer * net80211_mgmt_dequeue ( struct net80211_device *dev,
*signal = rxi->signal;
free ( rxi );
list_for_each_entry ( iobuf, &dev->mgmt_queue, list ) {
list_del ( &iobuf->list );
return iobuf;
}
assert ( 0 );
assert ( ! list_empty ( &dev->mgmt_queue ) );
iobuf = list_first_entry ( &dev->mgmt_queue, struct io_buffer,
list );
list_del ( &iobuf->list );
return iobuf;
}
return NULL;