Jungo WinDriver  
Official Documentation
windrvr_32bit.h
Go to the documentation of this file.
1#ifndef _WINDRVR_32BIT_H_
2#define _WINDRVR_32BIT_H_
3
4/* This header contains 32bit representations of structures which
5 * are used internally and externally */
6
7#include "wd_types.h"
8
9#if defined(__cplusplus)
10extern "C" {
11#endif
12
13#if defined(LINUX)
14 #pragma pack(push,4)
15#endif
16
17typedef u32 ptr32;
18typedef u32 WD_BUS_TYPE_32B;
19
20typedef struct
21{
22 WD_BUS_TYPE_32B dwBusType;
23 u32 dwDomainNum;
24 u32 dwBusNum;
25 u32 dwSlotFunc;
26} WD_BUS_V30_32B;
27
28typedef struct
29{
30 u32 item;
31 u32 fNotSharable;
32 union
33 {
34 struct
35 { /* ITEM_MEMORY */
36 u64 pPhysicalAddr;
37 u64 qwBytes;
38 u64 pTransAddr;
40 u32 pUserDirectAddr;
42 u32 dwBar;
43 u32 dwOptions;
44 u64 pReserved;
45 } Mem;
46 struct
47 { /* ITEM_IO */
48 u64 pAddr;
49 u32 dwBytes;
50 u32 dwBar;
51 } IO;
52 struct
53 { /* ITEM_INTERRUPT */
54 u32 dwInterrupt;
55 u32 dwOptions;
58 u32 hInterrupt;
60 u32 dwReserved1;
61 u64 pReserved2;
62 } Int;
63 WD_BUS_V30_32B Bus;
64 } I;
65} WD_ITEMS_V118_32B;
66
67typedef struct
68{
69 u32 dwItems;
70 WD_ITEMS_V118_32B Item[WD_CARD_ITEMS];
71} WD_CARD_V118_32B;
72
73typedef struct
74{
75 u32 dwVendorId;
76 u32 dwDeviceId;
77} WD_PCI_ID_32B;
78
79typedef struct
80{
81 u32 hKernelPlugIn;
82 u32 dwMessage;
83 ptr32 pData;
84 u32 dwResult;
85} WD_KERNEL_PLUGIN_CALL_V40_32B;
86
87typedef struct
88{
89 u32 hInterrupt;
90 u32 dwOptions;
93 u32 Cmd;
94 u32 dwCmds;
96 // For WD_IntEnable():
97 WD_KERNEL_PLUGIN_CALL_V40_32B kpCall;
98 u32 fEnableOk;
100 // For WD_IntWait() and WD_IntCount()
101 u32 dwCounter;
102 u32 dwLost;
104 u32 fStopped;
105 u32 dwLastMessage;
108 u32 dwEnabledIntType;
110} WD_INTERRUPT_V91_32B;
111
112typedef struct
113{
114 WD_CARD_V118_32B Card;
115 u32 fCheckLockOnly;
117 u32 hCard;
118 u32 dwOptions;
119 CHAR cName[32];
120 CHAR cDescription[100];
121} WD_CARD_REGISTER_V118_32B;
122
123typedef struct
124{
125 u32 hKernelPlugIn;
126 CHAR cDriverName[WD_MAX_KP_NAME_LENGTH];
127 CHAR cDriverPath[WD_MAX_KP_NAME_LENGTH];
128 ptr32 pOpenData;
129} WD_KERNEL_PLUGIN_V40_32B;
130
131typedef struct
132{
133 u32 dwDomain;
135 u32 dwBus;
136 u32 dwSlot;
137 u32 dwFunction;
138} WD_PCI_SLOT_32B;
139
140typedef struct
141{
142 u32 hEvent;
143 u32 dwEventType;
145 u32 dwAction;
146 u32 dwEventId;
147 u32 hKernelPlugIn;
148 u32 dwOptions;
149 union
150 {
151 struct
152 {
153 WD_PCI_ID_32B cardId;
154 WD_PCI_SLOT_32B pciSlot;
155 } Pci;
156 struct
157 {
158 u32 dwUniqueID;
159 } Usb;
160 struct
161 {
162 u32 hIpc;
163 u32 dwSubGroupID;
164 u32 dwGroupID;
165
166 u32 dwSenderUID;
167 u32 dwMsgID;
168 u64 qwMsgData;
169 } Ipc;
170 } u;
171 u32 dwNumMatchTables;
172 WDU_MATCH_TABLE matchTables[1];
173} WD_EVENT_V121_32B;
174
175/* Only wdc_defs.h structures should be packed */
176#if defined(WINNT)
177 #include <pshpack1.h>
178#endif
179
181typedef struct {
182 u32 dwAddrSpace;
183 u32 fIsMemory;
184 u32 dwItemIndex;
186 u32 reserved;
187 u64 qwBytes;
188 u64 pAddr;
191 u32 pUserDirectMemAddr;
192} WDC_ADDR_DESC_32B;
193
195typedef struct WDC_DEVICE_32B{
196 WD_PCI_ID_32B id;
197 WD_PCI_SLOT_32B slot;
199 u32 dwNumAddrSpaces;
201 ptr32 pAddrDesc;
203 WD_CARD_REGISTER_V118_32B cardReg;
205 WD_KERNEL_PLUGIN_V40_32B kerPlug;
207 WD_INTERRUPT_V91_32B Int;
208 u32 hIntThread;
209
210 WD_EVENT_V121_32B Event;
211 u32 hEvent;
212
213 u32 pCtx;
214} WDC_DEVICE_32B, *PWDC_DEVICE_32B;
215
216#if defined(WINNT)
217 #include <poppack.h>
218#endif
219
220#if defined(LINUX)
221 #pragma pack(pop)
222#endif
223
224#if defined(__cplusplus)
225}
226#endif
227
228#endif /* _WINDRVR_32BIT_H_ */
229
unsigned int u32
Definition: wd_types.h:10
unsigned long long u64
Definition: wd_types.h:15
#define WD_MAX_KP_NAME_LENGTH
Definition: windrvr.h:60
@ WD_CARD_ITEMS
Definition: windrvr.h:767
u32 ptr32
Definition: windrvr_32bit.h:17