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