Go to the source code of this file.
◆ IsaBusCreateCard()
Definition at line 439 of file isabus.c.
444{
445 Card->RomSize = RomSize;
446 Card->PnpRom = PnpRom;
449 Card->LogicalDevices = LogicalDevices;
450
452
454}
static VOID IsaBusPlugInCard(_Inout_ PISAPNP_CARD Card)
static UCHAR IsaBusPnpChecksum(_In_ PISAPNP_IDENTIFIER Identifier)
static UCHAR IsaBusResourceDataChecksum(_In_ PUCHAR PnpRom, _In_ ULONG RomSize)
static ULONG IsapCardCount
#define FIELD_OFFSET(t, f)
Referenced by DrvCreateCard1(), and DrvCreateCard2().
◆ IsaBusNextLFSR()
◆ IsaBusPlugInCard()
◆ IsaBusPnpChecksum()
Definition at line 391 of file isabus.c.
393{
395
398 {
400
402 {
405 }
406 }
407
408 return Lfsr;
409}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static UCHAR IsaBusNextLFSR(_In_ UCHAR Lfsr, _In_ UCHAR InputBit)
#define RTL_BITS_OF(sizeOfArg)
Referenced by IsaBusCreateCard().
◆ IsaBusReadDataPortRegister()
Definition at line 328 of file isabus.c.
330{
333
335 return 0xFF;
336
338 {
340 {
342 break;
343
344
346 {
348 break;
349 }
350
352 }
353
355 return 0x01;
356
359
362
365 goto ReadDeviceRegister;
366
367 default:
368 {
370 {
372
373ReadDeviceRegister:
375
377 }
378 else
379 {
381 }
382 break;
383 }
384 }
385
386 return 0xFF;
387}
#define ISAPNP_IORANGECHECK
#define ISAPNP_LOGICALDEVICENUMBER
#define ISAPNP_SERIALISOLATION
#define ISAPNP_RESOURCEDATA
#define ISAPNP_CARDSELECTNUMBER
static PISAPNP_CARD IsapConfigureCard
static UCHAR IsaBusReadSerialIsolationRegister(_In_ PUCHAR Port)
static UCHAR IsapAddressLatch
ISAPNP_CARD_LOGICAL_DEVICE LogDev[TEST_MAX_SUPPORTED_DEVICES]
Referenced by READ_PORT_UCHAR().
◆ IsaBusReadSerialIsolationRegister()
Definition at line 266 of file isabus.c.
268{
269 ULONG i, ResponseMap = 0, ListenMap = 0;
271
273 {
275
277 continue;
278
279
281 continue;
282
283 Card->IsolationRead ^= 1;
284
285 if (
Card->IsolationRead)
286 {
287 if (
Card->PnpRom[
Card->SerialIsolationIdx / 8] & (1 << (
Card->SerialIsolationIdx % 8)))
288 Card->SerialIdResponse = 0x55;
289 else
290 Card->SerialIdResponse = 0x00;
291
293 ++
Card->SerialIsolationIdx;
294 }
295 else
296 {
297 Card->SerialIdResponse <<= 1;
298
299 if (
Card->SerialIdResponse == 0xAA)
300 ResponseMap |= (1 <<
i);
301 else
302 ListenMap |= (1 <<
i);
303 }
304
307 }
308
309
310 if (ResponseMap != 0 && ListenMap != 0)
311 {
313 {
314 if (ListenMap & (1 <<
i))
315 {
317
319 }
320 }
321 }
322
324}
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Referenced by IsaBusReadDataPortRegister().
◆ IsaBusResourceDataChecksum()
◆ IsaBusWriteAddressRegister()
Definition at line 38 of file isabus.c.
40{
42
44
46 {
48
50 continue;
51
52
54 {
57 continue;
58 }
59
60
62
63
64 if (++
Card->LfsrCount == 32)
65 {
67 }
68 }
69}
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Referenced by WRITE_PORT_UCHAR().
◆ IsaBusWriteDataRegister()
Definition at line 73 of file isabus.c.
75{
77
79 {
81 {
82
84 {
86
88 continue;
89
91 }
92 break;
93 }
94
96 {
98 {
100 }
101
103 {
105
107 {
109 {
110 for (
j = 0;
j <
Card->LogicalDevices; ++
j)
111 {
113
115 }
116 }
118 {
119 Card->SelectNumberReg = 0;
120 }
121 }
123 {
125 }
126 }
127 break;
128 }
129
131 {
133 {
135
137 continue;
138
140 {
142 {
144
146 {
148 }
149 }
150
151 continue;
152 }
153
155 Card->SerialIsolationIdx = 0;
156
158 {
160 {
162
163 Card->IsolationRead = 0;
164 }
165 else
166 {
168
169
171 }
172 }
173 }
174
175 break;
176 }
177
179 {
180 ULONG CsnAssigned = 0;
181
182
184 {
186
188 continue;
189
190 ok(
Value != 0,
"The new CSN is zero\n");
191 ok(
Card->SelectNumberReg !=
Value,
"CSNs must be assigned sequentially");
192
195
196
198
199 ++CsnAssigned;
201 }
202 break;
203 }
204
206 {
208
210 {
212 ok(Value < IsapConfigureCard->LogicalDevices,
"Invalid write to a LDN register\n");
213
215 }
216 break;
217 }
218
220 {
222 goto WriteDeviceRegister;
223 }
224
226 {
228 goto WriteDeviceRegister;
229 }
230
234 {
236 break;
237 }
238
239 default:
240 {
242 {
244
245WriteDeviceRegister:
247
249 {
251
253 }
254 }
255 else
256 {
258 }
259 break;
260 }
261 }
262}
#define ok_eq_ulong(value, expected)
#define ISAPNP_CONFIG_RESET
#define ISAPNP_CONFIG_WAIT_FOR_KEY
#define ISAPNP_CONFIGCONTROL
#define ISAPNP_CONFIG_RESET_CSN
Referenced by WRITE_PORT_UCHAR().
◆ READ_PORT_UCHAR()
Definition at line 480 of file isabus.c.
482{
484
485
487 {
488 case 0x2F4 | 3:
490 break;
491
492
493 case 0x274 | 3:
494 case 0x3E4 | 3:
495 case 0x204 | 3:
496 case 0x2E4 | 3:
497 case 0x354 | 3:
499 break;
500
501 default:
504 break;
505 }
506
508}
static UCHAR IsaBusReadDataPortRegister(_In_ PUCHAR Port)
◆ WRITE_PORT_UCHAR()
Definition at line 458 of file isabus.c.
461{
463 {
464 case 0x279:
466 break;
467
468 case 0xA79:
470 break;
471
472 default:
474 break;
475 }
476}
static VOID IsaBusWriteDataRegister(_In_ UCHAR Value)
static VOID IsaBusWriteAddressRegister(_In_ UCHAR Value)
◆ IsapAddressLatch
UCHAR IsapAddressLatch = 0 |
|
static |
◆ IsapCard
◆ IsapCardCount
◆ IsapConfigureCard