source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ddk/ntagp.h

Last change on this file was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.5 KB
Line 
1/*
2 * ntagp.h
3 *
4 * NT AGP bus driver interface
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Gregor Anich <blight@blight.eu.org>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23#pragma once
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29DEFINE_GUID(GUID_AGP_BUS_INTERFACE_STANDARD, 0x2ef74803, 0xd8d3, 0x11d1, 0x9c, 0xaa, 0x00, 0xc0, 0xf0, 0x16, 0x56, 0x36);
30
31#define AGP_BUS_INTERFACE_V1 1
32#define AGP_BUS_INTERFACE_V2 2
33#define AGP_BUS_INTERFACE_V3 3
34#define AGP_BUS_INTERFACE_V4 4
35#define AGP_BUS_INTERFACE_V5 5
36
37/* Indicates wether the GART supports mapping of physical memory for the CPU */
38#define AGP_CAPABILITIES_MAP_PHYSICAL 0x00000001
39#define AGP_CAPABILITIES_CACHE_COHERENT 0x00000002
40#define AGP_CAPABILITIES_REQUIRES_GPU_FLUSH 0x00000004
41
42#define AGP_SET_RATE_DISABLE_SBA 0x00010000
43#define AGP_SET_RATE_DISABLE_FW 0x00020000
44
45#define AGP_GUARD_PAGE_CHECK_FIRST_ULONG 0x00000001
46#define AGP_GUARD_PAGE_CHECK_USE_SAME_OFFSET 0x00000002
47#define AGP_GUARD_PAGE_CHECK_DO_NOT_BUGCHECK 0x00000004
48
49#define AGP_BUS_INTERFACE_V1_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD,SetRate))
50#define AGP_BUS_INTERFACE_V2_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD, AgpSize))
51#define AGP_BUS_INTERFACE_V3_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD, FlushChipsetCaches))
52#define AGP_BUS_INTERFACE_V4_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD, MapMemoryEx))
53
54typedef NTSTATUS
55(NTAPI *PAGP_BUS_SET_RATE)(
56 IN PVOID AgpContext,
57 IN ULONG AgpRate);
58
59typedef NTSTATUS
60(NTAPI *PAGP_BUS_RESERVE_MEMORY)(
61 IN PVOID AgpContext,
62 IN ULONG NumberOfPages,
63 IN MEMORY_CACHING_TYPE MemoryType,
64 OUT PVOID *MapHandle,
65 OUT PHYSICAL_ADDRESS *PhysicalAddress OPTIONAL);
66
67typedef NTSTATUS
68(NTAPI *PAGP_BUS_RELEASE_MEMORY)(
69 IN PVOID AgpContext,
70 IN PVOID MapHandle);
71
72typedef NTSTATUS
73(NTAPI *PAGP_BUS_COMMIT_MEMORY)(
74 IN PVOID AgpContext,
75 IN PVOID MapHandle,
76 IN ULONG NumberOfPages,
77 IN ULONG OffsetInPages,
78 IN OUT PMDL Mdl OPTIONAL,
79 OUT PHYSICAL_ADDRESS *MemoryBase);
80
81typedef NTSTATUS
82(NTAPI *PAGP_BUS_FREE_MEMORY)(
83 IN PVOID AgpContext,
84 IN PVOID MapHandle,
85 IN ULONG NumberOfPages,
86 IN ULONG OffsetInPages);
87
88typedef NTSTATUS
89(NTAPI *PAGP_GET_MAPPED_PAGES)(
90 IN PVOID AgpContext,
91 IN PVOID MapHandle,
92 IN ULONG NumberOfPages,
93 IN ULONG OffsetInPages,
94 OUT PMDL Mdl);
95
96typedef NTSTATUS
97(NTAPI *PAGP_MAP_MEMORY)(
98 IN PVOID AgpContext,
99 IN PVOID MapHandle,
100 IN ULONG NumberOfPages,
101 IN ULONG OffsetInPages,
102 IN PMDL Mdl,
103 OUT PHYSICAL_ADDRESS *MemoryBase);
104
105typedef NTSTATUS
106(NTAPI *PAGP_UNMAP_MEMORY)(
107 IN PVOID AgpContext,
108 IN PVOID MapHandle,
109 IN ULONG NumberOfPages,
110 IN ULONG OffsetInPages,
111 IN PMDL Mdl);
112
113typedef NTSTATUS
114(NTAPI *PAGP_FLUSH_CHIPSET_CACHES)(
115 IN PVOID AgpContext);
116
117typedef NTSTATUS
118(NTAPI *PAGP_CHECK_INTEGRITY)(
119 IN PVOID AgpContext);
120
121typedef NTSTATUS
122(NTAPI *PAGP_MAP_MEMORY_EX)(
123 IN PVOID AgpContext,
124 IN PVOID MapHandle,
125 IN ULONG NumberOfPages,
126 IN ULONG OffsetInPages,
127 IN PMDL Mdl,
128 IN MEMORY_CACHING_TYPE *CacheTypeOverride OPTIONAL,
129 OUT PHYSICAL_ADDRESS *MemoryBase);
130
131typedef NTSTATUS
132(NTAPI *PAGP_UNMAP_MEMORY_EX)(
133 IN PVOID AgpContext,
134 IN PVOID MapHandle,
135 IN ULONG NumberOfPages,
136 IN ULONG OffsetInPages,
137 IN PMDL Mdl);
138
139typedef NTSTATUS
140(NTAPI *PAGP_FLUSH_GART_TLB)(
141 IN PVOID AgpContext);
142
143typedef NTSTATUS
144(NTAPI *PAGP_CHECK_GUARD_PAGE)(
145 IN PVOID AgpContext,
146 IN ULONG Flags,
147 IN ULONG ULongsToCheck);
148
149typedef struct _AGP_INFO_COMMON {
150 PCI_AGP_CAPABILITY MasterCap;
151 PCI_AGP_CAPABILITY TargetCap;
152 USHORT DeviceId;
153 USHORT VendorId;
154 USHORT SubVendorId;
155 USHORT SubSystemId;
156 UCHAR HwRevisionId;
157 ULONG VerifierFlags;
158 BOOLEAN GuardPageCorruption;
159} AGP_INFO_COMMON, *PAGP_INFO_COMMON;
160
161typedef struct _AGP_INFO_DRIVER {
162 ULONG AGPReg1;
163 ULONG AGPReg2;
164 PHYSICAL_ADDRESS ApertureStart;
165 PHYSICAL_ADDRESS GartTranslationTable;
166 ULONG ApertureLength;
167} AGP_INFO_DRIVER, *PAGP_INFO_DRIVER;
168
169typedef struct _AGP_INFO {
170 AGP_INFO_COMMON CommonInfo;
171 AGP_INFO_DRIVER DriverInfo;
172} AGP_INFO, *PAGP_INFO;
173
174typedef VOID
175(NTAPI *PAGP_GET_INFO)(
176 IN PVOID AgpContext,
177 OUT PAGP_INFO AgpInfo);
178
179typedef struct _AGP_BUS_INTERFACE_STANDARD {
180 USHORT Size;
181 USHORT Version;
182 PVOID AgpContext;
183 PINTERFACE_REFERENCE InterfaceReference;
184 PINTERFACE_DEREFERENCE InterfaceDereference;
185 ULONG Capabilities;
186 PAGP_BUS_RESERVE_MEMORY ReserveMemory;
187 PAGP_BUS_RELEASE_MEMORY ReleaseMemory;
188 PAGP_BUS_COMMIT_MEMORY CommitMemory;
189 PAGP_BUS_FREE_MEMORY FreeMemory;
190 PAGP_GET_MAPPED_PAGES GetMappedPages;
191 PAGP_BUS_SET_RATE SetRate;
192 SIZE_T AgpSize;
193 PHYSICAL_ADDRESS AgpBase;
194 PHYSICAL_ADDRESS MaxPhysicalAddress;
195 PAGP_MAP_MEMORY MapMemory;
196 PAGP_UNMAP_MEMORY UnMapMemory;
197 PAGP_FLUSH_CHIPSET_CACHES FlushChipsetCaches;
198 PAGP_CHECK_INTEGRITY CheckIntegrity;
199 PAGP_MAP_MEMORY_EX MapMemoryEx;
200 PAGP_UNMAP_MEMORY_EX UnMapMemoryEx;
201 PAGP_FLUSH_GART_TLB FlushGartTLB;
202 PAGP_CHECK_GUARD_PAGE CheckGuardPage;
203 PAGP_GET_INFO GetAgpInfo;
204} AGP_BUS_INTERFACE_STANDARD, *PAGP_BUS_INTERFACE_STANDARD;
205
206#ifdef __cplusplus
207}
208#endif
Note: See TracBrowser for help on using the repository browser.