[interface] Provide intf_insert() to insert a filter interface
Generalise the filter interface insertion logic from block_translate() and expose as intf_insert(), allowing a filter interface to be inserted on any existing interface. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -390,6 +390,23 @@ void intfs_restart ( int rc, ... ) {
|
||||
va_end ( intfs );
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a filter interface
|
||||
*
|
||||
* @v intf Object interface
|
||||
* @v upper Upper end of filter
|
||||
* @v lower Lower end of filter
|
||||
*/
|
||||
void intf_insert ( struct interface *intf, struct interface *upper,
|
||||
struct interface *lower ) {
|
||||
struct interface *dest = intf->dest;
|
||||
|
||||
intf_get ( dest );
|
||||
intf_plug_plug ( intf, upper );
|
||||
intf_plug_plug ( lower, dest );
|
||||
intf_put ( dest );
|
||||
}
|
||||
|
||||
/**
|
||||
* Poke an object interface
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user