bootstd: Move the bootflow list into an alist
Use an alist for this data structure as it is somewhat simpler to manage. This means that bootstd holds a simple list of bootflow structs and can drop it at will, without chasing down lists. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -56,11 +56,8 @@ enum bootflow_flags_t {
|
||||
/**
|
||||
* struct bootflow - information about a bootflow
|
||||
*
|
||||
* This is connected into a linked list:
|
||||
* All bootflows are listed in bootstd's bootflow alist in struct bootstd_priv
|
||||
*
|
||||
* glob_sibling - links all bootflows in all bootdevs
|
||||
*
|
||||
* @glob_node: Points to siblings in the global list (all bootdev)
|
||||
* @dev: Bootdev device which produced this bootflow, NULL for flows created by
|
||||
* BOOTMETHF_GLOBAL bootmeths
|
||||
* @blk: Block device which contains this bootflow, NULL if this is a network
|
||||
@@ -90,7 +87,6 @@ enum bootflow_flags_t {
|
||||
* @bootmeth_priv: Private data for the bootmeth
|
||||
*/
|
||||
struct bootflow {
|
||||
struct list_head glob_node;
|
||||
struct udevice *dev;
|
||||
struct udevice *blk;
|
||||
int part;
|
||||
@@ -390,7 +386,10 @@ const char *bootflow_state_get_name(enum bootflow_state_t state);
|
||||
/**
|
||||
* bootflow_remove() - Remove a bootflow and free its memory
|
||||
*
|
||||
* This updates the linked lists containing the bootflow then frees it.
|
||||
* This updates the 'global' linked list containing the bootflow, then frees it.
|
||||
* It does not remove it from bootflows alist in struct bootstd_priv
|
||||
*
|
||||
* This does not free bflow itself, since this is assumed to be in an alist
|
||||
*
|
||||
* @bflow: Bootflow to remove
|
||||
*/
|
||||
|
Reference in New Issue
Block a user