Initial bulk commit for "Git on MSys"
[msysgit/historical-msysgit.git] / mingw / include / ddk / videoagp.h
blob299def2842c64d29e4637faeb148f49550da6a0d
1 /*
2 * videoagp.h
4 * Video miniport AGP interface
6 * This file is part of the w32api package.
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
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.
23 #ifndef __VIDEOAGP_H
24 #define __VIDEOAGP_H
26 #if __GNUC__ >=3
27 #pragma GCC system_header
28 #endif
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
34 #include "ntddk.h"
35 #include "video.h"
38 #define VIDEO_AGP_RATE_1X 0x00000001
39 #define VIDEO_AGP_RATE_2X 0x00000002
40 #define VIDEO_AGP_RATE_4X 0x00000004
41 #define VIDEO_AGP_RATE_8X 0x00000008
43 typedef enum _VIDEO_PORT_CACHE_TYPE {
44 VpNonCached = 0,
45 VpWriteCombined,
46 VpCached
47 } VIDEO_PORT_CACHE_TYPE;
49 typedef BOOLEAN DDKAPI
50 (*PAGP_COMMIT_PHYSICAL)(
51 /*IN*/ PVOID HwDeviceExtension,
52 /*IN*/ PVOID PhysicalReserveContext,
53 /*IN*/ ULONG Pages,
54 /*IN*/ ULONG Offset);
56 typedef PVOID DDKAPI
57 (*PAGP_COMMIT_VIRTUAL)(
58 /*IN*/ PVOID HwDeviceExtension,
59 /*IN*/ PVOID VirtualReserveContext,
60 /*IN*/ ULONG Pages,
61 /*IN*/ ULONG Offset);
63 typedef VOID DDKAPI
64 (*PAGP_FREE_PHYSICAL)(
65 /*IN*/ PVOID HwDeviceExtension,
66 /*IN*/ PVOID PhysicalReserveContext,
67 /*IN*/ ULONG Pages,
68 /*IN*/ ULONG Offset);
70 typedef VOID DDKAPI
71 (*PAGP_FREE_VIRTUAL)(
72 /*IN*/ PVOID HwDeviceExtension,
73 /*IN*/ PVOID VirtualReserveContext,
74 /*IN*/ ULONG Pages,
75 /*IN*/ ULONG Offset);
77 typedef VOID DDKAPI
78 (*PAGP_RELEASE_PHYSICAL)(
79 /*IN*/ PVOID HwDeviceExtension,
80 /*IN*/ PVOID PhysicalReserveContext);
82 typedef VOID DDKAPI
83 (*PAGP_RELEASE_VIRTUAL)(
84 /*IN*/ PVOID HwDeviceExtension,
85 /*IN*/ PVOID VirtualReserveContext);
87 typedef PHYSICAL_ADDRESS DDKAPI
88 (*PAGP_RESERVE_PHYSICAL)(
89 /*IN*/ PVOID HwDeviceExtension,
90 /*IN*/ ULONG Pages,
91 /*IN*/ VIDEO_PORT_CACHE_TYPE Caching,
92 /*OUT*/ PVOID *PhysicalReserveContext);
94 typedef PVOID DDKAPI
95 (*PAGP_RESERVE_VIRTUAL)(
96 /*IN*/ PVOID HwDeviceExtension,
97 /*IN*/ HANDLE ProcessHandle,
98 /*IN*/ PVOID PhysicalReserveContext,
99 /*OUT*/ PVOID *VirtualReserveContext);
101 typedef BOOLEAN DDKAPI
102 (*PAGP_SET_RATE)(
103 /*IN*/ PVOID HwDeviceExtension,
104 /*IN*/ ULONG AgpRate);
106 typedef struct _VIDEO_PORT_AGP_SERVICES {
107 PAGP_RESERVE_PHYSICAL AgpReservePhysical;
108 PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
109 PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
110 PAGP_FREE_PHYSICAL AgpFreePhysical;
111 PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
112 PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
113 PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
114 PAGP_FREE_VIRTUAL AgpFreeVirtual;
115 ULONGLONG AllocationLimit;
116 } VIDEO_PORT_AGP_SERVICES, *PVIDEO_PORT_AGP_SERVICES;
118 VPAPI
119 BOOLEAN
120 DDKAPI
121 VideoPortGetAgpServices(
122 /*IN*/ PVOID HwDeviceExtension,
123 /*IN*/ PVIDEO_PORT_AGP_SERVICES AgpServices);
125 #ifdef __cplusplus
127 #endif
129 #endif /* __VIDEOAGP_H */