[IBAL] Only route GET/SET IB_MCLASS_PERF requests to the HW - all other
[mirror/winof/.git] / core / iou / kernel / iou_ioc_mgr.h
1 /*\r
2  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.\r
3  *\r
4  * This software is available to you under the OpenIB.org BSD license\r
5  * below:\r
6  *\r
7  *     Redistribution and use in source and binary forms, with or\r
8  *     without modification, are permitted provided that the following\r
9  *     conditions are met:\r
10  *\r
11  *      - Redistributions of source code must retain the above\r
12  *        copyright notice, this list of conditions and the following\r
13  *        disclaimer.\r
14  *\r
15  *      - Redistributions in binary form must reproduce the above\r
16  *        copyright notice, this list of conditions and the following\r
17  *        disclaimer in the documentation and/or other materials\r
18  *        provided with the distribution.\r
19  *\r
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
21  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
22  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
23  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
24  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
25  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
26  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
27  * SOFTWARE.\r
28  *\r
29  * $Id$\r
30  */\r
31 \r
32 \r
33 \r
34 #if !defined( __IOU_IOU_MGR_H__ )\r
35 #define __IOU_IOU_MGR_H__\r
36 \r
37 #include <iba/ib_al.h>\r
38 #include <complib/cl_mutex.h>\r
39 #include <complib/cl_obj.h>\r
40 #include <iba/iou_ifc.h>\r
41 \r
42 /* Global load service */\r
43 typedef struct _ioc_mgr\r
44 {\r
45         cl_obj_t                                        obj;\r
46 \r
47         ib_al_ifc_t                                     ifc;\r
48 \r
49         ib_al_handle_t                          h_al;\r
50         ib_pnp_handle_t                         h_pnp;  /* Handle for iou PnP events */\r
51 \r
52         /* Attributes for this IOU. */\r
53         iou_ifc_data_t                          info;\r
54 \r
55         /* Mutex protects both pointer vectors. */\r
56         cl_mutex_t                                      pdo_mutex;\r
57 \r
58         /* Pointer vector of child IOC PDOs. */\r
59         cl_qlist_t                                      ioc_list;\r
60 \r
61 }       ioc_mgr_t;\r
62 \r
63 \r
64 void\r
65 ioc_mgr_construct(\r
66         IN      OUT                     ioc_mgr_t* const                        p_ioc_mgr );\r
67 \r
68 ib_api_status_t\r
69 ioc_mgr_init(\r
70         IN      OUT                     ioc_mgr_t* const                        p_ioc_mgr );\r
71 \r
72 NTSTATUS\r
73 ioc_mgr_get_iou_relations(\r
74         IN                              ioc_mgr_t* const                        p_ioc_mgr,\r
75         IN                              IRP* const                                      p_irp );\r
76 \r
77 #endif\r