The Pedigree Project 0.1
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
VmwareGraphics Class Reference
+ Inheritance diagram for VmwareGraphics:
+ Collaboration diagram for VmwareGraphics:

Classes

class  VmwareFramebuffer
 

Public Member Functions

 VmwareGraphics (Device *pDev)
 
void shutdown ()
 
bool initialise ()
 
virtual void getName (String &str)
 
virtual void dump (String &str)
 
virtual bool getCurrentScreenMode (Display::ScreenMode &sm)
 
virtual bool getScreenModes (List< Display::ScreenMode * > &sms)
 
virtual bool setScreenMode (Display::ScreenMode sm)
 
virtual bool setScreenMode (size_t modeId)
 
virtual bool setScreenMode (size_t width, size_t height, size_t bpp)
 
bool redraw (size_t x, size_t y, size_t width, size_t height)
 
bool copy (size_t sourceX, size_t sourceY, size_t destinationX, size_t destinationY, size_t width, size_t height, bool softwareFallback)
 
- Public Member Functions inherited from Display
 Display (Device *p)
 
virtual Type getType ()
 
virtual void * getFramebuffer ()
 
virtual rgb_tnewBuffer ()
 
virtual void setCurrentBuffer (rgb_t *pBuffer)
 
virtual void updateBuffer (rgb_t *pBuffer, size_t x1=~0UL, size_t y1=~0UL, size_t x2=~0UL, size_t y2=~0UL)
 
virtual void killBuffer (rgb_t *pBuffer)
 
virtual void bitBlit (rgb_t *pBuffer, size_t fromX, size_t fromY, size_t toX, size_t toY, size_t width, size_t height)
 
virtual void fillRectangle (rgb_t *pBuffer, size_t x, size_t y, size_t width, size_t height, rgb_t colour)
 
virtual bool getPixelFormat (PixelFormat &pf)
 
virtual bool getCurrentScreenMode (ScreenMode &sm)
 
virtual bool getScreenModes (List< ScreenMode * > &sms)
 
virtual bool setScreenMode (ScreenMode sm)
 
- Public Member Functions inherited from Device
 Device (Device *p)
 
DevicegetParent () const
 
void setParent (Device *p)
 
virtual const StringgetSpecificType ()
 
virtual void setSpecificType (String str)
 
void setPciPosition (uint32_t bus, uint32_t device, uint32_t func)
 
void setPciIdentifiers (uint8_t classCode, uint8_t subclassCode, uint16_t vendorId, uint16_t deviceId, uint8_t progIf)
 
void setPciConfigHeader (const PciBus::ConfigSpace &space)
 
PciBus::ConfigSpace getPciConfigHeader () const
 
uint8_t getPciClassCode ()
 
uint8_t getPciSubclassCode ()
 
uint16_t getPciVendorId ()
 
uint16_t getPciDeviceId ()
 
uint8_t getPciProgInterface ()
 
uint32_t getPciBusPosition ()
 
uint32_t getPciDevicePosition ()
 
uint32_t getPciFunctionNumber ()
 
virtual Vector< Address * > & addresses ()
 
virtual uintptr_t getInterruptNumber ()
 
virtual void setInterruptNumber (uintptr_t n)
 
void addChild (Device *pDevice)
 
DevicegetChild (size_t n)
 
size_t getNumChildren ()
 
void removeChild (size_t n)
 
void removeChild (Device *d)
 
void replaceChild (Device *src, Device *dest)
 

Private Member Functions

bool availableLocked () const
 
bool initialiseHardwareLocked ()
 
bool registerProvider ()
 
void unregisterProvider ()
 
bool setModeLocked (size_t width, size_t height, size_t bpp)
 
bool submitFifoLocked (const uint32_t *pCommand, size_t words)
 
bool prepareFifoLocked (size_t words, VmwareSvgaState::FifoLayout &layout)
 
bool syncFifoLocked ()
 
VmwareSvgaState::FifoLayout readFifoLayoutLocked () const
 
volatile uint32_t * fifoLocked () const
 
uint32_t readRegisterLocked (size_t offset) const
 
void writeRegisterLocked (size_t offset, uint32_t value) const
 
void disableDisplayLocked ()
 
void disableHardwareLocked ()
 
void markOfflineLocked (const char *reason)
 

Static Private Member Functions

static Graphics::PixelFormat pixelFormat (size_t bpp, uint32_t redMask, uint32_t greenMask, uint32_t blueMask)
 

Private Attributes

IoBasem_pIo
 
MemoryMappedIom_Framebuffer
 
MemoryMappedIom_CommandRegion
 
VmwareFramebufferm_pFramebuffer
 
GraphicsService::GraphicsProviderm_pProvider
 
Mutex m_DeviceLock
 
uint32_t m_Capabilities
 
size_t m_MaxWidth
 
size_t m_MaxHeight
 
size_t m_FramebufferSize
 
size_t m_CommandRegionSize
 
size_t m_FifoHeaderBytes
 
bool m_HardwareAccepted
 
bool m_Online
 
bool m_FifoRunning
 
bool m_Stopping
 
bool m_ProviderRegistered
 
bool m_ShutdownComplete
 

Additional Inherited Members

- Public Types inherited from Device
enum  Type {
  Generic , Root , Disk , Bus ,
  Display , Network , Sound , Console ,
  Mouse , Controller , UsbController , UsbGeneric ,
  UsbContainer
}
 
typedef Device *(* Callback) (Device *)
 
- Static Public Member Functions inherited from Device
static void foreach (Callback callback, Device *root=0)
 
template<class F , class... Args>
static void foreach (pedigree_std::Callable< F > &callback, Device *root, Args... args)
 
static void addToRoot (Device *device)
 
static void searchByVendorId (uint16_t vendorId, void(*callback)(Device *), Device *root=0)
 
static void searchByVendorIdAndDeviceId (uint16_t vendorId, uint16_t deviceId, void(*callback)(Device *), Device *root=0)
 
static void searchByClass (uint16_t classCode, void(*callback)(Device *), Device *root=0)
 
static void searchByClassAndSubclass (uint16_t classCode, uint16_t subclassCode, void(*callback)(Device *), Device *root=0)
 
static void searchByClassSubclassAndProgInterface (uint16_t classCode, uint16_t subclassCode, uint8_t progInterface, void(*callback)(Device *), Device *root=0)
 
- Public Attributes inherited from Display
struct Display::rgb_t PACKED
 
- Protected Member Functions inherited from Device
 NOT_COPYABLE_OR_ASSIGNABLE (Device)
 
- Static Protected Member Functions inherited from Device
static Deviceroot ()
 
- Protected Attributes inherited from Device
Vector< Address * > m_Addresses
 
Vector< Device * > m_Children
 
Devicem_pParent
 
uintptr_t m_InterruptNumber
 
String m_SpecificType
 
PciBus::ConfigSpace m_ConfigHeader
 
uint8_t m_ClassCode
 
uint8_t m_SubclassCode
 
uint16_t m_VendorId
 
uint16_t m_DeviceId
 
uint8_t m_ProgInterface
 
uint32_t m_PciBusPos
 
uint32_t m_PciDevicePos
 
uint32_t m_PciFunctionNum
 
- Static Protected Attributes inherited from Device
static Device m_Root
 
static Mutex m_TreeLock
 

Detailed Description

Definition at line 68 of file modules/drivers/x86/vmware-gfx/main.cc.

Constructor & Destructor Documentation

◆ VmwareGraphics()

VmwareGraphics::VmwareGraphics ( Device pDev)
inlineexplicit

Definition at line 70 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ ~VmwareGraphics()

VmwareGraphics::~VmwareGraphics ( )
virtual

Definition at line 721 of file modules/drivers/x86/vmware-gfx/main.cc.

Member Function Documentation

◆ availableLocked()

bool VmwareGraphics::availableLocked ( ) const
inlineprivate

Definition at line 363 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ copy()

bool VmwareGraphics::copy ( size_t  sourceX,
size_t  sourceY,
size_t  destinationX,
size_t  destinationY,
size_t  width,
size_t  height,
bool  softwareFallback 
)
inline

Definition at line 260 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ disableDisplayLocked()

void VmwareGraphics::disableDisplayLocked ( )
inlineprivate

Definition at line 681 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ disableHardwareLocked()

void VmwareGraphics::disableHardwareLocked ( )
inlineprivate

Definition at line 691 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ dump()

virtual void VmwareGraphics::dump ( String str)
inlinevirtual

Dumps a textual representation of the device into the given string.

Reimplemented from Display.

Definition at line 135 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ fifoLocked()

volatile uint32_t * VmwareGraphics::fifoLocked ( ) const
inlineprivate

Definition at line 667 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ getCurrentScreenMode()

virtual bool VmwareGraphics::getCurrentScreenMode ( Display::ScreenMode sm)
inlinevirtual

Definition at line 139 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ getName()

virtual void VmwareGraphics::getName ( String str)
inlinevirtual

Stores the device's name in str.

Reimplemented from Display.

Definition at line 131 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ getScreenModes()

virtual bool VmwareGraphics::getScreenModes ( List< Display::ScreenMode * > &  sms)
inlinevirtual

Definition at line 159 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ initialise()

bool VmwareGraphics::initialise ( )
inline

Definition at line 95 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ initialiseHardwareLocked()

bool VmwareGraphics::initialiseHardwareLocked ( )
inlineprivate

Definition at line 382 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ markOfflineLocked()

void VmwareGraphics::markOfflineLocked ( const char *  reason)
inlineprivate

Definition at line 696 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ pixelFormat()

static Graphics::PixelFormat VmwareGraphics::pixelFormat ( size_t  bpp,
uint32_t  redMask,
uint32_t  greenMask,
uint32_t  blueMask 
)
inlinestaticprivate

Definition at line 367 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ prepareFifoLocked()

bool VmwareGraphics::prepareFifoLocked ( size_t  words,
VmwareSvgaState::FifoLayout layout 
)
inlineprivate

Definition at line 627 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ readFifoLayoutLocked()

VmwareSvgaState::FifoLayout VmwareGraphics::readFifoLayoutLocked ( ) const
inlineprivate

Definition at line 661 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ readRegisterLocked()

uint32_t VmwareGraphics::readRegisterLocked ( size_t  offset) const
inlineprivate

Definition at line 671 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ redraw()

bool VmwareGraphics::redraw ( size_t  x,
size_t  y,
size_t  width,
size_t  height 
)
inline

Definition at line 237 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ registerProvider()

bool VmwareGraphics::registerProvider ( )
inlineprivate

Definition at line 499 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ setModeLocked()

bool VmwareGraphics::setModeLocked ( size_t  width,
size_t  height,
size_t  bpp 
)
inlineprivate

Definition at line 533 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ setScreenMode() [1/3]

virtual bool VmwareGraphics::setScreenMode ( Display::ScreenMode  sm)
inlinevirtual

Definition at line 178 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ setScreenMode() [2/3]

virtual bool VmwareGraphics::setScreenMode ( size_t  modeId)
inlinevirtual

Sets the current screen mode using a set of well-defined VBE IDs. Example: 0x117 = 1024x768x16.

Reimplemented from Display.

Definition at line 199 of file modules/drivers/x86/vmware-gfx/main.cc.

References ProcessorBase::getInterrupts(), Semaphore::release(), Display::setScreenMode(), and Semaphore::tryAcquire().

◆ setScreenMode() [3/3]

virtual bool VmwareGraphics::setScreenMode ( size_t  nWidth,
size_t  nHeight,
size_t  nBpp 
)
inlinevirtual

Sets the current screen mode using a width, height, and pixel depth

Todo:
"Closest match": allow a threshold for a match in case the specific mode specified cannot be set.

Reimplemented from Display.

Definition at line 223 of file modules/drivers/x86/vmware-gfx/main.cc.

References ProcessorBase::getInterrupts().

◆ shutdown()

void VmwareGraphics::shutdown ( )

Definition at line 725 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ submitFifoLocked()

bool VmwareGraphics::submitFifoLocked ( const uint32_t *  pCommand,
size_t  words 
)
inlineprivate

Definition at line 603 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ syncFifoLocked()

bool VmwareGraphics::syncFifoLocked ( )
inlineprivate

Definition at line 650 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ unregisterProvider()

void VmwareGraphics::unregisterProvider ( )
inlineprivate

Definition at line 512 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ writeRegisterLocked()

void VmwareGraphics::writeRegisterLocked ( size_t  offset,
uint32_t  value 
) const
inlineprivate

Definition at line 676 of file modules/drivers/x86/vmware-gfx/main.cc.

Member Data Documentation

◆ m_Capabilities

uint32_t VmwareGraphics::m_Capabilities
private

Definition at line 707 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_CommandRegion

MemoryMappedIo* VmwareGraphics::m_CommandRegion
private

Definition at line 703 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_CommandRegionSize

size_t VmwareGraphics::m_CommandRegionSize
private

Definition at line 711 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_DeviceLock

Mutex VmwareGraphics::m_DeviceLock
private

Definition at line 706 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_FifoHeaderBytes

size_t VmwareGraphics::m_FifoHeaderBytes
private

Definition at line 712 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_FifoRunning

bool VmwareGraphics::m_FifoRunning
private

Definition at line 715 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_Framebuffer

MemoryMappedIo* VmwareGraphics::m_Framebuffer
private

Definition at line 702 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_FramebufferSize

size_t VmwareGraphics::m_FramebufferSize
private

Definition at line 710 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_HardwareAccepted

bool VmwareGraphics::m_HardwareAccepted
private

Definition at line 713 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_MaxHeight

size_t VmwareGraphics::m_MaxHeight
private

Definition at line 709 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_MaxWidth

size_t VmwareGraphics::m_MaxWidth
private

Definition at line 708 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_Online

bool VmwareGraphics::m_Online
private

Definition at line 714 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_pFramebuffer

VmwareFramebuffer* VmwareGraphics::m_pFramebuffer
private

Definition at line 704 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_pIo

IoBase* VmwareGraphics::m_pIo
private

Definition at line 701 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_pProvider

GraphicsService::GraphicsProvider* VmwareGraphics::m_pProvider
private

Definition at line 705 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_ProviderRegistered

bool VmwareGraphics::m_ProviderRegistered
private

Definition at line 717 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_ShutdownComplete

bool VmwareGraphics::m_ShutdownComplete
private

Definition at line 718 of file modules/drivers/x86/vmware-gfx/main.cc.

◆ m_Stopping

bool VmwareGraphics::m_Stopping
private

Definition at line 716 of file modules/drivers/x86/vmware-gfx/main.cc.


The documentation for this class was generated from the following file: