Modules/VESA - Allowed #if-ing out VM8086 use
[tpg/acess2.git] / KernelLand / Modules / Display / VESA / common.h
index c81fe1a..94fd8e2 100644 (file)
@@ -1,15 +1,28 @@
 /**
+ * Acess2 Kernel VBE Driver
+ * - By John Hodge (thePowersGang)
+ *
+ * common.h
+ * - Driver-internal definitions
  */
 #ifndef _COMMON_H_
 #define _COMMON_H_
 
-// === TYPES ===
-typedef struct sFarPtr
-{
-       Uint16  ofs;
-       Uint16  seg;
-}      tFarPtr;
+#include "vbe.h"
+
+/**
+ * \name Mode Flags
+ * \{
+ */
+#define        FLAG_LFB        0x01    //!< Framebuffer is a linear framebufer
+#define FLAG_POPULATED 0x02    //!< Mode information is populated
+#define FLAG_VALID     0x04    //!< Mode is valid (usable)
+#define FLAG_GRAPHICS  0x08    //!< Graphics mode
+/**
+ * \}
+ */
 
+// === TYPES ===
 typedef struct sVesa_Mode
 {
        Uint16  code;
@@ -19,65 +32,4 @@ typedef struct sVesa_Mode
        Uint32  fbSize;
        Uint32  framebuffer;
 }      tVesa_Mode;
-
-typedef struct sVesa_CallModeInfo
-{
-       /**
-        * 0 : Mode is supported
-        * 1 : Optional information avaliable (Xres onwards)
-        * 2 : BIOS Output Supported
-        * 3 : Colour Mode?
-        * 4 : Graphics mode?
-        * -- VBE v2.0+
-        * 5 : Mode is not VGA compatible
-        * 6 : Bank switched mode supported
-        * 7 : Linear framebuffer mode supported
-        * 8 : Double-scan mode avaliable
-        */
-       Uint16  attributes;
-       /**
-        * 0 : Window exists
-        * 1 : Window is readable
-        * 2 : Window is writable
-        */
-       Uint8   winA,winB;
-       Uint16  granularity;
-       Uint16  winsize;
-       Uint16  segmentA, segmentB;
-       tFarPtr realFctPtr;
-       Uint16  pitch;  // Bytes per scanline
-
-       Uint16  Xres, Yres;
-       Uint8   Wchar, Ychar, planes, bpp, banks;
-       Uint8   memory_model, bank_size, image_pages;
-       Uint8   reserved0;
-
-       // -- VBE v1.2+
-       Uint8   red_mask, red_position;
-       Uint8   green_mask, green_position;
-       Uint8   blue_mask, blue_position;
-       Uint8   rsv_mask, rsv_position;
-       Uint8   directcolor_attributes;
-
-       // -- VBE v2.0+
-       Uint32  physbase;
-       Uint32  offscreen_ptr;  // Start of offscreen memory
-       Uint16  offscreen_size_kb;      // Size of offscreen memory
-       
-       // -- VBE v3.0
-       Uint16  lfb_pitch;
-       Uint8   image_count_banked;
-       Uint8   image_count_lfb;
-}      tVesa_CallModeInfo;
-
-typedef struct sVesa_CallInfo
-{
-       char            signature[4];           // == "VESA"
-       Uint16  Version;        // == 0x0300 for Vesa 3.0
-       tFarPtr OEMString;      // isa vbeFarPtr
-       Uint8   Capabilities[4];        
-       tFarPtr VideoModes;     // isa vbeParPtr
-       Uint16  TotalMemory;    // as # of 64KB blocks
-}      tVesa_CallInfo;
-
 #endif

UCC git Repository :: git.ucc.asn.au