diff options
Diffstat (limited to 'gpxe/src/include/gpxe/ib_mi.h')
-rw-r--r-- | gpxe/src/include/gpxe/ib_mi.h | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/gpxe/src/include/gpxe/ib_mi.h b/gpxe/src/include/gpxe/ib_mi.h deleted file mode 100644 index b1cf686d..00000000 --- a/gpxe/src/include/gpxe/ib_mi.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef _GPXE_IB_MI_H -#define _GPXE_IB_MI_H - -/** @file - * - * Infiniband management interfaces - * - */ - -FILE_LICENCE ( GPL2_OR_LATER ); - -#include <gpxe/list.h> -#include <gpxe/retry.h> -#include <gpxe/tables.h> -#include <gpxe/infiniband.h> - -struct ib_mad_interface; -struct ib_mad_transaction; - -/** An Infiniband management agent */ -struct ib_mad_agent { - /** Management class */ - uint8_t mgmt_class; - /** Class version */ - uint8_t class_version; - /** Attribute (in network byte order) */ - uint16_t attr_id; - /** Handle MAD - * - * @v ibdev Infiniband device - * @v mi Management interface - * @v mad Received MAD - * @v av Source address vector - * @ret rc Return status code - */ - void ( * handle ) ( struct ib_device *ibdev, - struct ib_mad_interface *mi, - union ib_mad *mad, - struct ib_address_vector *av ); -}; - -/** Infiniband management agents */ -#define IB_MAD_AGENTS __table ( struct ib_mad_agent, "ib_mad_agents" ) - -/** Declare an Infiniband management agent */ -#define __ib_mad_agent __table_entry ( IB_MAD_AGENTS, 01 ) - -/** Infiniband management transaction operations */ -struct ib_mad_transaction_operations { - /** Handle transaction completion - * - * @v ibdev Infiniband device - * @v mi Management interface - * @v madx Management transaction - * @v rc Status code - * @v mad Received MAD (or NULL on error) - * @v av Source address vector (or NULL on error) - * - * The completion handler should in most cases call - * ib_destroy_madx() to free up the completed transaction. - */ - void ( * complete ) ( struct ib_device *ibdev, - struct ib_mad_interface *mi, - struct ib_mad_transaction *madx, - int rc, union ib_mad *mad, - struct ib_address_vector *av ); -}; - -/** An Infiniband management transaction */ -struct ib_mad_transaction { - /** Associated management interface */ - struct ib_mad_interface *mi; - /** List of transactions */ - struct list_head list; - /** Retry timer */ - struct retry_timer timer; - /** Destination address vector */ - struct ib_address_vector av; - /** MAD being sent */ - union ib_mad mad; - /** Transaction operations */ - struct ib_mad_transaction_operations *op; - /** Owner private data */ - void *owner_priv; -}; - -/** An Infiniband management interface */ -struct ib_mad_interface { - /** Infiniband device */ - struct ib_device *ibdev; - /** Completion queue */ - struct ib_completion_queue *cq; - /** Queue pair */ - struct ib_queue_pair *qp; - /** List of management transactions */ - struct list_head madx; -}; - -/** - * Set Infiniband management transaction owner-private data - * - * @v madx Management transaction - * @v priv Private data - */ -static inline __always_inline void -ib_madx_set_ownerdata ( struct ib_mad_transaction *madx, void *priv ) { - madx->owner_priv = priv; -} - -/** - * Get Infiniband management transaction owner-private data - * - * @v madx Management transaction - * @ret priv Private data - */ -static inline __always_inline void * -ib_madx_get_ownerdata ( struct ib_mad_transaction *madx ) { - return madx->owner_priv; -} - -extern int ib_mi_send ( struct ib_device *ibdev, struct ib_mad_interface *mi, - union ib_mad *mad, struct ib_address_vector *av ); -extern struct ib_mad_transaction * -ib_create_madx ( struct ib_device *ibdev, struct ib_mad_interface *mi, - union ib_mad *mad, struct ib_address_vector *av, - struct ib_mad_transaction_operations *op ); -extern void ib_destroy_madx ( struct ib_device *ibdev, - struct ib_mad_interface *mi, - struct ib_mad_transaction *madx ); -extern struct ib_mad_interface * ib_create_mi ( struct ib_device *ibdev, - enum ib_queue_pair_type type ); -extern void ib_destroy_mi ( struct ib_device *ibdev, - struct ib_mad_interface *mi ); - -#endif /* _GPXE_IB_MI_H */ |