cf09ba85d4de7cee983c22c95ed61328c6cb54ae
[reactos.git] / reactos / drivers / video / miniport / xboxvmp / xboxvmp.h
1 /*
2 * ReactOS Xbox miniport video driver
3 * Copyright (C) 2004 Gé van Geldorp
4 *
5 * Based on VBE miniport video driver
6 * Copyright (C) 2004 Filip Navara
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 */
22
23 #ifndef XBOXVMP_H
24 #define XBOXVMP_H
25
26 /* INCLUDES *******************************************************************/
27
28 #ifdef _MSC_VER
29 #include "dderror.h"
30 #include "devioctl.h"
31 #define PAGE_SIZE 4096
32 #else
33 #include <ntddk.h>
34 #endif
35
36 #include "miniport.h"
37 #include "ntddvdeo.h"
38 #include "video.h"
39
40 /* FIXME: NDK not compatible with miniport drivers */
41 #define SystemBasicInformation 0
42 typedef struct _SYSTEM_BASIC_INFORMATION
43 {
44 ULONG Reserved;
45 ULONG TimerResolution;
46 ULONG PageSize;
47 ULONG NumberOfPhysicalPages;
48 ULONG LowestPhysicalPageNumber;
49 ULONG HighestPhysicalPageNumber;
50 ULONG AllocationGranularity;
51 ULONG MinimumUserModeAddress;
52 ULONG MaximumUserModeAddress;
53 KAFFINITY ActiveProcessorsAffinityMask;
54 CCHAR NumberOfProcessors;
55 } SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
56
57 typedef struct
58 {
59 PHYSICAL_ADDRESS PhysControlStart;
60 ULONG ControlLength;
61 PVOID VirtControlStart;
62 PHYSICAL_ADDRESS PhysFrameBufferStart;
63 } XBOXVMP_DEVICE_EXTENSION, *PXBOXVMP_DEVICE_EXTENSION;
64
65 VP_STATUS STDCALL
66 XboxVmpFindAdapter(
67 IN PVOID HwDeviceExtension,
68 IN PVOID HwContext,
69 IN PWSTR ArgumentString,
70 IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
71 OUT PUCHAR Again);
72
73 BOOLEAN STDCALL
74 XboxVmpInitialize(PVOID HwDeviceExtension);
75
76 BOOLEAN STDCALL
77 XboxVmpStartIO(
78 PVOID HwDeviceExtension,
79 PVIDEO_REQUEST_PACKET RequestPacket);
80
81 BOOLEAN STDCALL
82 XboxVmpResetHw(
83 PVOID DeviceExtension,
84 ULONG Columns,
85 ULONG Rows);
86
87 VP_STATUS STDCALL
88 XboxVmpGetPowerState(
89 PVOID HwDeviceExtension,
90 ULONG HwId,
91 PVIDEO_POWER_MANAGEMENT VideoPowerControl);
92
93 VP_STATUS STDCALL
94 XboxVmpSetPowerState(
95 PVOID HwDeviceExtension,
96 ULONG HwId,
97 PVIDEO_POWER_MANAGEMENT VideoPowerControl);
98
99 BOOLEAN FASTCALL
100 XboxVmpSetCurrentMode(
101 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
102 PVIDEO_MODE RequestedMode,
103 PSTATUS_BLOCK StatusBlock);
104
105 BOOLEAN FASTCALL
106 XboxVmpResetDevice(
107 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
108 PSTATUS_BLOCK StatusBlock);
109
110 BOOLEAN FASTCALL
111 XboxVmpMapVideoMemory(
112 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
113 PVIDEO_MEMORY RequestedAddress,
114 PVIDEO_MEMORY_INFORMATION MapInformation,
115 PSTATUS_BLOCK StatusBlock);
116
117 BOOLEAN FASTCALL
118 XboxVmpUnmapVideoMemory(
119 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
120 PVIDEO_MEMORY VideoMemory,
121 PSTATUS_BLOCK StatusBlock);
122
123 BOOLEAN FASTCALL
124 XboxVmpQueryNumAvailModes(
125 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
126 PVIDEO_NUM_MODES Modes,
127 PSTATUS_BLOCK StatusBlock);
128
129 BOOLEAN FASTCALL
130 XboxVmpQueryAvailModes(
131 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
132 PVIDEO_MODE_INFORMATION ReturnedModes,
133 PSTATUS_BLOCK StatusBlock);
134
135 BOOLEAN FASTCALL
136 XboxVmpQueryCurrentMode(
137 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
138 PVIDEO_MODE_INFORMATION VideoModeInfo,
139 PSTATUS_BLOCK StatusBlock);
140
141 BOOLEAN FASTCALL
142 XboxVmpSetColorRegisters(
143 PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
144 PVIDEO_CLUT ColorLookUpTable,
145 PSTATUS_BLOCK StatusBlock);
146
147 #endif /* XBOXVMP_H */
148
149 /* EOF */