diff --git a/src/core/interface.c b/src/core/interface.c index 8498425cd..0f4cd55f8 100644 --- a/src/core/interface.c +++ b/src/core/interface.c @@ -42,3 +42,18 @@ void plug ( struct interface *intf, struct interface *dest ) { ref_get ( dest->refcnt ); intf->dest = dest; } + +/** + * Plug two interfaces together + * + * @v a Interface A + * @v b Interface B + * + * Plugs interface A into interface B, and interface B into interface + * A. (The basic plug() function is unidirectional; this function is + * merely a shorthand for two calls to plug(), hence the name.) + */ +void plug_plug ( struct interface *a, struct interface *b ) { + plug ( a, b ); + plug ( b, a ); +} diff --git a/src/include/gpxe/interface.h b/src/include/gpxe/interface.h index 6ec9b1463..59bb42692 100644 --- a/src/include/gpxe/interface.h +++ b/src/include/gpxe/interface.h @@ -29,5 +29,6 @@ struct interface { }; extern void plug ( struct interface *intf, struct interface *dest ); +extern void plug_plug ( struct interface *a, struct interface *b ); #endif /* _GPXE_INTERFACE_H */