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.
27 #pragma GCC system_header
36 #define AGP_BUS_INTERFACE_V1 1L
37 #define AGP_BUS_INTERFACE_V2 2L
39 /* Indicates wether the GART supports mapping of physical memory for the CPU */
40 #define AGP_CAPABILITIES_MAP_PHYSICAL 0x00000001L
43 (DDKAPI
*PAGP_BUS_COMMIT_MEMORY
)(
46 IN ULONG NumberOfPages
,
47 IN ULONG OffsetInPages
,
48 IN OUT PMDL Mdl OPTIONAL
,
49 OUT PHYSICAL_ADDRESS
*MemoryBase
);
52 (DDKAPI
*PAGP_BUS_FREE_MEMORY
)(
55 IN ULONG NumberOfPages
,
56 IN ULONG OffsetInPages
);
59 (DDKAPI
*PAGP_BUS_RELEASE_MEMORY
)(
64 (DDKAPI
*PAGP_BUS_RESERVE_MEMORY
)(
66 IN ULONG NumberOfPages
,
67 IN MEMORY_CACHING_TYPE MemoryType
,
69 OUT PHYSICAL_ADDRESS
*PhysicalAddress OPTIONAL
);
72 (DDKAPI
*PAGP_BUS_SET_RATE
)(
77 (DDKAPI
*PAGP_GET_MAPPED_PAGES
)(
80 IN ULONG NumberOfPages
,
81 IN ULONG OffsetInPages
,
84 typedef struct _AGP_BUS_INTERFACE_STANDARD
{
88 PINTERFACE_REFERENCE InterfaceReference
;
89 PINTERFACE_DEREFERENCE InterfaceDereference
;
92 PAGP_BUS_RESERVE_MEMORY ReserveMemory
;
93 PAGP_BUS_RELEASE_MEMORY ReleaseMemory
;
94 PAGP_BUS_COMMIT_MEMORY CommitMemory
;
95 PAGP_BUS_FREE_MEMORY FreeMemory
;
96 PAGP_GET_MAPPED_PAGES GetMappedPages
;
97 PAGP_BUS_SET_RATE SetRate
;
98 } AGP_BUS_INTERFACE_STANDARD
, *PAGP_BUS_INTERFACE_STANDARD
;
100 #define AGP_BUS_INTERFACE_V2_SIZE sizeof(AGP_BUS_INTERFACE_STANDARD)
101 #define AGP_BUS_INTERFACE_V1_SIZE \
102 (AGP_BUS_INTERFACE_V2_SIZE - sizeof(PAGP_BUS_SET_RATE))
108 #endif /* __NTAGP_H */