[Spice-devel] [PATCH qxl-wddm-dod v2 06/25] Add type enum to qxl/vga device

Sameeh Jubran sameeh at daynix.com
Mon Sep 5 08:34:03 UTC 2016


This patch adds type enum to the qxl/vga device class.

Fixed misspelling: HwDeviceInterface
Fixed misspelling: GetDxgkInterface

Signed-off-by: Sameeh Jubran <sameeh at daynix.com>
---
 qxldod/QxlDod.cpp | 10 ++++++----
 qxldod/QxlDod.h   | 25 +++++++++++++++++--------
 2 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index dd68693..1c6e477 100755
--- a/qxldod/QxlDod.cpp
+++ b/qxldod/QxlDod.cpp
@@ -2328,7 +2328,7 @@ VOID BltBits (
     }
 }
 
-VgaDevice::VgaDevice(_In_ QxlDod* pQxlDod)
+VgaDevice::VgaDevice(_In_ QxlDod* pQxlDod) : HwDeviceInterface(pQxlDod)
 {
     m_pQxlDod = pQxlDod;
     m_ModeInfo = NULL;
@@ -2336,6 +2336,7 @@ VgaDevice::VgaDevice(_In_ QxlDod* pQxlDod)
     m_ModeNumbers = NULL;
     m_CurrentMode = 0;
     m_Id = 0;
+    m_type = VGA_DEVICE;
 }
 
 VgaDevice::~VgaDevice(void)
@@ -2945,7 +2946,7 @@ NTSTATUS VgaDevice::Escape(_In_ CONST DXGKARG_ESCAPE* pEscap)
     return STATUS_NOT_IMPLEMENTED;
 }
 
-QxlDevice::QxlDevice(_In_ QxlDod* pQxlDod)
+QxlDevice::QxlDevice(_In_ QxlDod* pQxlDod) : HwDeviceInterface(pQxlDod)
 {
     m_pQxlDod = pQxlDod;
     m_ModeInfo = NULL;
@@ -2955,6 +2956,7 @@ QxlDevice::QxlDevice(_In_ QxlDod* pQxlDod)
     m_CustomMode = 0;
     m_FreeOutputs = 0;
     m_Pending = 0;
+    m_type = QXL_DEVICE;
 }
 
 QxlDevice::~QxlDevice(void)
@@ -3181,7 +3183,7 @@ NTSTATUS QxlDevice::SetPowerState(_In_ DEVICE_POWER_STATE DevicePowerState, DXGK
 NTSTATUS QxlDevice::HWInit(PCM_RESOURCE_LIST pResList, DXGK_DISPLAY_INFORMATION* pDispInfo)
 {
     DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
-    PDXGKRNL_INTERFACE pDxgkInterface = m_pQxlDod->GetDxgkInterrface();
+    PDXGKRNL_INTERFACE pDxgkInterface = m_pQxlDod->GetDxgkInterface();
     UINT pci_range = QXL_RAM_RANGE_INDEX;
     for (ULONG i = 0; i < pResList->Count; ++i)
     {
@@ -3358,7 +3360,7 @@ void QxlDevice::QxlClose()
 
 void QxlDevice::UnmapMemory(void)
 {
-    PDXGKRNL_INTERFACE pDxgkInterface = m_pQxlDod->GetDxgkInterrface();
+    PDXGKRNL_INTERFACE pDxgkInterface = m_pQxlDod->GetDxgkInterface();
     if (m_IoMapped && m_IoBase)
     {
         pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, &m_IoBase);
diff --git a/qxldod/QxlDod.h b/qxldod/QxlDod.h
index d3d9202..ab44259 100755
--- a/qxldod/QxlDod.h
+++ b/qxldod/QxlDod.h
@@ -212,9 +212,16 @@ typedef struct _CURRENT_BDD_MODE
 
 class QxlDod;
 
-class HwDeviceIntrface {
-public:
-    virtual ~HwDeviceIntrface() {;}
+typedef enum {
+    QXL_DEVICE,
+    VGA_DEVICE,
+    INVALID_DEVICE,
+}WIN_QXL_DEVICE_TYPE;
+
+class HwDeviceInterface {
+public:
+    HwDeviceInterface(_In_ QxlDod* pQxlDod) {m_type = INVALID_DEVICE;}
+    virtual ~HwDeviceInterface() {;}
     virtual NTSTATUS QueryCurrentMode(PVIDEO_MODE RequestedMode) = 0;
     virtual NTSTATUS SetCurrentMode(ULONG Mode) = 0;
     virtual NTSTATUS GetCurrentMode(ULONG* Mode) = 0;
@@ -258,10 +265,11 @@ protected:
     USHORT m_CurrentMode;
     USHORT m_CustomMode;
     ULONG  m_Id;
+    WIN_QXL_DEVICE_TYPE m_type;
 };
 
 class VgaDevice  :
-    public HwDeviceIntrface
+    public HwDeviceInterface
 {
 public:
     VgaDevice(_In_ QxlDod* pQxlDod);
@@ -434,7 +442,7 @@ typedef struct DpcCbContext {
 #define ALIGN(a, b) (((a) + ((b) - 1)) & ~((b) - 1))
 
 class QxlDevice  :
-    public HwDeviceIntrface
+    public HwDeviceInterface
 {
 public:
     QxlDevice(_In_ QxlDod* pQxlDod);
@@ -591,9 +599,10 @@ private:
 
     D3DDDI_VIDEO_PRESENT_SOURCE_ID m_SystemDisplaySourceId;
     DXGKARG_SETPOINTERSHAPE m_PointerShape;
-    HwDeviceIntrface* m_pHWDevice;
+
+    HwDeviceInterface* m_pHWDevice;
     DWORD m_VgaCompatible;
-    DWORD m_PointerCaps;
+    DWORD m_PointerCaps;
 public:
     QxlDod(_In_ DEVICE_OBJECT* pPhysicalDeviceObject);
     ~QxlDod(void);
@@ -686,7 +695,7 @@ public:
                                  _In_                                     UINT  SourceStride,
                                  _In_                                     INT   PositionX,
                                  _In_                                     INT   PositionY);
-    PDXGKRNL_INTERFACE GetDxgkInterrface(void) { return &m_DxgkInterface;}
+    PDXGKRNL_INTERFACE GetDxgkInterface(void) { return &m_DxgkInterface;}
 private:
     VOID CleanUp(VOID);
     NTSTATUS CheckHardware();
-- 
2.7.0.windows.1



More information about the Spice-devel mailing list