First import
[xorg_rtime.git] / xorg-server-1.4 / fb / fballpriv.c
blob8efb8fa996f1cf957407e1d1bedade74e145bed6
1 /*
2 * Copyright © 1998 Keith Packard
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
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of Keith Packard not be used in
9 * advertising or publicity pertaining to distribution of the software without
10 * specific, written prior permission. Keith Packard makes no
11 * representations about the suitability of this software for any purpose. It
12 * is provided "as is" without express or implied warranty.
14 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL KEITH PACKARD 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.
23 #ifdef HAVE_DIX_CONFIG_H
24 #include <dix-config.h>
25 #endif
27 #include "fb.h"
29 #ifdef FB_SCREEN_PRIVATE
30 int fbScreenPrivateIndex;
31 int fbGetScreenPrivateIndex(void)
33 return fbScreenPrivateIndex;
35 #endif
36 int fbGCPrivateIndex;
37 int fbGetGCPrivateIndex(void)
39 return fbGCPrivateIndex;
41 #ifndef FB_NO_WINDOW_PIXMAPS
42 int fbWinPrivateIndex;
43 int fbGetWinPrivateIndex(void)
45 return fbWinPrivateIndex;
47 #endif
48 int fbGeneration;
50 Bool
51 fbAllocatePrivates(ScreenPtr pScreen, int *pGCIndex)
53 if (fbGeneration != serverGeneration)
55 fbGCPrivateIndex = miAllocateGCPrivateIndex ();
56 #ifndef FB_NO_WINDOW_PIXMAPS
57 fbWinPrivateIndex = AllocateWindowPrivateIndex();
58 #endif
59 #ifdef FB_SCREEN_PRIVATE
60 fbScreenPrivateIndex = AllocateScreenPrivateIndex ();
61 if (fbScreenPrivateIndex == -1)
62 return FALSE;
63 #endif
65 fbGeneration = serverGeneration;
67 if (pGCIndex)
68 *pGCIndex = fbGCPrivateIndex;
69 if (!AllocateGCPrivate(pScreen, fbGCPrivateIndex, sizeof(FbGCPrivRec)))
70 return FALSE;
71 #ifndef FB_NO_WINDOW_PIXMAPS
72 if (!AllocateWindowPrivate(pScreen, fbWinPrivateIndex, 0))
73 return FALSE;
74 #endif
75 #ifdef FB_SCREEN_PRIVATE
77 FbScreenPrivPtr pScreenPriv;
79 pScreenPriv = (FbScreenPrivPtr) xalloc (sizeof (FbScreenPrivRec));
80 if (!pScreenPriv)
81 return FALSE;
82 pScreen->devPrivates[fbScreenPrivateIndex].ptr = (pointer) pScreenPriv;
84 #endif
85 return TRUE;
88 #ifdef FB_ACCESS_WRAPPER
89 ReadMemoryProcPtr wfbReadMemory;
90 WriteMemoryProcPtr wfbWriteMemory;
91 #endif