summaryrefslogtreecommitdiff
path: root/driver/xf86-video-mga/src/binding.h
diff options
context:
space:
mode:
Diffstat (limited to 'driver/xf86-video-mga/src/binding.h')
-rw-r--r--driver/xf86-video-mga/src/binding.h254
1 files changed, 254 insertions, 0 deletions
diff --git a/driver/xf86-video-mga/src/binding.h b/driver/xf86-video-mga/src/binding.h
new file mode 100644
index 000000000..6dcd1e910
--- /dev/null
+++ b/driver/xf86-video-mga/src/binding.h
@@ -0,0 +1,254 @@
+/**************************************************************************************
+
+ @doc MGA MGA_STRUCT
+
+ @module MGA Structures | Structure of The MGA Layer
+ @normal Copyright © 1997, Matrox Graphics Inc.
+
+ All Rights Reserved.
+
+ @head3 MGA Structures |
+ @index struct | MGA_STRUCT
+
+ @end
+
+***************************************************************************************/
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/HALlib/binding.h,v 1.3 2000/10/24 22:45:08 dawes Exp $ */
+
+#ifndef _BINDING
+#define _BINDING
+
+#ifndef _INTERNALBINDING
+
+#define BINDING_NOERROR 0x00000000
+#define BINDING_ERROR 0x90000000
+#define FAR
+#define DECL
+
+typedef void VOID;
+typedef void FAR *LPVOID;
+typedef void FAR *LPBOARDHANDLE;
+
+typedef long LONG;
+typedef unsigned long ULONG;
+typedef unsigned long FLONG;
+typedef unsigned long FAR *LPULONG;
+
+typedef char CHAR;
+typedef unsigned char UCHAR;
+typedef unsigned char FAR*LPUCHAR;
+
+typedef struct TAGCLIENTTABLE{
+ ULONG (DECL *ClientReadConfigSpaceByte )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientReadConfigSpaceDword )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientWriteConfigSpaceByte )(LPVOID , ULONG, UCHAR);
+ ULONG (DECL *ClientWriteConfigSpaceDword )(LPVOID , ULONG, ULONG);
+ ULONG (DECL *ClientOpenRegisterBase )(LPVOID , ULONG, ULONG);
+ ULONG (DECL *ClientCloseRegisterBase )(LPVOID );
+ ULONG (DECL *ClientReadRegisterByte )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientReadRegisterDword )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientWriteRegisterByte )(LPVOID , ULONG, UCHAR);
+ ULONG (DECL *ClientWriteRegisterDword )(LPVOID , ULONG, ULONG);
+ ULONG (DECL *ClientOpenMemoryBase )(LPVOID , ULONG, ULONG);
+ ULONG (DECL *ClientCloseMemoryBase )(LPVOID );
+ ULONG (DECL *ClientReadMemoryByte )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientReadMemoryDword )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientWriteMemoryByte )(LPVOID , ULONG, UCHAR);
+ ULONG (DECL *ClientWriteMemoryDword )(LPVOID , ULONG, ULONG);
+ ULONG (DECL *ClientOpenSystemDevice )(LPVOID , ULONG, ULONG);
+ ULONG (DECL *ClientCloseSystemDevice )(LPVOID );
+ ULONG (DECL *ClientReadSystemDeviceByte )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientReadSystemDeviceDword )(LPVOID , ULONG, LPVOID );
+ ULONG (DECL *ClientWriteSystemDeviceByte )(LPVOID , ULONG, UCHAR);
+ ULONG (DECL *ClientWriteSystemDeviceDword )(LPVOID , ULONG, ULONG);
+ ULONG (DECL *ClientWait )(LPVOID , ULONG);
+ ULONG (DECL *ClientGetBiosInfo ) (LPVOID, LPVOID, LPVOID);
+ ULONG (DECL *ClientReadDDCEdid ) (LPVOID, LPVOID, ULONG);
+#ifdef DEBUG
+ ULONG (DECL *ClientDebug ) (LPVOID, ULONG, LPVOID, ULONG, LPVOID);
+#endif
+} CLIENTTABLE, FAR *LPCLIENTTABLE;
+
+#endif /* _INTERNALBINDING */
+
+/***************************************************************************************************
+ MGAHWINFO STRUCTURE
+ ***************************************************************************************************
+ @struct MGAHWINFO | Public MGA Board Information
+ @field OUT ULONG | ulCapsFirstOutput | Capabilities of firts output
+ @flag Bit 0 | Analog output supported on primary CRTC
+ @flag Bit 1 | Digital output supported on primary CRTC
+ @flag Bit 2 | TV output supported on primary CRTC
+ @flag Bit 3 | Analog output supported on second CRTC
+ @flag Bit 4 | Digital output supported on second CRTC
+ @flag Bit 5 | TV output supported on second CRTC
+ @flag Bit 6 | VGA output supported
+ @field OUT ULONG | ulCapsSecondOutput | Capabilities of second output
+ @flag Bit 0 | Analog output supported on primary CRTC
+ @flag Bit 1 | Digital output supported on primary CRTC
+ @flag Bit 2 | TV output supported on primary CRTC
+ @flag Bit 3 | Analog output supported on second CRTC
+ @flag Bit 4 | Digital output supported on second CRTC
+ @flag Bit 5 | TV output supported on second CRTC
+ @flag Bit 6 | VGA output supported
+ @field OUT ULONG | ulVideoMemory | Total number of video memory in bytes
+ @end
+ **************************************************************************************************/
+typedef struct TAGMGAHWINFO {
+ ULONG ulCapsFirstOutput;
+ ULONG ulCapsSecondOutput;
+ ULONG ulVideoMemory;
+} MGAHWINFO, FAR *LPMGAHWINFO;
+
+/***************************************************************************************************
+ MGAMODEINFO STRUCTURE
+ ***************************************************************************************************
+ @struct MGAMODEINFO | Mode Information
+ @field IN FLONG | flOutput | Where we want to apply this parameters
+ @flag Bit 0 | Use second CRTC
+ @flag Bit 1 | Use primary analog output
+ @flag Bit 2 | Use secondary analog output
+ @flag Bit 3 | Use primary digital output
+ @flag Bit 4 | Use secondary digital output
+ @flag Bit 5 | Force a particular frame buffer pitch
+ @flag Bit 6 | Force a particular display origin
+ @flag Bit 7-31 | Reserved
+ @field IN ULONG | ulDispWidth | Display Width in pixels
+ @field IN ULONG | ulDispHeight | Display Height in pixels
+ @field IN ULONG | ulDeskWidth | Desktop Width in pixels
+ @field IN ULONG | ulDeskHeight | Desktop Height in pixels
+ @field IN OUT ULONG | ulFBPitch | Frame Buffer Pitch in pixel
+ @field IN ULONG | ulBpp | Bits Per Pixels and input format
+ @flag lower 16 bit | Bits per pixel
+ <nl><tab> 8, 15, 16, 24 or 32
+ @flag upper 16 bit | Input format
+ <nl><tab> 0 RGB
+ <nl><tab> 1 RGBA
+ <nl><tab> 2 YcbCr 4:2:0 3 Planes
+ <nl><tab> 3 YcbCr 4:2:0 4 Planes
+ <nl><tab> 4 YcbCr 4:2:2-UYVY
+ <nl><tab> 5 YcbCr 4:2:2-YUY2
+ <nl><tab> 6-10 none interleave mode
+ <nl><tab> 6 NI RGBA
+ <nl><tab> 7 NI YcbCr 4:2:0 3 Planes
+ <nl><tab> 8 NI YcbCr 4:2:0 4 Planes
+ <nl><tab> 9 NI YcbCr 4:2:2-UYVY
+ <nl><tab> 10 NI YcbCr 4:2:2-YUY2
+ @field IN ULONG | ulZoom | Zoom factor
+ @flag 1x (1), 2x (2) or 4x (4)|
+ @field IN OUT FLONG | flSignalMode | Signal Mode
+ @flag Bit 0 | Interlace (0 : Non-interlace / 1: Interlace)
+ @flag Bit 1 | Overscan (0 : No Overscan / 1 : Overscan)
+ @flag Bit 2 | Horizontal Sync Polarity (0 : Negative / 1 : Positive)
+ @flag Bit 3 | Vertical Sync Polarity (0 : Negative / 1 : Positive)
+ @flag Bit 4-7 | Standard TV output
+ <nl><tab>000 - PAL B G H
+ <nl><tab>001 - NTSC M
+ <nl><tab>010..111 - Reserved
+ @flag Bit 8-31 | Reserved for future use
+ @field IN OUT ULONG | ulRefreshRate | Vertical Refresh Rate in Hz
+ @field IN OUT ULONG | ulHorizRate | Horizontal Refresh Rate in KHz
+ @field IN OUT ULONG | ulPixClock | Pixel Clock in kHz
+ @field IN OUT ULONG | ulHFPorch | Horizontal front porch in pixels
+ @field IN OUT ULONG | ulHSync | Horizontal Sync in pixels
+ @field IN OUT ULONG | ulHBPorch | Horizontal back porch in pixels
+ @field IN OUT ULONG | ulVFPorch | Vertical front porch in lines
+ @field IN OUT ULONG | ulVSync | Vertical Sync in lines
+ @field IN OUT ULONG | ulVBPorch | Vertical back Porch in lines
+ @field IN OUT ULONG | ulDisplayOrg | Origin of the display Offset(pixels)
+ @field IN OUT ULONG | ulDstOrg | Origin of the drawing Offset in the frame (pixels)
+ @field IN OUT ULONG | ulPanXGran | Panning in X granularity in pixel
+ @field IN OUT ULONG | ulPanYGran | Panning in Y granularity in pixel
+ @field IN OUT ULONG | ulTVStandard | TV Standard
+ @field IN OUT ULONG | ulCableType | Cable Type
+ @end
+ **************************************************************************************************/
+typedef struct TAGMAGMODEINFO {
+ FLONG flOutput; /* Where we want to apply this parameters */
+ ULONG ulDispWidth; /* Display Width in pixels */
+ ULONG ulDispHeight; /* Display Height in pixels */
+ ULONG ulDeskWidth; /* Desktop Width in pixels */
+ ULONG ulDeskHeight; /* Desktop Height in pixels */
+ ULONG ulFBPitch; /* Frame Buffer Pitch in pixel */
+ ULONG ulBpp; /* Bits Per Pixels / input format */
+ ULONG ulZoom; /* Zoom factor */
+ FLONG flSignalMode; /* Signal Mode */
+ ULONG ulRefreshRate; /* Vertical Refresh Rate in Hz */
+ ULONG ulHorizRate; /* Horizontal Refresh Rate in KHz */
+ ULONG ulPixClock; /* Pixel Clock in kHz */
+ ULONG ulHFPorch; /* Horizontal front porch in pixels */
+ ULONG ulHSync; /* Horizontal Sync in pixels */
+ ULONG ulHBPorch; /* Horizontal back porch in pixels */
+ ULONG ulVFPorch; /* Vertical front porch in lines */
+ ULONG ulVSync; /* Vertical Sync in lines */
+ ULONG ulVBPorch; /* Vertical back Porch in lines */
+ ULONG ulDisplayOrg; /* Origin of the display Offset(bytes) */
+ ULONG ulDstOrg; /* Origin of the drawing Offset in the frame (bytes) */
+ ULONG ulPanXGran; /* Panning in X granularity in pixel */
+ ULONG ulPanYGran; /* Panning in Y granularity in pixel */
+ ULONG ulTVStandard; /* TV Standard */
+ ULONG ulCableType; /* Cable Type */
+} MGAMODEINFO, FAR *LPMGAMODEINFO;
+
+#define MGAHWINFOCAPS_CRTC1_ANALOG 1L
+#define MGAHWINFOCAPS_CRTC1_DIGITAL (1L << 1)
+#define MGAHWINFOCAPS_CRTC1_TV (1L << 2)
+#define MGAHWINFOCAPS_CRTC2_ANALOG (1L << 3)
+#define MGAHWINFOCAPS_CRTC2_DIGITAL (1L << 4)
+#define MGAHWINFOCAPS_CRTC2_TV (1L << 5)
+#define MGAHWINFOCAPS_OUTPUT_VGA (1L << 6)
+#define MGAHWINFOCAPS_CRTC2 (MGAHWINFOCAPS_CRTC2_ANALOG | MGAHWINFOCAPS_CRTC2_DIGITAL | MGAHWINFOCAPS_CRTC2_TV)
+#define MGAHWINFOCAPS_OUTPUT_ANALOG (MGAHWINFOCAPS_CRTC1_ANALOG | MGAHWINFOCAPS_CRTC2_ANALOG)
+#define MGAHWINFOCAPS_OUTPUT_DIGITAL (MGAHWINFOCAPS_CRTC1_DIGITAL | MGAHWINFOCAPS_CRTC2_DIGITAL)
+#define MGAHWINFOCAPS_OUTPUT_TV (MGAHWINFOCAPS_CRTC1_TV | MGAHWINFOCAPS_CRTC2_TV)
+
+#define MGAMODEINFO_SECOND_CRTC 1L
+#define MGAMODEINFO_ANALOG1 (1L << 1)
+#define MGAMODEINFO_ANALOG2 (1L << 2)
+#define MGAMODEINFO_DIGITAL1 (1L << 3)
+#define MGAMODEINFO_DIGITAL2 (1L << 4)
+#define MGAMODEINFO_FORCE_PITCH (1L << 5)
+#define MGAMODEINFO_FORCE_DISPLAYORG (1L << 6)
+#define MGAMODEINFO_TV (1L << 7)
+#define MGAMODEINFO_TESTONLY 0x80000000
+
+/* Cable Type */
+#define TV_YC_COMPOSITE 0
+#define TV_SCART_RGB 1
+#define TV_SCART_COMPOSITE 2
+#define TV_SCART_TYPE2 3
+
+/* TV Standard */
+
+#define TV_PAL 0
+#define TV_NTSC 1
+
+#if defined(__cplusplus)
+ extern "C" {
+#endif
+
+ULONG MGACloseLibrary(LPBOARDHANDLE pBoard);
+ULONG MGAValidateMode(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
+ULONG MGAValidateVideoParameters(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
+ULONG MGASetMode(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
+ULONG MGASetTVMode(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
+ULONG MGASetVgaMode(LPBOARDHANDLE pBoard);
+ULONG MGASaveVgaState(LPBOARDHANDLE pBoard);
+ULONG MGARestoreVgaState(LPBOARDHANDLE pBoard);
+ULONG MGAInitHardware(LPBOARDHANDLE pBoard);
+ULONG MGAGetVideoParameters(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo, ULONG ulRefresh);
+ULONG MGAGetHardwareInfo(LPBOARDHANDLE pBoard, LPMGAHWINFO pMgaHwInfo);
+LPVOID MGAGetClientPointer(LPBOARDHANDLE pBoard);
+ULONG MGAOpenLibrary(LPBOARDHANDLE pBoard, LPVOID lpClient, ULONG ulClientSize);
+ULONG MGAGetBOARDHANDLESize(void);
+ULONG MGASetTVStandard(LPBOARDHANDLE pBoard, ULONG ulTVStandard);
+ULONG MGASetTVCableType(LPBOARDHANDLE pBoard, ULONG ulCableType);
+ULONG HALSetDisplayStart(LPBOARDHANDLE pBoard, ULONG x, ULONG y, ULONG crtc);
+
+#if defined(__cplusplus)
+ }
+#endif
+
+#endif /* _BINDING */
+
+