create_ci_ca(\r
IN al_obj_t *p_parent_obj,\r
IN const ci_interface_t* p_ci );\r
+\r
+DEVICE_OBJECT*\r
+get_ca_dev(\r
+ IN const ib_ca_handle_t h_ca );\r
#endif\r
\r
\r
AL_EXIT( AL_DBG_QUERY );\r
return status;\r
}\r
+\r
+\r
+DEVICE_OBJECT*\r
+get_ca_dev(\r
+ IN const ib_ca_handle_t h_ca )\r
+{\r
+ ASSERT( h_ca );\r
+\r
+ ObReferenceObject( h_ca->obj.p_ci_ca->verbs.p_hca_dev );\r
+ return h_ca->obj.p_ci_ca->verbs.p_hca_dev;\r
+}
\ No newline at end of file
p_ifc->sync_destroy = ib_sync_destroy;\r
p_ifc->open_ca = ib_open_ca;\r
p_ifc->query_ca = ib_query_ca;\r
+ p_ifc->get_dev = get_ca_dev;\r
p_ifc->close_ca = ib_close_ca;\r
p_ifc->alloc_pd = ib_alloc_pd;\r
p_ifc->dealloc_pd = ib_dealloc_pd;\r
* IB resources provided by HCAs.\r
*********/\r
\r
-#define AL_INTERFACE_VERSION (8)\r
+#define AL_INTERFACE_VERSION (9)\r
\r
\r
\r
OUT ib_ca_attr_t* const p_ca_attr OPTIONAL,\r
IN OUT uint32_t* const p_size );\r
\r
+typedef DEVICE_OBJECT*\r
+(*ib_pfn_get_ca_dev_t)(\r
+ IN const ib_ca_handle_t h_ca );\r
+\r
typedef ib_api_status_t\r
(*ib_pfn_query_ca_by_guid_t)(\r
IN const ib_al_handle_t h_al,\r
ib_pfn_sync_destroy_t sync_destroy;\r
ib_pfn_open_ca_t open_ca;\r
ib_pfn_query_ca_t query_ca;\r
+ ib_pfn_get_ca_dev_t get_dev;\r
ib_pfn_close_ca_t close_ca;\r
ib_pfn_alloc_pd_t alloc_pd;\r
ib_pfn_dealloc_pd_t dealloc_pd;\r