[openib-general] [PATCH 1/2] opensm: cleanup sm related _ctrl layer

Sasha Khapyorsky sashak at voltaire.com
Fri Jan 19 18:56:51 PST 2007


This cleanups sm related _ctrl layer.

Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
---
 osm/include/Makefile.am                     |   11 --
 osm/include/opensm/osm_lin_fwd_rcv.h        |   15 +-
 osm/include/opensm/osm_lin_fwd_rcv_ctrl.h   |  233 ------------------------
 osm/include/opensm/osm_mcast_fwd_rcv.h      |   15 +-
 osm/include/opensm/osm_mcast_fwd_rcv_ctrl.h |  235 ------------------------
 osm/include/opensm/osm_node_desc_rcv.h      |   15 +-
 osm/include/opensm/osm_node_desc_rcv_ctrl.h |  232 ------------------------
 osm/include/opensm/osm_node_info_rcv.h      |   19 +-
 osm/include/opensm/osm_node_info_rcv_ctrl.h |  261 ---------------------------
 osm/include/opensm/osm_pkey_rcv.h           |   17 +-
 osm/include/opensm/osm_pkey_rcv_ctrl.h      |  248 -------------------------
 osm/include/opensm/osm_port_info_rcv.h      |    8 +-
 osm/include/opensm/osm_port_info_rcv_ctrl.h |  261 ---------------------------
 osm/include/opensm/osm_slvl_map_rcv.h       |   17 +-
 osm/include/opensm/osm_slvl_map_rcv_ctrl.h  |  261 ---------------------------
 osm/include/opensm/osm_sm.h                 |   44 +++---
 osm/include/opensm/osm_sminfo_rcv.h         |   21 +--
 osm/include/opensm/osm_sminfo_rcv_ctrl.h    |  232 ------------------------
 osm/include/opensm/osm_sw_info_rcv.h        |   19 +-
 osm/include/opensm/osm_sw_info_rcv_ctrl.h   |  261 ---------------------------
 osm/include/opensm/osm_trap_rcv.h           |   22 ++--
 osm/include/opensm/osm_trap_rcv_ctrl.h      |  232 ------------------------
 osm/include/opensm/osm_vl_arb_rcv.h         |   17 +-
 osm/include/opensm/osm_vl_arb_rcv_ctrl.h    |  261 ---------------------------
 osm/opensm/Makefile.am                      |   22 ++--
 osm/opensm/osm_lin_fwd_rcv.c                |    6 +-
 osm/opensm/osm_lin_fwd_rcv_ctrl.c           |  125 -------------
 osm/opensm/osm_mcast_fwd_rcv.c              |    6 +-
 osm/opensm/osm_mcast_fwd_rcv_ctrl.c         |  125 -------------
 osm/opensm/osm_node_desc_rcv.c              |    6 +-
 osm/opensm/osm_node_desc_rcv_ctrl.c         |  127 -------------
 osm/opensm/osm_node_info_rcv.c              |    6 +-
 osm/opensm/osm_node_info_rcv_ctrl.c         |  127 -------------
 osm/opensm/osm_pkey_rcv.c                   |    6 +-
 osm/opensm/osm_pkey_rcv_ctrl.c              |  116 ------------
 osm/opensm/osm_port_info_rcv.c              |    6 +-
 osm/opensm/osm_port_info_rcv_ctrl.c         |  128 -------------
 osm/opensm/osm_slvl_map_rcv.c               |    6 +-
 osm/opensm/osm_slvl_map_rcv_ctrl.c          |  127 -------------
 osm/opensm/osm_sm.c                         |  141 +++++++--------
 osm/opensm/osm_sminfo_rcv.c                 |    6 +-
 osm/opensm/osm_sminfo_rcv_ctrl.c            |  127 -------------
 osm/opensm/osm_sw_info_rcv.c                |    6 +-
 osm/opensm/osm_sw_info_rcv_ctrl.c           |  126 -------------
 osm/opensm/osm_trap_rcv.c                   |    6 +-
 osm/opensm/osm_trap_rcv_ctrl.c              |  126 -------------
 osm/opensm/osm_vl_arb_rcv.c                 |    6 +-
 osm/opensm/osm_vl_arb_rcv_ctrl.c            |  127 -------------
 48 files changed, 230 insertions(+), 4337 deletions(-)

diff --git a/osm/include/Makefile.am b/osm/include/Makefile.am
index d6bdd84..bc23723 100644
--- a/osm/include/Makefile.am
+++ b/osm/include/Makefile.am
@@ -11,7 +11,6 @@ EXTRA_DIST = \
 	$(srcdir)/opensm/osm_sa_path_record.h \
 	$(srcdir)/opensm/osm_lid_mgr.h \
 	$(srcdir)/opensm/osm_vl_arb_rcv.h \
-	$(srcdir)/opensm/osm_lin_fwd_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_pkey_rcv.h \
 	$(srcdir)/opensm/osm_port.h \
 	$(srcdir)/opensm/osm_sm_state_mgr.h \
@@ -23,15 +22,12 @@ EXTRA_DIST = \
 	$(srcdir)/opensm/osm_subnet.h \
 	$(srcdir)/opensm/osm_sweep_fail_ctrl.h \
 	$(srcdir)/opensm/osm_matrix.h \
-	$(srcdir)/opensm/osm_trap_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_sa_mcmember_record_ctrl.h \
 	$(srcdir)/opensm/osm_sa_service_record_ctrl.h \
-	$(srcdir)/opensm/osm_pkey_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_sa_lft_record.h \
 	$(srcdir)/opensm/osm_sa_mft_record.h \
 	$(srcdir)/opensm/osm_resp.h \
 	$(srcdir)/opensm/osm_partition.h \
-	$(srcdir)/opensm/osm_slvl_map_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_sa_pkey_record_ctrl.h \
 	$(srcdir)/opensm/osm_helper.h \
 	$(srcdir)/opensm/osm_sa_portinfo_record.h \
@@ -45,7 +41,6 @@ EXTRA_DIST = \
 	$(srcdir)/opensm/osm_req.h \
 	$(srcdir)/opensm/osm_mcm_info.h \
 	$(srcdir)/opensm/osm_mtl_bind.h \
-	$(srcdir)/opensm/osm_sminfo_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_sa_pkey_record.h \
 	$(srcdir)/opensm/osm_sa_lft_record_ctrl.h \
 	$(srcdir)/opensm/osm_sa_mft_record_ctrl.h \
@@ -58,7 +53,6 @@ EXTRA_DIST = \
 	$(srcdir)/opensm/osm_sa_slvl_record.h \
 	$(srcdir)/opensm/osm_opensm.h \
 	$(srcdir)/opensm/osm_sa.h \
-	$(srcdir)/opensm/osm_vl_arb_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_port_profile.h \
 	$(srcdir)/opensm/osm_sminfo_rcv.h \
 	$(srcdir)/opensm/osm_multicast.h \
@@ -82,9 +76,7 @@ EXTRA_DIST = \
 	$(srcdir)/opensm/osm_mad_pool.h \
 	$(srcdir)/opensm/osm_remote_sm.h \
 	$(srcdir)/opensm/osm_sa_class_port_info_ctrl.h \
-	$(srcdir)/opensm/osm_node_info_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_link_mgr.h \
-	$(srcdir)/opensm/osm_mcast_fwd_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_msgdef.h \
 	$(srcdir)/opensm/osm_sa_node_record.h \
 	$(srcdir)/opensm/st.h \
@@ -93,19 +85,16 @@ EXTRA_DIST = \
 	$(srcdir)/opensm/osm_pkey_mgr.h \
 	$(srcdir)/opensm/osm_sa_mad_ctrl.h \
 	$(srcdir)/opensm/osm_req_ctrl.h \
-	$(srcdir)/opensm/osm_sw_info_rcv.h \
 	$(srcdir)/opensm/osm_sa_link_record.h \
 	$(srcdir)/opensm/osm_mcm_port.h \
 	$(srcdir)/opensm/osm_log.h \
 	$(srcdir)/opensm/osm_mcast_fwd_rcv.h \
-	$(srcdir)/opensm/osm_node_desc_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_fwd_tbl.h \
 	$(srcdir)/opensm/osm_db_pack.h \
 	$(srcdir)/opensm/osm_sm_mad_ctrl.h \
 	$(srcdir)/opensm/osm_slvl_map_rcv.h \
 	$(srcdir)/opensm/osm_sa_node_record_ctrl.h \
 	$(srcdir)/opensm/osm_attrib_req.h \
-	$(srcdir)/opensm/osm_port_info_rcv_ctrl.h \
 	$(srcdir)/opensm/osm_node_desc_rcv.h \
 	$(srcdir)/opensm/osm_stats.h \
 	$(srcdir)/opensm/osm_sa_path_record_ctrl.h \
diff --git a/osm/include/opensm/osm_lin_fwd_rcv.h b/osm/include/opensm/osm_lin_fwd_rcv.h
index 77b4e4a..4fe5b90 100644
--- a/osm/include/opensm/osm_lin_fwd_rcv.h
+++ b/osm/include/opensm/osm_lin_fwd_rcv.h
@@ -96,10 +96,9 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_lft_rcv
 {
-	osm_subn_t					*p_subn;
-	osm_log_t					*p_log;
-	cl_plock_t					*p_lock;
-
+	osm_subn_t	*p_subn;
+	osm_log_t	*p_log;
+	cl_plock_t	*p_lock;
 } osm_lft_rcv_t;
 /*
 * FIELDS
@@ -229,14 +228,14 @@ ib_api_status_t osm_lft_rcv_init(
 * SYNOPSIS
 */
 void osm_lft_rcv_process(
-	IN const osm_lft_rcv_t* const p_rcv,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_rcv
+*	context
 *		[in] Pointer to an osm_lft_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's LFT attribute.
 *
diff --git a/osm/include/opensm/osm_lin_fwd_rcv_ctrl.h b/osm/include/opensm/osm_lin_fwd_rcv_ctrl.h
deleted file mode 100644
index a9c6192..0000000
--- a/osm/include/opensm/osm_lin_fwd_rcv_ctrl.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_lft_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA
- *  LFT attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#ifndef _OSM_LFT_RCV_CTRL_H_
-#define _OSM_LFT_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_lin_fwd_rcv.h>
-#include <opensm/osm_log.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/LFT Receive Controller
-* NAME
-*	LFT Receive Controller
-*
-* DESCRIPTION
-*	The LFT Receive Controller object
-*	encapsulates the information
-*	needed to receive the NodeDescription attribute from a node.
-*
-*	The LFT Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Steve King, Intel
-*
-*********/
-
-/****s* OpenSM: LFT Receive Controller/osm_lft_rcv_ctrl_t
-* NAME
-*	osm_lft_rcv_ctrl_t
-*
-* DESCRIPTION
-*	LFT Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_lft_rcv_ctrl
-{
-	osm_lft_rcv_t				*p_rcv;
-	osm_log_t					*p_log;
-	cl_dispatcher_t				*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_lft_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the LFT Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	LFT Receive Controller object
-*********/
-
-/****f* OpenSM: LFT Receive Controller/osm_lft_rcv_ctrl_construct
-* NAME
-*	osm_lft_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a LFT Receive Controller object.
-*
-* SYNOPSIS
-*/
-void
-osm_lft_rcv_ctrl_construct(
-	IN osm_lft_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a LFT Receive Controller object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_lft_rcv_ctrl_init, osm_lft_rcv_ctrl_destroy
-*
-*	Calling osm_lft_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_lft_rcv_ctrl_init.
-*
-* SEE ALSO
-*	LFT Receive Controller object, osm_lft_rcv_ctrl_init,
-*	osm_lft_rcv_ctrl_destroy
-*********/
-
-/****f* OpenSM: LFT Receive Controller/osm_lft_rcv_ctrl_destroy
-* NAME
-*	osm_lft_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_lft_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void
-osm_lft_rcv_ctrl_destroy(
-	IN osm_lft_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	LFT Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_lft_rcv_ctrl_construct or osm_lft_rcv_ctrl_init.
-*
-* SEE ALSO
-*	LFT Receive Controller object, osm_lft_rcv_ctrl_construct,
-*	osm_lft_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: LFT Receive Controller/osm_lft_rcv_ctrl_init
-* NAME
-*	osm_lft_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_lft_rcv_ctrl_init function initializes a
-*	LFT Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t
-osm_lft_rcv_ctrl_init(
-	IN osm_lft_rcv_ctrl_t* const p_ctrl,
-	IN osm_lft_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_lft_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_lft_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the LFT Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other LFT Receive Controller methods.
-*
-* SEE ALSO
-*	LFT Receive Controller object, osm_lft_rcv_ctrl_construct,
-*	osm_lft_rcv_ctrl_destroy
-*********/
-
-END_C_DECLS
-
-#endif		/* OSM_LFT_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_mcast_fwd_rcv.h b/osm/include/opensm/osm_mcast_fwd_rcv.h
index c18a748..3a2de28 100644
--- a/osm/include/opensm/osm_mcast_fwd_rcv.h
+++ b/osm/include/opensm/osm_mcast_fwd_rcv.h
@@ -96,10 +96,9 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_mft_rcv
 {
-	osm_subn_t					*p_subn;
-	osm_log_t					*p_log;
-	cl_plock_t					*p_lock;
-
+	osm_subn_t	*p_subn;
+	osm_log_t	*p_log;
+	cl_plock_t	*p_lock;
 } osm_mft_rcv_t;
 /*
 * FIELDS
@@ -233,14 +232,14 @@ osm_mft_rcv_init(
 */
 void
 osm_mft_rcv_process(
-	IN const osm_mft_rcv_t* const p_rcv,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_rcv
+*	context
 *		[in] Pointer to an osm_mft_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's MFT attribute.
 *
diff --git a/osm/include/opensm/osm_mcast_fwd_rcv_ctrl.h b/osm/include/opensm/osm_mcast_fwd_rcv_ctrl.h
deleted file mode 100644
index f64a0c8..0000000
--- a/osm/include/opensm/osm_mcast_fwd_rcv_ctrl.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_mft_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA
- *  Multicast Forwarding Table attribute from a node (specifically, a
- *	switch).
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#ifndef _OSM_MFT_RCV_CTRL_H_
-#define _OSM_MFT_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_mcast_fwd_rcv.h>
-#include <opensm/osm_log.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/MFT Receive Controller
-* NAME
-*	MFT Receive Controller
-*
-* DESCRIPTION
-*	The MFT Receive Controller object
-*	encapsulates the information
-*	needed to receive the Multicast Forwarding Table
-*	attribute from a node.
-*
-*	The MFT Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Steve King, Intel
-*
-*********/
-
-/****s* OpenSM: MFT Receive Controller/osm_mft_rcv_ctrl_t
-* NAME
-*	osm_mft_rcv_ctrl_t
-*
-* DESCRIPTION
-*	MFT Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_mft_rcv_ctrl
-{
-	osm_mft_rcv_t				*p_rcv;
-	osm_log_t					*p_log;
-	cl_dispatcher_t				*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_mft_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the MFT Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	MFT Receive Controller object
-*********/
-
-/****f* OpenSM: MFT Receive Controller/osm_mft_rcv_ctrl_construct
-* NAME
-*	osm_mft_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a MFT Receive Controller object.
-*
-* SYNOPSIS
-*/
-void
-osm_mft_rcv_ctrl_construct(
-	IN osm_mft_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a MFT Receive Controller object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_mft_rcv_ctrl_init, osm_mft_rcv_ctrl_destroy
-*
-*	Calling osm_mft_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_mft_rcv_ctrl_init.
-*
-* SEE ALSO
-*	MFT Receive Controller object, osm_mft_rcv_ctrl_init,
-*	osm_mft_rcv_ctrl_destroy
-*********/
-
-/****f* OpenSM: MFT Receive Controller/osm_mft_rcv_ctrl_destroy
-* NAME
-*	osm_mft_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_mft_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void
-osm_mft_rcv_ctrl_destroy(
-	IN osm_mft_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	MFT Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_mft_rcv_ctrl_construct or osm_mft_rcv_ctrl_init.
-*
-* SEE ALSO
-*	MFT Receive Controller object, osm_mft_rcv_ctrl_construct,
-*	osm_mft_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: MFT Receive Controller/osm_mft_rcv_ctrl_init
-* NAME
-*	osm_mft_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_mft_rcv_ctrl_init function initializes a
-*	MFT Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t
-osm_mft_rcv_ctrl_init(
-	IN osm_mft_rcv_ctrl_t* const p_ctrl,
-	IN osm_mft_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_mft_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_mft_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the MFT Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other MFT Receive Controller methods.
-*
-* SEE ALSO
-*	MFT Receive Controller object, osm_mft_rcv_ctrl_construct,
-*	osm_mft_rcv_ctrl_destroy
-*********/
-
-END_C_DECLS
-
-#endif		/* OSM_MFT_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_node_desc_rcv.h b/osm/include/opensm/osm_node_desc_rcv.h
index 8803dc9..b228d58 100644
--- a/osm/include/opensm/osm_node_desc_rcv.h
+++ b/osm/include/opensm/osm_node_desc_rcv.h
@@ -97,10 +97,9 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_nd_rcv
 {
-	osm_subn_t					*p_subn;
-	osm_log_t					*p_log;
-	cl_plock_t					*p_lock;
-
+	osm_subn_t	*p_subn;
+	osm_log_t	*p_log;
+	cl_plock_t	*p_lock;
 } osm_nd_rcv_t;
 /*
 * FIELDS
@@ -230,14 +229,14 @@ ib_api_status_t osm_nd_rcv_init(
 * SYNOPSIS
 */
 void osm_nd_rcv_process(
-	IN const osm_nd_rcv_t* const p_rcv,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_rcv
+*	context
 *		[in] Pointer to an osm_nd_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's NodeInfo attribute.
 *
diff --git a/osm/include/opensm/osm_node_desc_rcv_ctrl.h b/osm/include/opensm/osm_node_desc_rcv_ctrl.h
deleted file mode 100644
index a3c612b..0000000
--- a/osm/include/opensm/osm_node_desc_rcv_ctrl.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_nd_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA NodeDescription
- *	attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#ifndef _OSM_ND_RCV_CTRL_H_
-#define _OSM_ND_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_node_desc_rcv.h>
-#include <opensm/osm_log.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/Node Description Receive Controller
-* NAME
-*	Node Description Receive Controller
-*
-* DESCRIPTION
-*	The Node Description Receive Controller object encapsulates the information
-*	needed to receive the NodeDescription attribute from a node.
-*
-*	The Node Description Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Steve King, Intel
-*
-*********/
-
-/****s* OpenSM: Node Description Receive Controller/osm_nd_rcv_ctrl_t
-* NAME
-*	osm_nd_rcv_ctrl_t
-*
-* DESCRIPTION
-*	Node Description Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_nd_rcv_ctrl
-{
-	osm_nd_rcv_t				*p_rcv;
-	osm_log_t					*p_log;
-	cl_dispatcher_t				*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_nd_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the Node Description Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	Node Description Receive Controller object
-*********/
-
-/****f* OpenSM: Node Description Receive Controller/osm_nd_rcv_ctrl_construct
-* NAME
-*	osm_nd_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a Node Description Receive Controller object.
-*
-* SYNOPSIS
-*/
-void
-osm_nd_rcv_ctrl_construct(
-	IN osm_nd_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a Node Description Receive Controller object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_nd_rcv_ctrl_init, osm_nd_rcv_ctrl_destroy
-*
-*	Calling osm_nd_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_nd_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Node Description Receive Controller object, osm_nd_rcv_ctrl_init,
-*	osm_nd_rcv_ctrl_destroy
-*********/
-
-/****f* OpenSM: Node Description Receive Controller/osm_nd_rcv_ctrl_destroy
-* NAME
-*	osm_nd_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_nd_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void
-osm_nd_rcv_ctrl_destroy(
-	IN osm_nd_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	Node Description Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_nd_rcv_ctrl_construct or osm_nd_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Node Description Receive Controller object, osm_nd_rcv_ctrl_construct,
-*	osm_nd_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: Node Description Receive Controller/osm_nd_rcv_ctrl_init
-* NAME
-*	osm_nd_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_nd_rcv_ctrl_init function initializes a
-*	Node Description Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t
-osm_nd_rcv_ctrl_init(
-	IN osm_nd_rcv_ctrl_t* const p_ctrl,
-	IN osm_nd_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_nd_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_nd_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the Node Description Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other Node Description Receive Controller methods.
-*
-* SEE ALSO
-*	Node Description Receive Controller object, osm_nd_rcv_ctrl_construct,
-*	osm_nd_rcv_ctrl_destroy
-*********/
-
-END_C_DECLS
-
-#endif		/* OSM_ND_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_node_info_rcv.h b/osm/include/opensm/osm_node_info_rcv.h
index 88d14a8..cae2f7f 100644
--- a/osm/include/opensm/osm_node_info_rcv.h
+++ b/osm/include/opensm/osm_node_info_rcv.h
@@ -100,12 +100,11 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_ni_rcv
 {
-	osm_subn_t				*p_subn;
-	osm_req_t				*p_gen_req;
-	osm_log_t				*p_log;
-	osm_state_mgr_t				*p_state_mgr;
-	cl_plock_t				*p_lock;
-
+	osm_subn_t	*p_subn;
+	osm_req_t	*p_gen_req;
+	osm_log_t	*p_log;
+	osm_state_mgr_t	*p_state_mgr;
+	cl_plock_t	*p_lock;
 } osm_ni_rcv_t;
 /*
 * FIELDS
@@ -279,14 +278,14 @@ boolean_t osm_ni_rcv_is_inited(
 * SYNOPSIS
 */
 void osm_ni_rcv_process(
-	IN const osm_ni_rcv_t* const p_ctrl,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_ctrl
+*	context
 *		[in] Pointer to an osm_ni_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's NodeInfo attribute.
 *
diff --git a/osm/include/opensm/osm_node_info_rcv_ctrl.h b/osm/include/opensm/osm_node_info_rcv_ctrl.h
deleted file mode 100644
index 2765a8e..0000000
--- a/osm/include/opensm/osm_node_info_rcv_ctrl.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_ni_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA NodeInfo
- *	attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#ifndef _OSM_NI_RCV_CTRL_H_
-#define _OSM_NI_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_log.h>
-#include <opensm/osm_node_info_rcv.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/Node Info Receive Controller
-* NAME
-*	Node Info Receive Controller
-*
-* DESCRIPTION
-*	The Node Info Receive Controller object encapsulates
-*	the information	needed to receive the NodeInfo attribute from a node.
-*
-*	The Node Info Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Steve King, Intel
-*
-*********/
-
-/****s* OpenSM: Node Info Receive Controller/osm_ni_rcv_ctrl_t
-* NAME
-*	osm_ni_rcv_ctrl_t
-*
-* DESCRIPTION
-*	Node Info Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_ni_rcv_ctrl
-{
-	osm_ni_rcv_t			*p_rcv;
-	osm_log_t			*p_log;
-	cl_dispatcher_t			*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_ni_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the Node Info Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	Node Info Receive Controller object
-*	Node Info Receiver object
-*********/
-
-/****f* OpenSM: Node Info Receive Controller/osm_ni_rcv_ctrl_construct
-* NAME
-*	osm_ni_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a Node Info Receive Controller object.
-*
-* SYNOPSIS
-*/
-void osm_ni_rcv_ctrl_construct(
-	IN osm_ni_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a Node Info Receive Controller
-*		object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_ni_rcv_ctrl_init, osm_ni_rcv_ctrl_destroy,
-*	and osm_ni_rcv_ctrl_is_inited.
-*
-*	Calling osm_ni_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_ni_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Node Info Receive Controller object, osm_ni_rcv_ctrl_init,
-*	osm_ni_rcv_ctrl_destroy, osm_ni_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Node Info Receive Controller/osm_ni_rcv_ctrl_destroy
-* NAME
-*	osm_ni_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_ni_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void osm_ni_rcv_ctrl_destroy(
-	IN osm_ni_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	Node Info Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_ni_rcv_ctrl_construct or osm_ni_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Node Info Receive Controller object, osm_ni_rcv_ctrl_construct,
-*	osm_ni_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: Node Info Receive Controller/osm_ni_rcv_ctrl_init
-* NAME
-*	osm_ni_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_ni_rcv_ctrl_init function initializes a
-*	Node Info Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t osm_ni_rcv_ctrl_init(
-	IN osm_ni_rcv_ctrl_t* const p_ctrl,
-	IN osm_ni_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_ni_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_ni_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the Node Info Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other Node Info Receive Controller methods.
-*
-* SEE ALSO
-*	Node Info Receive Controller object, osm_ni_rcv_ctrl_construct,
-*	osm_ni_rcv_ctrl_destroy, osm_ni_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Node Info Receive Controller/osm_ni_rcv_ctrl_is_inited
-* NAME
-*	osm_ni_rcv_ctrl_is_inited
-*
-* DESCRIPTION
-*	Indicates if the object has been initialized with osm_ni_rcv_ctrl_init.
-*
-* SYNOPSIS
-*/
-boolean_t osm_ni_rcv_ctrl_is_inited(
-	IN const osm_ni_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_ni_rcv_ctrl_t object.
-*
-* RETURN VALUES
-*	TRUE if the object was initialized successfully,
-*	FALSE otherwise.
-*
-* NOTES
-*	The osm_ni_rcv_ctrl_construct or osm_ni_rcv_ctrl_init must be
-*	called before using this function.
-*
-* SEE ALSO
-*	Node Info Receive Controller object, osm_ni_rcv_ctrl_construct,
-*	osm_ni_rcv_ctrl_init
-*********/
-
-END_C_DECLS
-
-#endif	/* _OSM_NI_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_pkey_rcv.h b/osm/include/opensm/osm_pkey_rcv.h
index 6f973be..20829b2 100644
--- a/osm/include/opensm/osm_pkey_rcv.h
+++ b/osm/include/opensm/osm_pkey_rcv.h
@@ -86,11 +86,10 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_pkey_rcv
 {
-  osm_subn_t               *p_subn;
-  osm_req_t             *p_req;
-  osm_log_t             *p_log;
-  cl_plock_t               *p_lock;
-
+  osm_subn_t *p_subn;
+  osm_req_t *p_req;
+  osm_log_t *p_log;
+  cl_plock_t *p_lock;
 } osm_pkey_rcv_t;
 /*
 * FIELDS
@@ -227,14 +226,14 @@ ib_api_status_t osm_pkey_rcv_init(
 * SYNOPSIS
 */
 void osm_pkey_rcv_process(
-  IN const osm_pkey_rcv_t* const p_ctrl,
-  IN osm_madw_t* const p_madw );
+  IN void *context,
+  IN void *data );
 /*
 * PARAMETERS
-*  p_ctrl
+*  context
 *     [in] Pointer to an osm_pkey_rcv_t object.
 *
-*  p_madw
+*  data
 *     [in] Pointer to the MAD Wrapper containing the MAD
 *     that contains the node's SLtoVL attribute.
 *
diff --git a/osm/include/opensm/osm_pkey_rcv_ctrl.h b/osm/include/opensm/osm_pkey_rcv_ctrl.h
deleted file mode 100644
index af51ce8..0000000
--- a/osm/include/opensm/osm_pkey_rcv_ctrl.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef _OSM_PKEY_RCV_CTRL_H_
-#define _OSM_PKEY_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_log.h>
-#include <opensm/osm_pkey_rcv.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/P_Key Table Receive Controller
-* NAME
-*  P_Key Receive Controller
-*
-* DESCRIPTION
-*  The P_Key Receive Controller object encapsulates
-*  the information needed to get or set P_Key table of a port.
-*
-*  The P_Key Receive Controller object is thread safe.
-*
-*  This object should be treated as opaque and should be
-*  manipulated only through the provided functions.
-*
-* AUTHOR
-*  Yael Kalka, Mellanox
-*
-*********/
-
-/****s* OpenSM: P_Key Receive Controller/osm_pkey_rcv_ctrl_t
-* NAME
-*  osm_pkey_rcv_ctrl_t
-*
-* DESCRIPTION
-*  P_Key Receive Controller structure.
-*
-*  This object should be treated as opaque and should
-*  be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_pkey_rcv_ctrl
-{
-  osm_pkey_rcv_t        *p_rcv;
-  osm_log_t             *p_log;
-  cl_dispatcher_t       *p_disp;
-  cl_disp_reg_handle_t  h_disp;
-
-} osm_pkey_rcv_ctrl_t;
-/*
-* FIELDS
-*  p_rcv
-*     Pointer to the P_Key Receiver object.
-*
-*  p_log
-*     Pointer to the log object.
-*
-*  p_disp
-*     Pointer to the Dispatcher.
-*
-*  h_disp
-*     Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*  P_Key Receive Controller object
-*  P_Key Receiver object
-*********/
-
-/****f* OpenSM: P_Key Receive Controller/osm_pkey_rcv_ctrl_construct
-* NAME
-*  osm_pkey_rcv_ctrl_construct
-*
-* DESCRIPTION
-*  This function constructs a P_Key Receive Controller object.
-*
-* SYNOPSIS
-*/
-void osm_pkey_rcv_ctrl_construct(
-  IN osm_pkey_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*  p_ctrl
-*     [in] Pointer to a P_Key Receive Controller
-*     object to construct.
-*
-* RETURN VALUE
-*  This function does not return a value.
-*
-* NOTES
-*  Allows calling osm_pkey_rcv_ctrl_init, osm_pkey_rcv_ctrl_destroy,
-*  and osm_pkey_rcv_ctrl_is_inited.
-*
-*  Calling osm_pkey_rcv_ctrl_construct is a prerequisite to calling any other
-*  method except osm_pkey_rcv_ctrl_init.
-*
-* SEE ALSO
-*  P_Key Receive Controller object, osm_pkey_rcv_ctrl_init,
-*  osm_pkey_rcv_ctrl_destroy, osm_pkey_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: P_Key Receive Controller/osm_pkey_rcv_ctrl_destroy
-* NAME
-*  osm_pkey_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*  The osm_pkey_rcv_ctrl_destroy function destroys the object, releasing
-*  all resources.
-*
-* SYNOPSIS
-*/
-void osm_pkey_rcv_ctrl_destroy(
-  IN osm_pkey_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*  p_ctrl
-*     [in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*  This function does not return a value.
-*
-* NOTES
-*  Performs any necessary cleanup of the specified
-*  P_Key Receive Controller object.
-*  Further operations should not be attempted on the destroyed object.
-*  This function should only be called after a call to
-*  osm_pkey_rcv_ctrl_construct or osm_pkey_rcv_ctrl_init.
-*
-* SEE ALSO
-*  P_Key Receive Controller object, osm_pkey_rcv_ctrl_construct,
-*  osm_pkey_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: P_Key Receive Controller/osm_pkey_rcv_ctrl_init
-* NAME
-*  osm_pkey_rcv_ctrl_init
-*
-* DESCRIPTION
-*  The osm_pkey_rcv_ctrl_init function initializes a
-*  P_Key Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t osm_pkey_rcv_ctrl_init(
-  IN osm_pkey_rcv_ctrl_t* const p_ctrl,
-  IN osm_pkey_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*  p_ctrl
-*     [in] Pointer to an osm_pkey_rcv_ctrl_t object to initialize.
-*
-*  p_rcv
-*     [in] Pointer to an osm_pkey_rcv_t object.
-*
-*  p_log
-*     [in] Pointer to the log object.
-*
-*  p_disp
-*     [in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*  CL_SUCCESS if the P_Key Receive Controller object was initialized
-*  successfully.
-*
-* NOTES
-*  Allows calling other P_Key Receive Controller methods.
-*
-* SEE ALSO
-*  P_Key Receive Controller object, osm_pkey_rcv_ctrl_construct,
-*  osm_pkey_rcv_ctrl_destroy, osm_pkey_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: P_Key Receive Controller/osm_pkey_rcv_ctrl_is_inited
-* NAME
-*  osm_pkey_rcv_ctrl_is_inited
-*
-* DESCRIPTION
-*  Indicates if the object has been initialized with osm_pkey_rcv_ctrl_init.
-*
-* SYNOPSIS
-*/
-boolean_t osm_pkey_rcv_ctrl_is_inited(
-  IN const osm_pkey_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*  p_ctrl
-*     [in] Pointer to an osm_pkey_rcv_ctrl_t object.
-*
-* RETURN VALUES
-*  TRUE if the object was initialized successfully,
-*  FALSE otherwise.
-*
-* NOTES
-*  The osm_pkey_rcv_ctrl_construct or osm_pkey_rcv_ctrl_init must be
-*  called before using this function.
-*
-* SEE ALSO
-*  P_Key Receive Controller object, osm_pkey_rcv_ctrl_construct,
-*  osm_pkey_rcv_ctrl_init
-*********/
-
-END_C_DECLS
-
-#endif   /* _OSM_PKEY_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_port_info_rcv.h b/osm/include/opensm/osm_port_info_rcv.h
index 834d21e..35f399c 100644
--- a/osm/include/opensm/osm_port_info_rcv.h
+++ b/osm/include/opensm/osm_port_info_rcv.h
@@ -248,14 +248,14 @@ ib_api_status_t osm_pi_rcv_init(
 * SYNOPSIS
 */
 void osm_pi_rcv_process(
-	IN const osm_pi_rcv_t* const p_ctrl,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_ctrl
+*	context
 *		[in] Pointer to an osm_pi_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's PortInfo attribute.
 *
diff --git a/osm/include/opensm/osm_port_info_rcv_ctrl.h b/osm/include/opensm/osm_port_info_rcv_ctrl.h
deleted file mode 100644
index 8337bf7..0000000
--- a/osm/include/opensm/osm_port_info_rcv_ctrl.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_pi_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA NodeInfo
- *	attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#ifndef _OSM_PI_RCV_CTRL_H_
-#define _OSM_PI_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_log.h>
-#include <opensm/osm_port_info_rcv.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/Port Info Receive Controller
-* NAME
-*	Port Info Receive Controller
-*
-* DESCRIPTION
-*	The Port Info Receive Controller object encapsulates
-*	the information	needed to receive the NodeInfo attribute from a node.
-*
-*	The Port Info Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Steve King, Intel
-*
-*********/
-
-/****s* OpenSM: Port Info Receive Controller/osm_pi_rcv_ctrl_t
-* NAME
-*	osm_pi_rcv_ctrl_t
-*
-* DESCRIPTION
-*	Port Info Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_pi_rcv_ctrl
-{
-	osm_pi_rcv_t			*p_rcv;
-	osm_log_t			*p_log;
-	cl_dispatcher_t			*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_pi_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the Port Info Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	Port Info Receive Controller object
-*	Port Info Receiver object
-*********/
-
-/****f* OpenSM: Port Info Receive Controller/osm_pi_rcv_ctrl_construct
-* NAME
-*	osm_pi_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a Port Info Receive Controller object.
-*
-* SYNOPSIS
-*/
-void osm_pi_rcv_ctrl_construct(
-	IN osm_pi_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a Port Info Receive Controller
-*		object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_pi_rcv_ctrl_init, osm_pi_rcv_ctrl_destroy,
-*	and osm_pi_rcv_ctrl_is_inited.
-*
-*	Calling osm_pi_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_pi_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Port Info Receive Controller object, osm_pi_rcv_ctrl_init,
-*	osm_pi_rcv_ctrl_destroy, osm_pi_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Port Info Receive Controller/osm_pi_rcv_ctrl_destroy
-* NAME
-*	osm_pi_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_pi_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void osm_pi_rcv_ctrl_destroy(
-	IN osm_pi_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	Port Info Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_pi_rcv_ctrl_construct or osm_pi_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Port Info Receive Controller object, osm_pi_rcv_ctrl_construct,
-*	osm_pi_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: Port Info Receive Controller/osm_pi_rcv_ctrl_init
-* NAME
-*	osm_pi_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_pi_rcv_ctrl_init function initializes a
-*	Port Info Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t osm_pi_rcv_ctrl_init(
-	IN osm_pi_rcv_ctrl_t* const p_ctrl,
-	IN osm_pi_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_pi_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_pi_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the Port Info Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other Port Info Receive Controller methods.
-*
-* SEE ALSO
-*	Port Info Receive Controller object, osm_pi_rcv_ctrl_construct,
-*	osm_pi_rcv_ctrl_destroy, osm_pi_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Port Info Receive Controller/osm_pi_rcv_ctrl_is_inited
-* NAME
-*	osm_pi_rcv_ctrl_is_inited
-*
-* DESCRIPTION
-*	Indicates if the object has been initialized with osm_pi_rcv_ctrl_init.
-*
-* SYNOPSIS
-*/
-boolean_t osm_pi_rcv_ctrl_is_inited(
-	IN const osm_pi_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_pi_rcv_ctrl_t object.
-*
-* RETURN VALUES
-*	TRUE if the object was initialized successfully,
-*	FALSE otherwise.
-*
-* NOTES
-*	The osm_pi_rcv_ctrl_construct or osm_pi_rcv_ctrl_init must be
-*	called before using this function.
-*
-* SEE ALSO
-*	Port Info Receive Controller object, osm_pi_rcv_ctrl_construct,
-*	osm_pi_rcv_ctrl_init
-*********/
-
-END_C_DECLS
-
-#endif	/* _OSM_PI_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_slvl_map_rcv.h b/osm/include/opensm/osm_slvl_map_rcv.h
index 40e1a93..6a1e440 100644
--- a/osm/include/opensm/osm_slvl_map_rcv.h
+++ b/osm/include/opensm/osm_slvl_map_rcv.h
@@ -98,11 +98,10 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_slvl_rcv
 {
-	osm_subn_t					*p_subn;
-	osm_req_t					*p_req;
-	osm_log_t					*p_log;
-	cl_plock_t					*p_lock;
-
+	osm_subn_t	*p_subn;
+	osm_req_t	*p_req;
+	osm_log_t	*p_log;
+	cl_plock_t	*p_lock;
 } osm_slvl_rcv_t;
 /*
 * FIELDS
@@ -239,14 +238,14 @@ ib_api_status_t osm_slvl_rcv_init(
 * SYNOPSIS
 */
 void osm_slvl_rcv_process(
-	IN const osm_slvl_rcv_t* const p_ctrl,
-	IN osm_madw_t* const p_madw );
+	IN void* context,
+	IN void* p_data );
 /*
 * PARAMETERS
-*	p_ctrl
+*	context
 *		[in] Pointer to an osm_slvl_rcv_t object.
 *
-*	p_madw
+*	p_data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's SLtoVL attribute.
 *
diff --git a/osm/include/opensm/osm_slvl_map_rcv_ctrl.h b/osm/include/opensm/osm_slvl_map_rcv_ctrl.h
deleted file mode 100644
index 51cf084..0000000
--- a/osm/include/opensm/osm_slvl_map_rcv_ctrl.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_pi_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA NodeInfo
- *	attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.3 $
- */
-
-#ifndef _OSM_SLVL_RCV_CTRL_H_
-#define _OSM_SLVL_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_log.h>
-#include <opensm/osm_slvl_map_rcv.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/SltoVL Map Table Receive Controller
-* NAME
-*	Slvl Map Receive Controller
-*
-* DESCRIPTION
-*	The Slvl Map Receive Controller object encapsulates
-*	the information needed to get or set SLtoVL Map of a port.
-*
-*	The Slvl Map Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Eitan Zahavi, Mellanox
-*
-*********/
-
-/****s* OpenSM: Slvl Map Receive Controller/osm_slvl_rcv_ctrl_t
-* NAME
-*	osm_slvl_rcv_ctrl_t
-*
-* DESCRIPTION
-*	Slvl Map Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_slvl_rcv_ctrl
-{
-	osm_slvl_rcv_t			*p_rcv;
-	osm_log_t			*p_log;
-	cl_dispatcher_t			*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_slvl_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the Slvl Map Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	Slvl Map Receive Controller object
-*	Slvl Map Receiver object
-*********/
-
-/****f* OpenSM: Slvl Map Receive Controller/osm_slvl_rcv_ctrl_construct
-* NAME
-*	osm_slvl_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a Slvl Map Receive Controller object.
-*
-* SYNOPSIS
-*/
-void osm_slvl_rcv_ctrl_construct(
-	IN osm_slvl_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a Slvl Map Receive Controller
-*		object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_slvl_rcv_ctrl_init, osm_slvl_rcv_ctrl_destroy,
-*	and osm_slvl_rcv_ctrl_is_inited.
-*
-*	Calling osm_slvl_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_slvl_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Slvl Map Receive Controller object, osm_slvl_rcv_ctrl_init,
-*	osm_slvl_rcv_ctrl_destroy, osm_slvl_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Slvl Map Receive Controller/osm_slvl_rcv_ctrl_destroy
-* NAME
-*	osm_slvl_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_slvl_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void osm_slvl_rcv_ctrl_destroy(
-	IN osm_slvl_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	Slvl Map Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_slvl_rcv_ctrl_construct or osm_slvl_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Slvl Map Receive Controller object, osm_slvl_rcv_ctrl_construct,
-*	osm_slvl_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: Slvl Map Receive Controller/osm_slvl_rcv_ctrl_init
-* NAME
-*	osm_slvl_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_slvl_rcv_ctrl_init function initializes a
-*	Slvl Map Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t osm_slvl_rcv_ctrl_init(
-	IN osm_slvl_rcv_ctrl_t* const p_ctrl,
-	IN osm_slvl_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_slvl_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_slvl_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the Slvl Map Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other Slvl Map Receive Controller methods.
-*
-* SEE ALSO
-*	Slvl Map Receive Controller object, osm_slvl_rcv_ctrl_construct,
-*	osm_slvl_rcv_ctrl_destroy, osm_slvl_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Slvl Map Receive Controller/osm_slvl_rcv_ctrl_is_inited
-* NAME
-*	osm_slvl_rcv_ctrl_is_inited
-*
-* DESCRIPTION
-*	Indicates if the object has been initialized with osm_slvl_rcv_ctrl_init.
-*
-* SYNOPSIS
-*/
-boolean_t osm_slvl_rcv_ctrl_is_inited(
-	IN const osm_slvl_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_slvl_rcv_ctrl_t object.
-*
-* RETURN VALUES
-*	TRUE if the object was initialized successfully,
-*	FALSE otherwise.
-*
-* NOTES
-*	The osm_slvl_rcv_ctrl_construct or osm_slvl_rcv_ctrl_init must be
-*	called before using this function.
-*
-* SEE ALSO
-*	Slvl Map Receive Controller object, osm_slvl_rcv_ctrl_construct,
-*	osm_slvl_rcv_ctrl_init
-*********/
-
-END_C_DECLS
-
-#endif	/* _OSM_SLVL_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_sm.h b/osm/include/opensm/osm_sm.h
index ea93144..a3894d8 100644
--- a/osm/include/opensm/osm_sm.h
+++ b/osm/include/opensm/osm_sm.h
@@ -62,25 +62,25 @@
 #include <opensm/osm_resp.h>
 #include <opensm/osm_log.h>
 #include <opensm/osm_req_ctrl.h>
-#include <opensm/osm_node_info_rcv_ctrl.h>
-#include <opensm/osm_port_info_rcv_ctrl.h>
-#include <opensm/osm_sw_info_rcv_ctrl.h>
-#include <opensm/osm_node_desc_rcv_ctrl.h>
+#include <opensm/osm_node_info_rcv.h>
+#include <opensm/osm_port_info_rcv.h>
+#include <opensm/osm_sw_info_rcv.h>
+#include <opensm/osm_node_desc_rcv.h>
 #include <opensm/osm_sm_mad_ctrl.h>
 #include <opensm/osm_state_mgr_ctrl.h>
 #include <opensm/osm_lid_mgr.h>
 #include <opensm/osm_ucast_mgr.h>
 #include <opensm/osm_link_mgr.h>
 #include <opensm/osm_drop_mgr.h>
-#include <opensm/osm_lin_fwd_rcv_ctrl.h>
-#include <opensm/osm_mcast_fwd_rcv_ctrl.h>
+#include <opensm/osm_lin_fwd_rcv.h>
+#include <opensm/osm_mcast_fwd_rcv.h>
 #include <opensm/osm_sweep_fail_ctrl.h>
-#include <opensm/osm_sminfo_rcv_ctrl.h>
-#include <opensm/osm_trap_rcv_ctrl.h>
+#include <opensm/osm_sminfo_rcv.h>
+#include <opensm/osm_trap_rcv.h>
 #include <opensm/osm_sm_state_mgr.h>
-#include <opensm/osm_slvl_map_rcv_ctrl.h>
-#include <opensm/osm_vl_arb_rcv_ctrl.h>
-#include <opensm/osm_pkey_rcv_ctrl.h>
+#include <opensm/osm_slvl_map_rcv.h>
+#include <opensm/osm_vl_arb_rcv.h>
+#include <opensm/osm_pkey_rcv.h>
 #include <opensm/osm_port.h>
 #include <opensm/osm_mcast_mgr.h>
 #include <opensm/osm_db.h>
@@ -145,14 +145,10 @@ typedef struct _osm_sm
   osm_req_ctrl_t           req_ctrl;
   osm_resp_t               resp;
   osm_ni_rcv_t             ni_rcv;
-  osm_ni_rcv_ctrl_t        ni_rcv_ctrl;
   osm_pi_rcv_t             pi_rcv;
-  osm_pi_rcv_ctrl_t        pi_rcv_ctrl;
   osm_nd_rcv_t             nd_rcv;
-  osm_nd_rcv_ctrl_t        nd_rcv_ctrl;
   osm_sm_mad_ctrl_t        mad_ctrl;
   osm_si_rcv_t             si_rcv;
-  osm_si_rcv_ctrl_t        si_rcv_ctrl;
   osm_state_mgr_ctrl_t     state_mgr_ctrl;
   osm_lid_mgr_t            lid_mgr;
   osm_ucast_mgr_t          ucast_mgr;
@@ -160,22 +156,26 @@ typedef struct _osm_sm
   osm_state_mgr_t          state_mgr;
   osm_drop_mgr_t           drop_mgr;
   osm_lft_rcv_t            lft_rcv;
-  osm_lft_rcv_ctrl_t       lft_rcv_ctrl;
   osm_mft_rcv_t            mft_rcv;
-  osm_mft_rcv_ctrl_t       mft_rcv_ctrl;
   osm_sweep_fail_ctrl_t    sweep_fail_ctrl;
   osm_sminfo_rcv_t         sm_info_rcv;
-  osm_sminfo_rcv_ctrl_t    sm_info_rcv_ctrl;
   osm_trap_rcv_t           trap_rcv;
-  osm_trap_rcv_ctrl_t      trap_rcv_ctrl;
   osm_sm_state_mgr_t       sm_state_mgr;
   osm_mcast_mgr_t          mcast_mgr;
   osm_slvl_rcv_t           slvl_rcv;
-  osm_slvl_rcv_ctrl_t      slvl_rcv_ctrl;
   osm_vla_rcv_t            vla_rcv;
-  osm_vla_rcv_ctrl_t       vla_rcv_ctrl;
   osm_pkey_rcv_t           pkey_rcv;
-  osm_pkey_rcv_ctrl_t      pkey_rcv_ctrl;
+  cl_disp_reg_handle_t     ni_disp_h;
+  cl_disp_reg_handle_t     pi_disp_h;
+  cl_disp_reg_handle_t     nd_disp_h;
+  cl_disp_reg_handle_t     si_disp_h;
+  cl_disp_reg_handle_t     lft_disp_h;
+  cl_disp_reg_handle_t     mft_disp_h;
+  cl_disp_reg_handle_t     sm_info_disp_h;
+  cl_disp_reg_handle_t     trap_disp_h;
+  cl_disp_reg_handle_t     slvl_disp_h;
+  cl_disp_reg_handle_t     vla_disp_h;
+  cl_disp_reg_handle_t     pkey_disp_h;
 } osm_sm_t;
 /*
 * FIELDS
diff --git a/osm/include/opensm/osm_sminfo_rcv.h b/osm/include/opensm/osm_sminfo_rcv.h
index eba5ebe..0d9ffc0 100644
--- a/osm/include/opensm/osm_sminfo_rcv.h
+++ b/osm/include/opensm/osm_sminfo_rcv.h
@@ -100,14 +100,13 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_sminfo_rcv
 {
-	osm_subn_t					*p_subn;
-	osm_stats_t					*p_stats;
-	osm_log_t					*p_log;
-	osm_resp_t					*p_resp;
+	osm_subn_t			*p_subn;
+	osm_stats_t			*p_stats;
+	osm_log_t			*p_log;
+	osm_resp_t			*p_resp;
 	osm_state_mgr_t			*p_state_mgr;
-   struct _osm_sm_state_mgr      *p_sm_state_mgr;
-	cl_plock_t					*p_lock;
-
+	struct _osm_sm_state_mgr	*p_sm_state_mgr;
+	cl_plock_t			*p_lock;
 } osm_sminfo_rcv_t;
 /*
 * FIELDS
@@ -265,14 +264,14 @@ ib_api_status_t osm_sminfo_rcv_init(
 * SYNOPSIS
 */
 void osm_sminfo_rcv_process(
-	IN const osm_sminfo_rcv_t* const p_rcv,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_rcv
+*	context
 *		[in] Pointer to an osm_sminfo_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's SMInfo attribute.
 *
diff --git a/osm/include/opensm/osm_sminfo_rcv_ctrl.h b/osm/include/opensm/osm_sminfo_rcv_ctrl.h
deleted file mode 100644
index 511440f..0000000
--- a/osm/include/opensm/osm_sminfo_rcv_ctrl.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_sminfo_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA SMInfo
- *	attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#ifndef _OSM_SMINFO_RCV_CTRL_H_
-#define _OSM_SMINFO_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_sminfo_rcv.h>
-#include <opensm/osm_log.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/SMInfo Receive Controller
-* NAME
-*	SMInfo Receive Controller
-*
-* DESCRIPTION
-*	The SMInfo Receive Controller object encapsulates the information
-*	needed to receive the SMInfo attribute from a node.
-*
-*	The SMInfo Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Steve King, Intel
-*
-*********/
-
-/****s* OpenSM: SMInfo Receive Controller/osm_sminfo_rcv_ctrl_t
-* NAME
-*	osm_sminfo_rcv_ctrl_t
-*
-* DESCRIPTION
-*	SMInfo Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_sminfo_rcv_ctrl
-{
-	osm_sminfo_rcv_t			*p_rcv;
-	osm_log_t					*p_log;
-	cl_dispatcher_t				*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_sminfo_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the SMInfo Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	SMInfo Receive Controller object
-*********/
-
-/****f* OpenSM: SMInfo Receive Controller/osm_sminfo_rcv_ctrl_construct
-* NAME
-*	osm_sminfo_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a SMInfo Receive Controller object.
-*
-* SYNOPSIS
-*/
-void
-osm_sminfo_rcv_ctrl_construct(
-	IN osm_sminfo_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a SMInfo Receive Controller object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_sminfo_rcv_ctrl_init, osm_sminfo_rcv_ctrl_destroy
-*
-*	Calling osm_sminfo_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_sminfo_rcv_ctrl_init.
-*
-* SEE ALSO
-*	SMInfo Receive Controller object, osm_sminfo_rcv_ctrl_init,
-*	osm_sminfo_rcv_ctrl_destroy
-*********/
-
-/****f* OpenSM: SMInfo Receive Controller/osm_sminfo_rcv_ctrl_destroy
-* NAME
-*	osm_sminfo_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_sminfo_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void
-osm_sminfo_rcv_ctrl_destroy(
-	IN osm_sminfo_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	SMInfo Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_sminfo_rcv_ctrl_construct or osm_sminfo_rcv_ctrl_init.
-*
-* SEE ALSO
-*	SMInfo Receive Controller object, osm_sminfo_rcv_ctrl_construct,
-*	osm_sminfo_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: SMInfo Receive Controller/osm_sminfo_rcv_ctrl_init
-* NAME
-*	osm_sminfo_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_sminfo_rcv_ctrl_init function initializes a
-*	SMInfo Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t
-osm_sminfo_rcv_ctrl_init(
-	IN osm_sminfo_rcv_ctrl_t* const p_ctrl,
-	IN osm_sminfo_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_sminfo_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_sminfo_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	IB_SUCCESS if the SMInfo Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other SMInfo Receive Controller methods.
-*
-* SEE ALSO
-*	SMInfo Receive Controller object, osm_sminfo_rcv_ctrl_construct,
-*	osm_sminfo_rcv_ctrl_destroy
-*********/
-
-END_C_DECLS
-
-#endif		/* OSM_SMINFO_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_sw_info_rcv.h b/osm/include/opensm/osm_sw_info_rcv.h
index d58a832..41b4238 100644
--- a/osm/include/opensm/osm_sw_info_rcv.h
+++ b/osm/include/opensm/osm_sw_info_rcv.h
@@ -99,12 +99,11 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_si_rcv
 {
-	osm_subn_t				*p_subn;
-	osm_log_t				*p_log;
-	osm_req_t				*p_req;
-	osm_state_mgr_t				*p_state_mgr;
-	cl_plock_t				*p_lock;
-
+	osm_subn_t	*p_subn;
+	osm_log_t	*p_log;
+	osm_req_t	*p_req;
+	osm_state_mgr_t	*p_state_mgr;
+	cl_plock_t	*p_lock;
 } osm_si_rcv_t;
 /*
 * FIELDS
@@ -278,14 +277,14 @@ boolean_t osm_si_rcv_is_inited(
 * SYNOPSIS
 */
 void osm_si_rcv_process(
-	IN const osm_si_rcv_t* const p_ctrl,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_ctrl
+*	context
 *		[in] Pointer to an osm_si_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's SwitchInfo attribute.
 *
diff --git a/osm/include/opensm/osm_sw_info_rcv_ctrl.h b/osm/include/opensm/osm_sw_info_rcv_ctrl.h
deleted file mode 100644
index 3483bf5..0000000
--- a/osm/include/opensm/osm_sw_info_rcv_ctrl.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_si_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA SwitchInfo
- *	attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#ifndef _OSM_SI_RCV_CTRL_H_
-#define _OSM_SI_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_sw_info_rcv.h>
-#include <opensm/osm_log.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/Switch Info Receive Controller
-* NAME
-*	Switch Info Receive Controller
-*
-* DESCRIPTION
-*	The Switch Info Receive Controller object encapsulates
-*	the information	needed to receive the SwitchInfo attribute from a node.
-*
-*	The Switch Info Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Steve King, Intel
-*
-*********/
-
-/****s* OpenSM: Switch Info Receive Controller/osm_si_rcv_ctrl_t
-* NAME
-*	osm_si_rcv_ctrl_t
-*
-* DESCRIPTION
-*	Switch Info Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_si_rcv_ctrl
-{
-	osm_si_rcv_t			*p_rcv;
-	osm_log_t			*p_log;
-	cl_dispatcher_t			*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_si_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the Switch Info Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	Switch Info Receive Controller object
-*	Switch Info Receiver object
-*********/
-
-/****f* OpenSM: Switch Info Receive Controller/osm_si_rcv_ctrl_construct
-* NAME
-*	osm_si_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a Switch Info Receive Controller object.
-*
-* SYNOPSIS
-*/
-void osm_si_rcv_ctrl_construct(
-	IN osm_si_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a Switch Info Receive Controller
-*		object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_si_rcv_ctrl_init, osm_si_rcv_ctrl_destroy,
-*	and osm_si_rcv_ctrl_is_inited.
-*
-*	Calling osm_si_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_si_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Switch Info Receive Controller object, osm_si_rcv_ctrl_init,
-*	osm_si_rcv_ctrl_destroy, osm_si_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Switch Info Receive Controller/osm_si_rcv_ctrl_destroy
-* NAME
-*	osm_si_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_si_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void osm_si_rcv_ctrl_destroy(
-	IN osm_si_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	Switch Info Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_si_rcv_ctrl_construct or osm_si_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Switch Info Receive Controller object, osm_si_rcv_ctrl_construct,
-*	osm_si_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: Switch Info Receive Controller/osm_si_rcv_ctrl_init
-* NAME
-*	osm_si_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_si_rcv_ctrl_init function initializes a
-*	Switch Info Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t osm_si_rcv_ctrl_init(
-	IN osm_si_rcv_ctrl_t* const p_ctrl,
-	IN osm_si_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_si_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_si_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the Switch Info Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other Switch Info Receive Controller methods.
-*
-* SEE ALSO
-*	Switch Info Receive Controller object, osm_si_rcv_ctrl_construct,
-*	osm_si_rcv_ctrl_destroy, osm_si_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: Switch Info Receive Controller/osm_si_rcv_ctrl_is_inited
-* NAME
-*	osm_si_rcv_ctrl_is_inited
-*
-* DESCRIPTION
-*	Indicates if the object has been initialized with osm_si_rcv_ctrl_init.
-*
-* SYNOPSIS
-*/
-boolean_t osm_si_rcv_ctrl_is_inited(
-	IN const osm_si_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_si_rcv_ctrl_t object.
-*
-* RETURN VALUES
-*	TRUE if the object was initialized successfully,
-*	FALSE otherwise.
-*
-* NOTES
-*	The osm_si_rcv_ctrl_construct or osm_si_rcv_ctrl_init must be
-*	called before using this function.
-*
-* SEE ALSO
-*	Switch Info Receive Controller object, osm_si_rcv_ctrl_construct,
-*	osm_si_rcv_ctrl_init
-*********/
-
-END_C_DECLS
-
-#endif	/* _OSM_SI_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_trap_rcv.h b/osm/include/opensm/osm_trap_rcv.h
index 813ee43..cc565db 100644
--- a/osm/include/opensm/osm_trap_rcv.h
+++ b/osm/include/opensm/osm_trap_rcv.h
@@ -101,13 +101,13 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_trap_rcv
 {
-  osm_subn_t				*p_subn;
-  osm_stats_t				*p_stats;
-  osm_log_t	       			*p_log;
-  osm_resp_t				*p_resp;
-  osm_state_mgr_t			*p_state_mgr;
-  cl_plock_t				*p_lock;
-  cl_event_wheel_t			trap_aging_tracker;
+	osm_subn_t		*p_subn;
+	osm_stats_t		*p_stats;
+	osm_log_t	       	*p_log;
+	osm_resp_t		*p_resp;
+	osm_state_mgr_t		*p_state_mgr;
+	cl_plock_t		*p_lock;
+	cl_event_wheel_t	trap_aging_tracker;
 } osm_trap_rcv_t;
 /*
 * FIELDS
@@ -263,14 +263,14 @@ ib_api_status_t osm_trap_rcv_init(
 * SYNOPSIS
 */
 void osm_trap_rcv_process(
-	IN osm_trap_rcv_t* const p_rcv,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_rcv
+*	context
 *		[in] Pointer to an osm_trap_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's Trap attribute.
 *
diff --git a/osm/include/opensm/osm_trap_rcv_ctrl.h b/osm/include/opensm/osm_trap_rcv_ctrl.h
deleted file mode 100644
index be31c62..0000000
--- a/osm/include/opensm/osm_trap_rcv_ctrl.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_trap_rcv_ctrl_t.
- *	This object represents a controller that receives the IBA Trap
- *	attribute from a node.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.2 $
- */
-
-#ifndef _OSM_TRAP_RCV_CTRL_H_
-#define _OSM_TRAP_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_trap_rcv.h>
-#include <opensm/osm_log.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/***** OpenSM/Trap Receive Controller
-* NAME
-*	Trap Receive Controller
-*
-* DESCRIPTION
-*	The Trap Receive Controller object encapsulates the information
-*	needed to receive the Trap attribute from a node.
-*
-*	The Trap Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Yael Kalka, Mellanox
-*
-*********/
-
-/****s* OpenSM: Trap Receive Controller/osm_trap_rcv_ctrl_t
-* NAME
-*	osm_trap_rcv_ctrl_t
-*
-* DESCRIPTION
-*	Trap Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_trap_rcv_ctrl
-{
-	osm_trap_rcv_t  			*p_rcv;
-	osm_log_t					*p_log;
-	cl_dispatcher_t  			*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_trap_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the Trap Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	Trap Receive Controller object
-*********/
-
-/****f* OpenSM: Trap Receive Controller/osm_trap_rcv_ctrl_construct
-* NAME
-*	osm_trap_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a Trap Receive Controller object.
-*
-* SYNOPSIS
-*/
-void
-osm_trap_rcv_ctrl_construct(
-	IN osm_trap_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a Trap Receive Controller object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_trap_rcv_ctrl_init, osm_trap_rcv_ctrl_destroy
-*
-*	Calling osm_trap_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_trap_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Trap Receive Controller object, osm_trap_rcv_ctrl_init,
-*	osm_trap_rcv_ctrl_destroy
-*********/
-
-/****f* OpenSM: Trap Receive Controller/osm_trap_rcv_ctrl_destroy
-* NAME
-*	osm_trap_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_trap_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void
-osm_trap_rcv_ctrl_destroy(
-	IN osm_trap_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	Trap Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_trap_rcv_ctrl_construct or osm_trap_rcv_ctrl_init.
-*
-* SEE ALSO
-*	Trap Receive Controller object, osm_trap_rcv_ctrl_construct,
-*	osm_trap_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: Trap Receive Controller/osm_trap_rcv_ctrl_init
-* NAME
-*	osm_trap_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_trap_rcv_ctrl_init function initializes a
-*	Trap Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t
-osm_trap_rcv_ctrl_init(
-	IN osm_trap_rcv_ctrl_t* const p_ctrl,
-	IN osm_trap_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_trap_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_trap_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	IB_SUCCESS if the Trap Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other Trap Receive Controller methods.
-*
-* SEE ALSO
-*	Trap Receive Controller object, osm_trap_rcv_ctrl_construct,
-*	osm_trap_rcv_ctrl_destroy
-*********/
-
-END_C_DECLS
-
-#endif		/* OSM_TRAP_RCV_CTRL_H_ */
diff --git a/osm/include/opensm/osm_vl_arb_rcv.h b/osm/include/opensm/osm_vl_arb_rcv.h
index 428dffc..4027a2d 100644
--- a/osm/include/opensm/osm_vl_arb_rcv.h
+++ b/osm/include/opensm/osm_vl_arb_rcv.h
@@ -98,11 +98,10 @@ BEGIN_C_DECLS
 */
 typedef struct _osm_vla_rcv
 {
-	osm_subn_t					*p_subn;
-	osm_req_t					*p_req;
-	osm_log_t					*p_log;
-	cl_plock_t					*p_lock;
-
+	osm_subn_t	*p_subn;
+	osm_req_t	*p_req;
+	osm_log_t	*p_log;
+	cl_plock_t	*p_lock;
 } osm_vla_rcv_t;
 /*
 * FIELDS
@@ -239,14 +238,14 @@ ib_api_status_t osm_vla_rcv_init(
 * SYNOPSIS
 */
 void osm_vla_rcv_process(
-	IN const osm_vla_rcv_t* const p_ctrl,
-	IN osm_madw_t* const p_madw );
+	IN void *context,
+	IN void *data );
 /*
 * PARAMETERS
-*	p_ctrl
+*	context
 *		[in] Pointer to an osm_vla_rcv_t object.
 *
-*	p_madw
+*	data
 *		[in] Pointer to the MAD Wrapper containing the MAD
 *		that contains the node's SLtoVL attribute.
 *
diff --git a/osm/include/opensm/osm_vl_arb_rcv_ctrl.h b/osm/include/opensm/osm_vl_arb_rcv_ctrl.h
deleted file mode 100644
index d005b47..0000000
--- a/osm/include/opensm/osm_vl_arb_rcv_ctrl.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- * 	Declaration of osm_vla_rcv_ctrl_t.
- *	This object represents a controller that set or get resp the 
- * IBA VL Arbitration Table attribute from a port.
- *	This object is part of the OpenSM family of objects.
- *
- * Environment:
- * 	Linux User Mode
- *
- * $Revision: 1.3 $
- */
-
-#ifndef _OSM_VLA_RCV_CTRL_H_
-#define _OSM_VLA_RCV_CTRL_H_
-
-#include <complib/cl_dispatcher.h>
-#include <opensm/osm_base.h>
-#include <opensm/osm_madw.h>
-#include <opensm/osm_log.h>
-#include <opensm/osm_vl_arb_rcv.h>
-
-#ifdef __cplusplus
-#  define BEGIN_C_DECLS extern "C" {
-#  define END_C_DECLS   }
-#else /* !__cplusplus */
-#  define BEGIN_C_DECLS
-#  define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* OpenSM/VL Arbitration Table Receive Controller
-* NAME
-*	VL Arbitration Receive Controller
-*
-* DESCRIPTION
-*	The VL Arbitration Receive Controller object encapsulates
-*	the information needed to get or set VL Arbitration of a port.
-*
-*	The VL Arbitration Receive Controller object is thread safe.
-*
-*	This object should be treated as opaque and should be
-*	manipulated only through the provided functions.
-*
-* AUTHOR
-*	Eitan Zahavi, Mellanox
-*
-*********/
-
-/****s* OpenSM: VL Arbitration Receive Controller/osm_vla_rcv_ctrl_t
-* NAME
-*	osm_vla_rcv_ctrl_t
-*
-* DESCRIPTION
-*	VL Arbitration Receive Controller structure.
-*
-*	This object should be treated as opaque and should
-*	be manipulated only through the provided functions.
-*
-* SYNOPSIS
-*/
-typedef struct _osm_vla_rcv_ctrl
-{
-	osm_vla_rcv_t			*p_rcv;
-	osm_log_t			*p_log;
-	cl_dispatcher_t			*p_disp;
-	cl_disp_reg_handle_t		h_disp;
-
-} osm_vla_rcv_ctrl_t;
-/*
-* FIELDS
-*	p_rcv
-*		Pointer to the VL Arbitration Receiver object.
-*
-*	p_log
-*		Pointer to the log object.
-*
-*	p_disp
-*		Pointer to the Dispatcher.
-*
-*	h_disp
-*		Handle returned from dispatcher registration.
-*
-* SEE ALSO
-*	VL Arbitration Receive Controller object
-*	VL Arbitration Receiver object
-*********/
-
-/****f* OpenSM: VL Arbitration Receive Controller/osm_vla_rcv_ctrl_construct
-* NAME
-*	osm_vla_rcv_ctrl_construct
-*
-* DESCRIPTION
-*	This function constructs a VL Arbitration Receive Controller object.
-*
-* SYNOPSIS
-*/
-void osm_vla_rcv_ctrl_construct(
-	IN osm_vla_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to a VL Arbitration Receive Controller
-*		object to construct.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Allows calling osm_vla_rcv_ctrl_init, osm_vla_rcv_ctrl_destroy,
-*	and osm_vla_rcv_ctrl_is_inited.
-*
-*	Calling osm_vla_rcv_ctrl_construct is a prerequisite to calling any other
-*	method except osm_vla_rcv_ctrl_init.
-*
-* SEE ALSO
-*	VL Arbitration Receive Controller object, osm_vla_rcv_ctrl_init,
-*	osm_vla_rcv_ctrl_destroy, osm_vla_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: VL Arbitration Receive Controller/osm_vla_rcv_ctrl_destroy
-* NAME
-*	osm_vla_rcv_ctrl_destroy
-*
-* DESCRIPTION
-*	The osm_vla_rcv_ctrl_destroy function destroys the object, releasing
-*	all resources.
-*
-* SYNOPSIS
-*/
-void osm_vla_rcv_ctrl_destroy(
-	IN osm_vla_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to the object to destroy.
-*
-* RETURN VALUE
-*	This function does not return a value.
-*
-* NOTES
-*	Performs any necessary cleanup of the specified
-*	VL Arbitration Receive Controller object.
-*	Further operations should not be attempted on the destroyed object.
-*	This function should only be called after a call to
-*	osm_vla_rcv_ctrl_construct or osm_vla_rcv_ctrl_init.
-*
-* SEE ALSO
-*	VL Arbitration Receive Controller object, osm_vla_rcv_ctrl_construct,
-*	osm_vla_rcv_ctrl_init
-*********/
-
-/****f* OpenSM: VL Arbitration Receive Controller/osm_vla_rcv_ctrl_init
-* NAME
-*	osm_vla_rcv_ctrl_init
-*
-* DESCRIPTION
-*	The osm_vla_rcv_ctrl_init function initializes a
-*	VL Arbitration Receive Controller object for use.
-*
-* SYNOPSIS
-*/
-ib_api_status_t osm_vla_rcv_ctrl_init(
-	IN osm_vla_rcv_ctrl_t* const p_ctrl,
-	IN osm_vla_rcv_t* const p_rcv,
-	IN osm_log_t* const p_log,
-	IN cl_dispatcher_t* const p_disp );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_vla_rcv_ctrl_t object to initialize.
-*
-*	p_rcv
-*		[in] Pointer to an osm_vla_rcv_t object.
-*
-*	p_log
-*		[in] Pointer to the log object.
-*
-*	p_disp
-*		[in] Pointer to the OpenSM central Dispatcher.
-*
-* RETURN VALUES
-*	CL_SUCCESS if the VL Arbitration Receive Controller object was initialized
-*	successfully.
-*
-* NOTES
-*	Allows calling other VL Arbitration Receive Controller methods.
-*
-* SEE ALSO
-*	VL Arbitration Receive Controller object, osm_vla_rcv_ctrl_construct,
-*	osm_vla_rcv_ctrl_destroy, osm_vla_rcv_ctrl_is_inited
-*********/
-
-/****f* OpenSM: VL Arbitration Receive Controller/osm_vla_rcv_ctrl_is_inited
-* NAME
-*	osm_vla_rcv_ctrl_is_inited
-*
-* DESCRIPTION
-*	Indicates if the object has been initialized with osm_vla_rcv_ctrl_init.
-*
-* SYNOPSIS
-*/
-boolean_t osm_vla_rcv_ctrl_is_inited(
-	IN const osm_vla_rcv_ctrl_t* const p_ctrl );
-/*
-* PARAMETERS
-*	p_ctrl
-*		[in] Pointer to an osm_vla_rcv_ctrl_t object.
-*
-* RETURN VALUES
-*	TRUE if the object was initialized successfully,
-*	FALSE otherwise.
-*
-* NOTES
-*	The osm_vla_rcv_ctrl_construct or osm_vla_rcv_ctrl_init must be
-*	called before using this function.
-*
-* SEE ALSO
-*	VL Arbitration Receive Controller object, osm_vla_rcv_ctrl_construct,
-*	osm_vla_rcv_ctrl_init
-*********/
-
-END_C_DECLS
-
-#endif	/* _OSM_VLA_RCV_CTRL_H_ */
diff --git a/osm/opensm/Makefile.am b/osm/opensm/Makefile.am
index dd6dbae..d9e63d4 100644
--- a/osm/opensm/Makefile.am
+++ b/osm/opensm/Makefile.am
@@ -30,15 +30,15 @@ bin_PROGRAMS = opensm
 opensm_SOURCES = main.c osm_console.c osm_db_files.c \
 		 osm_db_pack.c osm_drop_mgr.c osm_fwd_tbl.c \
 		 osm_inform.c osm_lid_mgr.c osm_lin_fwd_rcv.c \
-		 osm_lin_fwd_rcv_ctrl.c osm_lin_fwd_tbl.c osm_link_mgr.c \
-		 osm_matrix.c osm_mcast_fwd_rcv.c osm_mcast_fwd_rcv_ctrl.c \
+		 osm_lin_fwd_tbl.c osm_link_mgr.c \
+		 osm_matrix.c osm_mcast_fwd_rcv.c \
 		 osm_mcast_mgr.c osm_mcast_tbl.c osm_mcm_info.c \
 		 osm_mcm_port.c osm_mtree.c osm_multicast.c osm_node.c \
-		 osm_node_desc_rcv.c osm_node_desc_rcv_ctrl.c \
-		 osm_node_info_rcv.c osm_node_info_rcv_ctrl.c \
+		 osm_node_desc_rcv.c \
+		 osm_node_info_rcv.c \
 		 osm_opensm.c osm_pkey.c osm_pkey_mgr.c osm_pkey_rcv.c \
-		 osm_pkey_rcv_ctrl.c osm_port.c \
-		 osm_port_info_rcv.c osm_port_info_rcv_ctrl.c \
+		 osm_port.c \
+		 osm_port_info_rcv.c \
 		 osm_remote_sm.c osm_req.c osm_req_ctrl.c \
 		 osm_resp.c osm_sa.c osm_sa_class_port_info.c \
 		 osm_sa_class_port_info_ctrl.c osm_sa_informinfo.c \
@@ -59,19 +59,19 @@ opensm_SOURCES = main.c osm_console.c osm_db_files.c \
 		 osm_sa_sminfo_record_ctrl.c osm_sa_vlarb_record.c \
 		 osm_sa_vlarb_record_ctrl.c osm_sa_sw_info_record.c \
 		 osm_sa_sw_info_record_ctrl.c osm_service.c \
-		 osm_slvl_map_rcv.c osm_slvl_map_rcv_ctrl.c \
+		 osm_slvl_map_rcv.c \
 		 osm_sm.c osm_sminfo_rcv.c \
-		 osm_sminfo_rcv_ctrl.c osm_sm_mad_ctrl.c \
+		 osm_sm_mad_ctrl.c \
 		 osm_sm_state_mgr.c osm_state_mgr.c \
 		 osm_state_mgr_ctrl.c osm_subnet.c \
 		 osm_sweep_fail_ctrl.c osm_sw_info_rcv.c \
-		 osm_sw_info_rcv_ctrl.c osm_switch.c \
+		 osm_switch.c \
 		 osm_prtn.c osm_prtn_config.c osm_qos.c osm_router.c \
-		 osm_trap_rcv.c osm_trap_rcv_ctrl.c \
+		 osm_trap_rcv.c \
 		 osm_ucast_mgr.c osm_ucast_updn.c \
 		 osm_ucast_file.c osm_ucast_ftree.c \
 		 osm_vl15intf.c osm_vl_arb_rcv.c \
-		 osm_vl_arb_rcv_ctrl.c st.c
+		 st.c
 if OSMV_OPENIB
 opensm_CFLAGS = -Wall $(OSMV_CFLAGS) -fno-strict-aliasing -DVENDOR_RMPP_SUPPORT -DDUAL_SIDED_RMPP $(DBGFLAGS) -D_XOPEN_SOURCE=600 -D_BSD_SOURCE=1
 opensm_CXXFLAGS = -Wall $(OSMV_CFLAGS) -DVENDOR_RMPP_SUPPORT -DDUAL_SIDED_RMPP $(DBGFLAGS) -D_XOPEN_SOURCE=600 -D_BSD_SOURCE=1
diff --git a/osm/opensm/osm_lin_fwd_rcv.c b/osm/opensm/osm_lin_fwd_rcv.c
index 9750bf0..eda10d8 100644
--- a/osm/opensm/osm_lin_fwd_rcv.c
+++ b/osm/opensm/osm_lin_fwd_rcv.c
@@ -104,9 +104,11 @@ osm_lft_rcv_init(
  **********************************************************************/
 void
 osm_lft_rcv_process(
-  IN const osm_lft_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_lft_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   ib_smp_t *p_smp;
   uint32_t block_num;
   osm_switch_t *p_sw;
diff --git a/osm/opensm/osm_lin_fwd_rcv_ctrl.c b/osm/opensm/osm_lin_fwd_rcv_ctrl.c
deleted file mode 100644
index 6d8b664..0000000
--- a/osm/opensm/osm_lin_fwd_rcv_ctrl.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_lft_rcv_ctrl_t.
- * This object represents the LFT Receive controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_lin_fwd_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_lft_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_lft_rcv_process( ((osm_lft_rcv_ctrl_t*)context)->p_rcv,
-                       (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_lft_rcv_ctrl_construct(
-  IN osm_lft_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_lft_rcv_ctrl_destroy(
-  IN osm_lft_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_lft_rcv_ctrl_init(
-  IN osm_lft_rcv_ctrl_t* const p_ctrl,
-  IN osm_lft_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_lft_rcv_ctrl_init );
-
-  osm_lft_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_LFT,
-    __osm_lft_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_lft_rcv_ctrl_init: ERR 1601: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
diff --git a/osm/opensm/osm_mcast_fwd_rcv.c b/osm/opensm/osm_mcast_fwd_rcv.c
index 39b33c2..19a4788 100644
--- a/osm/opensm/osm_mcast_fwd_rcv.c
+++ b/osm/opensm/osm_mcast_fwd_rcv.c
@@ -109,9 +109,11 @@ osm_mft_rcv_init(
  **********************************************************************/
 void
 osm_mft_rcv_process(
-  IN const osm_mft_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_mft_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   ib_smp_t *p_smp;
   uint32_t block_num;
   uint8_t position;
diff --git a/osm/opensm/osm_mcast_fwd_rcv_ctrl.c b/osm/opensm/osm_mcast_fwd_rcv_ctrl.c
deleted file mode 100644
index be0a3e8..0000000
--- a/osm/opensm/osm_mcast_fwd_rcv_ctrl.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- *    Implementation of osm_mft_rcv_ctrl_t.
- * This object represents the LFT Receive controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_mcast_fwd_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_mft_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_mft_rcv_process( ((osm_mft_rcv_ctrl_t*)context)->p_rcv,
-                       (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_mft_rcv_ctrl_construct(
-  IN osm_mft_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_mft_rcv_ctrl_destroy(
-  IN osm_mft_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_mft_rcv_ctrl_init(
-  IN osm_mft_rcv_ctrl_t* const p_ctrl,
-  IN osm_mft_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_mft_rcv_ctrl_init );
-
-  osm_mft_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_MFT,
-    __osm_mft_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_mft_rcv_ctrl_init: ERR 0901: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_node_desc_rcv.c b/osm/opensm/osm_node_desc_rcv.c
index d759a50..13c5a93 100644
--- a/osm/opensm/osm_node_desc_rcv.c
+++ b/osm/opensm/osm_node_desc_rcv.c
@@ -138,9 +138,11 @@ osm_nd_rcv_init(
  **********************************************************************/
 void
 osm_nd_rcv_process(
-  IN const osm_nd_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_nd_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   cl_qmap_t *p_guid_tbl;
   ib_node_desc_t *p_nd;
   ib_smp_t *p_smp;
diff --git a/osm/opensm/osm_node_desc_rcv_ctrl.c b/osm/opensm/osm_node_desc_rcv_ctrl.c
deleted file mode 100644
index 693bf5c..0000000
--- a/osm/opensm/osm_node_desc_rcv_ctrl.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_nd_rcv_ctrl_t.
- * This object represents the NodeDescription request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_node_desc_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_nd_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_nd_rcv_process( ((osm_nd_rcv_ctrl_t*)context)->p_rcv,
-                      (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_nd_rcv_ctrl_construct(
-  IN osm_nd_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_nd_rcv_ctrl_destroy(
-  IN osm_nd_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_nd_rcv_ctrl_init(
-  IN osm_nd_rcv_ctrl_t* const p_ctrl,
-  IN osm_nd_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_nd_rcv_ctrl_init );
-
-  osm_nd_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_NODE_DESC,
-    __osm_nd_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_nd_rcv_ctrl_init: ERR 0C01: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_node_info_rcv.c b/osm/opensm/osm_node_info_rcv.c
index bc093ea..5cbd3b7 100644
--- a/osm/opensm/osm_node_info_rcv.c
+++ b/osm/opensm/osm_node_info_rcv.c
@@ -1016,9 +1016,11 @@ osm_ni_rcv_init(
  **********************************************************************/
 void
 osm_ni_rcv_process(
-  IN const osm_ni_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_ni_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   cl_qmap_t *p_guid_tbl;
   ib_node_info_t *p_ni;
   ib_smp_t *p_smp;
diff --git a/osm/opensm/osm_node_info_rcv_ctrl.c b/osm/opensm/osm_node_info_rcv_ctrl.c
deleted file mode 100644
index 3548d77..0000000
--- a/osm/opensm/osm_node_info_rcv_ctrl.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_ni_rcv_ctrl_t.
- * This object represents the NodeInfo request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_node_info_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_ni_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_ni_rcv_process( ((osm_ni_rcv_ctrl_t*)context)->p_rcv,
-                      (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_ni_rcv_ctrl_construct(
-  IN osm_ni_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_ni_rcv_ctrl_destroy(
-  IN osm_ni_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_ni_rcv_ctrl_init(
-  IN osm_ni_rcv_ctrl_t* const p_ctrl,
-  IN osm_ni_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_ni_rcv_ctrl_init );
-
-  osm_ni_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_NODE_INFO,
-    __osm_ni_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_ni_rcv_ctrl_init: ERR 0E01: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_pkey_rcv.c b/osm/opensm/osm_pkey_rcv.c
index 3dd569e..76af9fc 100644
--- a/osm/opensm/osm_pkey_rcv.c
+++ b/osm/opensm/osm_pkey_rcv.c
@@ -109,9 +109,11 @@ osm_pkey_rcv_init(
  */
 void
 osm_pkey_rcv_process(
-  IN const osm_pkey_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_pkey_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   cl_qmap_t *p_guid_tbl;
   ib_pkey_table_t *p_pkey_tbl;
   ib_smp_t *p_smp;
diff --git a/osm/opensm/osm_pkey_rcv_ctrl.c b/osm/opensm/osm_pkey_rcv_ctrl.c
deleted file mode 100644
index 1d7323a..0000000
--- a/osm/opensm/osm_pkey_rcv_ctrl.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_pkey_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-static void
-__osm_pkey_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_pkey_rcv_process( ((osm_pkey_rcv_ctrl_t*)context)->p_rcv,
-                        (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_pkey_rcv_ctrl_construct(
-  IN osm_pkey_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_pkey_rcv_ctrl_destroy(
-  IN osm_pkey_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_pkey_rcv_ctrl_init(
-  IN osm_pkey_rcv_ctrl_t* const p_ctrl,
-  IN osm_pkey_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_pkey_rcv_ctrl_init );
-
-  osm_pkey_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-
-
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_PKEY,
-    __osm_pkey_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_pkey_rcv_ctrl_init: ERR 4901: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_port_info_rcv.c b/osm/opensm/osm_port_info_rcv.c
index ced745d..66141e1 100644
--- a/osm/opensm/osm_port_info_rcv.c
+++ b/osm/opensm/osm_port_info_rcv.c
@@ -652,9 +652,11 @@ osm_pi_rcv_process_set(
  **********************************************************************/
 void
 osm_pi_rcv_process(
-  IN const osm_pi_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_pi_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   cl_qmap_t *p_guid_tbl;
   ib_port_info_t *p_pi;
   ib_smp_t *p_smp;
diff --git a/osm/opensm/osm_port_info_rcv_ctrl.c b/osm/opensm/osm_port_info_rcv_ctrl.c
deleted file mode 100644
index a3f9a23..0000000
--- a/osm/opensm/osm_port_info_rcv_ctrl.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_pi_rcv_ctrl_t.
- * This object represents the PortInfo request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_port_info_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_pi_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_pi_rcv_process( ((osm_pi_rcv_ctrl_t*)context)->p_rcv,
-                      (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_pi_rcv_ctrl_construct(
-  IN osm_pi_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_pi_rcv_ctrl_destroy(
-  IN osm_pi_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_pi_rcv_ctrl_init(
-  IN osm_pi_rcv_ctrl_t* const p_ctrl,
-  IN osm_pi_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_pi_rcv_ctrl_init );
-
-  osm_pi_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_PORT_INFO,
-    __osm_pi_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_pi_rcv_ctrl_init: ERR 1001: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_slvl_map_rcv.c b/osm/opensm/osm_slvl_map_rcv.c
index 899f677..3fa3a7e 100644
--- a/osm/opensm/osm_slvl_map_rcv.c
+++ b/osm/opensm/osm_slvl_map_rcv.c
@@ -121,9 +121,11 @@ osm_slvl_rcv_init(
  */
 void
 osm_slvl_rcv_process(
-  IN const osm_slvl_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *p_data )
 {
+  osm_slvl_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = p_data;
   cl_qmap_t *p_guid_tbl;
   ib_slvl_table_t *p_slvl_tbl;
   ib_smp_t *p_smp;
diff --git a/osm/opensm/osm_slvl_map_rcv_ctrl.c b/osm/opensm/osm_slvl_map_rcv_ctrl.c
deleted file mode 100644
index 4d21a3d..0000000
--- a/osm/opensm/osm_slvl_map_rcv_ctrl.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_slvl_rcv_ctrl_t.
- * This object represents the SLtoVL request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_slvl_map_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_slvl_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_slvl_rcv_process( ((osm_slvl_rcv_ctrl_t*)context)->p_rcv,
-                        (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_slvl_rcv_ctrl_construct(
-  IN osm_slvl_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_slvl_rcv_ctrl_destroy(
-  IN osm_slvl_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_slvl_rcv_ctrl_init(
-  IN osm_slvl_rcv_ctrl_t* const p_ctrl,
-  IN osm_slvl_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_slvl_rcv_ctrl_init );
-
-  osm_slvl_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_SLVL,
-    __osm_slvl_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_slvl_rcv_ctrl_init: ERR 2D01: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_sm.c b/osm/opensm/osm_sm.c
index 71fd847..a2b531f 100644
--- a/osm/opensm/osm_sm.c
+++ b/osm/opensm/osm_sm.c
@@ -140,14 +140,10 @@ osm_sm_construct(
    osm_req_ctrl_construct( &p_sm->req_ctrl );
    osm_resp_construct( &p_sm->resp );
    osm_ni_rcv_construct( &p_sm->ni_rcv );
-   osm_ni_rcv_ctrl_construct( &p_sm->ni_rcv_ctrl );
    osm_pi_rcv_construct( &p_sm->pi_rcv );
-   osm_pi_rcv_ctrl_construct( &p_sm->pi_rcv_ctrl );
    osm_nd_rcv_construct( &p_sm->nd_rcv );
-   osm_nd_rcv_ctrl_construct( &p_sm->nd_rcv_ctrl );
    osm_sm_mad_ctrl_construct( &p_sm->mad_ctrl );
    osm_si_rcv_construct( &p_sm->si_rcv );
-   osm_si_rcv_ctrl_construct( &p_sm->si_rcv_ctrl );
    osm_lid_mgr_construct( &p_sm->lid_mgr );
    osm_ucast_mgr_construct( &p_sm->ucast_mgr );
    osm_link_mgr_construct( &p_sm->link_mgr );
@@ -155,21 +151,14 @@ osm_sm_construct(
    osm_state_mgr_ctrl_construct( &p_sm->state_mgr_ctrl );
    osm_drop_mgr_construct( &p_sm->drop_mgr );
    osm_lft_rcv_construct( &p_sm->lft_rcv );
-   osm_lft_rcv_ctrl_construct( &p_sm->lft_rcv_ctrl );
    osm_mft_rcv_construct( &p_sm->mft_rcv );
-   osm_mft_rcv_ctrl_construct( &p_sm->mft_rcv_ctrl );
    osm_sweep_fail_ctrl_construct( &p_sm->sweep_fail_ctrl );
    osm_sminfo_rcv_construct( &p_sm->sm_info_rcv );
-   osm_sminfo_rcv_ctrl_construct( &p_sm->sm_info_rcv_ctrl );
    osm_trap_rcv_construct( &p_sm->trap_rcv );
-   osm_trap_rcv_ctrl_construct( &p_sm->trap_rcv_ctrl );
    osm_sm_state_mgr_construct( &p_sm->sm_state_mgr );
    osm_slvl_rcv_construct( &p_sm->slvl_rcv );
-   osm_slvl_rcv_ctrl_construct( &p_sm->slvl_rcv_ctrl );
    osm_vla_rcv_construct( &p_sm->vla_rcv );
-   osm_vla_rcv_ctrl_construct( &p_sm->vla_rcv_ctrl );
    osm_pkey_rcv_construct( &p_sm->pkey_rcv );
-   osm_pkey_rcv_ctrl_construct( &p_sm->pkey_rcv_ctrl );
    osm_mcast_mgr_construct( &p_sm->mcast_mgr );
 }
 
@@ -206,18 +195,18 @@ osm_sm_shutdown(
     * dispatcher are complete.
     */
    osm_sm_mad_ctrl_destroy( &p_sm->mad_ctrl );
-   osm_trap_rcv_ctrl_destroy( &p_sm->trap_rcv_ctrl );
-   osm_sminfo_rcv_ctrl_destroy( &p_sm->sm_info_rcv_ctrl );
    osm_req_ctrl_destroy( &p_sm->req_ctrl );
-   osm_ni_rcv_ctrl_destroy( &p_sm->ni_rcv_ctrl );
-   osm_pi_rcv_ctrl_destroy( &p_sm->pi_rcv_ctrl );
-   osm_si_rcv_ctrl_destroy( &p_sm->si_rcv_ctrl );
-   osm_nd_rcv_ctrl_destroy( &p_sm->nd_rcv_ctrl );
-   osm_lft_rcv_ctrl_destroy( &p_sm->lft_rcv_ctrl );
-   osm_mft_rcv_ctrl_destroy( &p_sm->mft_rcv_ctrl );
-   osm_slvl_rcv_ctrl_destroy( &p_sm->slvl_rcv_ctrl );
-   osm_vla_rcv_ctrl_destroy( &p_sm->vla_rcv_ctrl );
-   osm_pkey_rcv_ctrl_destroy( &p_sm->pkey_rcv_ctrl );
+   cl_disp_unregister(p_sm->ni_disp_h);
+   cl_disp_unregister(p_sm->pi_disp_h);
+   cl_disp_unregister(p_sm->si_disp_h);
+   cl_disp_unregister(p_sm->nd_disp_h);
+   cl_disp_unregister(p_sm->lft_disp_h);
+   cl_disp_unregister(p_sm->mft_disp_h);
+   cl_disp_unregister(p_sm->sm_info_disp_h);
+   cl_disp_unregister(p_sm->trap_disp_h);
+   cl_disp_unregister(p_sm->slvl_disp_h);
+   cl_disp_unregister(p_sm->vla_disp_h);
+   cl_disp_unregister(p_sm->pkey_disp_h);
    osm_sweep_fail_ctrl_destroy( &p_sm->sweep_fail_ctrl );
    osm_state_mgr_ctrl_destroy( &p_sm->state_mgr_ctrl );
 
@@ -323,22 +312,12 @@ osm_sm_init(
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_ni_rcv_ctrl_init( &p_sm->ni_rcv_ctrl,
-                                  &p_sm->ni_rcv, p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_pi_rcv_init( &p_sm->pi_rcv,
                              &p_sm->req,
                              p_subn, p_log, &p_sm->state_mgr, p_lock );
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_pi_rcv_ctrl_init( &p_sm->pi_rcv_ctrl,
-                                  &p_sm->pi_rcv, p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_si_rcv_init( &p_sm->si_rcv,
                              p_sm->p_subn,
                              p_sm->p_log,
@@ -347,20 +326,10 @@ osm_sm_init(
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_si_rcv_ctrl_init( &p_sm->si_rcv_ctrl,
-                                  &p_sm->si_rcv, p_sm->p_log, p_sm->p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_nd_rcv_init( &p_sm->nd_rcv, p_subn, p_log, p_lock );
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_nd_rcv_ctrl_init( &p_sm->nd_rcv_ctrl,
-                                  &p_sm->nd_rcv, p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_lid_mgr_init( &p_sm->lid_mgr,
                               &p_sm->req,
                               p_sm->p_subn,
@@ -414,20 +383,10 @@ osm_sm_init(
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_lft_rcv_ctrl_init( &p_sm->lft_rcv_ctrl,
-                                   &p_sm->lft_rcv, p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_mft_rcv_init( &p_sm->mft_rcv, p_subn, p_log, p_lock );
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_mft_rcv_ctrl_init( &p_sm->mft_rcv_ctrl,
-                                   &p_sm->mft_rcv, p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_sweep_fail_ctrl_init( &p_sm->sweep_fail_ctrl,
                                       p_log, &p_sm->state_mgr, p_disp );
    if( status != IB_SUCCESS )
@@ -443,12 +402,6 @@ osm_sm_init(
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_sminfo_rcv_ctrl_init( &p_sm->sm_info_rcv_ctrl,
-                                      &p_sm->sm_info_rcv,
-                                      p_sm->p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_trap_rcv_init( &p_sm->trap_rcv,
                                p_subn,
                                p_stats,
@@ -456,11 +409,6 @@ osm_sm_init(
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_trap_rcv_ctrl_init( &p_sm->trap_rcv_ctrl,
-                                    &p_sm->trap_rcv, p_sm->p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_sm_state_mgr_init( &p_sm->sm_state_mgr,
                                    &p_sm->state_mgr,
                                    p_sm->p_subn, &p_sm->req, p_sm->p_log );
@@ -477,29 +425,70 @@ osm_sm_init(
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_slvl_rcv_ctrl_init( &p_sm->slvl_rcv_ctrl,
-                                    &p_sm->slvl_rcv, p_sm->p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_vla_rcv_init( &p_sm->vla_rcv,
                               &p_sm->req, p_subn, p_log, p_lock );
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_vla_rcv_ctrl_init( &p_sm->vla_rcv_ctrl,
-                                   &p_sm->vla_rcv, p_sm->p_log, p_disp );
-   if( status != IB_SUCCESS )
-      goto Exit;
-
    status = osm_pkey_rcv_init( &p_sm->pkey_rcv,
                                &p_sm->req, p_subn, p_log, p_lock );
    if( status != IB_SUCCESS )
       goto Exit;
 
-   status = osm_pkey_rcv_ctrl_init( &p_sm->pkey_rcv_ctrl,
-                                    &p_sm->pkey_rcv, p_sm->p_log, p_disp );
-   if( status != IB_SUCCESS )
+   p_sm->ni_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_NODE_INFO,
+                                      osm_ni_rcv_process, &p_sm->ni_rcv);
+   if( p_sm->ni_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->pi_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_PORT_INFO,
+                                      osm_pi_rcv_process, &p_sm->pi_rcv);
+   if( p_sm->pi_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->si_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_SWITCH_INFO,
+                                      osm_si_rcv_process, &p_sm->si_rcv);
+   if( p_sm->si_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->nd_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_NODE_DESC,
+                                      osm_nd_rcv_process, &p_sm->nd_rcv);
+   if( p_sm->nd_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->lft_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_LFT,
+                                       osm_lft_rcv_process, &p_sm->lft_rcv);
+   if( p_sm->lft_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->mft_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_MFT,
+                                       osm_mft_rcv_process, &p_sm->mft_rcv);
+   if( p_sm->mft_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->sm_info_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_SM_INFO,
+                                           osm_sminfo_rcv_process,
+                                           &p_sm->sm_info_rcv);
+   if( p_sm->sm_info_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->trap_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_NOTICE,
+                                        osm_trap_rcv_process, &p_sm->trap_rcv);
+   if( p_sm->trap_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->slvl_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_SLVL,
+                                        osm_slvl_rcv_process, &p_sm->slvl_rcv);
+   if( p_sm->slvl_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->vla_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_VL_ARB,
+                                       osm_vla_rcv_process, &p_sm->vla_rcv);
+   if( p_sm->vla_disp_h == CL_DISP_INVALID_HANDLE )
+      goto Exit;
+
+   p_sm->pkey_disp_h = cl_disp_register(p_disp, OSM_MSG_MAD_PKEY,
+                                        osm_pkey_rcv_process, &p_sm->pkey_rcv);
+   if( p_sm->pkey_disp_h == CL_DISP_INVALID_HANDLE )
       goto Exit;
 
    /*
diff --git a/osm/opensm/osm_sminfo_rcv.c b/osm/opensm/osm_sminfo_rcv.c
index 27d55e4..51b588e 100644
--- a/osm/opensm/osm_sminfo_rcv.c
+++ b/osm/opensm/osm_sminfo_rcv.c
@@ -717,9 +717,11 @@ __osm_sminfo_rcv_process_set_response(
  **********************************************************************/
 void
 osm_sminfo_rcv_process(
-  IN const osm_sminfo_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_sminfo_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   ib_smp_t *p_smp;
   osm_smi_context_t *p_smi_context;
 
diff --git a/osm/opensm/osm_sminfo_rcv_ctrl.c b/osm/opensm/osm_sminfo_rcv_ctrl.c
deleted file mode 100644
index 593b2ae..0000000
--- a/osm/opensm/osm_sminfo_rcv_ctrl.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_sminfo_rcv_ctrl_t.
- * This object represents the SMInfo request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_sminfo_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_sminfo_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_sminfo_rcv_process( ((osm_sminfo_rcv_ctrl_t*)context)->p_rcv,
-                          (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_sminfo_rcv_ctrl_construct(
-  IN osm_sminfo_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_sminfo_rcv_ctrl_destroy(
-  IN osm_sminfo_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_sminfo_rcv_ctrl_init(
-  IN osm_sminfo_rcv_ctrl_t* const p_ctrl,
-  IN osm_sminfo_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_sminfo_rcv_ctrl_init );
-
-  osm_sminfo_rcv_ctrl_construct( p_ctrl );
-
-  p_ctrl->p_log = p_log;
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_SM_INFO,
-    __osm_sminfo_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_sminfo_rcv_ctrl_init: ERR 3001: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_sw_info_rcv.c b/osm/opensm/osm_sw_info_rcv.c
index 6647d16..fe3fe9f 100644
--- a/osm/opensm/osm_sw_info_rcv.c
+++ b/osm/opensm/osm_sw_info_rcv.c
@@ -581,9 +581,11 @@ osm_si_rcv_init(
  **********************************************************************/
 void
 osm_si_rcv_process(
-  IN const osm_si_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_si_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   cl_qmap_t *p_node_guid_tbl;
   ib_switch_info_t *p_si;
   ib_smp_t *p_smp;
diff --git a/osm/opensm/osm_sw_info_rcv_ctrl.c b/osm/opensm/osm_sw_info_rcv_ctrl.c
deleted file mode 100644
index 4287ba6..0000000
--- a/osm/opensm/osm_sw_info_rcv_ctrl.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-/*
- * Abstract:
- *    Implementation of osm_si_rcv_ctrl_t.
- * This object represents the SwitchInfo request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_sw_info_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_si_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_si_rcv_process( ((osm_si_rcv_ctrl_t*)context)->p_rcv,
-                      (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_si_rcv_ctrl_construct(
-  IN osm_si_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_si_rcv_ctrl_destroy(
-  IN osm_si_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_si_rcv_ctrl_init(
-  IN osm_si_rcv_ctrl_t* const p_ctrl,
-  IN osm_si_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_si_rcv_ctrl_init );
-
-  osm_si_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_SWITCH_INFO,
-    __osm_si_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_si_rcv_ctrl_init: ERR 3701: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
diff --git a/osm/opensm/osm_trap_rcv.c b/osm/opensm/osm_trap_rcv.c
index 164d96a..f994844 100644
--- a/osm/opensm/osm_trap_rcv.c
+++ b/osm/opensm/osm_trap_rcv.c
@@ -742,9 +742,11 @@ __osm_trap_rcv_process_response(
  **********************************************************************/
 void
 osm_trap_rcv_process(
-  IN osm_trap_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_trap_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   ib_smp_t *p_smp;
 
   OSM_LOG_ENTER( p_rcv->p_log, osm_trap_rcv_process );
diff --git a/osm/opensm/osm_trap_rcv_ctrl.c b/osm/opensm/osm_trap_rcv_ctrl.c
deleted file mode 100644
index c0a475a..0000000
--- a/osm/opensm/osm_trap_rcv_ctrl.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_trap_rcv_ctrl_t.
- * This object represents the Trap request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.3 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_trap_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_trap_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_trap_rcv_process( ((osm_trap_rcv_ctrl_t*)context)->p_rcv,
-                        (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_trap_rcv_ctrl_construct(
-  IN osm_trap_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_trap_rcv_ctrl_destroy(
-  IN osm_trap_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_trap_rcv_ctrl_init(
-  IN osm_trap_rcv_ctrl_t* const p_ctrl,
-  IN osm_trap_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_trap_rcv_ctrl_init );
-
-  osm_trap_rcv_ctrl_construct( p_ctrl );
-
-  p_ctrl->p_log = p_log;
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_NOTICE,
-    __osm_trap_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_trap_rcv_ctrl_init: ERR 3901: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
diff --git a/osm/opensm/osm_vl_arb_rcv.c b/osm/opensm/osm_vl_arb_rcv.c
index 0ebfe7e..930360a 100644
--- a/osm/opensm/osm_vl_arb_rcv.c
+++ b/osm/opensm/osm_vl_arb_rcv.c
@@ -121,9 +121,11 @@ osm_vla_rcv_init(
  */
 void
 osm_vla_rcv_process(
-  IN const osm_vla_rcv_t* const p_rcv,
-  IN osm_madw_t* const p_madw )
+  IN void *context,
+  IN void *data )
 {
+  osm_vla_rcv_t *p_rcv = context;
+  osm_madw_t *p_madw = data;
   cl_qmap_t *p_guid_tbl;
   ib_vl_arb_table_t *p_vla_tbl;
   ib_smp_t *p_smp;
diff --git a/osm/opensm/osm_vl_arb_rcv_ctrl.c b/osm/opensm/osm_vl_arb_rcv_ctrl.c
deleted file mode 100644
index fe23856..0000000
--- a/osm/opensm/osm_vl_arb_rcv_ctrl.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-
-/*
- * Abstract:
- *    Implementation of osm_vla_rcv_ctrl_t.
- * This object represents the Vl Arbitration request controller object.
- * This object is part of the opensm family of objects.
- *
- * Environment:
- *    Linux User Mode
- *
- * $Revision: 1.4 $
- */
-
-#if HAVE_CONFIG_H
-#  include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <opensm/osm_vl_arb_rcv_ctrl.h>
-#include <opensm/osm_msgdef.h>
-
-/**********************************************************************
- **********************************************************************/
-void
-__osm_vla_rcv_ctrl_disp_callback(
-  IN  void *context,
-  IN  void *p_data )
-{
-  /* ignore return status when invoked via the dispatcher */
-  osm_vla_rcv_process( ((osm_vla_rcv_ctrl_t*)context)->p_rcv,
-                       (osm_madw_t*)p_data );
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_vla_rcv_ctrl_construct(
-  IN osm_vla_rcv_ctrl_t* const p_ctrl )
-{
-  memset( p_ctrl, 0, sizeof(*p_ctrl) );
-  p_ctrl->h_disp = CL_DISP_INVALID_HANDLE;
-}
-
-/**********************************************************************
- **********************************************************************/
-void
-osm_vla_rcv_ctrl_destroy(
-  IN osm_vla_rcv_ctrl_t* const p_ctrl )
-{
-  CL_ASSERT( p_ctrl );
-  cl_disp_unregister( p_ctrl->h_disp );
-}
-
-/**********************************************************************
- **********************************************************************/
-ib_api_status_t
-osm_vla_rcv_ctrl_init(
-  IN osm_vla_rcv_ctrl_t* const p_ctrl,
-  IN osm_vla_rcv_t* const p_rcv,
-  IN osm_log_t* const p_log,
-  IN cl_dispatcher_t* const p_disp )
-{
-  ib_api_status_t status = IB_SUCCESS;
-
-  OSM_LOG_ENTER( p_log, osm_vla_rcv_ctrl_init );
-
-  osm_vla_rcv_ctrl_construct( p_ctrl );
-  p_ctrl->p_log = p_log;
-
-  p_ctrl->p_rcv = p_rcv;
-  p_ctrl->p_disp = p_disp;
-
-  p_ctrl->h_disp = cl_disp_register(
-    p_disp,
-    OSM_MSG_MAD_VL_ARB,
-    __osm_vla_rcv_ctrl_disp_callback,
-    p_ctrl );
-
-  if( p_ctrl->h_disp == CL_DISP_INVALID_HANDLE )
-  {
-    osm_log( p_log, OSM_LOG_ERROR,
-             "osm_vla_rcv_ctrl_init: ERR 4001: "
-             "Dispatcher registration failed\n" );
-    status = IB_INSUFFICIENT_RESOURCES;
-    goto Exit;
-  }
-
- Exit:
-  OSM_LOG_EXIT( p_log );
-  return( status );
-}
-
-- 
1.4.4.2.gfc82d





More information about the general mailing list