https://git.reactos.org/?p=reactos.git;a=commitdiff;h=816149e0c33bd6e07640d…
commit 816149e0c33bd6e07640df808e6cd8321861e980
Author: Stanislav Motylkov <x86corez(a)gmail.com>
AuthorDate: Sun Sep 1 22:30:09 2019 +0300
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Sep 1 23:01:57 2019 +0200
[XBOXVMP] Code formatting only
---
win32ss/drivers/miniport/xboxvmp/xboxvmp.c | 815 ++++++++++++++++-------------
win32ss/drivers/miniport/xboxvmp/xboxvmp.h | 162 +++---
2 files changed, 524 insertions(+), 453 deletions(-)
diff --git a/win32ss/drivers/miniport/xboxvmp/xboxvmp.c
b/win32ss/drivers/miniport/xboxvmp/xboxvmp.c
index 6fabde00fd0..b9d3acb47d7 100644
--- a/win32ss/drivers/miniport/xboxvmp/xboxvmp.c
+++ b/win32ss/drivers/miniport/xboxvmp/xboxvmp.c
@@ -1,23 +1,10 @@
/*
- * ReactOS Xbox miniport video driver
- * Copyright (C) 2004 G� van Geldorp
- *
- * Based on VBE miniport video driver
- * Copyright (C) 2004 Filip Navara
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * PROJECT: ReactOS Xbox miniport video driver
+ * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE: Simple framebuffer driver for NVIDIA NV2A XGPU
+ * COPYRIGHT: Copyright 2004 Gé van Geldorp
+ * Copyright 2004 Filip Navara
+ * Copyright 2019 Stanislav Motylkov (x86corez(a)gmail.com)
*
* TODO:
* - Check input parameters everywhere.
@@ -35,23 +22,26 @@
/* PUBLIC AND PRIVATE FUNCTIONS ***********************************************/
-ULONG NTAPI
-DriverEntry(IN PVOID Context1, IN PVOID Context2)
+ULONG
+NTAPI
+DriverEntry(
+ IN PVOID Context1,
+ IN PVOID Context2)
{
- VIDEO_HW_INITIALIZATION_DATA InitData;
-
- VideoPortZeroMemory(&InitData, sizeof(InitData));
- InitData.AdapterInterfaceType = PCIBus;
- InitData.HwInitDataSize = sizeof(VIDEO_HW_INITIALIZATION_DATA);
- InitData.HwFindAdapter = XboxVmpFindAdapter;
- InitData.HwInitialize = XboxVmpInitialize;
- InitData.HwStartIO = XboxVmpStartIO;
- InitData.HwResetHw = XboxVmpResetHw;
- InitData.HwGetPowerState = XboxVmpGetPowerState;
- InitData.HwSetPowerState = XboxVmpSetPowerState;
- InitData.HwDeviceExtensionSize = sizeof(XBOXVMP_DEVICE_EXTENSION);
-
- return VideoPortInitialize(Context1, Context2, &InitData, NULL);
+ VIDEO_HW_INITIALIZATION_DATA InitData;
+
+ VideoPortZeroMemory(&InitData, sizeof(InitData));
+ InitData.AdapterInterfaceType = PCIBus;
+ InitData.HwInitDataSize = sizeof(VIDEO_HW_INITIALIZATION_DATA);
+ InitData.HwFindAdapter = XboxVmpFindAdapter;
+ InitData.HwInitialize = XboxVmpInitialize;
+ InitData.HwStartIO = XboxVmpStartIO;
+ InitData.HwResetHw = XboxVmpResetHw;
+ InitData.HwGetPowerState = XboxVmpGetPowerState;
+ InitData.HwSetPowerState = XboxVmpSetPowerState;
+ InitData.HwDeviceExtensionSize = sizeof(XBOXVMP_DEVICE_EXTENSION);
+
+ return VideoPortInitialize(Context1, Context2, &InitData, NULL);
}
/*
@@ -60,34 +50,36 @@ DriverEntry(IN PVOID Context1, IN PVOID Context2)
* Detects the Xbox Nvidia display adapter.
*/
-VP_STATUS NTAPI
+VP_STATUS
+NTAPI
XboxVmpFindAdapter(
- IN PVOID HwDeviceExtension,
- IN PVOID HwContext,
- IN PWSTR ArgumentString,
- IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
- OUT PUCHAR Again)
+ IN PVOID HwDeviceExtension,
+ IN PVOID HwContext,
+ IN PWSTR ArgumentString,
+ IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
+ OUT PUCHAR Again)
{
- PXBOXVMP_DEVICE_EXTENSION XboxVmpDeviceExtension;
- VIDEO_ACCESS_RANGE AccessRanges[3];
- VP_STATUS Status;
- USHORT VendorId = 0x10DE; /* NVIDIA Corporation */
- USHORT DeviceId = 0x02A0; /* NV2A XGPU */
-
- VideoPortDebugPrint(Trace, "XboxVmpFindAdapter\n");
-
- XboxVmpDeviceExtension = (PXBOXVMP_DEVICE_EXTENSION) HwDeviceExtension;
- Status = VideoPortGetAccessRanges(HwDeviceExtension, 0, NULL, 3, AccessRanges,
- &VendorId, &DeviceId, NULL);
-
- if (Status == NO_ERROR)
- {
- XboxVmpDeviceExtension->PhysControlStart = AccessRanges[0].RangeStart;
- XboxVmpDeviceExtension->ControlLength = AccessRanges[0].RangeLength;
- XboxVmpDeviceExtension->PhysFrameBufferStart = AccessRanges[1].RangeStart;
- }
-
- return Status;
+ PXBOXVMP_DEVICE_EXTENSION XboxVmpDeviceExtension;
+ VIDEO_ACCESS_RANGE AccessRanges[3];
+ VP_STATUS Status;
+ USHORT VendorId = 0x10DE; /* NVIDIA Corporation */
+ USHORT DeviceId = 0x02A0; /* NV2A XGPU */
+
+ VideoPortDebugPrint(Trace, "XboxVmpFindAdapter\n");
+
+ XboxVmpDeviceExtension = (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension;
+
+ Status = VideoPortGetAccessRanges(HwDeviceExtension, 0, NULL, 3, AccessRanges,
+ &VendorId, &DeviceId, NULL);
+
+ if (Status == NO_ERROR)
+ {
+ XboxVmpDeviceExtension->PhysControlStart = AccessRanges[0].RangeStart;
+ XboxVmpDeviceExtension->ControlLength = AccessRanges[0].RangeLength;
+ XboxVmpDeviceExtension->PhysFrameBufferStart = AccessRanges[1].RangeStart;
+ }
+
+ return Status;
}
/*
@@ -97,33 +89,38 @@ XboxVmpFindAdapter(
* up control of the video hardware to the video port driver.
*/
-BOOLEAN NTAPI
-XboxVmpInitialize(PVOID HwDeviceExtension)
+BOOLEAN
+NTAPI
+XboxVmpInitialize(
+ PVOID HwDeviceExtension)
{
- PXBOXVMP_DEVICE_EXTENSION XboxVmpDeviceExtension;
- ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
- ULONG Length;
+ PXBOXVMP_DEVICE_EXTENSION XboxVmpDeviceExtension;
+ ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
+ ULONG Length;
- VideoPortDebugPrint(Trace, "XboxVmpInitialize\n");
+ VideoPortDebugPrint(Trace, "XboxVmpInitialize\n");
- XboxVmpDeviceExtension = (PXBOXVMP_DEVICE_EXTENSION) HwDeviceExtension;
+ XboxVmpDeviceExtension = (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension;
- Length = XboxVmpDeviceExtension->ControlLength;
- XboxVmpDeviceExtension->VirtControlStart = NULL;
- if (NO_ERROR != VideoPortMapMemory(HwDeviceExtension,
- XboxVmpDeviceExtension->PhysControlStart,
- &Length, &inIoSpace,
- &XboxVmpDeviceExtension->VirtControlStart))
+ Length = XboxVmpDeviceExtension->ControlLength;
+ XboxVmpDeviceExtension->VirtControlStart = NULL;
+
+ if (VideoPortMapMemory(HwDeviceExtension,
+ XboxVmpDeviceExtension->PhysControlStart,
+ &Length,
+ &inIoSpace,
+ &XboxVmpDeviceExtension->VirtControlStart) !=
NO_ERROR)
{
- VideoPortDebugPrint(Error, "Failed to map control memory\n");
- return FALSE;
+ VideoPortDebugPrint(Error, "Failed to map control memory\n");
+ return FALSE;
}
- VideoPortDebugPrint(Info, "Mapped 0x%x bytes of control mem at 0x%x to virt addr
0x%x\n",
- XboxVmpDeviceExtension->ControlLength,
- XboxVmpDeviceExtension->PhysControlStart.u.LowPart,
- XboxVmpDeviceExtension->VirtControlStart);
- return TRUE;
+ VideoPortDebugPrint(Info, "Mapped 0x%x bytes of control mem at 0x%x to virt addr
0x%x\n",
+ XboxVmpDeviceExtension->ControlLength,
+ XboxVmpDeviceExtension->PhysControlStart.u.LowPart,
+ XboxVmpDeviceExtension->VirtControlStart);
+
+ return TRUE;
}
/*
@@ -132,116 +129,147 @@ XboxVmpInitialize(PVOID HwDeviceExtension)
* Processes the specified Video Request Packet.
*/
-BOOLEAN NTAPI
+BOOLEAN
+NTAPI
XboxVmpStartIO(
- PVOID HwDeviceExtension,
- PVIDEO_REQUEST_PACKET RequestPacket)
+ PVOID HwDeviceExtension,
+ PVIDEO_REQUEST_PACKET RequestPacket)
{
- BOOLEAN Result;
+ BOOLEAN Result;
- RequestPacket->StatusBlock->Status = ERROR_INVALID_PARAMETER;
+ RequestPacket->StatusBlock->Status = ERROR_INVALID_PARAMETER;
- switch (RequestPacket->IoControlCode)
+ switch (RequestPacket->IoControlCode)
{
- case IOCTL_VIDEO_SET_CURRENT_MODE:
- VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_SET_CURRENT_MODE\n");
- if (RequestPacket->InputBufferLength < sizeof(VIDEO_MODE))
- {
- RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
- return TRUE;
- }
- Result = XboxVmpSetCurrentMode(
- (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
- (PVIDEO_MODE)RequestPacket->InputBuffer,
- RequestPacket->StatusBlock);
- break;
-
- case IOCTL_VIDEO_RESET_DEVICE:
- VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_RESET_DEVICE\n");
- Result = XboxVmpResetDevice(
- (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
- RequestPacket->StatusBlock);
- break;
-
- case IOCTL_VIDEO_MAP_VIDEO_MEMORY:
- VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_MAP_VIDEO_MEMORY\n");
- if (RequestPacket->OutputBufferLength < sizeof(VIDEO_MEMORY_INFORMATION)
||
- RequestPacket->InputBufferLength < sizeof(VIDEO_MEMORY))
- {
- RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
- return TRUE;
- }
- Result = XboxVmpMapVideoMemory(
- (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
- (PVIDEO_MEMORY)RequestPacket->InputBuffer,
- (PVIDEO_MEMORY_INFORMATION)RequestPacket->OutputBuffer,
- RequestPacket->StatusBlock);
- break;
-
- case IOCTL_VIDEO_UNMAP_VIDEO_MEMORY:
- VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_UNMAP_VIDEO_MEMORY\n");
- if (RequestPacket->InputBufferLength < sizeof(VIDEO_MEMORY))
- {
- RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
- return TRUE;
- }
- Result = XboxVmpUnmapVideoMemory(
- (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
- (PVIDEO_MEMORY)RequestPacket->InputBuffer,
- RequestPacket->StatusBlock);
- break;
-
- case IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES:
- VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES\n");
- if (RequestPacket->OutputBufferLength < sizeof(VIDEO_NUM_MODES))
- {
- RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
- return TRUE;
- }
- Result = XboxVmpQueryNumAvailModes(
- (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
- (PVIDEO_NUM_MODES)RequestPacket->OutputBuffer,
- RequestPacket->StatusBlock);
- break;
-
- case IOCTL_VIDEO_QUERY_AVAIL_MODES:
- VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_QUERY_AVAIL_MODES\n");
- if (RequestPacket->OutputBufferLength < sizeof(VIDEO_MODE_INFORMATION))
- {
- RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
- return TRUE;
- }
- Result = XboxVmpQueryAvailModes(
- (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
- (PVIDEO_MODE_INFORMATION)RequestPacket->OutputBuffer,
- RequestPacket->StatusBlock);
- break;
-
- case IOCTL_VIDEO_QUERY_CURRENT_MODE:
- VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_QUERY_CURRENT_MODE\n");
- if (RequestPacket->OutputBufferLength < sizeof(VIDEO_MODE_INFORMATION))
- {
- RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
- return TRUE;
- }
- Result = XboxVmpQueryCurrentMode(
- (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
- (PVIDEO_MODE_INFORMATION)RequestPacket->OutputBuffer,
- RequestPacket->StatusBlock);
- break;
-
- default:
- VideoPortDebugPrint(Warn, "XboxVmpStartIO 0x%x not implemented\n");
- RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION;
- return FALSE;
+ case IOCTL_VIDEO_SET_CURRENT_MODE:
+ {
+ VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_SET_CURRENT_MODE\n");
+
+ if (RequestPacket->InputBufferLength < sizeof(VIDEO_MODE))
+ {
+ RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
+ return TRUE;
+ }
+
+ Result = XboxVmpSetCurrentMode(
+ (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
+ (PVIDEO_MODE)RequestPacket->InputBuffer,
+ RequestPacket->StatusBlock);
+ break;
+ }
+
+ case IOCTL_VIDEO_RESET_DEVICE:
+ {
+ VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_RESET_DEVICE\n");
+
+ Result = XboxVmpResetDevice(
+ (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
+ RequestPacket->StatusBlock);
+ break;
+ }
+
+ case IOCTL_VIDEO_MAP_VIDEO_MEMORY:
+ {
+ VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_MAP_VIDEO_MEMORY\n");
+
+ if (RequestPacket->OutputBufferLength <
sizeof(VIDEO_MEMORY_INFORMATION) ||
+ RequestPacket->InputBufferLength < sizeof(VIDEO_MEMORY))
+ {
+ RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
+ return TRUE;
+ }
+
+ Result = XboxVmpMapVideoMemory(
+ (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
+ (PVIDEO_MEMORY)RequestPacket->InputBuffer,
+ (PVIDEO_MEMORY_INFORMATION)RequestPacket->OutputBuffer,
+ RequestPacket->StatusBlock);
+ break;
+ }
+
+ case IOCTL_VIDEO_UNMAP_VIDEO_MEMORY:
+ {
+ VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_UNMAP_VIDEO_MEMORY\n");
+
+ if (RequestPacket->InputBufferLength < sizeof(VIDEO_MEMORY))
+ {
+ RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
+ return TRUE;
+ }
+
+ Result = XboxVmpUnmapVideoMemory(
+ (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
+ (PVIDEO_MEMORY)RequestPacket->InputBuffer,
+ RequestPacket->StatusBlock);
+ break;
+ }
+
+ case IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES:
+ {
+ VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES\n");
+
+ if (RequestPacket->OutputBufferLength < sizeof(VIDEO_NUM_MODES))
+ {
+ RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
+ return TRUE;
+ }
+
+ Result = XboxVmpQueryNumAvailModes(
+ (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
+ (PVIDEO_NUM_MODES)RequestPacket->OutputBuffer,
+ RequestPacket->StatusBlock);
+ break;
+ }
+
+ case IOCTL_VIDEO_QUERY_AVAIL_MODES:
+ {
+ VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_QUERY_AVAIL_MODES\n");
+
+ if (RequestPacket->OutputBufferLength <
sizeof(VIDEO_MODE_INFORMATION))
+ {
+ RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
+ return TRUE;
+ }
+
+ Result = XboxVmpQueryAvailModes(
+ (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
+ (PVIDEO_MODE_INFORMATION)RequestPacket->OutputBuffer,
+ RequestPacket->StatusBlock);
+ break;
+ }
+
+ case IOCTL_VIDEO_QUERY_CURRENT_MODE:
+ {
+ VideoPortDebugPrint(Trace, "XboxVmpStartIO
IOCTL_VIDEO_QUERY_CURRENT_MODE\n");
+
+ if (RequestPacket->OutputBufferLength <
sizeof(VIDEO_MODE_INFORMATION))
+ {
+ RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER;
+ return TRUE;
+ }
+
+ Result = XboxVmpQueryCurrentMode(
+ (PXBOXVMP_DEVICE_EXTENSION)HwDeviceExtension,
+ (PVIDEO_MODE_INFORMATION)RequestPacket->OutputBuffer,
+ RequestPacket->StatusBlock);
+ break;
+ }
+
+ default:
+ {
+ VideoPortDebugPrint(Warn, "XboxVmpStartIO 0x%x not
implemented\n");
+
+ RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION;
+ return FALSE;
+ }
}
- if (Result)
+ if (Result)
{
- RequestPacket->StatusBlock->Status = NO_ERROR;
+ RequestPacket->StatusBlock->Status = NO_ERROR;
}
- return TRUE;
+ return TRUE;
}
/*
@@ -250,20 +278,21 @@ XboxVmpStartIO(
* This function is called to reset the hardware to a known state.
*/
-BOOLEAN NTAPI
+BOOLEAN
+NTAPI
XboxVmpResetHw(
- PVOID DeviceExtension,
- ULONG Columns,
- ULONG Rows)
+ PVOID DeviceExtension,
+ ULONG Columns,
+ ULONG Rows)
{
- VideoPortDebugPrint(Trace, "XboxVmpResetHw\n");
+ VideoPortDebugPrint(Trace, "XboxVmpResetHw\n");
- if (! XboxVmpResetDevice((PXBOXVMP_DEVICE_EXTENSION) DeviceExtension, NULL))
+ if (!XboxVmpResetDevice((PXBOXVMP_DEVICE_EXTENSION)DeviceExtension, NULL))
{
- return FALSE;
+ return FALSE;
}
- return TRUE;
+ return TRUE;
}
/*
@@ -272,15 +301,16 @@ XboxVmpResetHw(
* Queries whether the device can support the requested power state.
*/
-VP_STATUS NTAPI
+VP_STATUS
+NTAPI
XboxVmpGetPowerState(
- PVOID HwDeviceExtension,
- ULONG HwId,
- PVIDEO_POWER_MANAGEMENT VideoPowerControl)
+ PVOID HwDeviceExtension,
+ ULONG HwId,
+ PVIDEO_POWER_MANAGEMENT VideoPowerControl)
{
- VideoPortDebugPrint(Error, "XboxVmpGetPowerState is not supported\n");
+ VideoPortDebugPrint(Error, "XboxVmpGetPowerState is not supported\n");
- return ERROR_INVALID_FUNCTION;
+ return ERROR_INVALID_FUNCTION;
}
/*
@@ -289,15 +319,16 @@ XboxVmpGetPowerState(
* Sets the power state of the specified device
*/
-VP_STATUS NTAPI
+VP_STATUS
+NTAPI
XboxVmpSetPowerState(
- PVOID HwDeviceExtension,
- ULONG HwId,
- PVIDEO_POWER_MANAGEMENT VideoPowerControl)
+ PVOID HwDeviceExtension,
+ ULONG HwId,
+ PVIDEO_POWER_MANAGEMENT VideoPowerControl)
{
- VideoPortDebugPrint(Error, "XboxVmpSetPowerState not supported\n");
+ VideoPortDebugPrint(Error, "XboxVmpSetPowerState not supported\n");
- return ERROR_INVALID_FUNCTION;
+ return ERROR_INVALID_FUNCTION;
}
/*
@@ -306,20 +337,22 @@ XboxVmpSetPowerState(
* Sets the adapter to the specified operating mode.
*/
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpSetCurrentMode(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MODE RequestedMode,
- PSTATUS_BLOCK StatusBlock)
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MODE RequestedMode,
+ PSTATUS_BLOCK StatusBlock)
{
- if (0 != RequestedMode->RequestedMode)
+ if (RequestedMode->RequestedMode != 0)
{
- return FALSE;
+ return FALSE;
}
- /* Nothing to do, really. We only support a single mode and we're already
- in that mode */
- return TRUE;
+ /* Nothing to do, really. We only support a single mode and we're already
+ * in that mode
+ */
+ return TRUE;
}
/*
@@ -329,14 +362,15 @@ XboxVmpSetCurrentMode(
* at system boot.
*/
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpResetDevice(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PSTATUS_BLOCK StatusBlock)
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PSTATUS_BLOCK StatusBlock)
{
- /* There is nothing to be done here */
+ /* There is nothing to be done here */
- return TRUE;
+ return TRUE;
}
/*
@@ -346,52 +380,57 @@ XboxVmpResetDevice(
* space of the requestor.
*/
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpMapVideoMemory(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MEMORY RequestedAddress,
- PVIDEO_MEMORY_INFORMATION MapInformation,
- PSTATUS_BLOCK StatusBlock)
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MEMORY RequestedAddress,
+ PVIDEO_MEMORY_INFORMATION MapInformation,
+ PSTATUS_BLOCK StatusBlock)
{
- PHYSICAL_ADDRESS FrameBuffer;
- ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
- SYSTEM_BASIC_INFORMATION BasicInfo;
- ULONG Length;
-
- /* FIXME: this should probably be done differently, without native API */
- StatusBlock->Information = sizeof(VIDEO_MEMORY_INFORMATION);
-
- FrameBuffer.u.HighPart = 0;
- if (ZwQuerySystemInformation(SystemBasicInformation,
- (PVOID) &BasicInfo,
- sizeof(SYSTEM_BASIC_INFORMATION),
- &Length) == NO_ERROR)
+ PHYSICAL_ADDRESS FrameBuffer;
+ ULONG inIoSpace = VIDEO_MEMORY_SPACE_MEMORY;
+ SYSTEM_BASIC_INFORMATION BasicInfo;
+ ULONG Length;
+
+ /* FIXME: this should probably be done differently, without native API */
+ StatusBlock->Information = sizeof(VIDEO_MEMORY_INFORMATION);
+
+ FrameBuffer.u.HighPart = 0;
+ if (ZwQuerySystemInformation(SystemBasicInformation,
+ (PVOID)&BasicInfo,
+ sizeof(SYSTEM_BASIC_INFORMATION),
+ &Length) == NO_ERROR)
{
- FrameBuffer.u.LowPart = BasicInfo.HighestPhysicalPageNumber * PAGE_SIZE;
+ FrameBuffer.u.LowPart = BasicInfo.HighestPhysicalPageNumber * PAGE_SIZE;
}
- else
+ else
{
- VideoPortDebugPrint(Error, "ZwQueryBasicInformation failed, assuming 64MB
total memory\n");
- FrameBuffer.u.LowPart = 60 * 1024 * 1024;
+ VideoPortDebugPrint(Error, "ZwQueryBasicInformation failed, assuming 64MB
total memory\n");
+ FrameBuffer.u.LowPart = 60 * 1024 * 1024;
}
- FrameBuffer.QuadPart += DeviceExtension->PhysFrameBufferStart.QuadPart;
- MapInformation->VideoRamBase = RequestedAddress->RequestedVirtualAddress;
- MapInformation->VideoRamLength = 4 * 1024 * 1024;
- VideoPortMapMemory(DeviceExtension, FrameBuffer,
- &MapInformation->VideoRamLength, &inIoSpace,
- &MapInformation->VideoRamBase);
+ FrameBuffer.QuadPart += DeviceExtension->PhysFrameBufferStart.QuadPart;
+ MapInformation->VideoRamBase = RequestedAddress->RequestedVirtualAddress;
+ MapInformation->VideoRamLength = 4 * 1024 * 1024;
+
+ VideoPortMapMemory(
+ DeviceExtension,
+ FrameBuffer,
+ &MapInformation->VideoRamLength,
+ &inIoSpace,
+ &MapInformation->VideoRamBase);
- MapInformation->FrameBufferBase = MapInformation->VideoRamBase;
- MapInformation->FrameBufferLength = MapInformation->VideoRamLength;
+ MapInformation->FrameBufferBase = MapInformation->VideoRamBase;
+ MapInformation->FrameBufferLength = MapInformation->VideoRamLength;
- /* Tell the nVidia controller about the framebuffer */
- *((PULONG)((char *) DeviceExtension->VirtControlStart +
CONTROL_FRAMEBUFFER_ADDRESS_OFFSET)) = FrameBuffer.u.LowPart;
+ /* Tell the nVidia controller about the framebuffer */
+ *((PULONG)((char *)DeviceExtension->VirtControlStart +
CONTROL_FRAMEBUFFER_ADDRESS_OFFSET)) = FrameBuffer.u.LowPart;
- VideoPortDebugPrint(Info, "Mapped 0x%x bytes of phys mem at 0x%lx to virt addr
0x%p\n",
- MapInformation->VideoRamLength, FrameBuffer.u.LowPart,
MapInformation->VideoRamBase);
+ VideoPortDebugPrint(Info, "Mapped 0x%x bytes of phys mem at 0x%lx to virt addr
0x%p\n",
+ MapInformation->VideoRamLength, FrameBuffer.u.LowPart,
MapInformation->VideoRamBase);
- return TRUE;
+ return TRUE;
}
/*
@@ -401,16 +440,19 @@ XboxVmpMapVideoMemory(
* frame buffer and video RAM.
*/
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpUnmapVideoMemory(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MEMORY VideoMemory,
- PSTATUS_BLOCK StatusBlock)
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MEMORY VideoMemory,
+ PSTATUS_BLOCK StatusBlock)
{
- VideoPortUnmapMemory(DeviceExtension, VideoMemory->RequestedVirtualAddress,
- NULL);
+ VideoPortUnmapMemory(
+ DeviceExtension,
+ VideoMemory->RequestedVirtualAddress,
+ NULL);
- return TRUE;
+ return TRUE;
}
/*
@@ -421,100 +463,123 @@ XboxVmpUnmapVideoMemory(
* buffer for an IOCTL_VIDEO_QUERY_AVAIL_MODES request.
*/
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpQueryNumAvailModes(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_NUM_MODES Modes,
- PSTATUS_BLOCK StatusBlock)
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_NUM_MODES Modes,
+ PSTATUS_BLOCK StatusBlock)
{
- Modes->NumModes = 1;
- Modes->ModeInformationLength = sizeof(VIDEO_MODE_INFORMATION);
- StatusBlock->Information = sizeof(VIDEO_NUM_MODES);
- return TRUE;
+ Modes->NumModes = 1;
+ Modes->ModeInformationLength = sizeof(VIDEO_MODE_INFORMATION);
+ StatusBlock->Information = sizeof(VIDEO_NUM_MODES);
+ return TRUE;
}
-static BOOLEAN
-ReadfromSMBus(UCHAR Address, UCHAR bRegister, UCHAR Size, ULONG *Data_to_smbus)
+static
+BOOLEAN
+ReadfromSMBus(
+ UCHAR Address,
+ UCHAR bRegister,
+ UCHAR Size,
+ ULONG *Data_to_smbus)
{
- int nRetriesToLive=50;
+ int nRetriesToLive = 50;
- while (0 != (VideoPortReadPortUshort((PUSHORT) (I2C_IO_BASE + 0)) & 0x0800))
+ while ((VideoPortReadPortUshort((PUSHORT) (I2C_IO_BASE + 0)) & 0x0800) != 0)
{
- ; /* Franz's spin while bus busy with any master traffic */
+ ; /* Franz's spin while bus busy with any master traffic */
}
- while (0 != nRetriesToLive--)
+ while (nRetriesToLive-- != 0)
{
- UCHAR b;
- int temp;
+ UCHAR b;
+ int temp;
- VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 4), (Address << 1) | 1);
- VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 8), bRegister);
+ VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 4), (Address << 1) | 1);
+ VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 8), bRegister);
- temp = VideoPortReadPortUshort((PUSHORT) (I2C_IO_BASE + 0));
- VideoPortWritePortUshort((PUSHORT) (I2C_IO_BASE + 0), temp); /* clear down all
preexisting errors */
+ temp = VideoPortReadPortUshort((PUSHORT) (I2C_IO_BASE + 0));
+ VideoPortWritePortUshort((PUSHORT) (I2C_IO_BASE + 0), temp); /* clear down all
preexisting errors */
- switch (Size)
+ switch (Size)
{
- case 4:
- VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 2), 0x0d); /* DWORD
modus ? */
- break;
- case 2:
- VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 2), 0x0b); /* WORD modus
*/
- break;
- default:
- VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 2), 0x0a); // BYTE
- break;
+ case 4:
+ {
+ VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 2), 0x0d); /* DWORD modus
? */
+ break;
+ }
+
+ case 2:
+ {
+ VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 2), 0x0b); /* WORD modus
*/
+ break;
+ }
+
+ default:
+ {
+ VideoPortWritePortUchar((PUCHAR) (I2C_IO_BASE + 2), 0x0a); /* BYTE */
+ }
}
- b = 0;
+ b = 0;
- while (0 == (b & 0x36))
+ while ((b & 0x36) == 0)
{
- b = VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 0));
+ b = VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 0));
}
- if (0 != (b & 0x24))
+ if ((b & 0x24) != 0)
{
- /* printf("I2CTransmitByteGetReturn error %x\n", b); */
+ /* printf("I2CTransmitByteGetReturn error %x\n", b); */
}
- if(0 == (b & 0x10))
+ if ((b & 0x10) == 0)
{
- /* printf("I2CTransmitByteGetReturn no complete, retry\n"); */
+ /* printf("I2CTransmitByteGetReturn no complete, retry\n"); */
}
- else
+ else
{
- switch (Size)
+ switch (Size)
{
- case 4:
- VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 6));
- VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
- VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
- VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
- VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
- break;
- case 2:
- *Data_to_smbus = VideoPortReadPortUshort((PUSHORT) (I2C_IO_BASE + 6));
- break;
- default:
- *Data_to_smbus = VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 6));
- break;
+ case 4:
+ {
+ VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 6));
+ VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
+ VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
+ VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
+ VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 9));
+ break;
+ }
+
+ case 2:
+ {
+ *Data_to_smbus = VideoPortReadPortUshort((PUSHORT) (I2C_IO_BASE +
6));
+ break;
+ }
+
+ default:
+ {
+ *Data_to_smbus = VideoPortReadPortUchar((PUCHAR) (I2C_IO_BASE + 6));
+ }
}
-
- return TRUE;
+ return TRUE;
}
}
- return FALSE;
+ return FALSE;
}
-static BOOLEAN
-I2CTransmitByteGetReturn(UCHAR bPicAddressI2cFormat, UCHAR bDataToWrite, ULONG *Return)
+static
+BOOLEAN
+I2CTransmitByteGetReturn(
+ UCHAR bPicAddressI2cFormat,
+ UCHAR bDataToWrite,
+ ULONG *Return)
{
- return ReadfromSMBus(bPicAddressI2cFormat, bDataToWrite, 1, Return);
+ return ReadfromSMBus(bPicAddressI2cFormat, bDataToWrite, 1, Return);
}
/*
@@ -523,13 +588,14 @@ I2CTransmitByteGetReturn(UCHAR bPicAddressI2cFormat, UCHAR
bDataToWrite, ULONG *
* Returns information about each video mode supported by the adapter.
*/
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpQueryAvailModes(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MODE_INFORMATION VideoMode,
- PSTATUS_BLOCK StatusBlock)
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MODE_INFORMATION VideoMode,
+ PSTATUS_BLOCK StatusBlock)
{
- return XboxVmpQueryCurrentMode(DeviceExtension, VideoMode, StatusBlock);
+ return XboxVmpQueryCurrentMode(DeviceExtension, VideoMode, StatusBlock);
}
/*
@@ -538,61 +604,64 @@ XboxVmpQueryAvailModes(
* Returns information about current video mode.
*/
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpQueryCurrentMode(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MODE_INFORMATION VideoMode,
- PSTATUS_BLOCK StatusBlock)
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MODE_INFORMATION VideoMode,
+ PSTATUS_BLOCK StatusBlock)
{
- ULONG AvMode = 0;
-
- VideoMode->Length = sizeof(VIDEO_MODE_INFORMATION);
- VideoMode->ModeIndex = 0;
- if (I2CTransmitByteGetReturn(0x10, 0x04, &AvMode))
- {
- if (1 == AvMode) /* HDTV */
- {
- VideoMode->VisScreenWidth = 720;
- }
- else
- {
- /* FIXME Other possible values of AvMode:
- * 0 - AV_SCART_RGB
- * 2 - AV_VGA_SOG
- * 4 - AV_SVIDEO
- * 6 - AV_COMPOSITE
- * 7 - AV_VGA
- * other AV_COMPOSITE
- */
- VideoMode->VisScreenWidth = 640;
- }
- }
- else
- {
- VideoMode->VisScreenWidth = 640;
- }
- VideoMode->VisScreenHeight = 480;
- VideoMode->ScreenStride = VideoMode->VisScreenWidth * 4;
- VideoMode->NumberOfPlanes = 1;
- VideoMode->BitsPerPlane = 32;
- VideoMode->Frequency = 1;
- VideoMode->XMillimeter = 0; /* FIXME */
- VideoMode->YMillimeter = 0; /* FIXME */
- VideoMode->NumberRedBits = 8;
- VideoMode->NumberGreenBits = 8;
- VideoMode->NumberBlueBits = 8;
- VideoMode->RedMask = 0xff0000;
- VideoMode->GreenMask = 0x00ff00;
- VideoMode->BlueMask = 0x0000ff;
- VideoMode->VideoMemoryBitmapWidth = VideoMode->VisScreenWidth;
- VideoMode->VideoMemoryBitmapHeight = VideoMode->VisScreenHeight;
- VideoMode->AttributeFlags = VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR |
- VIDEO_MODE_NO_OFF_SCREEN;
- VideoMode->DriverSpecificAttributeFlags = 0;
-
- StatusBlock->Information = sizeof(VIDEO_MODE_INFORMATION);
-
- return TRUE;
+ ULONG AvMode = 0;
+
+ VideoMode->Length = sizeof(VIDEO_MODE_INFORMATION);
+ VideoMode->ModeIndex = 0;
+
+ if (I2CTransmitByteGetReturn(0x10, 0x04, &AvMode))
+ {
+ if (AvMode == 1) /* HDTV */
+ {
+ VideoMode->VisScreenWidth = 720;
+ }
+ else
+ {
+ /* FIXME Other possible values of AvMode:
+ * 0 - AV_SCART_RGB
+ * 2 - AV_VGA_SOG
+ * 4 - AV_SVIDEO
+ * 6 - AV_COMPOSITE
+ * 7 - AV_VGA
+ * other AV_COMPOSITE
+ */
+ VideoMode->VisScreenWidth = 640;
+ }
+ }
+ else
+ {
+ VideoMode->VisScreenWidth = 640;
+ }
+
+ VideoMode->VisScreenHeight = 480;
+ VideoMode->ScreenStride = VideoMode->VisScreenWidth * 4;
+ VideoMode->NumberOfPlanes = 1;
+ VideoMode->BitsPerPlane = 32;
+ VideoMode->Frequency = 1;
+ VideoMode->XMillimeter = 0; /* FIXME */
+ VideoMode->YMillimeter = 0; /* FIXME */
+ VideoMode->NumberRedBits = 8;
+ VideoMode->NumberGreenBits = 8;
+ VideoMode->NumberBlueBits = 8;
+ VideoMode->RedMask = 0xFF0000;
+ VideoMode->GreenMask = 0x00FF00;
+ VideoMode->BlueMask = 0x0000FF;
+ VideoMode->VideoMemoryBitmapWidth = VideoMode->VisScreenWidth;
+ VideoMode->VideoMemoryBitmapHeight = VideoMode->VisScreenHeight;
+ VideoMode->AttributeFlags = VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR |
+ VIDEO_MODE_NO_OFF_SCREEN;
+ VideoMode->DriverSpecificAttributeFlags = 0;
+
+ StatusBlock->Information = sizeof(VIDEO_MODE_INFORMATION);
+
+ return TRUE;
}
/* EOF */
diff --git a/win32ss/drivers/miniport/xboxvmp/xboxvmp.h
b/win32ss/drivers/miniport/xboxvmp/xboxvmp.h
index 8afe0d645b4..804617dc706 100644
--- a/win32ss/drivers/miniport/xboxvmp/xboxvmp.h
+++ b/win32ss/drivers/miniport/xboxvmp/xboxvmp.h
@@ -1,23 +1,10 @@
/*
- * ReactOS Xbox miniport video driver
- * Copyright (C) 2004 G� van Geldorp
- *
- * Based on VBE miniport video driver
- * Copyright (C) 2004 Filip Navara
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * PROJECT: ReactOS Xbox miniport video driver
+ * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later)
+ * PURPOSE: Simple framebuffer driver for NVIDIA NV2A XGPU
+ * COPYRIGHT: Copyright 2004 Ge van Geldorp
+ * Copyright 2004 Filip Navara
+ * Copyright 2019 Stanislav Motylkov (x86corez(a)gmail.com)
*/
#pragma once
@@ -59,92 +46,107 @@ ZwQuerySystemInformation(
typedef struct
{
- PHYSICAL_ADDRESS PhysControlStart;
- ULONG ControlLength;
- PVOID VirtControlStart;
- PHYSICAL_ADDRESS PhysFrameBufferStart;
+ PHYSICAL_ADDRESS PhysControlStart;
+ ULONG ControlLength;
+ PVOID VirtControlStart;
+ PHYSICAL_ADDRESS PhysFrameBufferStart;
} XBOXVMP_DEVICE_EXTENSION, *PXBOXVMP_DEVICE_EXTENSION;
-VP_STATUS NTAPI
+VP_STATUS
+NTAPI
XboxVmpFindAdapter(
- IN PVOID HwDeviceExtension,
- IN PVOID HwContext,
- IN PWSTR ArgumentString,
- IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
- OUT PUCHAR Again);
-
-BOOLEAN NTAPI
-XboxVmpInitialize(PVOID HwDeviceExtension);
-
-BOOLEAN NTAPI
+ IN PVOID HwDeviceExtension,
+ IN PVOID HwContext,
+ IN PWSTR ArgumentString,
+ IN OUT PVIDEO_PORT_CONFIG_INFO ConfigInfo,
+ OUT PUCHAR Again);
+
+BOOLEAN
+NTAPI
+XboxVmpInitialize(
+ PVOID HwDeviceExtension);
+
+BOOLEAN
+NTAPI
XboxVmpStartIO(
- PVOID HwDeviceExtension,
- PVIDEO_REQUEST_PACKET RequestPacket);
+ PVOID HwDeviceExtension,
+ PVIDEO_REQUEST_PACKET RequestPacket);
-BOOLEAN NTAPI
+BOOLEAN
+NTAPI
XboxVmpResetHw(
- PVOID DeviceExtension,
- ULONG Columns,
- ULONG Rows);
+ PVOID DeviceExtension,
+ ULONG Columns,
+ ULONG Rows);
-VP_STATUS NTAPI
+VP_STATUS
+NTAPI
XboxVmpGetPowerState(
- PVOID HwDeviceExtension,
- ULONG HwId,
- PVIDEO_POWER_MANAGEMENT VideoPowerControl);
+ PVOID HwDeviceExtension,
+ ULONG HwId,
+ PVIDEO_POWER_MANAGEMENT VideoPowerControl);
-VP_STATUS NTAPI
+VP_STATUS
+NTAPI
XboxVmpSetPowerState(
- PVOID HwDeviceExtension,
- ULONG HwId,
- PVIDEO_POWER_MANAGEMENT VideoPowerControl);
+ PVOID HwDeviceExtension,
+ ULONG HwId,
+ PVIDEO_POWER_MANAGEMENT VideoPowerControl);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpSetCurrentMode(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MODE RequestedMode,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MODE RequestedMode,
+ PSTATUS_BLOCK StatusBlock);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpResetDevice(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PSTATUS_BLOCK StatusBlock);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpMapVideoMemory(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MEMORY RequestedAddress,
- PVIDEO_MEMORY_INFORMATION MapInformation,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MEMORY RequestedAddress,
+ PVIDEO_MEMORY_INFORMATION MapInformation,
+ PSTATUS_BLOCK StatusBlock);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpUnmapVideoMemory(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MEMORY VideoMemory,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MEMORY VideoMemory,
+ PSTATUS_BLOCK StatusBlock);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpQueryNumAvailModes(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_NUM_MODES Modes,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_NUM_MODES Modes,
+ PSTATUS_BLOCK StatusBlock);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpQueryAvailModes(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MODE_INFORMATION ReturnedModes,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MODE_INFORMATION ReturnedModes,
+ PSTATUS_BLOCK StatusBlock);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpQueryCurrentMode(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_MODE_INFORMATION VideoModeInfo,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_MODE_INFORMATION VideoModeInfo,
+ PSTATUS_BLOCK StatusBlock);
-BOOLEAN FASTCALL
+BOOLEAN
+FASTCALL
XboxVmpSetColorRegisters(
- PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
- PVIDEO_CLUT ColorLookUpTable,
- PSTATUS_BLOCK StatusBlock);
+ PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
+ PVIDEO_CLUT ColorLookUpTable,
+ PSTATUS_BLOCK StatusBlock);
/* EOF */