[IBBUS] __iou/port_was_hibernated() change NTSTATUS --> ib_api_status_t to be consist...
[mirror/winof/.git] / core / winmad / kernel / wm_driver.h
1 /*\r
2  * Copyright (c) 2008 Intel Corporation. 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 AWV\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 \r
30 #pragma once\r
31 \r
32 #ifndef _WM_DRIVER_H_\r
33 #define _WM_DRIVER_H_\r
34 \r
35 #include <ntddk.h>\r
36 #include <wdm.h>\r
37 #include <wdf.h>\r
38 \r
39 #include <rdma\verbs.h>\r
40 #include <iba\ib_al_ifc.h>\r
41 #include "wm_ioctl.h"\r
42 \r
43 #if WINVER <= _WIN32_WINNT_WINXP\r
44 #define KGUARDED_MUTEX FAST_MUTEX\r
45 #define KeInitializeGuardedMutex ExInitializeFastMutex\r
46 #define KeAcquireGuardedMutex ExAcquireFastMutex\r
47 #define KeReleaseGuardedMutex ExReleaseFastMutex\r
48 #endif\r
49 \r
50 extern WDFDEVICE                        ControlDevice;\r
51 \r
52 typedef struct _WM_IB_PORT\r
53 {\r
54         NET64                                   Guid;\r
55 \r
56 }       WM_IB_PORT;\r
57 \r
58 typedef struct _WM_IB_DEVICE\r
59 {\r
60         LIST_ENTRY                              Entry;\r
61         LONG                                    Ref;\r
62         KEVENT                                  Event;\r
63         NET64                                   Guid;\r
64         union\r
65         {\r
66                 RDMA_INTERFACE_VERBS    VerbsInterface;\r
67                 ib_al_ifc_t                             IbInterface;\r
68         };\r
69         ib_al_handle_t                  hIbal;\r
70         ib_pnp_handle_t                 hPnp;\r
71         //ib_ca_handle_t                        hDevice;\r
72         //ib_pd_handle_t                        hPd;\r
73         int                                             PortCount;\r
74         WM_IB_PORT                              *pPortArray;\r
75 \r
76 }       WM_IB_DEVICE;\r
77 \r
78 WM_IB_DEVICE *WmIbDeviceGet(NET64 Guid);\r
79 void WmIbDevicePut(WM_IB_DEVICE *pDevice);\r
80 \r
81 #endif // _WM_DRIVER_H_\r