exec_list: Add a prepend function.
This complements the existing append function. It's implemented in a rather simple way right now; it could be changed if performance is a concern. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Connor Abbott <connor.abbott@intel.com>
This commit is contained in:
parent
9a723b970e
commit
28c4fd4bc6
|
@ -345,9 +345,15 @@ struct exec_list {
|
|||
void move_nodes_to(exec_list *target);
|
||||
|
||||
/**
|
||||
* Append all nodes from the source list to the target list
|
||||
* Append all nodes from the source list to the end of the target list
|
||||
*/
|
||||
void append_list(exec_list *source);
|
||||
|
||||
/**
|
||||
* Prepend all nodes from the source list to the beginning of the target
|
||||
* list
|
||||
*/
|
||||
void prepend_list(exec_list *source);
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -478,6 +484,13 @@ exec_list_append(struct exec_list *list, struct exec_list *source)
|
|||
exec_list_make_empty(source);
|
||||
}
|
||||
|
||||
static inline void
|
||||
exec_list_prepend(struct exec_list *list, struct exec_list *source)
|
||||
{
|
||||
exec_list_append(source, list);
|
||||
exec_list_move_nodes_to(source, list);
|
||||
}
|
||||
|
||||
static inline void
|
||||
exec_node_insert_list_before(struct exec_node *n, struct exec_list *before)
|
||||
{
|
||||
|
@ -554,6 +567,11 @@ inline void exec_list::append_list(exec_list *source)
|
|||
exec_list_append(this, source);
|
||||
}
|
||||
|
||||
inline void exec_list::prepend_list(exec_list *source)
|
||||
{
|
||||
exec_list_prepend(this, source);
|
||||
}
|
||||
|
||||
inline void exec_node::insert_before(exec_list *before)
|
||||
{
|
||||
exec_node_insert_list_before(this, before);
|
||||
|
|
Loading…
Reference in New Issue