home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1992 NeXT Computer, Inc. All rights reserved.
- *
- * IOFrameBufferDisplay.h - Standard frame buffer display driver class.
- *
- *
- * HISTORY
- * 01 Sep 92 Joe Pasqua
- * Created.
- */
-
- // Notes:
- // * This module defines an abstract superclass for "standard"
- // framebuffers. The class implements several methods for its subclasses.
- // Namely, it implements the evScreen protocol.
-
-
- #import <bsd/dev/i386/IODisplay.h>
- #import <bsd/dev/i386/StdFBShared.h>
-
-
- @interface IOFrameBufferDisplay:IODisplay
- {
- @private
- void *priv;
- // The next two fields are mapping tables used in cursor drawing
- // to 5-5-5 displays
- unsigned char *_bm34To35SampleTable;
- unsigned char *_bm35To34SampleTable;
- }
-
- - (void)enterLinearMode;
- // Description: Put the display into linear framebuffer mode. This typically
- // happens when the window server starts running. This method
- // is implemented by subclasses in a device specific way.
-
- - (void)revertToVGAMode;
- // Description: Get the device out of whatever advanced linear mode it was
- // using and back into a state where it can be used as a standard
- // VGA device. This method is implemented by subclasses in a
- // device specific way.
-
- - (vm_address_t)mapFrameBufferAtPhysicalAddress:(unsigned int)addr
- length:(int)length;
- // Description: Look up the physical memory location for this device instance
- // and map it into VM for use by the device driver. If problems
- // occur, the method returns (vm_address_t)0. If addr is not 0,
- // then it is used as the physical memory address and
- // length is used as the length.
-
- - (int)selectMode:(const IODisplayInfo *)modeList count:(int)count
- valid:(const BOOL *)isValid;
- // Description: Choose a mode from the list `modeList' (containing `count'
- // modes) based on the value of the `DisplayMode' key in the
- // device's config table. If `isValid' is nonzero, each
- // element specifies whether or not the corresponding mode
- // is valid.
-
- - (int)selectMode:(const IODisplayInfo *)modeList count:(int)count;
- // Description: Equivalent to the above with `isValid' set to zero.
-
-
- // IODevice methods reimplemented by this class
- + (BOOL)probe : (id)deviceDescription;
- - initFromDeviceDescription : deviceDescription;
- - (IOReturn)getIntValues : (unsigned *)parameterArray
- forParameter : (IOParameterName)parameterName
- count : (unsigned *)count; // in/out
- - (IOReturn)setIntValues : (unsigned *)parameterArray
- forParameter : (IOParameterName)parameterName
- count : (unsigned)count;
- - (IOReturn)setCharValues : (unsigned char *)parameterArray
- forParameter : (IOParameterName)parameterName
- count : (unsigned)count;
-
- // IODisplay methods reimplemented by this class
- - (IOConsoleInfo *)allocateConsoleInfo;
- // Description: Allocates a console support info structure based on this
- // display. This structure, and the functions in it, are used
- // to display alert and console windows.
-
- // evScreen protocol methods reimplemented by this class
- - hideCursor: (int)token;
- - moveCursor:(Point*)cursorLoc frame:(int)frame token:(int)t;
- - showCursor:(Point*)cursorLoc frame:(int)frame token:(int)t;
- - setBrightness:(int)level token:(int)t;
- // NOTE: Subclasses must override setBrightness and implement appropriately.
-
- @end
-