VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/mibank.h

Last change on this file was 69098, checked in by vboxsync, 7 years ago

Clean up XFree86 driver header files.
bugref:3810: X11 Guest Additions maintenance
Over the years we have cleaned up the layout in the tree of the X.Org
header files we use to build drivers. The XFree86 ones were still in their
original, rather sub-optimal layout. This change fixes that.

  • Property svn:eol-style set to native
File size: 4.0 KB
Line 
1/*
2 * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), [email protected]
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that copyright
7 * notice and this permission notice appear in supporting documentation, and
8 * that the name of Marc Aurele La France not be used in advertising or
9 * publicity pertaining to distribution of the software without specific,
10 * written prior permission. Marc Aurele La France makes no representations
11 * about the suitability of this software for any purpose. It is provided
12 * "as-is" without express or implied warranty.
13 *
14 * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
16 * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
21 */
22
23/* $XFree86: xc/programs/Xserver/mi/mibank.h,v 1.10 2003/01/01 19:16:42 tsi Exp $ */
24
25#ifndef __MIBANK_H__
26#define __MIBANK_H__ 1
27
28#include "scrnintstr.h"
29
30/*
31 * Banking external interface.
32 */
33
34/*
35 * This is the banking function type. The return value is normally zero.
36 * Non-zero returns can be used to implement the likes of scanline interleave,
37 * etc.
38 */
39typedef int miBankProc(
40 ScreenPtr /*pScreen*/,
41 unsigned int /*iBank*/
42);
43
44typedef miBankProc *miBankProcPtr;
45
46typedef struct _miBankInfo
47{
48 /*
49 * Banking refers to the use of one or more apertures (in the server's
50 * address space) to access various parts of a potentially larger hardware
51 * frame buffer.
52 *
53 * Three different banking schemes are supported:
54 *
55 * Single banking is indicated when pBankA and pBankB are equal and all
56 * three miBankProcPtr's point to the same function. Here, both reads and
57 * writes through the aperture access the same hardware location.
58 *
59 * Shared banking is indicated when pBankA and pBankB are equal but the
60 * source and destination functions differ. Here reads through the
61 * aperture do not necessarily access the same hardware location as writes.
62 *
63 * Double banking is indicated when pBankA and pBankB differ. Here two
64 * independent apertures are used to provide read/write access to
65 * potentially different hardware locations.
66 *
67 * Any other combination will result in no banking.
68 */
69 miBankProcPtr SetSourceBank; /* Set pBankA bank number */
70 miBankProcPtr SetDestinationBank; /* Set pBankB bank number */
71 miBankProcPtr SetSourceAndDestinationBanks; /* Set both bank numbers */
72
73 pointer pBankA; /* First aperture location */
74 pointer pBankB; /* First or second aperture location */
75
76 /*
77 * BankSize is in units of sizeof(char) and is the size of each bank.
78 */
79 unsigned long BankSize;
80
81 /*
82 * nBankDepth is the colour depth associated with the maximum number of a
83 * pixel's bits that are simultaneously accessible through the frame buffer
84 * aperture.
85 */
86 unsigned int nBankDepth;
87} miBankInfoRec, *miBankInfoPtr;
88
89Bool
90miInitializeBanking(
91 ScreenPtr /*pScreen*/,
92 unsigned int /*xsize*/,
93 unsigned int /*ysize*/,
94 unsigned int /*width*/,
95 miBankInfoPtr /*pBankInfo*/
96);
97
98Bool
99miModifyBanking(
100 ScreenPtr /*pScreen*/,
101 miBankInfoPtr /*pBankInfo*/
102);
103
104/*
105 * This function determines the minimum screen width, given a initial estimate
106 * and various screen attributes. DDX needs to determine this width before
107 * initializing the screen.
108 */
109int
110miScanLineWidth(
111 unsigned int /*xsize*/,
112 unsigned int /*ysize*/,
113 unsigned int /*width*/,
114 unsigned long /*BankSize*/,
115 PixmapFormatRec * /*pBankFormat*/,
116 unsigned int /*nWidthUnit*/
117);
118
119#endif /* __MIBANK_H__ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette