Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntagp.h
Go to the documentation of this file.
00001 /* 00002 * ntagp.h 00003 * 00004 * NT AGP bus driver interface 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Gregor Anich <blight@blight.eu.org> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #pragma once 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00029 DEFINE_GUID(GUID_AGP_BUS_INTERFACE_STANDARD, 0x2ef74803, 0xd8d3, 0x11d1, 0x9c, 0xaa, 0x00, 0xc0, 0xf0, 0x16, 0x56, 0x36); 00030 00031 #define AGP_BUS_INTERFACE_V1 1 00032 #define AGP_BUS_INTERFACE_V2 2 00033 #define AGP_BUS_INTERFACE_V3 3 00034 #define AGP_BUS_INTERFACE_V4 4 00035 #define AGP_BUS_INTERFACE_V5 5 00036 00037 /* Indicates wether the GART supports mapping of physical memory for the CPU */ 00038 #define AGP_CAPABILITIES_MAP_PHYSICAL 0x00000001 00039 #define AGP_CAPABILITIES_CACHE_COHERENT 0x00000002 00040 #define AGP_CAPABILITIES_REQUIRES_GPU_FLUSH 0x00000004 00041 00042 #define AGP_SET_RATE_DISABLE_SBA 0x00010000 00043 #define AGP_SET_RATE_DISABLE_FW 0x00020000 00044 00045 #define AGP_GUARD_PAGE_CHECK_FIRST_ULONG 0x00000001 00046 #define AGP_GUARD_PAGE_CHECK_USE_SAME_OFFSET 0x00000002 00047 #define AGP_GUARD_PAGE_CHECK_DO_NOT_BUGCHECK 0x00000004 00048 00049 #define AGP_BUS_INTERFACE_V1_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD,SetRate)) 00050 #define AGP_BUS_INTERFACE_V2_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD, AgpSize)) 00051 #define AGP_BUS_INTERFACE_V3_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD, FlushChipsetCaches)) 00052 #define AGP_BUS_INTERFACE_V4_SIZE (FIELD_OFFSET(AGP_BUS_INTERFACE_STANDARD, MapMemoryEx)) 00053 00054 typedef NTSTATUS 00055 (NTAPI *PAGP_BUS_SET_RATE)( 00056 IN PVOID AgpContext, 00057 IN ULONG AgpRate); 00058 00059 typedef NTSTATUS 00060 (NTAPI *PAGP_BUS_RESERVE_MEMORY)( 00061 IN PVOID AgpContext, 00062 IN ULONG NumberOfPages, 00063 IN MEMORY_CACHING_TYPE MemoryType, 00064 OUT PVOID *MapHandle, 00065 OUT PHYSICAL_ADDRESS *PhysicalAddress OPTIONAL); 00066 00067 typedef NTSTATUS 00068 (NTAPI *PAGP_BUS_RELEASE_MEMORY)( 00069 IN PVOID AgpContext, 00070 IN PVOID MapHandle); 00071 00072 typedef NTSTATUS 00073 (NTAPI *PAGP_BUS_COMMIT_MEMORY)( 00074 IN PVOID AgpContext, 00075 IN PVOID MapHandle, 00076 IN ULONG NumberOfPages, 00077 IN ULONG OffsetInPages, 00078 IN OUT PMDL Mdl OPTIONAL, 00079 OUT PHYSICAL_ADDRESS *MemoryBase); 00080 00081 typedef NTSTATUS 00082 (NTAPI *PAGP_BUS_FREE_MEMORY)( 00083 IN PVOID AgpContext, 00084 IN PVOID MapHandle, 00085 IN ULONG NumberOfPages, 00086 IN ULONG OffsetInPages); 00087 00088 typedef NTSTATUS 00089 (NTAPI *PAGP_GET_MAPPED_PAGES)( 00090 IN PVOID AgpContext, 00091 IN PVOID MapHandle, 00092 IN ULONG NumberOfPages, 00093 IN ULONG OffsetInPages, 00094 OUT PMDL Mdl); 00095 00096 typedef NTSTATUS 00097 (NTAPI *PAGP_MAP_MEMORY)( 00098 IN PVOID AgpContext, 00099 IN PVOID MapHandle, 00100 IN ULONG NumberOfPages, 00101 IN ULONG OffsetInPages, 00102 IN PMDL Mdl, 00103 OUT PHYSICAL_ADDRESS *MemoryBase); 00104 00105 typedef NTSTATUS 00106 (NTAPI *PAGP_UNMAP_MEMORY)( 00107 IN PVOID AgpContext, 00108 IN PVOID MapHandle, 00109 IN ULONG NumberOfPages, 00110 IN ULONG OffsetInPages, 00111 IN PMDL Mdl); 00112 00113 typedef NTSTATUS 00114 (NTAPI *PAGP_FLUSH_CHIPSET_CACHES)( 00115 IN PVOID AgpContext); 00116 00117 typedef NTSTATUS 00118 (NTAPI *PAGP_CHECK_INTEGRITY)( 00119 IN PVOID AgpContext); 00120 00121 typedef NTSTATUS 00122 (NTAPI *PAGP_MAP_MEMORY_EX)( 00123 IN PVOID AgpContext, 00124 IN PVOID MapHandle, 00125 IN ULONG NumberOfPages, 00126 IN ULONG OffsetInPages, 00127 IN PMDL Mdl, 00128 IN MEMORY_CACHING_TYPE *CacheTypeOverride OPTIONAL, 00129 OUT PHYSICAL_ADDRESS *MemoryBase); 00130 00131 typedef NTSTATUS 00132 (NTAPI *PAGP_UNMAP_MEMORY_EX)( 00133 IN PVOID AgpContext, 00134 IN PVOID MapHandle, 00135 IN ULONG NumberOfPages, 00136 IN ULONG OffsetInPages, 00137 IN PMDL Mdl); 00138 00139 typedef NTSTATUS 00140 (NTAPI *PAGP_FLUSH_GART_TLB)( 00141 IN PVOID AgpContext); 00142 00143 typedef NTSTATUS 00144 (NTAPI *PAGP_CHECK_GUARD_PAGE)( 00145 IN PVOID AgpContext, 00146 IN ULONG Flags, 00147 IN ULONG ULongsToCheck); 00148 00149 typedef struct _AGP_INFO_COMMON { 00150 PCI_AGP_CAPABILITY MasterCap; 00151 PCI_AGP_CAPABILITY TargetCap; 00152 USHORT DeviceId; 00153 USHORT VendorId; 00154 USHORT SubVendorId; 00155 USHORT SubSystemId; 00156 UCHAR HwRevisionId; 00157 ULONG VerifierFlags; 00158 BOOLEAN GuardPageCorruption; 00159 } AGP_INFO_COMMON, *PAGP_INFO_COMMON; 00160 00161 typedef struct _AGP_INFO_DRIVER { 00162 ULONG AGPReg1; 00163 ULONG AGPReg2; 00164 PHYSICAL_ADDRESS ApertureStart; 00165 PHYSICAL_ADDRESS GartTranslationTable; 00166 ULONG ApertureLength; 00167 } AGP_INFO_DRIVER, *PAGP_INFO_DRIVER; 00168 00169 typedef struct _AGP_INFO { 00170 AGP_INFO_COMMON CommonInfo; 00171 AGP_INFO_DRIVER DriverInfo; 00172 } AGP_INFO, *PAGP_INFO; 00173 00174 typedef VOID 00175 (NTAPI *PAGP_GET_INFO)( 00176 IN PVOID AgpContext, 00177 OUT PAGP_INFO AgpInfo); 00178 00179 typedef struct _AGP_BUS_INTERFACE_STANDARD { 00180 USHORT Size; 00181 USHORT Version; 00182 PVOID AgpContext; 00183 PINTERFACE_REFERENCE InterfaceReference; 00184 PINTERFACE_DEREFERENCE InterfaceDereference; 00185 ULONG Capabilities; 00186 PAGP_BUS_RESERVE_MEMORY ReserveMemory; 00187 PAGP_BUS_RELEASE_MEMORY ReleaseMemory; 00188 PAGP_BUS_COMMIT_MEMORY CommitMemory; 00189 PAGP_BUS_FREE_MEMORY FreeMemory; 00190 PAGP_GET_MAPPED_PAGES GetMappedPages; 00191 PAGP_BUS_SET_RATE SetRate; 00192 SIZE_T AgpSize; 00193 PHYSICAL_ADDRESS AgpBase; 00194 PHYSICAL_ADDRESS MaxPhysicalAddress; 00195 PAGP_MAP_MEMORY MapMemory; 00196 PAGP_UNMAP_MEMORY UnMapMemory; 00197 PAGP_FLUSH_CHIPSET_CACHES FlushChipsetCaches; 00198 PAGP_CHECK_INTEGRITY CheckIntegrity; 00199 PAGP_MAP_MEMORY_EX MapMemoryEx; 00200 PAGP_UNMAP_MEMORY_EX UnMapMemoryEx; 00201 PAGP_FLUSH_GART_TLB FlushGartTLB; 00202 PAGP_CHECK_GUARD_PAGE CheckGuardPage; 00203 PAGP_GET_INFO GetAgpInfo; 00204 } AGP_BUS_INTERFACE_STANDARD, *PAGP_BUS_INTERFACE_STANDARD; 00205 00206 #ifdef __cplusplus 00207 } 00208 #endif Generated on Sat May 26 2012 04:28:46 for ReactOS by
1.7.6.1
|