1*c2c66affSColin Finck /* 2*c2c66affSColin Finck * videoagp.h 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * Video miniport AGP interface 5*c2c66affSColin Finck * 6*c2c66affSColin Finck * This file is part of the w32api package. 7*c2c66affSColin Finck * 8*c2c66affSColin Finck * Contributors: 9*c2c66affSColin Finck * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 10*c2c66affSColin Finck * 11*c2c66affSColin Finck * THIS SOFTWARE IS NOT COPYRIGHTED 12*c2c66affSColin Finck * 13*c2c66affSColin Finck * This source code is offered for use in the public domain. You may 14*c2c66affSColin Finck * use, modify or distribute it freely. 15*c2c66affSColin Finck * 16*c2c66affSColin Finck * This code is distributed in the hope that it will be useful but 17*c2c66affSColin Finck * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 18*c2c66affSColin Finck * DISCLAIMED. This includes but is not limited to warranties of 19*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20*c2c66affSColin Finck * 21*c2c66affSColin Finck */ 22*c2c66affSColin Finck 23*c2c66affSColin Finck #pragma once 24*c2c66affSColin Finck 25*c2c66affSColin Finck #define __VIDEOAGP_H__ 26*c2c66affSColin Finck 27*c2c66affSColin Finck #ifdef __cplusplus 28*c2c66affSColin Finck extern "C" { 29*c2c66affSColin Finck #endif 30*c2c66affSColin Finck 31*c2c66affSColin Finck #define VIDEO_AGP_RATE_1X 0x00000001 32*c2c66affSColin Finck #define VIDEO_AGP_RATE_2X 0x00000002 33*c2c66affSColin Finck #define VIDEO_AGP_RATE_4X 0x00000004 34*c2c66affSColin Finck #define VIDEO_AGP_RATE_8X 0x00000008 35*c2c66affSColin Finck 36*c2c66affSColin Finck typedef enum _VIDEO_PORT_CACHE_TYPE { 37*c2c66affSColin Finck VpNonCached = 0, 38*c2c66affSColin Finck VpWriteCombined, 39*c2c66affSColin Finck VpCached 40*c2c66affSColin Finck } VIDEO_PORT_CACHE_TYPE; 41*c2c66affSColin Finck 42*c2c66affSColin Finck typedef BOOLEAN 43*c2c66affSColin Finck (NTAPI *PAGP_COMMIT_PHYSICAL)( 44*c2c66affSColin Finck IN PVOID HwDeviceExtension, 45*c2c66affSColin Finck IN PVOID PhysicalReserveContext, 46*c2c66affSColin Finck IN ULONG Pages, 47*c2c66affSColin Finck IN ULONG Offset); 48*c2c66affSColin Finck 49*c2c66affSColin Finck typedef PVOID 50*c2c66affSColin Finck (NTAPI *PAGP_COMMIT_VIRTUAL)( 51*c2c66affSColin Finck IN PVOID HwDeviceExtension, 52*c2c66affSColin Finck IN PVOID VirtualReserveContext, 53*c2c66affSColin Finck IN ULONG Pages, 54*c2c66affSColin Finck IN ULONG Offset); 55*c2c66affSColin Finck 56*c2c66affSColin Finck typedef VOID 57*c2c66affSColin Finck (NTAPI *PAGP_FREE_PHYSICAL)( 58*c2c66affSColin Finck IN PVOID HwDeviceExtension, 59*c2c66affSColin Finck IN PVOID PhysicalReserveContext, 60*c2c66affSColin Finck IN ULONG Pages, 61*c2c66affSColin Finck IN ULONG Offset); 62*c2c66affSColin Finck 63*c2c66affSColin Finck typedef VOID 64*c2c66affSColin Finck (NTAPI *PAGP_FREE_VIRTUAL)( 65*c2c66affSColin Finck IN PVOID HwDeviceExtension, 66*c2c66affSColin Finck IN PVOID VirtualReserveContext, 67*c2c66affSColin Finck IN ULONG Pages, 68*c2c66affSColin Finck IN ULONG Offset); 69*c2c66affSColin Finck 70*c2c66affSColin Finck typedef VOID 71*c2c66affSColin Finck (NTAPI *PAGP_RELEASE_PHYSICAL)( 72*c2c66affSColin Finck IN PVOID HwDeviceExtension, 73*c2c66affSColin Finck IN PVOID PhysicalReserveContext); 74*c2c66affSColin Finck 75*c2c66affSColin Finck typedef VOID 76*c2c66affSColin Finck (NTAPI *PAGP_RELEASE_VIRTUAL)( 77*c2c66affSColin Finck IN PVOID HwDeviceExtension, 78*c2c66affSColin Finck IN PVOID VirtualReserveContext); 79*c2c66affSColin Finck 80*c2c66affSColin Finck typedef PHYSICAL_ADDRESS 81*c2c66affSColin Finck (NTAPI *PAGP_RESERVE_PHYSICAL)( 82*c2c66affSColin Finck IN PVOID HwDeviceExtension, 83*c2c66affSColin Finck IN ULONG Pages, 84*c2c66affSColin Finck IN VIDEO_PORT_CACHE_TYPE Caching, 85*c2c66affSColin Finck OUT PVOID *PhysicalReserveContext); 86*c2c66affSColin Finck 87*c2c66affSColin Finck typedef PVOID 88*c2c66affSColin Finck (NTAPI *PAGP_RESERVE_VIRTUAL)( 89*c2c66affSColin Finck IN PVOID HwDeviceExtension, 90*c2c66affSColin Finck IN HANDLE ProcessHandle, 91*c2c66affSColin Finck IN PVOID PhysicalReserveContext, 92*c2c66affSColin Finck OUT PVOID *VirtualReserveContext); 93*c2c66affSColin Finck 94*c2c66affSColin Finck typedef BOOLEAN 95*c2c66affSColin Finck (NTAPI *PAGP_SET_RATE)( 96*c2c66affSColin Finck IN PVOID HwDeviceExtension, 97*c2c66affSColin Finck IN ULONG AgpRate); 98*c2c66affSColin Finck 99*c2c66affSColin Finck typedef struct _VIDEO_PORT_AGP_SERVICES { 100*c2c66affSColin Finck PAGP_RESERVE_PHYSICAL AgpReservePhysical; 101*c2c66affSColin Finck PAGP_RELEASE_PHYSICAL AgpReleasePhysical; 102*c2c66affSColin Finck PAGP_COMMIT_PHYSICAL AgpCommitPhysical; 103*c2c66affSColin Finck PAGP_FREE_PHYSICAL AgpFreePhysical; 104*c2c66affSColin Finck PAGP_RESERVE_VIRTUAL AgpReserveVirtual; 105*c2c66affSColin Finck PAGP_RELEASE_VIRTUAL AgpReleaseVirtual; 106*c2c66affSColin Finck PAGP_COMMIT_VIRTUAL AgpCommitVirtual; 107*c2c66affSColin Finck PAGP_FREE_VIRTUAL AgpFreeVirtual; 108*c2c66affSColin Finck ULONGLONG AllocationLimit; 109*c2c66affSColin Finck } VIDEO_PORT_AGP_SERVICES, *PVIDEO_PORT_AGP_SERVICES; 110*c2c66affSColin Finck 111*c2c66affSColin Finck BOOLEAN 112*c2c66affSColin Finck NTAPI 113*c2c66affSColin Finck VideoPortGetAgpServices( 114*c2c66affSColin Finck IN PVOID HwDeviceExtension, 115*c2c66affSColin Finck IN PVIDEO_PORT_AGP_SERVICES AgpServices); 116*c2c66affSColin Finck 117*c2c66affSColin Finck #ifdef __cplusplus 118*c2c66affSColin Finck } 119*c2c66affSColin Finck #endif 120