mirror of https://github.com/ipxe/ipxe.git
[interface] Add intf_poke() helper
Reduce the cost of implementing object methods which convey no information beyond the fact that the method has been called. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/38/head
parent
6bc3d99496
commit
81c80c8ba9
|
@ -311,3 +311,28 @@ void intf_restart ( struct interface *intf, int rc ) {
|
||||||
*/
|
*/
|
||||||
intf->desc = desc;
|
intf->desc = desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Poke an object interface
|
||||||
|
*
|
||||||
|
* @v intf Object interface
|
||||||
|
* @v type Operation type
|
||||||
|
*
|
||||||
|
* This is a helper function to implement methods which take no
|
||||||
|
* parameters and return nothing.
|
||||||
|
*/
|
||||||
|
void intf_poke ( struct interface *intf,
|
||||||
|
void ( type ) ( struct interface *intf ) ) {
|
||||||
|
struct interface *dest;
|
||||||
|
intf_poke_TYPE ( void * ) *op =
|
||||||
|
intf_get_dest_op_untyped ( intf, type, &dest );
|
||||||
|
void *object = intf_object ( dest );
|
||||||
|
|
||||||
|
if ( op ) {
|
||||||
|
op ( object );
|
||||||
|
} else {
|
||||||
|
/* Default is to do nothing */
|
||||||
|
}
|
||||||
|
|
||||||
|
intf_put ( dest );
|
||||||
|
}
|
||||||
|
|
|
@ -145,6 +145,11 @@ extern void intf_close ( struct interface *intf, int rc );
|
||||||
extern void intf_shutdown ( struct interface *intf, int rc );
|
extern void intf_shutdown ( struct interface *intf, int rc );
|
||||||
extern void intf_restart ( struct interface *intf, int rc );
|
extern void intf_restart ( struct interface *intf, int rc );
|
||||||
|
|
||||||
|
extern void intf_poke ( struct interface *intf,
|
||||||
|
void ( type ) ( struct interface *intf ) );
|
||||||
|
#define intf_poke_TYPE( object_type ) \
|
||||||
|
typeof ( void ( object_type ) )
|
||||||
|
|
||||||
extern struct interface_descriptor null_intf_desc;
|
extern struct interface_descriptor null_intf_desc;
|
||||||
extern struct interface null_intf;
|
extern struct interface null_intf;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue