ReactOS 0.4.16-dev-297-gc569aee
isapnphw.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS ISA PnP Bus driver
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Hardware definitions
5 * COPYRIGHT: Copyright 2010 Cameron Gutman <cameron.gutman@reactos.org>
6 * Copyright 2020 Hervé Poussineau <hpoussin@reactos.org>
7 * Copyright 2021 Dmitry Borisov <di.sean@protonmail.com>
8 */
9
10#pragma once
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#define ISAPNP_ADDRESS_PCAT 0x279
17#define ISAPNP_WRITE_DATA_PCAT 0xA79
18
19#define ISAPNP_ADDRESS_PC98 0x259
20#define ISAPNP_WRITE_DATA_PC98 0xA59
21
22#define ISAPNP_READPORT 0x00
23#define ISAPNP_SERIALISOLATION 0x01
24#define ISAPNP_CONFIGCONTROL 0x02
25#define ISAPNP_WAKE 0x03
26#define ISAPNP_RESOURCEDATA 0x04
27#define ISAPNP_STATUS 0x05
28#define ISAPNP_CARDSELECTNUMBER 0x06
29#define ISAPNP_LOGICALDEVICENUMBER 0x07
30
31#define ISAPNP_ACTIVATE 0x30
32#define ISAPNP_IORANGECHECK 0x31
33
34#define ISAPNP_MEMBASE(n) (0x40 + ((n) * 8))
35#define ISAPNP_MEMCONTROL(n) (0x42 + ((n) * 8))
36#define MEMORY_UPPER_LIMIT 0x01
37#define MEMORY_USE_8_BIT_DECODER 0x00
38#define MEMORY_USE_16_BIT_DECODER 0x02
39#define MEMORY_USE_32_BIT_DECODER 0x06
40#define ISAPNP_MEMLIMIT(n) (0x43 + ((n) * 8))
41#define ISAPNP_IOBASE(n) (0x60 + ((n)*2))
42#define ISAPNP_IRQNO(n) (0x70 + ((n)*2))
43#define ISAPNP_IRQTYPE(n) (0x71 + ((n) * 2))
44#define IRQTYPE_LOW_LEVEL 0x01
45#define IRQTYPE_HIGH_EDGE 0x02
46#define ISAPNP_DMACHANNEL(n) (0x74 + (n))
47#define DMACHANNEL_NONE 4
48#define ISAPNP_MEMBASE32(n) ((n) == 0 ? 0x76 : (0x70 + (n) * 16))
49#define ISAPNP_MEMCONTROL32(n) ((n) == 0 ? 0x7A : (0x74 + (n) * 16))
50#define ISAPNP_MEMLIMIT32(n) ((n) == 0 ? 0x7B : (0x75 + (n) * 16))
51
52#define ISAPNP_CONFIG_RESET (1 << 0)
53#define ISAPNP_CONFIG_WAIT_FOR_KEY (1 << 1)
54#define ISAPNP_CONFIG_RESET_CSN (1 << 2)
55
56#define ISAPNP_LFSR_SEED 0x6A
57
58#define ISAPNP_IS_SMALL_TAG(t) (!((t) & 0x80))
59#define ISAPNP_SMALL_TAG_NAME(t) (((t) >> 3) & 0xF)
60#define ISAPNP_SMALL_TAG_LEN(t) (((t) & 0x7))
61#define ISAPNP_TAG_PNPVERNO 0x01
62#define ISAPNP_TAG_LOGDEVID 0x02
63#define ISAPNP_TAG_COMPATDEVID 0x03
64#define ISAPNP_TAG_IRQ 0x04
65#define ISAPNP_TAG_DMA 0x05
66#define ISAPNP_TAG_STARTDEP 0x06
67#define ISAPNP_TAG_ENDDEP 0x07
68#define ISAPNP_TAG_IOPORT 0x08
69#define ISAPNP_TAG_FIXEDIO 0x09
70#define ISAPNP_TAG_END 0x0F
71
72#define ISAPNP_IS_LARGE_TAG(t) (((t) & 0x80))
73#define ISAPNP_LARGE_TAG_NAME(t) (t)
74#define ISAPNP_TAG_MEMRANGE 0x81
75#define MEMRANGE_16_BIT_MEMORY_MASK (0x10 | 0x08)
76#define MEMRANGE_32_BIT_MEMORY_ONLY 0x18
77#define ISAPNP_TAG_ANSISTR 0x82
78#define ISAPNP_TAG_UNICODESTR 0x83
79#define ISAPNP_TAG_MEM32RANGE 0x85
80#define ISAPNP_TAG_FIXEDMEM32RANGE 0x86
81
82#define RANGE_LENGTH_TO_LENGTH(RangeLength) ((~(RangeLength) + 1) & 0xFFFFFF)
83#define LENGTH_TO_RANGE_LENGTH(Length) (~(Length) + 1)
84
85#include <pshpack1.h>
86
87typedef struct _ISAPNP_IDENTIFIER
88{
94
95typedef struct _ISAPNP_LOGDEVID
96{
101
102typedef struct _ISAPNP_COMPATID
103{
107
109{
116
118{
122
124{
128
130{
134
136{
143
145{
152
154{
159
160#include <poppack.h>
161
162#ifdef __cplusplus
163}
164#endif
struct _ISAPNP_LOGDEVID ISAPNP_LOGDEVID
struct _ISAPNP_FIXEDMEMRANGE_DESCRIPTION ISAPNP_FIXEDMEMRANGE_DESCRIPTION
struct _ISAPNP_IRQ_DESCRIPTION * PISAPNP_IRQ_DESCRIPTION
struct _ISAPNP_DMA_DESCRIPTION * PISAPNP_DMA_DESCRIPTION
struct _ISAPNP_IDENTIFIER * PISAPNP_IDENTIFIER
struct _ISAPNP_LOGDEVID * PISAPNP_LOGDEVID
struct _ISAPNP_IO_DESCRIPTION * PISAPNP_IO_DESCRIPTION
struct _ISAPNP_COMPATID * PISAPNP_COMPATID
struct _ISAPNP_FIXEDMEMRANGE_DESCRIPTION * PISAPNP_FIXEDMEMRANGE_DESCRIPTION
struct _ISAPNP_FIXED_IO_DESCRIPTION * PISAPNP_FIXED_IO_DESCRIPTION
struct _ISAPNP_COMPATID ISAPNP_COMPATID
struct _ISAPNP_MEMRANGE32_DESCRIPTION * PISAPNP_MEMRANGE32_DESCRIPTION
struct _ISAPNP_MEMRANGE_DESCRIPTION * PISAPNP_MEMRANGE_DESCRIPTION
struct _ISAPNP_IO_DESCRIPTION ISAPNP_IO_DESCRIPTION
struct _ISAPNP_IDENTIFIER ISAPNP_IDENTIFIER
struct _ISAPNP_MEMRANGE32_DESCRIPTION ISAPNP_MEMRANGE32_DESCRIPTION
struct _ISAPNP_FIXED_IO_DESCRIPTION ISAPNP_FIXED_IO_DESCRIPTION
struct _ISAPNP_MEMRANGE_DESCRIPTION ISAPNP_MEMRANGE_DESCRIPTION
struct _ISAPNP_IRQ_DESCRIPTION ISAPNP_IRQ_DESCRIPTION
struct _ISAPNP_DMA_DESCRIPTION ISAPNP_DMA_DESCRIPTION
unsigned short USHORT
Definition: pedump.c:61
USHORT VendorId
Definition: isapnphw.h:104
USHORT VendorId
Definition: isapnphw.h:97
USHORT ProdId
Definition: isapnphw.h:98
USHORT Flags
Definition: isapnphw.h:99
uint32_t ULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: xmlstorage.h:181