37 lines
878 B
C
37 lines
878 B
C
|
#ifndef _GPXE_INTERFACE_H
|
||
|
#define _GPXE_INTERFACE_H
|
||
|
|
||
|
/** @file
|
||
|
*
|
||
|
* Object communication interfaces
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/** An object communication interface */
|
||
|
struct interface {
|
||
|
/** Destination interface
|
||
|
*
|
||
|
* When messages are sent via this interface, they will be
|
||
|
* delivered to the destination interface.
|
||
|
*
|
||
|
* This pointer may never be NULL. When the interface is
|
||
|
* unplugged, it should point to a null interface.
|
||
|
*/
|
||
|
struct interface *dest;
|
||
|
/** Update reference count
|
||
|
*
|
||
|
* @v intf Interface
|
||
|
* @v delta Change to apply to reference count
|
||
|
*
|
||
|
* This method updates the reference count for the object
|
||
|
* containing the interface.
|
||
|
*/
|
||
|
void ( * refcnt ) ( struct interface *intf, int delta );
|
||
|
};
|
||
|
|
||
|
extern void plug ( struct interface *intf, struct interface *dest );
|
||
|
|
||
|
extern void null_refcnt ( struct interface *intf, int delta );
|
||
|
|
||
|
#endif /* _GPXE_INTERFACE_H */
|