sun.h revision b9325ec5
1b9325ec5Stsutsui 2b9325ec5Stsutsui/* $Xorg: sun.h,v 1.3 2000/08/17 19:48:29 cpqbld Exp $ */ 3b9325ec5Stsutsui 4b9325ec5Stsutsui/*- 5b9325ec5Stsutsui * Copyright (c) 1987 by the Regents of the University of California 6b9325ec5Stsutsui * 7b9325ec5Stsutsui * Permission to use, copy, modify, and distribute this 8b9325ec5Stsutsui * software and its documentation for any purpose and without 9b9325ec5Stsutsui * fee is hereby granted, provided that the above copyright 10b9325ec5Stsutsui * notice appear in all copies. The University of California 11b9325ec5Stsutsui * makes no representations about the suitability of this 12b9325ec5Stsutsui * software for any purpose. It is provided "as is" without 13b9325ec5Stsutsui * express or implied warranty. 14b9325ec5Stsutsui */ 15b9325ec5Stsutsui 16b9325ec5Stsutsui/* $XFree86: xc/programs/Xserver/hw/sun/sun.h,v 3.13 2003/11/17 22:20:36 dawes Exp $ */ 17b9325ec5Stsutsui 18b9325ec5Stsutsui#ifndef _SUN_H_ 19b9325ec5Stsutsui#define _SUN_H_ 20b9325ec5Stsutsui 21b9325ec5Stsutsui/* X headers */ 22b9325ec5Stsutsui#include <X11/Xos.h> 23b9325ec5Stsutsui#undef index /* don't mangle silly Sun structure member names */ 24b9325ec5Stsutsui#include <X11/X.h> 25b9325ec5Stsutsui#include <X11/Xproto.h> 26b9325ec5Stsutsui 27b9325ec5Stsutsui/* general system headers */ 28b9325ec5Stsutsui#ifndef NOSTDHDRS 29b9325ec5Stsutsui# include <stdlib.h> 30b9325ec5Stsutsui#else 31b9325ec5Stsutsui# include <malloc.h> 32b9325ec5Stsutsuiextern char *getenv(); 33b9325ec5Stsutsui#endif 34b9325ec5Stsutsui 35b9325ec5Stsutsui/* system headers common to both SunOS and Solaris */ 36b9325ec5Stsutsui#include <sys/param.h> 37b9325ec5Stsutsui#include <sys/file.h> 38b9325ec5Stsutsui#include <sys/filio.h> 39b9325ec5Stsutsui#include <sys/ioctl.h> 40b9325ec5Stsutsui#include <sys/resource.h> 41b9325ec5Stsutsui 42b9325ec5Stsutsui#ifdef SVR4 43b9325ec5Stsutsui# ifdef X_POSIX_C_SOURCE 44b9325ec5Stsutsui# define _POSIX_C_SOURCE X_POSIX_C_SOURCE 45b9325ec5Stsutsui# include <signal.h> 46b9325ec5Stsutsui# undef _POSIX_C_SOURCE 47b9325ec5Stsutsui# else 48b9325ec5Stsutsui# define _POSIX_SOURCE 49b9325ec5Stsutsui# include <signal.h> 50b9325ec5Stsutsui# undef _POSIX_SOURCE 51b9325ec5Stsutsui# endif 52b9325ec5Stsutsui#endif 53b9325ec5Stsutsui 54b9325ec5Stsutsui#include <fcntl.h> 55b9325ec5Stsutsui 56b9325ec5Stsutsui#ifndef __bsdi__ 57b9325ec5Stsutsui# ifndef CSRG_BASED 58b9325ec5Stsutsui# ifndef i386 59b9325ec5Stsutsui# include <poll.h> 60b9325ec5Stsutsui# else 61b9325ec5Stsutsui# include <sys/poll.h> 62b9325ec5Stsutsui# endif 63b9325ec5Stsutsui# endif 64b9325ec5Stsutsui#else 65b9325ec5Stsutsui# include <unistd.h> 66b9325ec5Stsutsui#endif 67b9325ec5Stsutsui 68b9325ec5Stsutsui#include <errno.h> 69b9325ec5Stsutsui#include <memory.h> 70b9325ec5Stsutsui#include <signal.h> 71b9325ec5Stsutsui 72b9325ec5Stsutsui 73b9325ec5Stsutsui/* 74b9325ec5Stsutsui * Sun specific headers Sun moved in Solaris, and are different for NetBSD. 75b9325ec5Stsutsui * 76b9325ec5Stsutsui * Even if only needed by one source file, I have put them here 77b9325ec5Stsutsui * to simplify finding them... 78b9325ec5Stsutsui */ 79b9325ec5Stsutsui#ifdef SVR4 80b9325ec5Stsutsui# include <sys/fbio.h> 81b9325ec5Stsutsui# include <sys/kbd.h> 82b9325ec5Stsutsui# include <sys/kbio.h> 83b9325ec5Stsutsui# include <sys/msio.h> 84b9325ec5Stsutsui# include <sys/vuid_event.h> 85b9325ec5Stsutsui# include <sys/memreg.h> 86b9325ec5Stsutsui# include <stropts.h> 87b9325ec5Stsutsui# define usleep(usec) poll((struct pollfd *) 0, (size_t) 0, usec / 1000) 88b9325ec5Stsutsui#else 89b9325ec5Stsutsui# ifndef CSRG_BASED 90b9325ec5Stsutsui# include <sun/fbio.h> 91b9325ec5Stsutsui# include <sundev/kbd.h> 92b9325ec5Stsutsui# include <sundev/kbio.h> 93b9325ec5Stsutsui# include <sundev/msio.h> 94b9325ec5Stsutsui# include <sundev/vuid_event.h> 95b9325ec5Stsutsui# include <pixrect/pixrect.h> 96b9325ec5Stsutsui# include <pixrect/memreg.h> 97b9325ec5Stsutsuiextern int ioctl(); 98b9325ec5Stsutsuiextern int getrlimit(); 99b9325ec5Stsutsuiextern int setrlimit(); 100b9325ec5Stsutsuiextern int getpagesize(); 101b9325ec5Stsutsui# else 102b9325ec5Stsutsui# if defined(CSRG_BASED) && !defined(__bsdi__) && !defined(__NetBSD__) 103b9325ec5Stsutsui# include <machine/fbio.h> 104b9325ec5Stsutsui# include <machine/kbd.h> 105b9325ec5Stsutsui# include <machine/kbio.h> 106b9325ec5Stsutsui# include <machine/vuid_event.h> 107b9325ec5Stsutsui# endif 108b9325ec5Stsutsui# ifdef __bsdi__ 109b9325ec5Stsutsui# include <sys/fbio.h> 110b9325ec5Stsutsui# include </sys/sparc/dev/kbd.h> 111b9325ec5Stsutsui# include </sys/sparc/dev/kbio.h> 112b9325ec5Stsutsui# include </sys/sparc/dev/vuid_event.h> 113b9325ec5Stsutsui# endif 114b9325ec5Stsutsui# ifdef __NetBSD__ 115b9325ec5Stsutsui# include <dev/sun/fbio.h> 116b9325ec5Stsutsui# include <machine/kbd.h> 117b9325ec5Stsutsui# include <dev/sun/kbio.h> /* also <sparc/kbio.h> -wsr */ 118b9325ec5Stsutsui# include <dev/sun/vuid_event.h> /* also <sparc/vud_event.h> -wsr */ 119b9325ec5Stsutsui# endif 120b9325ec5Stsutsui# endif 121b9325ec5Stsutsui#endif 122b9325ec5Stsutsui 123b9325ec5Stsutsui/* 124b9325ec5Stsutsui * Sun doesn't see fit to add the TCX to <sys/fbio.h> 125b9325ec5Stsutsui */ 126b9325ec5Stsutsui#ifndef SVR4 127b9325ec5Stsutsui/* On SunOS 4.1.x the TCX pretends to be a CG3 */ 128b9325ec5Stsutsui#define XFBTYPE_LASTPLUSONE FBTYPE_LASTPLUSONE 129b9325ec5Stsutsui#else 130b9325ec5Stsutsui#define XFBTYPE_TCX 21 131b9325ec5Stsutsui#define XFBTYPE_LASTPLUSONE 22 132b9325ec5Stsutsui#endif 133b9325ec5Stsutsui 134b9325ec5Stsutsui#include <sys/time.h> 135b9325ec5Stsutsui 136b9325ec5Stsutsui/* 137b9325ec5Stsutsui * Server specific headers 138b9325ec5Stsutsui */ 139b9325ec5Stsutsui#include "misc.h" 140b9325ec5Stsutsui#undef abs /* don't munge function prototypes in headers, sigh */ 141b9325ec5Stsutsui#include "scrnintstr.h" 142b9325ec5Stsutsui#ifdef NEED_EVENTS 143b9325ec5Stsutsui# include "inputstr.h" 144b9325ec5Stsutsui#endif 145b9325ec5Stsutsui#include "input.h" 146b9325ec5Stsutsui#include "colormapst.h" 147b9325ec5Stsutsui#include "colormap.h" 148b9325ec5Stsutsui#include "cursorstr.h" 149b9325ec5Stsutsui#include "cursor.h" 150b9325ec5Stsutsui#include "dixstruct.h" 151b9325ec5Stsutsui#include "dix.h" 152b9325ec5Stsutsui#include "opaque.h" 153b9325ec5Stsutsui#include "resource.h" 154b9325ec5Stsutsui#include "servermd.h" 155b9325ec5Stsutsui#include "windowstr.h" 156b9325ec5Stsutsui#include "mipointer.h" 157b9325ec5Stsutsui 158b9325ec5Stsutsui/* 159b9325ec5Stsutsui * ddx specific headers 160b9325ec5Stsutsui */ 161b9325ec5Stsutsui#ifndef PSZ 162b9325ec5Stsutsui#define PSZ 8 163b9325ec5Stsutsui#endif 164b9325ec5Stsutsui 165b9325ec5Stsutsuiextern int monitorResolution; 166b9325ec5Stsutsui 167b9325ec5Stsutsui 168b9325ec5Stsutsui/* Frame buffer devices */ 169b9325ec5Stsutsui#ifdef SVR4 170b9325ec5Stsutsui# define CGTWO0DEV "/dev/fbs/cgtwo0" 171b9325ec5Stsutsui# define CGTWO1DEV "/dev/fbs/cgtwo1" 172b9325ec5Stsutsui# define CGTWO2DEV "/dev/fbs/cgtwo2" 173b9325ec5Stsutsui# define CGTWO3DEV "/dev/fbs/cgtwo3" 174b9325ec5Stsutsui# define CGTHREE0DEV "/dev/fbs/cgthree0" 175b9325ec5Stsutsui# define CGTHREE1DEV "/dev/fbs/cgthree1" 176b9325ec5Stsutsui# define CGTHREE2DEV "/dev/fbs/cgthree2" 177b9325ec5Stsutsui# define CGTHREE3DEV "/dev/fbs/cgthree3" 178b9325ec5Stsutsui# define CGFOUR0DEV "/dev/fbs/cgfour0" 179b9325ec5Stsutsui# define CGSIX0DEV "/dev/fbs/cgsix0" 180b9325ec5Stsutsui# define CGSIX1DEV "/dev/fbs/cgsix1" 181b9325ec5Stsutsui# define CGSIX2DEV "/dev/fbs/cgsix2" 182b9325ec5Stsutsui# define CGSIX3DEV "/dev/fbs/cgsix3" 183b9325ec5Stsutsui# define BWTWO0DEV "/dev/fbs/bwtwo0" 184b9325ec5Stsutsui# define BWTWO1DEV "/dev/fbs/bwtwo1" 185b9325ec5Stsutsui# define BWTWO2DEV "/dev/fbs/bwtwo2" 186b9325ec5Stsutsui# define BWTWO3DEV "/dev/fbs/bwtwo3" 187b9325ec5Stsutsui# define CGEIGHT0DEV "/dev/fbs/cgeight0" 188b9325ec5Stsutsui# define TCX0DEV "/dev/fbs/tcx0" 189b9325ec5Stsutsui#else 190b9325ec5Stsutsui# define CGTWO0DEV "/dev/cgtwo0" 191b9325ec5Stsutsui# define CGTWO1DEV "/dev/cgtwo1" 192b9325ec5Stsutsui# define CGTWO2DEV "/dev/cgtwo2" 193b9325ec5Stsutsui# define CGTWO3DEV "/dev/cgtwo3" 194b9325ec5Stsutsui# define CGTHREE0DEV "/dev/cgthree0" 195b9325ec5Stsutsui# define CGTHREE1DEV "/dev/cgthree1" 196b9325ec5Stsutsui# define CGTHREE2DEV "/dev/cgthree2" 197b9325ec5Stsutsui# define CGTHREE3DEV "/dev/cgthree3" 198b9325ec5Stsutsui# define CGFOUR0DEV "/dev/cgfour0" 199b9325ec5Stsutsui# define CGSIX0DEV "/dev/cgsix0" 200b9325ec5Stsutsui# define CGSIX1DEV "/dev/cgsix1" 201b9325ec5Stsutsui# define CGSIX2DEV "/dev/cgsix2" 202b9325ec5Stsutsui# define CGSIX3DEV "/dev/cgsix3" 203b9325ec5Stsutsui# define BWTWO0DEV "/dev/bwtwo0" 204b9325ec5Stsutsui# define BWTWO1DEV "/dev/bwtwo1" 205b9325ec5Stsutsui# define BWTWO2DEV "/dev/bwtwo2" 206b9325ec5Stsutsui# define BWTWO3DEV "/dev/bwtwo3" 207b9325ec5Stsutsui# define CGEIGHT0DEV "/dev/cgeight0" 208b9325ec5Stsutsui#endif 209b9325ec5Stsutsui 210b9325ec5Stsutsui/* 211b9325ec5Stsutsui * MAXEVENTS is the maximum number of events the mouse and keyboard functions 212b9325ec5Stsutsui * will read on a given call to their GetEvents vectors. 213b9325ec5Stsutsui */ 214b9325ec5Stsutsui#define MAXEVENTS 32 215b9325ec5Stsutsui 216b9325ec5Stsutsui/* 217b9325ec5Stsutsui * Data private to any sun keyboard. 218b9325ec5Stsutsui */ 219b9325ec5Stsutsuitypedef struct { 220b9325ec5Stsutsui int fd; 221b9325ec5Stsutsui int type; /* Type of keyboard */ 222b9325ec5Stsutsui int layout; /* The layout of the keyboard */ 223b9325ec5Stsutsui int click; /* kbd click save state */ 224b9325ec5Stsutsui Leds leds; /* last known LED state */ 225b9325ec5Stsutsui} sunKbdPrivRec, *sunKbdPrivPtr; 226b9325ec5Stsutsui 227b9325ec5Stsutsuiextern sunKbdPrivRec sunKbdPriv; 228b9325ec5Stsutsui 229b9325ec5Stsutsui/* 230b9325ec5Stsutsui * Data private to any sun pointer device. 231b9325ec5Stsutsui */ 232b9325ec5Stsutsuitypedef struct { 233b9325ec5Stsutsui int fd; 234b9325ec5Stsutsui int bmask; /* last known button state */ 235b9325ec5Stsutsui} sunPtrPrivRec, *sunPtrPrivPtr; 236b9325ec5Stsutsui 237b9325ec5Stsutsuiextern sunPtrPrivRec sunPtrPriv; 238b9325ec5Stsutsui 239b9325ec5Stsutsuitypedef struct { 240b9325ec5Stsutsui BYTE key; 241b9325ec5Stsutsui CARD8 modifiers; 242b9325ec5Stsutsui} SunModmapRec; 243b9325ec5Stsutsui 244b9325ec5Stsutsuitypedef struct { 245b9325ec5Stsutsui int width, height; 246b9325ec5Stsutsui Bool has_cursor; 247b9325ec5Stsutsui CursorPtr pCursor; /* current cursor */ 248b9325ec5Stsutsui} sunCursorRec, *sunCursorPtr; 249b9325ec5Stsutsui 250b9325ec5Stsutsuitypedef struct { 251b9325ec5Stsutsui ColormapPtr installedMap; 252b9325ec5Stsutsui CloseScreenProcPtr CloseScreen; 253b9325ec5Stsutsui void (*UpdateColormap)(ScreenPtr, int, int, u_char *, u_char *, u_char *); 254b9325ec5Stsutsui void (*GetColormap)(ScreenPtr, int, int, u_char *, u_char *, u_char *); 255b9325ec5Stsutsui sunCursorRec hardwareCursor; 256b9325ec5Stsutsui Bool hasHardwareCursor; 257b9325ec5Stsutsui} sunScreenRec, *sunScreenPtr; 258b9325ec5Stsutsui 259b9325ec5Stsutsuiextern DevPrivateKeyRec sunScreenPrivateKeyRec; 260b9325ec5Stsutsui#define sunScreenPrivateKey (&sunScreenPrivateKeyRec) 261b9325ec5Stsutsui#define sunSetScreenPrivate(pScreen, v) \ 262b9325ec5Stsutsui dixSetPrivate(&(pScreen)->devPrivates, sunScreenPrivateKey, (v)) 263b9325ec5Stsutsui#define sunGetScreenPrivate(pScreen) ((sunScreenRec *) \ 264b9325ec5Stsutsui dixLookupPrivate(&(pScreen)->devPrivates, sunScreenPrivateKey)) 265b9325ec5Stsutsui 266b9325ec5Stsutsuitypedef struct { 267b9325ec5Stsutsui unsigned char* fb; /* Frame buffer itself */ 268b9325ec5Stsutsui int fd; /* frame buffer for ioctl()s, */ 269b9325ec5Stsutsui struct fbtype info; /* Frame buffer characteristics */ 270b9325ec5Stsutsui void (*EnterLeave)(ScreenPtr, int);/* screen switch */ 271b9325ec5Stsutsui unsigned char* fbPriv; /* fbattr stuff, for the real type */ 272b9325ec5Stsutsui} fbFd; 273b9325ec5Stsutsui 274b9325ec5Stsutsuitypedef Bool (*sunFbInitProc)( 275b9325ec5Stsutsui int /* screen */, 276b9325ec5Stsutsui ScreenPtr /* pScreen */, 277b9325ec5Stsutsui int /* argc */, 278b9325ec5Stsutsui char** /* argv */ 279b9325ec5Stsutsui); 280b9325ec5Stsutsui 281b9325ec5Stsutsuitypedef struct { 282b9325ec5Stsutsui sunFbInitProc init; /* init procedure for this fb */ 283b9325ec5Stsutsui const char *name; /* /usr/include/fbio names */ 284b9325ec5Stsutsui} sunFbDataRec; 285b9325ec5Stsutsui 286b9325ec5Stsutsui/* sunInit.c */ 287b9325ec5Stsutsuiextern EventList *sunEvents; 288b9325ec5Stsutsuiextern Bool sunAutoRepeatHandlersInstalled; 289b9325ec5Stsutsuiextern sunFbDataRec sunFbData[]; 290b9325ec5Stsutsuiextern fbFd sunFbs[]; 291b9325ec5Stsutsuiextern Bool sunSwapLkeys; 292b9325ec5Stsutsuiextern Bool sunFlipPixels; 293b9325ec5Stsutsuiextern Bool sunFbInfo; 294b9325ec5Stsutsuiextern Bool sunCG4Frob; 295b9325ec5Stsutsuiextern Bool sunNoGX; 296b9325ec5Stsutsui 297b9325ec5Stsutsui/* sunKeyMap.c */ 298b9325ec5Stsutsuiextern KeySymsRec sunKeySyms[]; 299b9325ec5Stsutsuiextern const SunModmapRec *sunModMaps[]; 300b9325ec5Stsutsuiextern const int sunMaxLayout; 301b9325ec5Stsutsuiextern KeySym *sunType4KeyMaps[]; 302b9325ec5Stsutsuiextern const SunModmapRec *sunType4ModMaps[]; 303b9325ec5Stsutsui 304b9325ec5Stsutsui/* sunKbd.c */ 305b9325ec5Stsutsuiextern long sunAutoRepeatInitiate; 306b9325ec5Stsutsuiextern long sunAutoRepeatDelay; 307b9325ec5Stsutsuiextern DeviceIntPtr sunKeyboardDevice; 308b9325ec5Stsutsui 309b9325ec5Stsutsui/* sunMouse.c */ 310b9325ec5Stsutsuiextern Bool sunActiveZaphod; 311b9325ec5Stsutsuiextern DeviceIntPtr sunPointerDevice; 312b9325ec5Stsutsuiextern miPointerScreenFuncRec sunPointerScreenFuncs; 313b9325ec5Stsutsui 314b9325ec5Stsutsui/* sunFbs.c */ 315b9325ec5Stsutsuiextern int sunScreenIndex; 316b9325ec5Stsutsui 317b9325ec5Stsutsui/* sunCursor.c */ 318b9325ec5Stsutsuiextern Bool sunCursorInitialize(ScreenPtr); 319b9325ec5Stsutsuiextern void sunDisableCursor(ScreenPtr); 320b9325ec5Stsutsui 321b9325ec5Stsutsui/* sunInit.c */ 322b9325ec5Stsutsuiextern void sunNonBlockConsoleOff( 323b9325ec5Stsutsui#if defined(SVR4) || defined(CSRG_BASED) 324b9325ec5Stsutsui void 325b9325ec5Stsutsui#else 326b9325ec5Stsutsui char* /* arg */ 327b9325ec5Stsutsui#endif 328b9325ec5Stsutsui); 329b9325ec5Stsutsui 330b9325ec5Stsutsui/* sunIo.c */ 331b9325ec5Stsutsuiextern void sunEnqueueEvents(void); 332b9325ec5Stsutsui 333b9325ec5Stsutsui/* sunGX.c */ 334b9325ec5Stsutsuiextern int sunGXInit(ScreenPtr, fbFd *); 335b9325ec5Stsutsui 336b9325ec5Stsutsui/* sunFbs.c */ 337b9325ec5Stsutsuiextern Bool sunSaveScreen(ScreenPtr, int); 338b9325ec5Stsutsuiextern Bool sunScreenInit(ScreenPtr); 339b9325ec5Stsutsuiextern pointer sunMemoryMap(size_t, off_t, int); 340b9325ec5Stsutsuiextern Bool sunScreenAllocate(ScreenPtr); 341b9325ec5Stsutsuiextern Bool sunInitCommon(int, ScreenPtr, off_t, 342b9325ec5Stsutsui Bool (* /* init1 */)(ScreenPtr, pointer, int, int, int, int, int, int), 343b9325ec5Stsutsui void (* /* init2 */)(ScreenPtr), 344b9325ec5Stsutsui Bool (* /* cr_cm */)(ScreenPtr), 345b9325ec5Stsutsui Bool (* /* save */)(ScreenPtr, int), 346b9325ec5Stsutsui int); 347b9325ec5Stsutsui 348b9325ec5Stsutsui/* sunKbd.c */ 349b9325ec5Stsutsuiextern int sunChangeKbdTranslation(int, Bool); 350b9325ec5Stsutsuiextern Firm_event* sunKbdGetEvents(int, Bool, int *, Bool *); 351b9325ec5Stsutsuiextern void sunKbdEnqueueEvent(DeviceIntPtr, Firm_event *); 352b9325ec5Stsutsuiextern int sunKbdProc(DeviceIntPtr, int); 353b9325ec5Stsutsuiextern void sunKbdWait(void); 354b9325ec5Stsutsuivoid sunBlockHandler(int, pointer, pointer, pointer); 355b9325ec5Stsutsuivoid sunWakeupHandler(int, pointer, unsigned long, pointer); 356b9325ec5Stsutsui 357b9325ec5Stsutsui/* sunMouse.c */ 358b9325ec5Stsutsuiextern Firm_event* sunMouseGetEvents(int, Bool, int *, Bool *); 359b9325ec5Stsutsuiextern void sunMouseEnqueueEvent(DeviceIntPtr, Firm_event *); 360b9325ec5Stsutsuiextern int sunMouseProc(DeviceIntPtr, int); 361b9325ec5Stsutsui 362b9325ec5Stsutsui/* sunCfb.c */ 363b9325ec5StsutsuiBool sunCG3Init(int, ScreenPtr, int, char **); 364b9325ec5StsutsuiBool sunTCXInit(int, ScreenPtr, int, char **); 365b9325ec5StsutsuiBool sunCG2Init(int, ScreenPtr, int, char **); 366b9325ec5StsutsuiBool sunCG4Init(int, ScreenPtr, int, char **); 367b9325ec5StsutsuiBool sunCG6Init(int, ScreenPtr, int, char **); 368b9325ec5Stsutsui 369b9325ec5Stsutsui/* sunCfb24.c */ 370b9325ec5StsutsuiBool sunCG8Init(int, ScreenPtr, int, char **); 371b9325ec5Stsutsui 372b9325ec5Stsutsui/* sunMfb.c */ 373b9325ec5StsutsuiBool sunBW2Init(int, ScreenPtr, int, char **); 374b9325ec5Stsutsui 375b9325ec5Stsutsui/* XXX */ 376b9325ec5Stsutsuiextern void mfbDoBitblt(DrawablePtr, DrawablePtr, int, RegionPtr, DDXPointPtr); 377b9325ec5Stsutsui 378b9325ec5Stsutsui/*- 379b9325ec5Stsutsui * TVTOMILLI(tv) 380b9325ec5Stsutsui * Given a struct timeval, convert its time into milliseconds... 381b9325ec5Stsutsui */ 382b9325ec5Stsutsui#define TVTOMILLI(tv) (((tv).tv_usec/1000)+((tv).tv_sec*1000)) 383b9325ec5Stsutsui 384b9325ec5Stsutsuiextern Bool sunCfbSetupScreen( 385b9325ec5Stsutsui ScreenPtr /* pScreen */, 386b9325ec5Stsutsui pointer /* pbits */, /* pointer to screen bitmap */ 387b9325ec5Stsutsui int /* xsize */, /* in pixels */ 388b9325ec5Stsutsui int /* ysize */, 389b9325ec5Stsutsui int /* dpix */, /* dots per inch */ 390b9325ec5Stsutsui int /* dpiy */, /* dots per inch */ 391b9325ec5Stsutsui int /* width */, /* pixel width of frame buffer */ 392b9325ec5Stsutsui int /* bpp */ /* bits per pixel of root */ 393b9325ec5Stsutsui); 394b9325ec5Stsutsui 395b9325ec5Stsutsuiextern Bool sunCfbFinishScreenInit( 396b9325ec5Stsutsui ScreenPtr /* pScreen */, 397b9325ec5Stsutsui pointer /* pbits */, /* pointer to screen bitmap */ 398b9325ec5Stsutsui int /* xsize */, /* in pixels */ 399b9325ec5Stsutsui int /* ysize */, 400b9325ec5Stsutsui int /* dpix */, /* dots per inch */ 401b9325ec5Stsutsui int /* dpiy */, /* dots per inch */ 402b9325ec5Stsutsui int /* width */, /* pixel width of frame buffer */ 403b9325ec5Stsutsui int /* bpp */ /* bits per pixel of root */ 404b9325ec5Stsutsui); 405b9325ec5Stsutsui 406b9325ec5Stsutsuiextern Bool sunCfbScreenInit( 407b9325ec5Stsutsui ScreenPtr /* pScreen */, 408b9325ec5Stsutsui pointer /* pbits */, /* pointer to screen bitmap */ 409b9325ec5Stsutsui int /* xsize */, /* in pixels */ 410b9325ec5Stsutsui int /* ysize */, 411b9325ec5Stsutsui int /* dpix */, /* dots per inch */ 412b9325ec5Stsutsui int /* dpiy */, /* dots per inch */ 413b9325ec5Stsutsui int /* width */, /* pixel width of frame buffer */ 414b9325ec5Stsutsui int /* bpp */ /* bits per pixel of root */ 415b9325ec5Stsutsui); 416b9325ec5Stsutsui 417b9325ec5Stsutsuiextern void sunInstallColormap( 418b9325ec5Stsutsui ColormapPtr /* cmap */ 419b9325ec5Stsutsui); 420b9325ec5Stsutsui 421b9325ec5Stsutsuiextern void sunUninstallColormap( 422b9325ec5Stsutsui ColormapPtr /* cmap */ 423b9325ec5Stsutsui); 424b9325ec5Stsutsui 425b9325ec5Stsutsuiextern int sunListInstalledColormaps( 426b9325ec5Stsutsui ScreenPtr /* pScreen */, 427b9325ec5Stsutsui Colormap* /* pCmapList */ 428b9325ec5Stsutsui); 429b9325ec5Stsutsui 430b9325ec5Stsutsui#endif 431