VirtualBox

Changeset 66506 in vbox for trunk/include/VBox/Graphics


Ignore:
Timestamp:
Apr 11, 2017 9:59:29 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
114506
Message:

bugref:8524: Additions/linux: play nicely with distribution-installed Additions
Based on a patch series by Hans de Goede/Red Hat with minor adjustments by Oracle.
Graphics: Add VBoxVideoIPRT.h header
Add a VBoxVideoIPRT.h header, this adds 2 versions of this file:
1) Generic include/VBox/Graphics/VBoxVideoIPRT.h which includes all the header

files needed by files shared with the linux drm driver

2) src/VBox/Additions/linux/drm/VBoxVideoIPRT.h, which replaces the generic

gfx-common.h when building the linux drm driver


The purpose of this is to eventually redefines various iprt and HGSMI bits
in the linux drm driver version to use more linux kernel infrastructure.

Location:
trunk/include/VBox/Graphics
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/Graphics/HGSMI.h

    r65381 r66506  
    3030#define ___VBox_Graphics_HGSMI_h
    3131
    32 #include <iprt/assert.h>
    33 #include <iprt/types.h>
     32#include <VBoxVideoIPRT.h>
    3433
    3534#include <HGSMIDefs.h>
  • trunk/include/VBox/Graphics/HGSMIDefs.h

    r65381 r66506  
    3030#define ___VBox_Graphics_HGSMIDefs_h
    3131
    32 #include <iprt/assert.h>
    33 #include <iprt/types.h>
     32#include <VBoxVideoIPRT.h>
    3433
    3534/* HGSMI uses 32 bit offsets and sizes. */
  • trunk/include/VBox/Graphics/HGSMIMemAlloc.h

    r65381 r66506  
    3131
    3232#include <HGSMIDefs.h>
    33 #include <iprt/list.h>
     33#include <VBoxVideoIPRT.h>
    3434
    3535
  • trunk/include/VBox/Graphics/VBoxVideo.h

    r65381 r66506  
    2727#define ___VBox_Graphics_VBoxVideo_h
    2828
    29 #include <iprt/cdefs.h>
    30 #include <iprt/types.h>
    31 #include <iprt/assert.h>
     29#include <VBoxVideoIPRT.h>
    3230
    3331/* this should be in sync with monitorCount <xsd:maxInclusive value="64"/> in src/VBox/Main/xml/VirtualBox-settings-common.xsd */
  • trunk/include/VBox/Graphics/VBoxVideoGuest.h

    r65381 r66506  
    3232#include <HGSMIChSetup.h>
    3333#include <VBoxVideo.h>
    34 
    35 #include <iprt/err.h>  /* The functions in here return IPRT errors. */
    36 
    37 #ifdef VBOX_XPDM_MINIPORT
    38 # include <iprt/nt/miniport.h>
    39 # include <ntddvdeo.h> /* sdk, clean */
    40 # include <iprt/nt/Video.h>
    41 #elif defined VBOX_GUESTR3XORGMOD
    42 # include <compiler.h>
    43 #else
    44 # include <iprt/asm-amd64-x86.h>
    45 #endif
     34#include <VBoxVideoIPRT.h>
    4635
    4736#ifdef VBOX_WDDM_MINIPORT
     
    5241 typedef HGSMIHEAP HGSMIGUESTCMDHEAP;
    5342# define HGSMIGUESTCMDHEAP_GET(_p) (_p)
    54 #endif
    55 
    56 #if defined(IN_RING0) && defined(RT_OS_LINUX)
    57 # define VBVOAssert(a) do {} while(0)
    58 # define VBVOAssertPtr(a) do {} while(0)
    59 # define VBVOAssertReturnVoid(a) if (!(a)) return
    60 # define VBVOAssertRC(a) do {} while(0)
    61 # define VBVOAssertPtrNullReturnVoid(a) do {} while(0)
    62 # define VBVOAssertPtrReturnVoid(a) if (!(a)) return
    63 #else
    64 # define VBVOAssert Assert
    65 # define VBVOAssertPtr AssertPtr
    66 # define VBVOAssertReturnVoid AssertReturnVoid
    67 # define VBVOAssertRC AssertRC
    68 # define VBVOAssertPtrNullReturnVoid AssertPtrNullReturnVoid
    69 # define VBVOAssertPtrReturnVoid AssertPtrReturnVoid
    7043#endif
    7144
     
    134107    struct VBVABUFFER *pVBVA;
    135108} VBVABUFFERCONTEXT, *PVBVABUFFERCONTEXT;
    136 
    137 /** @name Helper functions
    138  * @{ */
    139 /** Write an 8-bit value to an I/O port. */
    140 DECLINLINE(void) VBoxVideoCmnPortWriteUchar(RTIOPORT Port, uint8_t Value)
    141 {
    142 #ifdef VBOX_XPDM_MINIPORT
    143     VideoPortWritePortUchar((PUCHAR)Port, Value);
    144 #elif defined VBOX_GUESTR3XORGMOD
    145     outb(Port, Value);
    146 #else  /** @todo make these explicit */
    147     ASMOutU8(Port, Value);
    148 #endif
    149 }
    150 
    151 /** Write a 16-bit value to an I/O port. */
    152 DECLINLINE(void) VBoxVideoCmnPortWriteUshort(RTIOPORT Port, uint16_t Value)
    153 {
    154 #ifdef VBOX_XPDM_MINIPORT
    155     VideoPortWritePortUshort((PUSHORT)Port,Value);
    156 #elif defined VBOX_GUESTR3XORGMOD
    157     outw(Port, Value);
    158 #else
    159     ASMOutU16(Port, Value);
    160 #endif
    161 }
    162 
    163 /** Write a 32-bit value to an I/O port. */
    164 DECLINLINE(void) VBoxVideoCmnPortWriteUlong(RTIOPORT Port, uint32_t Value)
    165 {
    166 #ifdef VBOX_XPDM_MINIPORT
    167     VideoPortWritePortUlong((PULONG)Port,Value);
    168 #elif defined VBOX_GUESTR3XORGMOD
    169     outl(Port, Value);
    170 #else
    171     ASMOutU32(Port, Value);
    172 #endif
    173 }
    174 
    175 /** Read an 8-bit value from an I/O port. */
    176 DECLINLINE(uint8_t) VBoxVideoCmnPortReadUchar(RTIOPORT Port)
    177 {
    178 #ifdef VBOX_XPDM_MINIPORT
    179     return VideoPortReadPortUchar((PUCHAR)Port);
    180 #elif defined VBOX_GUESTR3XORGMOD
    181     return inb(Port);
    182 #else
    183     return ASMInU8(Port);
    184 #endif
    185 }
    186 
    187 /** Read a 16-bit value from an I/O port. */
    188 DECLINLINE(uint16_t) VBoxVideoCmnPortReadUshort(RTIOPORT Port)
    189 {
    190 #ifdef VBOX_XPDM_MINIPORT
    191     return VideoPortReadPortUshort((PUSHORT)Port);
    192 #elif defined VBOX_GUESTR3XORGMOD
    193     return inw(Port);
    194 #else
    195     return ASMInU16(Port);
    196 #endif
    197 }
    198 
    199 /** Read a 32-bit value from an I/O port. */
    200 DECLINLINE(uint32_t) VBoxVideoCmnPortReadUlong(RTIOPORT Port)
    201 {
    202 #ifdef VBOX_XPDM_MINIPORT
    203     return VideoPortReadPortUlong((PULONG)Port);
    204 #elif defined VBOX_GUESTR3XORGMOD
    205     return inl(Port);
    206 #else
    207     return ASMInU32(Port);
    208 #endif
    209 }
    210 
    211 /** @}  */
    212109
    213110/** @name Base HGSMI APIs
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette