/* * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software developed by the Computer Systems * Engineering group at Lawrence Berkeley Laboratory under DARPA * contract BG 91-66 and contributed to Berkeley. * * %sccs.include.redist.c% * * @(#)fbio.h 8.1 (Berkeley) 06/02/93 * * from: $Header: fbio.h,v 1.3 91/12/13 22:16:32 torek Exp $ (LBL) */ /* * Frame buffer ioctls (from Sprite, trimmed to essentials for X11). */ /* * Frame buffer type codes. */ #define FBTYPE_SUN1BW 0 /* multibus mono */ #define FBTYPE_SUN1COLOR 1 /* multibus color */ #define FBTYPE_SUN2BW 2 /* memory mono */ #define FBTYPE_SUN2COLOR 3 /* color w/rasterop chips */ #define FBTYPE_SUN2GP 4 /* GP1/GP2 */ #define FBTYPE_SUN5COLOR 5 /* RoadRunner accelerator */ #define FBTYPE_SUN3COLOR 6 /* memory color */ #define FBTYPE_MEMCOLOR 7 /* memory 24-bit */ #define FBTYPE_SUN4COLOR 8 /* memory color w/overlay */ #define FBTYPE_NOTSUN1 9 /* reserved for customer */ #define FBTYPE_NOTSUN2 10 /* reserved for customer */ #define FBTYPE_NOTSUN3 11 /* reserved for customer */ #define FBTYPE_SUNFAST_COLOR 12 /* accelerated 8bit */ #define FBTYPE_SUNROP_COLOR 13 /* MEMCOLOR with rop h/w */ #define FBTYPE_SUNFB_VIDEO 14 /* Simple video mixing */ #define FBTYPE_RESERVED5 15 /* reserved, do not use */ #define FBTYPE_RESERVED4 16 /* reserved, do not use */ #define FBTYPE_RESERVED3 17 /* reserved, do not use */ #define FBTYPE_RESERVED2 18 /* reserved, do not use */ #define FBTYPE_RESERVED1 19 /* reserved, do not use */ #define FBTYPE_LASTPLUSONE 20 /* max number of fbs (change as add) */ /* * Frame buffer descriptor as returned by FBIOGTYPE. */ struct fbtype { int fb_type; /* as defined above */ int fb_height; /* in pixels */ int fb_width; /* in pixels */ int fb_depth; /* bits per pixel */ int fb_cmsize; /* size of color map (entries) */ int fb_size; /* total size in bytes */ }; #define FBIOGTYPE _IOR('F', 0, struct fbtype) #ifdef notdef /* * General purpose structure for passing info in and out of frame buffers * (used for gp1) -- unsupported. */ struct fbinfo { int fb_physaddr; /* physical frame buffer address */ int fb_hwwidth; /* fb board width */ int fb_hwheight; /* fb board height */ int fb_addrdelta; /* phys addr diff between boards */ u_char *fb_ropaddr; /* fb virtual addr */ int fb_unit; /* minor devnum of fb */ }; #define FBIOGINFO _IOR('F', 2, struct fbinfo) #endif /* * Color map I/O. */ struct fbcmap { int index; /* first element (0 origin) */ int count; /* number of elements */ u_char *red; /* red color map elements */ u_char *green; /* green color map elements */ u_char *blue; /* blue color map elements */ }; #define FBIOPUTCMAP _IOW('F', 3, struct fbcmap) #define FBIOGETCMAP _IOW('F', 4, struct fbcmap) /* * Set/get attributes. */ #define FB_ATTR_NDEVSPECIFIC 8 /* no. of device specific values */ #define FB_ATTR_NEMUTYPES 4 /* no. of emulation types */ struct fbsattr { int flags; /* flags; see below */ int emu_type; /* emulation type (-1 if unused) */ int dev_specific[FB_ATTR_NDEVSPECIFIC]; /* catchall */ }; #define FB_ATTR_AUTOINIT 1 /* emulation auto init flag */ #define FB_ATTR_DEVSPECIFIC 2 /* dev. specific stuff valid flag */ struct fbgattr { int real_type; /* real device type */ int owner; /* PID of owner, 0 if myself */ struct fbtype fbtype; /* fbtype info for real device */ struct fbsattr sattr; /* see above */ int emu_types[FB_ATTR_NEMUTYPES]; /* possible emulations */ /* (-1 if unused) */ }; /* FBIOSATTR _IOW('F', 5, struct fbsattr) -- unsupported */ #define FBIOGATTR _IOR('F', 6, struct fbgattr) /* * Video control. */ #define FBVIDEO_OFF 0 #define FBVIDEO_ON 1 #define FBIOSVIDEO _IOW('F', 7, int) #define FBIOGVIDEO _IOR('F', 8, int)