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 250cb17d216Stsutsui#define NCMAP 256 251cb17d216Stsutsuitypedef struct { 252cb17d216Stsutsui u_char origRed[NCMAP]; 253cb17d216Stsutsui u_char origGreen[NCMAP]; 254cb17d216Stsutsui u_char origBlue[NCMAP]; 255cb17d216Stsutsui} sunCmapRec, *sunCmapPtr; 256cb17d216Stsutsui 257b9325ec5Stsutsuitypedef struct { 258b9325ec5Stsutsui ColormapPtr installedMap; 259b9325ec5Stsutsui CloseScreenProcPtr CloseScreen; 260b9325ec5Stsutsui void (*UpdateColormap)(ScreenPtr, int, int, u_char *, u_char *, u_char *); 261b9325ec5Stsutsui void (*GetColormap)(ScreenPtr, int, int, u_char *, u_char *, u_char *); 262cb17d216Stsutsui Bool origColormapValid; 263cb17d216Stsutsui sunCmapRec origColormap; 264cb17d216Stsutsui void (*RestoreColormap)(ScreenPtr); 265b9325ec5Stsutsui sunCursorRec hardwareCursor; 266b9325ec5Stsutsui Bool hasHardwareCursor; 267b9325ec5Stsutsui} sunScreenRec, *sunScreenPtr; 268b9325ec5Stsutsui 269b9325ec5Stsutsuiextern DevPrivateKeyRec sunScreenPrivateKeyRec; 270b9325ec5Stsutsui#define sunScreenPrivateKey (&sunScreenPrivateKeyRec) 271b9325ec5Stsutsui#define sunSetScreenPrivate(pScreen, v) \ 272b9325ec5Stsutsui dixSetPrivate(&(pScreen)->devPrivates, sunScreenPrivateKey, (v)) 273b9325ec5Stsutsui#define sunGetScreenPrivate(pScreen) ((sunScreenRec *) \ 274b9325ec5Stsutsui dixLookupPrivate(&(pScreen)->devPrivates, sunScreenPrivateKey)) 275b9325ec5Stsutsui 276b9325ec5Stsutsuitypedef struct { 277b9325ec5Stsutsui unsigned char* fb; /* Frame buffer itself */ 278b9325ec5Stsutsui int fd; /* frame buffer for ioctl()s, */ 279b9325ec5Stsutsui struct fbtype info; /* Frame buffer characteristics */ 280b9325ec5Stsutsui void (*EnterLeave)(ScreenPtr, int);/* screen switch */ 281b9325ec5Stsutsui unsigned char* fbPriv; /* fbattr stuff, for the real type */ 282b9325ec5Stsutsui} fbFd; 283b9325ec5Stsutsui 284b9325ec5Stsutsuitypedef Bool (*sunFbInitProc)( 285b9325ec5Stsutsui int /* screen */, 286b9325ec5Stsutsui ScreenPtr /* pScreen */, 287b9325ec5Stsutsui int /* argc */, 288b9325ec5Stsutsui char** /* argv */ 289b9325ec5Stsutsui); 290b9325ec5Stsutsui 291b9325ec5Stsutsuitypedef struct { 292b9325ec5Stsutsui sunFbInitProc init; /* init procedure for this fb */ 293b9325ec5Stsutsui const char *name; /* /usr/include/fbio names */ 294b9325ec5Stsutsui} sunFbDataRec; 295b9325ec5Stsutsui 296b9325ec5Stsutsui/* sunInit.c */ 297b9325ec5Stsutsuiextern EventList *sunEvents; 298b9325ec5Stsutsuiextern sunFbDataRec sunFbData[]; 299b9325ec5Stsutsuiextern fbFd sunFbs[]; 300b9325ec5Stsutsuiextern Bool sunSwapLkeys; 301e199ea96Stsutsuiextern Bool sunForceMono; 302e199ea96Stsutsuiextern Bool sunDebug; 30385d6961bStsutsuiextern char *sunDeviceList; 304b9325ec5Stsutsuiextern Bool sunFlipPixels; 305b9325ec5Stsutsuiextern Bool sunFbInfo; 306b9325ec5Stsutsuiextern Bool sunCG4Frob; 307b9325ec5Stsutsuiextern Bool sunNoGX; 308b9325ec5Stsutsui 309b9325ec5Stsutsui/* sunKeyMap.c */ 310b9325ec5Stsutsuiextern KeySymsRec sunKeySyms[]; 311b9325ec5Stsutsuiextern const int sunMaxLayout; 312b9325ec5Stsutsuiextern KeySym *sunType4KeyMaps[]; 313b9325ec5Stsutsui 314b9325ec5Stsutsui/* sunKbd.c */ 315b9325ec5Stsutsuiextern long sunAutoRepeatInitiate; 316b9325ec5Stsutsuiextern long sunAutoRepeatDelay; 317b9325ec5Stsutsuiextern DeviceIntPtr sunKeyboardDevice; 318b9325ec5Stsutsui 319b9325ec5Stsutsui/* sunMouse.c */ 320b9325ec5Stsutsuiextern Bool sunActiveZaphod; 321b9325ec5Stsutsuiextern DeviceIntPtr sunPointerDevice; 322b9325ec5Stsutsuiextern miPointerScreenFuncRec sunPointerScreenFuncs; 323b9325ec5Stsutsui 324b9325ec5Stsutsui/* sunFbs.c */ 325b9325ec5Stsutsuiextern int sunScreenIndex; 326b9325ec5Stsutsui 327b9325ec5Stsutsui/* sunCursor.c */ 328b9325ec5Stsutsuiextern Bool sunCursorInitialize(ScreenPtr); 329b9325ec5Stsutsuiextern void sunDisableCursor(ScreenPtr); 330b9325ec5Stsutsui 331b9325ec5Stsutsui/* sunInit.c */ 332b9325ec5Stsutsuiextern void sunNonBlockConsoleOff( 333b9325ec5Stsutsui#if defined(SVR4) || defined(CSRG_BASED) 334b9325ec5Stsutsui void 335b9325ec5Stsutsui#else 336b9325ec5Stsutsui char* /* arg */ 337b9325ec5Stsutsui#endif 338b9325ec5Stsutsui); 339b9325ec5Stsutsui 340b9325ec5Stsutsui/* sunIo.c */ 341b9325ec5Stsutsuiextern void sunEnqueueEvents(void); 342b9325ec5Stsutsui 343b9325ec5Stsutsui/* sunGX.c */ 344b9325ec5Stsutsuiextern int sunGXInit(ScreenPtr, fbFd *); 345b9325ec5Stsutsui 346b9325ec5Stsutsui/* sunFbs.c */ 347b9325ec5Stsutsuiextern Bool sunSaveScreen(ScreenPtr, int); 348b9325ec5Stsutsuiextern Bool sunScreenInit(ScreenPtr); 349b9325ec5Stsutsuiextern pointer sunMemoryMap(size_t, off_t, int); 350b9325ec5Stsutsuiextern Bool sunScreenAllocate(ScreenPtr); 351b9325ec5Stsutsuiextern Bool sunInitCommon(int, ScreenPtr, off_t, 352b9325ec5Stsutsui Bool (* /* init1 */)(ScreenPtr, pointer, int, int, int, int, int, int), 353b9325ec5Stsutsui void (* /* init2 */)(ScreenPtr), 354b9325ec5Stsutsui Bool (* /* cr_cm */)(ScreenPtr), 355b9325ec5Stsutsui Bool (* /* save */)(ScreenPtr, int), 356b9325ec5Stsutsui int); 357b9325ec5Stsutsui 358b9325ec5Stsutsui/* sunKbd.c */ 359b9325ec5Stsutsuiextern int sunChangeKbdTranslation(int, Bool); 360b9325ec5Stsutsuiextern Firm_event* sunKbdGetEvents(int, Bool, int *, Bool *); 361b9325ec5Stsutsuiextern void sunKbdEnqueueEvent(DeviceIntPtr, Firm_event *); 362b9325ec5Stsutsuiextern int sunKbdProc(DeviceIntPtr, int); 363b9325ec5Stsutsuiextern void sunKbdWait(void); 364b9325ec5Stsutsui 365b9325ec5Stsutsui/* sunMouse.c */ 366b9325ec5Stsutsuiextern Firm_event* sunMouseGetEvents(int, Bool, int *, Bool *); 367b9325ec5Stsutsuiextern void sunMouseEnqueueEvent(DeviceIntPtr, Firm_event *); 368b9325ec5Stsutsuiextern int sunMouseProc(DeviceIntPtr, int); 369b9325ec5Stsutsui 370b9325ec5Stsutsui/* sunCfb.c */ 371b9325ec5StsutsuiBool sunCG3Init(int, ScreenPtr, int, char **); 372b9325ec5StsutsuiBool sunTCXInit(int, ScreenPtr, int, char **); 373b9325ec5StsutsuiBool sunCG2Init(int, ScreenPtr, int, char **); 374b9325ec5StsutsuiBool sunCG4Init(int, ScreenPtr, int, char **); 375b9325ec5StsutsuiBool sunCG6Init(int, ScreenPtr, int, char **); 376b9325ec5Stsutsui 377b9325ec5Stsutsui/* sunCfb24.c */ 378b9325ec5StsutsuiBool sunCG8Init(int, ScreenPtr, int, char **); 379b9325ec5Stsutsui 380b9325ec5Stsutsui/* sunMfb.c */ 381b9325ec5StsutsuiBool sunBW2Init(int, ScreenPtr, int, char **); 382b9325ec5Stsutsui 383b9325ec5Stsutsui/* XXX */ 384b9325ec5Stsutsuiextern void mfbDoBitblt(DrawablePtr, DrawablePtr, int, RegionPtr, DDXPointPtr); 385b9325ec5Stsutsui 386b9325ec5Stsutsui/*- 387b9325ec5Stsutsui * TVTOMILLI(tv) 388b9325ec5Stsutsui * Given a struct timeval, convert its time into milliseconds... 389b9325ec5Stsutsui */ 390b9325ec5Stsutsui#define TVTOMILLI(tv) (((tv).tv_usec/1000)+((tv).tv_sec*1000)) 391b9325ec5Stsutsui 392b9325ec5Stsutsuiextern Bool sunCfbSetupScreen( 393b9325ec5Stsutsui ScreenPtr /* pScreen */, 394b9325ec5Stsutsui pointer /* pbits */, /* pointer to screen bitmap */ 395b9325ec5Stsutsui int /* xsize */, /* in pixels */ 396b9325ec5Stsutsui int /* ysize */, 397b9325ec5Stsutsui int /* dpix */, /* dots per inch */ 398b9325ec5Stsutsui int /* dpiy */, /* dots per inch */ 399b9325ec5Stsutsui int /* width */, /* pixel width of frame buffer */ 400b9325ec5Stsutsui int /* bpp */ /* bits per pixel of root */ 401b9325ec5Stsutsui); 402b9325ec5Stsutsui 403b9325ec5Stsutsuiextern Bool sunCfbFinishScreenInit( 404b9325ec5Stsutsui ScreenPtr /* pScreen */, 405b9325ec5Stsutsui pointer /* pbits */, /* pointer to screen bitmap */ 406b9325ec5Stsutsui int /* xsize */, /* in pixels */ 407b9325ec5Stsutsui int /* ysize */, 408b9325ec5Stsutsui int /* dpix */, /* dots per inch */ 409b9325ec5Stsutsui int /* dpiy */, /* dots per inch */ 410b9325ec5Stsutsui int /* width */, /* pixel width of frame buffer */ 411b9325ec5Stsutsui int /* bpp */ /* bits per pixel of root */ 412b9325ec5Stsutsui); 413b9325ec5Stsutsui 414b9325ec5Stsutsuiextern Bool sunCfbScreenInit( 415b9325ec5Stsutsui ScreenPtr /* pScreen */, 416b9325ec5Stsutsui pointer /* pbits */, /* pointer to screen bitmap */ 417b9325ec5Stsutsui int /* xsize */, /* in pixels */ 418b9325ec5Stsutsui int /* ysize */, 419b9325ec5Stsutsui int /* dpix */, /* dots per inch */ 420b9325ec5Stsutsui int /* dpiy */, /* dots per inch */ 421b9325ec5Stsutsui int /* width */, /* pixel width of frame buffer */ 422b9325ec5Stsutsui int /* bpp */ /* bits per pixel of root */ 423b9325ec5Stsutsui); 424b9325ec5Stsutsui 425b9325ec5Stsutsuiextern void sunInstallColormap( 426b9325ec5Stsutsui ColormapPtr /* cmap */ 427b9325ec5Stsutsui); 428b9325ec5Stsutsui 429b9325ec5Stsutsuiextern void sunUninstallColormap( 430b9325ec5Stsutsui ColormapPtr /* cmap */ 431b9325ec5Stsutsui); 432b9325ec5Stsutsui 433b9325ec5Stsutsuiextern int sunListInstalledColormaps( 434b9325ec5Stsutsui ScreenPtr /* pScreen */, 435b9325ec5Stsutsui Colormap* /* pCmapList */ 436b9325ec5Stsutsui); 437b9325ec5Stsutsui 438b9325ec5Stsutsui#endif 439