4 * NT AGP bus driver interface
6 * This file is part of the w32api package.
9 * Created by Gregor Anich <blight@blight.eu.org>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
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.
32 #define AGP_BUS_INTERFACE_V1 1L
33 #define AGP_BUS_INTERFACE_V2 2L
35 /* Indicates wether the GART supports mapping of physical memory for the CPU */
36 #define AGP_CAPABILITIES_MAP_PHYSICAL 0x00000001L
39 (NTAPI
*PAGP_BUS_COMMIT_MEMORY
)(
42 IN ULONG NumberOfPages
,
43 IN ULONG OffsetInPages
,
44 IN OUT PMDL Mdl OPTIONAL
,
45 OUT PHYSICAL_ADDRESS
*MemoryBase
);
48 (NTAPI
*PAGP_BUS_FREE_MEMORY
)(
51 IN ULONG NumberOfPages
,
52 IN ULONG OffsetInPages
);
55 (NTAPI
*PAGP_BUS_RELEASE_MEMORY
)(
60 (NTAPI
*PAGP_BUS_RESERVE_MEMORY
)(
62 IN ULONG NumberOfPages
,
63 IN MEMORY_CACHING_TYPE MemoryType
,
65 OUT PHYSICAL_ADDRESS
*PhysicalAddress OPTIONAL
);
68 (NTAPI
*PAGP_BUS_SET_RATE
)(
73 (NTAPI
*PAGP_GET_MAPPED_PAGES
)(
76 IN ULONG NumberOfPages
,
77 IN ULONG OffsetInPages
,
80 typedef struct _AGP_BUS_INTERFACE_STANDARD
{
84 PINTERFACE_REFERENCE InterfaceReference
;
85 PINTERFACE_DEREFERENCE InterfaceDereference
;
88 PAGP_BUS_RESERVE_MEMORY ReserveMemory
;
89 PAGP_BUS_RELEASE_MEMORY ReleaseMemory
;
90 PAGP_BUS_COMMIT_MEMORY CommitMemory
;
91 PAGP_BUS_FREE_MEMORY FreeMemory
;
92 PAGP_GET_MAPPED_PAGES GetMappedPages
;
93 PAGP_BUS_SET_RATE SetRate
;
94 } AGP_BUS_INTERFACE_STANDARD
, *PAGP_BUS_INTERFACE_STANDARD
;
96 #define AGP_BUS_INTERFACE_V2_SIZE sizeof(AGP_BUS_INTERFACE_STANDARD)
97 #define AGP_BUS_INTERFACE_V1_SIZE \
98 (AGP_BUS_INTERFACE_V2_SIZE - sizeof(PAGP_BUS_SET_RATE))
104 #endif /* __NTAGP_H */