ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntagp.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.