[ofw] [PATCH] Cleanup dead code in IBAL

Fab Tillier ftillier at windows.microsoft.com
Fri Jun 27 01:19:46 PDT 2008


There's a bunch of dead code in IBAL.  This patch deletes it (though by no means will I claim I got all of it.)

Signed-off-by: Fab Tillier <ftillier at microsoft.com>

Index: core/al/kernel/al_proxy_verbs.c
===================================================================
--- core/al/kernel/al_proxy_verbs.c     (revision 1300)
+++ core/al/kernel/al_proxy_verbs.c     (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -258,12 +259,6 @@
        /* Set up the appropriate callback list. */
        switch( cb_type )
        {
-       case UAL_GET_CM_CB_INFO:
-               p_cb_list = &p_context->cm_cb_list;
-               ph_ioctl = &p_context->h_cm_ioctl;
-               ioctl_size = sizeof( cm_cb_ioctl_info_t );
-               break;
-
        case UAL_GET_COMP_CB_INFO:
                p_cb_list = &p_context->comp_cb_list;
                ph_ioctl = &p_context->h_comp_ioctl;
@@ -1493,37 +1493,24 @@
                        p_ioctl->out.attr.h_pd =
                                (ib_pd_handle_t VOID_PTR64)HDL_TO_PTR(p_ioctl->out.attr.h_pd->obj.hdl);
                }
-               else
-               {
-                       p_ioctl->out.attr.h_pd = NULL;
-               }
+
                if( p_ioctl->out.attr.h_sq_cq )
                {
                        p_ioctl->out.attr.h_sq_cq =
                                (ib_cq_handle_t VOID_PTR64)HDL_TO_PTR(p_ioctl->out.attr.h_sq_cq->obj.hdl);
                }
-               else
-               {
-                       p_ioctl->out.attr.h_sq_cq = NULL;
-               }
+
                if( p_ioctl->out.attr.h_rq_cq )
                {
                        p_ioctl->out.attr.h_rq_cq =
                                (ib_cq_handle_t VOID_PTR64)HDL_TO_PTR(p_ioctl->out.attr.h_rq_cq->obj.hdl);
                }
-               else
-               {
-                       p_ioctl->out.attr.h_rq_cq = NULL;
-               }
+
                if( p_ioctl->out.attr.h_srq )
                {
                        p_ioctl->out.attr.h_srq =
                                (ib_srq_handle_t VOID_PTR64)HDL_TO_PTR(p_ioctl->out.attr.h_srq->obj.hdl);
                }
-               else
-               {
-                       p_ioctl->out.attr.h_srq = NULL;
-               }
        }
        else
        {
Index: core/al/kernel/SOURCES
===================================================================
--- core/al/kernel/SOURCES      (revision 1300)
+++ core/al/kernel/SOURCES      (working copy)
@@ -11,8 +11,6 @@
 !endif


-DLLDEF=al_exports.def
-
 SOURCES= ibal.rc                       \
        al_ci_ca.c                              \
        al_cm_cep.c                             \
Index: core/al/kernel/al_dev.c
===================================================================
--- core/al/kernel/al_dev.c     (revision 1300)
+++ core/al/kernel/al_dev.c     (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -519,9 +520,6 @@
        cl_spinlock_acquire( &p_context->cb_lock );
        switch( cl_ioctl_ctl_code( h_ioctl ) )
        {
-       case UAL_GET_CM_CB_INFO:
-               ph_ioctl = &p_context->h_cm_ioctl;
-               break;
        case UAL_GET_COMP_CB_INFO:
                ph_ioctl = &p_context->h_comp_ioctl;
                break;
Index: core/al/kernel/al_proxy.c
===================================================================
--- core/al/kernel/al_proxy.c   (revision 1300)
+++ core/al/kernel/al_proxy.c   (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -206,13 +207,6 @@
        /* Set up the appropriate callback list. */
        switch( cb_type )
        {
-       case UAL_GET_CM_CB_INFO:
-               p_cb_list = &p_context->cm_cb_list;
-               ph_ioctl = &p_context->h_cm_ioctl;
-               /* TODO: Use output size only. */
-               ioctl_size = sizeof( cm_cb_ioctl_info_t );
-               break;
-
        case UAL_GET_COMP_CB_INFO:
                p_cb_list = &p_context->comp_cb_list;
                ph_ioctl = &p_context->h_comp_ioctl;
@@ -289,48 +283,6 @@


 /*
- * Process the ioctl UAL_GET_CM_CB_INFO:
- * Get a CM callback record from the queue of CM callback records
- */
-static cl_status_t
-proxy_get_cm_cb(
-       IN              cl_ioctl_handle_t               h_ioctl )
-{
-       cl_status_t                             cl_status;
-       IO_STACK_LOCATION               *p_io_stack;
-       al_dev_open_context_t   *p_context;
-
-       AL_ENTER( AL_DBG_DEV );
-
-       p_io_stack = IoGetCurrentIrpStackLocation( h_ioctl );
-       p_context = (al_dev_open_context_t*)p_io_stack->FileObject->FsContext;
-       if( (uintn_t)p_io_stack->FileObject->FsContext2 != AL_OBJ_TYPE_CM )
-       {
-               AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,
-                       ("Invalid file object type for request: %016I64x\n",
-                       (LONG_PTR)p_io_stack->FileObject->FsContext2) );
-               return CL_INVALID_PARAMETER;
-       }
-
-       /* Check the size of the ioctl */
-       if( !p_context || !cl_ioctl_out_buf( h_ioctl ) ||
-               cl_ioctl_out_size( h_ioctl ) != sizeof(cm_cb_ioctl_info_t) )
-       {
-               AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,
-                       ("No output buffer, or buffer too small.\n") );
-               return CL_INVALID_PARAMETER;
-       }
-
-       cl_status = proxy_queue_ioctl_buf( UAL_GET_CM_CB_INFO,
-               p_context, h_ioctl );
-
-       AL_EXIT( AL_DBG_DEV );
-       return cl_status;
-}
-
-
-
-/*
  * Process the ioctl UAL_GET_COMP_CB_INFO:
  * Get a completion callback record from the queue of CM callback records
  */
@@ -477,8 +429,6 @@
        misc_cb_ioctl_info_t    misc_cb_info;
        misc_cb_ioctl_rec_t             *p_misc_rec = &misc_cb_info.ioctl_rec;
        al_dev_open_context_t   *p_context;
-       ib_ca_attr_t                    *p_ca_attr;
-       uint64_t                                hdl;

        AL_ENTER( AL_DBG_PROXY_CB );

@@ -519,31 +469,8 @@
                break;

        default:
-               /* Allocate space for the CA attributes. */
-               p_ca_attr = cl_zalloc( p_port_rec->p_ca_attr->size );
-               if( !p_ca_attr )
-               {
-                       AL_PRINT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,
-                               ("cl_malloc( %d ) failed.\n", p_port_rec->p_ca_attr->size) );
-                       break;
-               }
-
-               ib_copy_ca_attr( p_ca_attr, p_port_rec->p_ca_attr );
-
-               hdl = al_hdl_lock_insert(
-                       p_context->h_al, p_ca_attr, AL_OBJ_TYPE_H_CA_ATTR );
-
-               if( hdl == AL_INVALID_HANDLE )
-               {
-                       cl_free( p_ca_attr );
-                       break;
-               }
-
                p_misc_rec->pnp_cb_ioctl_rec.pnp_info.ca.ca_guid =
                        p_port_rec->p_ca_attr->ca_guid;
-               p_misc_rec->pnp_cb_ioctl_rec.pnp_info.ca.size =
-                       p_port_rec->p_ca_attr->size;
-               p_misc_rec->pnp_cb_ioctl_rec.pnp_info.ca.h_ca_attr = hdl;

                proxy_queue_cb_buf( UAL_GET_MISC_CB_INFO, p_context, &misc_cb_info,
                        NULL );
@@ -564,45 +491,33 @@
                OUT     size_t                                  *p_ret_bytes )
 {
        al_dev_open_context_t                   *p_context;
-       ual_ca_attr_info_ioctl_t                *p_ioctl;
+       uint64_t                                                *ph_ca_attr;
        ib_ca_attr_t                                    *p_src;

        AL_ENTER( AL_DBG_DEV );

+       UNREFERENCED_PARAMETER( p_ret_bytes );
+
        /* Check the size of the ioctl */
-       if( !cl_ioctl_in_buf( h_ioctl ) || !cl_ioctl_out_buf( h_ioctl ) ||
-               cl_ioctl_in_size( h_ioctl ) < sizeof(p_ioctl->in) ||
-               cl_ioctl_out_size( h_ioctl ) < sizeof(p_ioctl->out) )
+       if( !cl_ioctl_in_buf( h_ioctl ) ||
+               cl_ioctl_in_size( h_ioctl ) < sizeof(uint64_t) )
        {
                AL_PRINT( TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("invalid buffer size\n") );
                return CL_INVALID_PARAMETER;
        }
        p_context = (al_dev_open_context_t*)p_open_context;
-       p_ioctl = (ual_ca_attr_info_ioctl_t*)cl_ioctl_in_buf( h_ioctl );
+       ph_ca_attr = (uint64_t*)cl_ioctl_in_buf( h_ioctl );

        p_src = (ib_ca_attr_t*)al_hdl_get(
-               p_context->h_al, p_ioctl->in.h_ca_attr, AL_OBJ_TYPE_H_CA_ATTR );
+               p_context->h_al, *ph_ca_attr, AL_OBJ_TYPE_H_CA_ATTR );
        if( !p_src )
        {
                AL_PRINT( TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("invalid attr handle\n") );
                return CL_INVALID_PARAMETER;
        }

-       __try
-       {
-               ProbeForWrite( p_ioctl->in.p_ca_attr, p_src->size, sizeof(void*) );
-               ib_copy_ca_attr( p_ioctl->in.p_ca_attr, p_src );
-               p_ioctl->out.status = IB_SUCCESS;
-       }
-       __except(EXCEPTION_EXECUTE_HANDLER)
-       {
-               p_ioctl->out.status = IB_INVALID_PERMISSION;
-       }
-
        cl_free(p_src);

-       *p_ret_bytes = sizeof(p_ioctl->out);
-
        AL_EXIT( AL_DBG_DEV );
        return CL_SUCCESS;
 }
@@ -674,36 +589,32 @@

        switch( cl_ioctl_ctl_code( h_ioctl ) )
        {
-       case UAL_GET_CM_CB_INFO: //check_done
-        ASSERT(FALSE);
-               cl_status = proxy_get_cm_cb( h_ioctl );
+       case UAL_GET_MISC_CB_INFO:
+               cl_status = proxy_get_misc_cb( h_ioctl );
                break;
-       case UAL_GET_MISC_CB_INFO: // check_done, no IN parameters
-               cl_status = proxy_get_misc_cb( h_ioctl );
+       case UAL_GET_COMP_CB_INFO:
+               cl_status = proxy_get_comp_cb( h_ioctl );
                break;
-       case UAL_GET_COMP_CB_INFO: // check_done, no IN parameters
-               cl_status = proxy_get_comp_cb( h_ioctl );
+       case UAL_BIND:
+               cl_status = al_dev_open( h_ioctl );
                break;
-       case UAL_BIND: //check_done, no IN with ptr64
-               cl_status = al_dev_open( h_ioctl );
+       case UAL_BIND_SA:
+               cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_SA_REQ_SVC );
                break;
-       case UAL_BIND_SA: //check_done, fixed memclr in ual_create_async_file
-               cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_SA_REQ_SVC ); //check_done, fixed memclr in ual_create_async_file
+       case UAL_BIND_DESTROY:
+       case UAL_BIND_PNP:
+               cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_PNP_MGR );
                break;
-       case UAL_BIND_DESTROY: //check_done, fixed memclr in ual_create_async_file
-       case UAL_BIND_PNP: //check_done, fixed memclr in ual_create_async_file
-               cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_PNP_MGR );
-               break;
-       case UAL_BIND_CM: //check_done, fixed memclr in ual_create_async_file
+       case UAL_BIND_CM:
                cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_CM );
                break;
-       case UAL_BIND_CQ: //check_done, fixed memclr in ual_create_async_file
+       case UAL_BIND_CQ:
                cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_H_CQ );
                break;
-       case UAL_BIND_MISC: //check_done, fixed memclr in ual_create_async_file
+       case UAL_BIND_MISC:
                cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_AL_MGR );
                break;
-       case UAL_BIND_ND: //check_done, used only in kernel
+       case UAL_BIND_ND:
                cl_status = proxy_bind_file( h_ioctl, AL_OBJ_TYPE_NDI );
                break;
        case UAL_REQ_CREATE_PDO:
Index: core/al/al_proxy.h
===================================================================
--- core/al/al_proxy.h  (revision 1300)
+++ core/al/al_proxy.h  (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -173,7 +174,6 @@

        union _cb_type
        {
-               cm_cb_ioctl_info_t              cm;
                comp_cb_ioctl_info_t    comp;
                misc_cb_ioctl_info_t    misc;

Index: core/al/al_dev.h
===================================================================
--- core/al/al_dev.h    (revision 1300)
+++ core/al/al_dev.h    (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -54,7 +55,7 @@
 #define AL_DEVICE_NAME L"\\Device\\ibal"
 #define        ALDEV_KEY               (0x3B)  /* Matches FILE_DEVICE_INFINIBAND from wdm.h */

-#define AL_IOCTL_VERSION                       (4)
+#define AL_IOCTL_VERSION                       (5)

 /* max number of devices with non-default pkey */
 #define        MAX_NUM_PKEY    16
@@ -131,8 +132,7 @@
 {
        al_proxy_ops_start = 0,

-       ual_get_cm_cb_info = al_proxy_ops_start+1,
-       ual_get_comp_cb_info,
+       ual_get_comp_cb_info = al_proxy_ops_start+1,
        ual_get_misc_cb_info,
        ual_bind,
        ual_bind_sa,
@@ -155,7 +155,6 @@
  * for asynchronous event notifications from proxy
  */

-#define        UAL_GET_CM_CB_INFO      IOCTL_CODE(ALDEV_KEY, ual_get_cm_cb_info)
 #define        UAL_GET_COMP_CB_INFO    IOCTL_CODE(ALDEV_KEY, ual_get_comp_cb_info)
 #define        UAL_GET_MISC_CB_INFO    IOCTL_CODE(ALDEV_KEY, ual_get_misc_cb_info)
 #define UAL_BIND                       IOCTL_CODE(ALDEV_KEY, ual_bind)
Index: core/al/al_proxy_ioctl.h
===================================================================
--- core/al/al_proxy_ioctl.h    (revision 1300)
+++ core/al/al_proxy_ioctl.h    (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -66,135 +67,19 @@
        MAD_RECV_REC,
        SVC_REG_REC,
        QUERY_REC,
-       PNP_REC,
-       SUB_REC,
-       REPORT_REC,
-       LISTEN_ERROR_REC
+       PNP_REC

 }      misc_cb_rec_type;



 /*
- * Information for CM callbacks.
- */
-typedef union _cm_cb_ioctl_rec
-{
-       /* REQ callback */
-       struct _cm_req_cb_ioctl_rec
-       {
-               ib_cm_req_rec_t                         req_rec;
-
-               /* Attributes needed to modify the QP in user-mode. */
-               ib_qp_mod_t                                     qp_mod_rtr;
-               ib_qp_mod_t                                     qp_mod_rts;
-               uint32_t                                        timeout_ms;
-
-               union _cm_req_pdata_rec
-               {
-                       ib_req_pdata_t                  req_pdata;
-                       ib_sidr_req_pdata_t             sidr_req_pdata;
-
-               }       cm_req_pdata_rec;
-
-       }       cm_req_cb_ioctl_rec;
-
-
-       /* REP callback */
-       struct _cm_rep_cb_ioctl_rec
-       {
-               ib_cm_rep_rec_t                         rep_rec;
-
-               /* Attributes needed to modify the QP in user-mode. */
-               ib_qp_mod_t                                     qp_mod_rtr;
-               ib_qp_mod_t                                     qp_mod_rts;
-
-               union _cm_rep_pdata_rec
-               {
-                       ib_rep_pdata_t                  rep_pdata;
-                       ib_sidr_rep_pdata_t             sidr_rep_pdata;
-
-               }       cm_rep_pdata_rec;
-
-       }       cm_rep_cb_ioctl_rec;
-
-
-       /* RTU callback */
-       struct _cm_rtu_cb_ioctl_rec
-       {
-               ib_cm_rtu_rec_t                         rtu_rec;
-               ib_rtu_pdata_t                          rtu_pdata;
-
-       }       cm_rtu_cb_ioctl_rec;
-
-
-       /* REJ callback */
-       struct _cm_rej_cb_ioctl_rec
-       {
-               ib_cm_rej_rec_t                         rej_rec;
-               ib_ari_t                                        ari_pdata;
-               ib_rej_pdata_t                          rej_pdata;
-
-       }       cm_rej_cb_ioctl_rec;
-
-
-       /* MRA callback */
-       struct _cm_mra_cb_ioctl_rec
-       {
-               ib_cm_mra_rec_t                         mra_rec;
-               ib_mra_pdata_t                          mra_pdata;
-
-       }       cm_mra_cb_ioctl_rec;
-
-
-       /* LAP callback */
-       struct _cm_lap_cb_ioctl_rec
-       {
-               ib_cm_lap_rec_t                         lap_rec;
-               ib_lap_pdata_t                          lap_pdata;
-
-       }       cm_lap_cb_ioctl_rec;
-
-
-       /* APR callback */
-       struct _cm_apr_cb_ioctl_rec
-       {
-               ib_cm_apr_rec_t                         apr_rec;
-               ib_apr_pdata_t                          apr_pdata;
-               ib_apr_info_t                           apr_info;
-
-       }       cm_apr_cb_ioctl_rec;
-
-
-       /* DREQ callback */
-       struct _cm_dreq_cb_ioctl_rec
-       {
-               ib_cm_dreq_rec_t                        dreq_rec;
-               ib_dreq_pdata_t                         dreq_pdata;
-
-       }       cm_dreq_cb_ioctl_rec;
-
-
-       /* DREP callback */
-       struct _cm_drep_cb_ioctl_rec
-       {
-               ib_cm_drep_rec_t                        drep_rec;
-               ib_drep_pdata_t                         drep_pdata;
-
-       }       cm_drep_cb_ioctl_rec;
-/*
-*/
-} cm_cb_ioctl_rec_t;
-
-
-
-/*
  * Information for most callbacks.  This does not include callbacks for
  * the CM or completions.
  */
 typedef union _misc_cb_ioctl_rec
 {
-       void* VOID_PTR64                                        context;
+       uint64_t                                                context;

        /* Asynchronous event records */
        ib_async_event_rec_t                    event_rec;
@@ -232,10 +117,6 @@
        }       mad_recv_cb_ioctl_rec;


-       /* Service Registration records */
-       ib_reg_svc_rec_t                                reg_svc_rec;
-
-
        /* PNP Record as defined here is for UAL's consumption alone */
        struct _pnp_cb_ioctl_rec
        {
@@ -249,69 +130,17 @@
                        struct _pnp_ca
                        {
                                ib_net64_t                      ca_guid;
-                               uint32_t                        size;
-                               uint64_t                        h_ca_attr;      /* handle to kernel ca attr */

                        }       ca;

-                       /* pnp_port is valid only for port events
-                        * UAL can query based on the ca_guid for more info
-                        */
-                       struct _pnp_port
-                       {
-                               ib_net64_t                      ca_guid;
-                               uint8_t                         port_num;
-
-                       }       port;
-
-                       /* pnp_ioc is valid only for IOC events
-                        * If IOC is implemented, need to determine
-                        * whether the ioc event handle should be passed
-                        */
-                       struct _pnp_ioc
-                       {
-                               ib_ioc_info_t           info;
-TO_LONG_PTR(                           ib_pnp_handle_t ,               h_ioc_event) ;
-                               /* TBD: service entry is variable-sized?? */
-                               ib_svc_entry_t          svc_entry[1];
-
-                       }       ioc;
-
                }       pnp_info;

        }       pnp_cb_ioctl_rec;

-
-       ib_listen_err_rec_t                             listen_err;
-
-
-       /* Subscription Record */
-       ib_sub_rec_t                                    sub_rec;
-
-
-       /* Report record */
-       struct _report_cb_ioctl_rec
-       {
-               TO_LONG_PTR(const void* ,                       report_context) ;
-               ib_mad_notice_attr_t            notice;
-
-       }       report_cb_ioctl_rec;
-
-
 }      misc_cb_ioctl_rec_t;



-
-typedef struct _cm_cb_ioctl_info
-{
-       cm_cb_rec_type                                  rec_type;
-       cm_cb_ioctl_rec_t                               ioctl_rec;
-
-}      cm_cb_ioctl_info_t;
-
-
-
 typedef struct _comp_cb_ioctl_info
 {
        TO_LONG_PTR(void* ,                                     cq_context) ;
@@ -328,23 +157,4 @@
 }      misc_cb_ioctl_info_t;


-
-typedef union _ual_ca_attr_info
-{
-       struct _ual_ca_attr_info_in
-       {
-               TO_LONG_PTR(ib_ca_attr_t*,p_ca_attr) ;          /* where to copy in user mode */
-               uint64_t                                h_ca_attr;              /* kernel handle to ca attribute */
-
-       }       in;
-       struct _ual_ca_attr_info_out
-       {
-               ib_api_status_t                 status;
-
-       }       out;
-
-}      ual_ca_attr_info_ioctl_t;
-
-
-
 #endif /* __AL_PROXY_IOCTL_H__ */
Index: core/al/user/ual_mgr.c
===================================================================
--- core/al/user/ual_mgr.c      (revision 1300)
+++ core/al/user/ual_mgr.c      (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -74,10 +75,6 @@
 __cb_thread_routine(
        IN                              void                                            *context );

-//static void
-//__process_cm_cb(
-//     IN              cm_cb_ioctl_info_t*                     p_cm_cb_info);
-
 static void
 __process_misc_cb(
        IN              misc_cb_ioctl_info_t*           p_misc_cb_info );
@@ -475,21 +472,6 @@
                }
        }

-       //if( !DeviceIoControl( gp_al_mgr->ual_mgr.h_cm_file, UAL_GET_CM_CB_INFO,
-       //      NULL, 0,
-       //      &gp_al_mgr->ual_mgr.cm_cb_info, sizeof(cm_cb_ioctl_info_t),
-       //      NULL, &gp_al_mgr->ual_mgr.cm_ov ) )
-       //{
-       //      if( GetLastError() != ERROR_IO_PENDING )
-       //      {
-       //              AL_PRINT_EXIT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,
-       //                      ("DeviceIoControl for CM callback request returned %d.\n",
-       //                      GetLastError()) );
-       //              gp_al_mgr->obj.pfn_destroy(&gp_al_mgr->obj, NULL);
-       //              return IB_ERROR;
-       //      }
-       //}
-
        if( !DeviceIoControl( gp_al_mgr->ual_mgr.h_cq_file, UAL_GET_COMP_CB_INFO,
                NULL, 0,
                &gp_al_mgr->ual_mgr.comp_cb_info, sizeof(comp_cb_ioctl_info_t),
@@ -536,172 +518,6 @@
 /*
  * UAL thread start routines.
  */
-//
-//
-///* Thread to process the asynchronous CM notifications */
-//void
-//cm_cb(
-//     IN                              DWORD                                           error_code,
-//     IN                              DWORD                                           ret_bytes,
-//     IN                              LPOVERLAPPED                            p_ov )
-//{
-//     AL_ENTER( AL_DBG_CM );
-//
-//     UNUSED_PARAM( p_ov );
-//
-//     if( !error_code && ret_bytes )
-//     {
-//             /* Check the record type and adjust the pointers */
-//             /*      TBD     */
-//             __process_cm_cb( &gp_al_mgr->ual_mgr.cm_cb_info );
-//     }
-//
-//     if( error_code != ERROR_OPERATION_ABORTED )
-//     {
-//             if( !DeviceIoControl( gp_al_mgr->ual_mgr.h_cm_file, UAL_GET_CM_CB_INFO,
-//                     NULL, 0,
-//                     &gp_al_mgr->ual_mgr.cm_cb_info, sizeof(cm_cb_ioctl_info_t),
-//                     NULL, &gp_al_mgr->ual_mgr.cm_ov ) )
-//             {
-//                     if( GetLastError() != ERROR_IO_PENDING )
-//                     {
-//                             AL_PRINT_EXIT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,
-//                                     ("DeviceIoControl for CM callback request returned %d.\n",
-//                                     GetLastError()) );
-//                     }
-//             }
-//     }
-//
-//     AL_EXIT( AL_DBG_CM );
-//}
-
-
-
-//static void
-//__process_cm_cb(
-//     IN              cm_cb_ioctl_info_t*                     p_cm_cb_info)
-//{
-//     switch( p_cm_cb_info->rec_type)
-//     {
-//     case CM_REQ_REC:
-//     {
-//             struct _cm_req_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_req_cb_ioctl_rec;
-//
-//             if (p_ioctl_rec->req_rec.qp_type == IB_QPT_UNRELIABLE_DGRM)
-//             {
-//                     p_ioctl_rec->req_rec.p_req_pdata =
-//                             (uint8_t *)&p_ioctl_rec->cm_req_pdata_rec.sidr_req_pdata;
-//             }
-//             else
-//             {
-//                     p_ioctl_rec->req_rec.p_req_pdata =
-//                             (uint8_t *)&p_ioctl_rec->cm_req_pdata_rec.req_pdata;
-//             }
-//             ual_cm_req_cb( &p_ioctl_rec->req_rec, &p_ioctl_rec->qp_mod_rtr,
-//                     &p_ioctl_rec->qp_mod_rts, p_ioctl_rec->timeout_ms );
-//             break;
-//     }
-//     case CM_REP_REC:
-//     {
-//             struct _cm_rep_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_rep_cb_ioctl_rec;
-//
-//             if (p_ioctl_rec->rep_rec.qp_type == IB_QPT_UNRELIABLE_DGRM)
-//             {
-//                     p_ioctl_rec->rep_rec.p_rep_pdata =
-//                             (uint8_t *)&p_ioctl_rec->cm_rep_pdata_rec.sidr_rep_pdata;
-//             }
-//             else
-//             {
-//                     p_ioctl_rec->rep_rec.p_rep_pdata =
-//                             (uint8_t *)&p_ioctl_rec->cm_rep_pdata_rec.rep_pdata;
-//             }
-//             ual_cm_rep_cb( &p_ioctl_rec->rep_rec, &p_ioctl_rec->qp_mod_rtr,
-//                     &p_ioctl_rec->qp_mod_rts );
-//             break;
-//     }
-//     case CM_RTU_REC:
-//     {
-//             struct _cm_rtu_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_rtu_cb_ioctl_rec;
-//
-//             p_ioctl_rec->rtu_rec.p_rtu_pdata = (uint8_t *)&p_ioctl_rec->rtu_pdata;
-//             ual_cm_rtu_cb( &p_ioctl_rec->rtu_rec );
-//             break;
-//     }
-//     case CM_REJ_REC:
-//     {
-//             struct _cm_rej_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_rej_cb_ioctl_rec;
-//
-//             p_ioctl_rec->rej_rec.p_rej_pdata =
-//                     (uint8_t*)&p_ioctl_rec->rej_pdata;
-//             p_ioctl_rec->rej_rec.p_ari =
-//                     (uint8_t*)&p_ioctl_rec->ari_pdata;
-//             ual_cm_rej_cb( &p_ioctl_rec->rej_rec );
-//             break;
-//     }
-//     case CM_MRA_REC:
-//     {
-//             struct _cm_mra_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_mra_cb_ioctl_rec;
-//
-//             p_ioctl_rec->mra_rec.p_mra_pdata =
-//                     (uint8_t*)&p_ioctl_rec->mra_pdata;
-//             ual_cm_mra_cb( &p_cm_cb_info->ioctl_rec.cm_mra_cb_ioctl_rec.mra_rec );
-//             break;
-//     }
-//     case CM_LAP_REC:
-//     {
-//             struct _cm_lap_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_lap_cb_ioctl_rec;
-//
-//             p_ioctl_rec->lap_rec.p_lap_pdata =
-//                     (uint8_t *)&p_ioctl_rec->lap_pdata;
-//             ual_cm_lap_cb( &p_ioctl_rec->lap_rec );
-//             break;
-//     }
-//     case CM_APR_REC:
-//     {
-//             struct _cm_apr_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_apr_cb_ioctl_rec;
-//
-//             p_ioctl_rec->apr_rec.p_apr_pdata =
-//                     (uint8_t*)&p_ioctl_rec->apr_pdata;
-//             p_ioctl_rec->apr_rec.p_info =
-//                     (uint8_t*)&p_ioctl_rec->apr_info;
-//             ual_cm_apr_cb( &p_ioctl_rec->apr_rec );
-//             break;
-//     }
-//     case CM_DREQ_REC:
-//     {
-//             struct _cm_dreq_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_dreq_cb_ioctl_rec;
-//
-//             p_ioctl_rec->dreq_rec.p_dreq_pdata =
-//                     (uint8_t*)&p_ioctl_rec->dreq_pdata;
-//             ual_cm_dreq_cb( &p_ioctl_rec->dreq_rec );
-//             break;
-//     }
-//     case CM_DREP_REC:
-//     {
-//             struct _cm_drep_cb_ioctl_rec *p_ioctl_rec =
-//                             &p_cm_cb_info->ioctl_rec.cm_drep_cb_ioctl_rec;
-//
-//             p_ioctl_rec->drep_rec.p_drep_pdata =
-//                     (uint8_t*)&p_ioctl_rec->drep_pdata;
-//             ual_cm_drep_cb( &p_ioctl_rec->drep_rec );
-//             break;
-//     }
-//     default:
-//             /* Unknown record type - just return */
-//             break;
-//     }
-//}
-//
-//
-//
 static void
 __process_comp_cb(
        IN              comp_cb_ioctl_info_t*                   p_comp_cb_info )
@@ -954,13 +771,9 @@
                ib_pnp_event_t                                  pnp_event;
                ib_net64_t                                              ca_guid;
                al_ci_ca_t                                              *p_ci_ca;
-               ual_ca_attr_info_ioctl_t                attr_ioctl;
-               uintn_t                                                 bytes_ret;
-               cl_status_t                                             cl_status;
                ib_ca_attr_t                                    *p_old_ca_attr;
                ib_api_status_t                                 status;

-        cl_memclr(&attr_ioctl, sizeof (attr_ioctl));
                pnp_event = p_misc_cb_info->ioctl_rec.pnp_cb_ioctl_rec.pnp_event;
                ca_guid = p_misc_cb_info->ioctl_rec.pnp_cb_ioctl_rec.pnp_info.ca.ca_guid;

@@ -1024,36 +837,6 @@
                        if ( p_old_ca_attr )
                                cl_free( p_old_ca_attr );

-                       /*
-                        * We need to fetch the cached CA attributes from the proxy.  We
-                        * always send down the IOCTL to free the cached attributes.
-                        */
-                       //p_ca_attr = (ib_ca_attr_t*)cl_zalloc(
-                       //      p_misc_cb_info->ioctl_rec.pnp_cb_ioctl_rec.pnp_info.ca.size );
-                       attr_ioctl.in.p_ca_attr = NULL; //TODO - Remove, cause we already did cl_memclr
-
-                       /* Get the cached attributes from the kernel. */
-                       attr_ioctl.in.h_ca_attr =
-                               p_misc_cb_info->ioctl_rec.pnp_cb_ioctl_rec.pnp_info.ca.h_ca_attr;
-                       cl_status = do_al_dev_ioctl( UAL_GET_CA_ATTR_INFO,
-                               &attr_ioctl, sizeof(attr_ioctl.in),
-                               &attr_ioctl, sizeof(attr_ioctl.out),
-                               &bytes_ret );
-
-                       ///* Notify PnP manager of the changes if we have them. */
-                       //if( p_ca_attr )
-                       //{
-                       //      if( cl_status == CL_SUCCESS &&
-                       //              attr_ioctl.out.status == IB_SUCCESS )
-                       //      {
-                       //              pnp_ca_change( p_ci_ca, p_ca_attr );
-                       //      }
-                       //      else
-                       //      {
-                       //      }
-
-                       //      cl_free( p_ca_attr );
-                       //}
                        /* Dereference the CA now. */
                        deref_al_obj( &p_ci_ca->obj );
                        break;
@@ -1061,22 +844,6 @@

                break;  /* For PNP_EVENT_REC */
        }
-       case SUB_REC:
-       {
-               /******* TBD *******/
-               /* No adjustment needed */
-               break;
-       }
-       case REPORT_REC:
-       {
-               ib_report_rec_t                 report_rec;
-               cl_memcpy((void *)&report_rec,
-                                       (void*)&p_misc_cb_info->ioctl_rec.report_cb_ioctl_rec,
-                                       sizeof(ib_report_rec_t));
-               report_rec.p_notice = &p_misc_cb_info->ioctl_rec.report_cb_ioctl_rec.notice;
-               /******* Call the cb function for app callback *****/
-               break;
-       }
        default:
                CL_ASSERT (0);
                break;
Index: core/al/user/ual_mgr.h
===================================================================
--- core/al/user/ual_mgr.h      (revision 1300)
+++ core/al/user/ual_mgr.h      (working copy)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
+ * Portions Copyright (c) 2008 Microsoft Corporation.  All rights reserved.
  *
  * This software is available to you under the OpenIB.org BSD license
  * below:
@@ -52,11 +53,6 @@
        /* Completion port handle that cb threads use to get I/O completions. */
        HANDLE                                          h_cb_port;

-       /* File to handle CM related notifications */
-       //HANDLE                                                h_cm_file;
-       //cm_cb_ioctl_info_t                    cm_cb_info;
-       //OVERLAPPED                                    cm_ov;
-
        /* Thread to handle work request completions */
        HANDLE                                          h_cq_file;
        comp_cb_ioctl_info_t            comp_cb_info;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: deadcode.patch
Type: application/octet-stream
Size: 26497 bytes
Desc: deadcode.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20080627/ccb7876a/attachment.obj>


More information about the ofw mailing list