reactos/win32ss/drivers/miniport/xboxvmp/xboxvmp.h

132 lines
2.9 KiB
C
Raw Normal View History

/*
2019-09-01 19:30:09 +00:00
* 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-2020 Stanislav Motylkov (x86corez@gmail.com)
*/
#pragma once
/* INCLUDES *******************************************************************/
/*
* FIXME: specify headers properly in the triangle brackets and rearrange them
* in a way so it would be simpler to add NDK and other headers for debugging.
*/
#include "ntdef.h"
#define PAGE_SIZE 4096
#include "dderror.h"
#include "devioctl.h"
#include "miniport.h"
#include "ioaccess.h"
#include "video.h"
typedef struct
{
2019-09-01 19:30:09 +00:00
PHYSICAL_ADDRESS PhysControlStart;
ULONG ControlLength;
PVOID VirtControlStart;
PHYSICAL_ADDRESS PhysFrameBufferStart;
} XBOXVMP_DEVICE_EXTENSION, *PXBOXVMP_DEVICE_EXTENSION;
2019-09-01 19:30:09 +00:00
VP_STATUS
NTAPI
XboxVmpFindAdapter(
2019-09-01 19:30:09 +00:00
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(
2019-09-01 19:30:09 +00:00
PVOID HwDeviceExtension,
PVIDEO_REQUEST_PACKET RequestPacket);
2019-09-01 19:30:09 +00:00
BOOLEAN
NTAPI
XboxVmpResetHw(
2019-09-01 19:30:09 +00:00
PVOID DeviceExtension,
ULONG Columns,
ULONG Rows);
2019-09-01 19:30:09 +00:00
VP_STATUS
NTAPI
XboxVmpGetPowerState(
2019-09-01 19:30:09 +00:00
PVOID HwDeviceExtension,
ULONG HwId,
PVIDEO_POWER_MANAGEMENT VideoPowerControl);
2019-09-01 19:30:09 +00:00
VP_STATUS
NTAPI
XboxVmpSetPowerState(
2019-09-01 19:30:09 +00:00
PVOID HwDeviceExtension,
ULONG HwId,
PVIDEO_POWER_MANAGEMENT VideoPowerControl);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpSetCurrentMode(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PVIDEO_MODE RequestedMode,
PSTATUS_BLOCK StatusBlock);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpResetDevice(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PSTATUS_BLOCK StatusBlock);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpMapVideoMemory(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PVIDEO_MEMORY RequestedAddress,
PVIDEO_MEMORY_INFORMATION MapInformation,
PSTATUS_BLOCK StatusBlock);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpUnmapVideoMemory(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PVIDEO_MEMORY VideoMemory,
PSTATUS_BLOCK StatusBlock);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpQueryNumAvailModes(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PVIDEO_NUM_MODES Modes,
PSTATUS_BLOCK StatusBlock);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpQueryAvailModes(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PVIDEO_MODE_INFORMATION ReturnedModes,
PSTATUS_BLOCK StatusBlock);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpQueryCurrentMode(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PVIDEO_MODE_INFORMATION VideoModeInfo,
PSTATUS_BLOCK StatusBlock);
2019-09-01 19:30:09 +00:00
BOOLEAN
FASTCALL
XboxVmpSetColorRegisters(
2019-09-01 19:30:09 +00:00
PXBOXVMP_DEVICE_EXTENSION DeviceExtension,
PVIDEO_CLUT ColorLookUpTable,
PSTATUS_BLOCK StatusBlock);
/* EOF */