blob: 65c161c76c531bec4a379846f1700aefecacd2ac [file] [log] [blame]
#ifndef __VideoDriverPrivate_H__
#define __VideoDriverPrivate_H__
#pragma internal off
#include <VideoServices.h>
#include <Video.h>
#include <Displays.h>
#include <DriverGestalt.h>
#include <DriverServices.h>
#include <PCI.h>
#include "MacDriverUtils.h"
#ifndef FALSE
#define TRUE 1
#define FALSE 0
#endif
#define QEMU_PCI_VIDEO_VENDOR_ID 0x1234
#define QEMU_PCI_VIDEO_DEVICE_ID 0x1111
#define QEMU_PCI_VIDEO_NAME "\pQEMU,VGA"
#define QEMU_PCI_VIDEO_PNAME "\p.Display_Video_QemuVGA"
#define QEMU_PCI_VIDEO_BASE_REG 0x10
#define QEMU_PCI_VIDEO_MMIO_REG 0x18
#define kDriverGlobalsPropertyName "GLOBALS"
#define kDriverFailTextPropertyName "FAILURE"
#define kDriverFailCodePropertyName "FAIL-CODE"
/*
* Our global storage is defined by this structure. This is not a requirement of the
* driver environment, but it collects globals into a coherent structure for debugging.
*/
struct DriverGlobal {
DriverRefNum refNum; /* Driver refNum for PB... */
RegEntryID deviceEntry; /* Name Registry Entry ID */
LogicalAddress boardFBAddress;
ByteCount boardFBMappedSize;
LogicalAddress boardRegAddress;
ByteCount boardRegMappedSize;
volatile Boolean inInterrupt;
/* Common globals */
UInt32 openCount;
/* Frame buffer configuration */
Boolean qdInterruptsEnable; /* Enable VBLs for qd */
Boolean qdLuminanceMapping;
Boolean hasPCIInterrupt;
IRQInfo irqInfo;
Boolean hasTimer;
InterruptServiceIDType qdVBLInterrupt;
TimerID VBLTimerID;
Boolean isOpen;
UInt32 vramSize;
UInt32 depth;
UInt32 bootDepth;
UInt32 bootMode;
UInt32 curMode;
UInt32 numModes;
UInt32 curPage;
LogicalAddress curBaseAddress;
};
typedef struct DriverGlobal DriverGlobal, *DriverGlobalPtr;
/*
* Globals and functions
*/
extern DriverGlobal gDriverGlobal; /* All interesting globals */
#define GLOBAL (gDriverGlobal) /* GLOBAL.field for references */
extern DriverDescription TheDriverDescription; /* Exported to the universe */
#define FB_START ((char*)GLOBAL.boardFBAddress)
#define CHECK_OPEN( error ) if( !GLOBAL.isOpen ) return (error)
#endif