OSDN Git Service

Prepare environment for Earnie's tools.
[mingw/mingw-org-wsl.git] / w32api / include / ddk / videoagp.h
1 /*
2  * videoagp.h
3  *
4  * Video miniport AGP interface
5  *
6  * This file is part of the w32api package.
7  *
8  * Contributors:
9  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10  *
11  * THIS SOFTWARE IS NOT COPYRIGHTED
12  *
13  * This source code is offered for use in the public domain. You may
14  * use, modify or distribute it freely.
15  *
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.
20  *
21  */
22
23 #ifndef __VIDEOAGP_H
24 #define __VIDEOAGP_H
25
26 #if __GNUC__ >=3
27 #pragma GCC system_header
28 #endif
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 #include "ntddk.h"
35 #include "video.h"
36
37
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
42
43 typedef enum _VIDEO_PORT_CACHE_TYPE {
44         VpNonCached = 0,
45         VpWriteCombined,
46         VpCached
47 } VIDEO_PORT_CACHE_TYPE;
48
49 typedef BOOLEAN DDKAPI
50 (*PAGP_COMMIT_PHYSICAL)(
51   /*IN*/ PVOID  HwDeviceExtension,
52   /*IN*/ PVOID  PhysicalReserveContext,
53   /*IN*/ ULONG  Pages,
54   /*IN*/ ULONG  Offset);
55
56 typedef PVOID DDKAPI
57 (*PAGP_COMMIT_VIRTUAL)(
58   /*IN*/  PVOID  HwDeviceExtension,
59   /*IN*/  PVOID  VirtualReserveContext,
60   /*IN*/  ULONG  Pages,
61   /*IN*/  ULONG  Offset);
62
63 typedef VOID DDKAPI
64 (*PAGP_FREE_PHYSICAL)(
65   /*IN*/  PVOID  HwDeviceExtension,
66   /*IN*/  PVOID  PhysicalReserveContext,
67   /*IN*/  ULONG  Pages,
68   /*IN*/  ULONG  Offset);
69
70 typedef VOID DDKAPI
71 (*PAGP_FREE_VIRTUAL)(
72   /*IN*/ PVOID  HwDeviceExtension,
73   /*IN*/ PVOID  VirtualReserveContext,
74   /*IN*/ ULONG  Pages,
75   /*IN*/ ULONG  Offset);
76
77 typedef VOID DDKAPI
78 (*PAGP_RELEASE_PHYSICAL)(
79   /*IN*/ PVOID  HwDeviceExtension,
80   /*IN*/ PVOID  PhysicalReserveContext);
81
82 typedef VOID DDKAPI
83 (*PAGP_RELEASE_VIRTUAL)(
84   /*IN*/  PVOID  HwDeviceExtension,
85   /*IN*/  PVOID  VirtualReserveContext);
86
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);
93
94 typedef PVOID DDKAPI
95 (*PAGP_RESERVE_VIRTUAL)(
96   /*IN*/ PVOID  HwDeviceExtension,
97   /*IN*/ HANDLE  ProcessHandle,
98   /*IN*/ PVOID  PhysicalReserveContext,
99   /*OUT*/ PVOID  *VirtualReserveContext);
100
101 typedef BOOLEAN DDKAPI
102 (*PAGP_SET_RATE)(
103   /*IN*/ PVOID  HwDeviceExtension,
104   /*IN*/ ULONG  AgpRate);
105
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;
117
118 VPAPI
119 BOOLEAN
120 DDKAPI
121 VideoPortGetAgpServices(
122   /*IN*/ PVOID  HwDeviceExtension,
123   /*IN*/ PVIDEO_PORT_AGP_SERVICES  AgpServices);
124
125 #ifdef __cplusplus
126 }
127 #endif
128
129 #endif /* __VIDEOAGP_H */