xref: /reactos/win32ss/drivers/miniport/vga/vgamp.h (revision c2c66aff)
1*c2c66affSColin Finck /*
2*c2c66affSColin Finck  * ReactOS VGA miniport video driver
3*c2c66affSColin Finck  *
4*c2c66affSColin Finck  * Copyright (C) 2004 Filip Navara, Herve Poussineau
5*c2c66affSColin Finck  *
6*c2c66affSColin Finck  * This program is free software; you can redistribute it and/or
7*c2c66affSColin Finck  * modify it under the terms of the GNU General Public License
8*c2c66affSColin Finck  * as published by the Free Software Foundation; either version 2
9*c2c66affSColin Finck  * of the License, or (at your option) any later version.
10*c2c66affSColin Finck  *
11*c2c66affSColin Finck  * This program is distributed in the hope that it will be useful,
12*c2c66affSColin Finck  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*c2c66affSColin Finck  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*c2c66affSColin Finck  * GNU General Public License for more details.
15*c2c66affSColin Finck  *
16*c2c66affSColin Finck  * You should have received a copy of the GNU General Public License along
17*c2c66affSColin Finck  * with this program; if not, write to the Free Software Foundation, Inc.,
18*c2c66affSColin Finck  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*c2c66affSColin Finck  */
20*c2c66affSColin Finck 
21*c2c66affSColin Finck #ifndef VGAMP_H
22*c2c66affSColin Finck #define VGAMP_H
23*c2c66affSColin Finck 
24*c2c66affSColin Finck /* INCLUDES *******************************************************************/
25*c2c66affSColin Finck 
26*c2c66affSColin Finck #include <ntdef.h>
27*c2c66affSColin Finck #include <miniport.h>
28*c2c66affSColin Finck #include <video.h>
29*c2c66affSColin Finck 
30*c2c66affSColin Finck #define UNIMPLEMENTED \
31*c2c66affSColin Finck    VideoPortDebugPrint(Error, "WARNING:  %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__FILE__,__LINE__);
32*c2c66affSColin Finck 
33*c2c66affSColin Finck VOID
34*c2c66affSColin Finck InitVGAMode(VOID);
35*c2c66affSColin Finck 
36*c2c66affSColin Finck VP_STATUS NTAPI
37*c2c66affSColin Finck VGAFindAdapter(
38*c2c66affSColin Finck    PVOID DeviceExtension,
39*c2c66affSColin Finck    PVOID Context,
40*c2c66affSColin Finck    PWSTR ArgumentString,
41*c2c66affSColin Finck    PVIDEO_PORT_CONFIG_INFO ConfigInfo,
42*c2c66affSColin Finck    PUCHAR Again);
43*c2c66affSColin Finck 
44*c2c66affSColin Finck BOOLEAN NTAPI
45*c2c66affSColin Finck VGAInitialize(
46*c2c66affSColin Finck    PVOID DeviceExtension);
47*c2c66affSColin Finck 
48*c2c66affSColin Finck BOOLEAN NTAPI
49*c2c66affSColin Finck VGAStartIO(
50*c2c66affSColin Finck    PVOID DeviceExtension,
51*c2c66affSColin Finck    PVIDEO_REQUEST_PACKET RequestPacket);
52*c2c66affSColin Finck 
53*c2c66affSColin Finck /*static BOOLEAN NTAPI
54*c2c66affSColin Finck VGAInterrupt(PVOID DeviceExtension);*/
55*c2c66affSColin Finck 
56*c2c66affSColin Finck BOOLEAN NTAPI
57*c2c66affSColin Finck VGAResetHw(
58*c2c66affSColin Finck    PVOID DeviceExtension,
59*c2c66affSColin Finck    ULONG Columns,
60*c2c66affSColin Finck    ULONG Rows);
61*c2c66affSColin Finck 
62*c2c66affSColin Finck /*static VOID NTAPI
63*c2c66affSColin Finck VGATimer(PVOID DeviceExtension);*/
64*c2c66affSColin Finck 
65*c2c66affSColin Finck /* Mandatory IoControl routines */
66*c2c66affSColin Finck BOOLEAN
67*c2c66affSColin Finck VGAMapVideoMemory(
68*c2c66affSColin Finck    IN PVOID DeviceExtension,
69*c2c66affSColin Finck    IN PVIDEO_MEMORY RequestedAddress,
70*c2c66affSColin Finck    OUT PVIDEO_MEMORY_INFORMATION MapInformation,
71*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
72*c2c66affSColin Finck 
73*c2c66affSColin Finck BOOLEAN
74*c2c66affSColin Finck VGAQueryAvailModes(
75*c2c66affSColin Finck    OUT PVIDEO_MODE_INFORMATION ReturnedModes,
76*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
77*c2c66affSColin Finck 
78*c2c66affSColin Finck BOOLEAN
79*c2c66affSColin Finck VGAQueryCurrentMode(
80*c2c66affSColin Finck    OUT PVIDEO_MODE_INFORMATION CurrentMode,
81*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
82*c2c66affSColin Finck 
83*c2c66affSColin Finck BOOLEAN
84*c2c66affSColin Finck VGAQueryNumAvailModes(
85*c2c66affSColin Finck    OUT PVIDEO_NUM_MODES NumberOfModes,
86*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
87*c2c66affSColin Finck 
88*c2c66affSColin Finck VOID
89*c2c66affSColin Finck VGAResetDevice(OUT PSTATUS_BLOCK StatusBlock);
90*c2c66affSColin Finck 
91*c2c66affSColin Finck BOOLEAN
92*c2c66affSColin Finck VGASetColorRegisters(
93*c2c66affSColin Finck    IN PVIDEO_CLUT ColorLookUpTable,
94*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
95*c2c66affSColin Finck 
96*c2c66affSColin Finck BOOLEAN
97*c2c66affSColin Finck VGASetPaletteRegisters(
98*c2c66affSColin Finck    IN PUSHORT PaletteRegisters,
99*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
100*c2c66affSColin Finck 
101*c2c66affSColin Finck BOOLEAN
102*c2c66affSColin Finck VGASetCurrentMode(
103*c2c66affSColin Finck    IN PVIDEO_MODE RequestedMode,
104*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
105*c2c66affSColin Finck 
106*c2c66affSColin Finck BOOLEAN
107*c2c66affSColin Finck VGAShareVideoMemory(
108*c2c66affSColin Finck    IN PVIDEO_SHARE_MEMORY RequestedMemory,
109*c2c66affSColin Finck    OUT PVIDEO_MEMORY_INFORMATION ReturnedMemory,
110*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
111*c2c66affSColin Finck 
112*c2c66affSColin Finck BOOLEAN
113*c2c66affSColin Finck VGAUnmapVideoMemory(
114*c2c66affSColin Finck    IN PVOID DeviceExtension,
115*c2c66affSColin Finck    IN PVIDEO_MEMORY MemoryToUnmap,
116*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
117*c2c66affSColin Finck 
118*c2c66affSColin Finck BOOLEAN
119*c2c66affSColin Finck VGAUnshareVideoMemory(
120*c2c66affSColin Finck    IN PVIDEO_MEMORY MemoryToUnshare,
121*c2c66affSColin Finck    OUT PSTATUS_BLOCK StatusBlock);
122*c2c66affSColin Finck 
123*c2c66affSColin Finck /* Optional IoControl routines */
124*c2c66affSColin Finck /* None actually */
125*c2c66affSColin Finck 
126*c2c66affSColin Finck #endif /* VGAMP_H */
127