[ipoib,core] Improve support for partitioning.
[mirror/winof/.git] / core / bus / kernel / bus_pnp.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 _BUS_DRV_PNP_H_\r
35 #define _BUS_DRV_PNP_H_\r
36 \r
37 \r
38 #include "bus_driver.h"\r
39 #include "iba/ib_al_ifc.h"\r
40 \r
41 \r
42 /****f* InfiniBand Bus Driver: Plug and Play/bus_add_device\r
43 * NAME\r
44 *       bus_add_device\r
45 *\r
46 * DESCRIPTION\r
47 *       Main AddDevice entrypoint for the IB Bus driver.\r
48 *       Adds the bus root functional device object to the device node.  The\r
49 *       bus root FDO performs all PnP operations for fabric attached devices.\r
50 *\r
51 * SYNOPSIS\r
52 */\r
53 NTSTATUS\r
54 bus_add_device(\r
55         IN                              PDRIVER_OBJECT                          p_driver_obj,\r
56         IN                              PDEVICE_OBJECT                          p_pdo );\r
57 /*\r
58 * PARAMETERS\r
59 *       p_driver_obj\r
60 *               Driver object for the BUS driver.\r
61 *\r
62 *       p_pdo\r
63 *               Pointer to the device object representing the PDO for the device on\r
64 *               which we are loading.\r
65 *\r
66 * RETURN VBUSUES\r
67 *       STATUS_SUCCESS if the device was successfully added.\r
68 *\r
69 *       Other NTSTATUS error values if errors are encountered.\r
70 *\r
71 * SEE ALSO\r
72 *********/\r
73 \r
74 \r
75 void\r
76 al_set_ifc(\r
77                 OUT                     ib_al_ifc_t* const                      p_ifc );\r
78 \r
79 void\r
80 al_ref_ifc(\r
81         IN                              DEVICE_OBJECT*                          p_dev_obj );\r
82 \r
83 NTSTATUS\r
84 bus_get_relations(\r
85         IN                              cl_qlist_t*     const                   p_pdo_list,\r
86         IN              const   net64_t                                         ca_guid,\r
87         IN                              IRP* const                                      p_irp );\r
88 \r
89 NTSTATUS port_mgr_pkey_add();\r
90 NTSTATUS port_mgr_pkey_rem();\r
91 #endif  // !defined _BUS_DRV_PNP_H_\r