This is fbio.h in view mode; [Download] [Up]
/* @(#)fbio.h 5.49 91/06/28 SMI */ /* * Copyright 1986 by Sun Microsystems, Inc. */ #ifndef _sun_fbio_h #define _sun_fbio_h #include <sys/types.h> #ifndef ASM /* * Frame buffer descriptor. * Returned by FBIOGTYPE ioctl on frame buffer devices. */ struct fbtype { int fb_type; /* as defined below */ 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 KERNEL struct fbpixrect { struct pixrect *fbpr_pixrect; /* Pixrect of dev returned here */ }; #define FBIOGPIXRECT _IOWR('F', 1, struct fbpixrect) #endif /* * General purpose structure for passing info in and out of frame buffers * (used for gp1) */ 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 */ unsigned char *fb_ropaddr; /* fb va thru kernelmap */ int fb_unit; /* minor devnum of fb */ }; #define FBIOGINFO _IOR('F', 2, struct fbinfo) /* * Color map I/O. See also fbcmap_i below. */ struct fbcmap { int index; /* first element (0 origin) */ int count; /* number of elements */ unsigned char *red; /* red color map elements */ unsigned char *green; /* green color map elements */ unsigned char *blue; /* blue color map elements */ }; #define FBIOPUTCMAP _IOW('F', 3, struct fbcmap) #define FBIOGETCMAP _IOW('F', 4, struct fbcmap) #define FBIOMAPFB _IOR('F', 50, unsigned int) /* * 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; /* misc flags */ #define FB_ATTR_AUTOINIT 1 /* emulation auto init flag */ #define FB_ATTR_DEVSPECIFIC 2 /* dev. specific stuff valid flag */ int emu_type; /* emulation type (-1 if unused) */ int dev_specific[FB_ATTR_NDEVSPECIFIC]; /* catchall */ }; 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) */ }; #define FBIOSATTR _IOW('F', 5, struct fbsattr) #define FBIOGATTR _IOR('F', 6, struct fbgattr) /* * Video control * (the unused bits are reserved for future use) */ #define FBVIDEO_OFF 0 #define FBVIDEO_ON 1 #define FBIOSVIDEO _IOW('F', 7, int) #define FBIOGVIDEO _IOR('F', 8, int) /* Vertical retrace support. */ #define FBIOVERTICAL _IOW('F', 9, int) #define GRABPAGEALLOC _IOR('F', 10, caddr_t) #define GRABPAGEFREE _IOW('F', 11, caddr_t) #define GRABATTACH _IOW('F', 12, caddr_t) #define FBIOGPLNGRP _IOR('F', 13, int) #define FBIOGCMSIZE _IOR('F', 14, int) #define FBIOSCMSIZE _IOW('F', 15, int) #define FBIOSCMS _IOW('F', 16, int) #define FBIOAVAILPLNGRP _IOR('F', 17, int) /* * Structure to pass double buffering state back and forth the device. */ /* used in devstate */ #define FBDBL_AVAIL 0x80000000 #define FBDBL_DONT_BLOCK 0x40000000 #define FBDBL_AVAIL_PG 0x20000000 /* used in read/write/display */ #define FBDBL_A 0x1 #define FBDBL_B 0x2 #define FBDBL_BOTH (FBDBL_A | FBDBL_B) #define FBDBL_NONE 0x4 struct fbdblinfo { unsigned int dbl_devstate; unsigned int dbl_read; unsigned int dbl_write; unsigned int dbl_display; int dbl_depth; char dbl_wid; }; #define FBIODBLGINFO _IOR('F', 18, struct fbdblinfo) #define FBIODBLSINFO _IOW('F', 19, struct fbdblinfo) /* 8-bit emulation in 24-bit ioctls */ #define FBIOSWINFD _IOR('F', 20, int) #define FBIOSAVWINFD _IOR('F', 21, int) #define FBIORESWINFD _IOR('F', 22, int) #define FBIOSRWINFD _IOR('F', 23, int) /* * hardware cursor control */ struct fbcurpos { short x, y; }; struct fbcursor { short set; /* what to set */ #define FB_CUR_SETCUR 0x01 #define FB_CUR_SETPOS 0x02 #define FB_CUR_SETHOT 0x04 #define FB_CUR_SETCMAP 0x08 #define FB_CUR_SETSHAPE 0x10 #define FB_CUR_SETALL 0x1F short enable; /* cursor on/off */ struct fbcurpos pos; /* cursor position */ struct fbcurpos hot; /* cursor hot spot */ struct fbcmap cmap; /* color map info */ struct fbcurpos size; /* cursor bit map size */ char *image; /* cursor image bits */ char *mask; /* cursor mask bits */ }; /* set/get cursor attributes/shape */ #define FBIOSCURSOR _IOW('F', 24, struct fbcursor) #define FBIOGCURSOR _IOWR('F', 25, struct fbcursor) /* set/get cursor position */ #define FBIOSCURPOS _IOW('F', 26, struct fbcurpos) #define FBIOGCURPOS _IOW('F', 27, struct fbcurpos) /* get max cursor size */ #define FBIOGCURMAX _IOR('F', 28, struct fbcurpos) /* Window Grabber info ioctl */ #define GRABLOCKINFO _IOR('F', 29, caddr_t) /* * Window Identification (wid) defines, structures, and ioctls. * * Some wids need to be unique when used for things such as double * buffering or rendering clipping. Some wids can be shared when * used for display attributes only. What can be shared and how * may be device dependent. The fb_wid_alloc.wa_type and fb_wid_item * structure members will be left to device specific interpretation. */ #define FB_WID_SHARED_8 0 #define FB_WID_SHARED_24 1 #define FB_WID_DBL_8 2 #define FB_WID_DBL_24 3 struct fb_wid_alloc { unsigned int wa_type; /* special attributes */ int wa_index; /* base wid returned */ unsigned int wa_count; /* how many contiguous wids */ }; struct fb_wid_item { unsigned int wi_type; /* special attributes */ int wi_index; /* which lut */ unsigned int wi_attrs; /* which attributes */ unsigned int wi_values[NBBY*sizeof(int)]; /* the attr values */ }; struct fb_wid_list { unsigned int wl_flags; unsigned int wl_count; struct fb_wid_item *wl_list; }; struct fb_wid_dbl_info { struct fb_wid_alloc dbl_wid; char dbl_fore; char dbl_back; char dbl_read_state; char dbl_write_state; }; #define FBIO_WID_ALLOC _IOWR('F', 30, struct fb_wid_alloc) #define FBIO_WID_FREE _IOW('F', 31, struct fb_wid_alloc) #define FBIO_WID_PUT _IOW('F', 32, struct fb_wid_list) #define FBIO_WID_GET _IOW('F', 33, struct fb_wid_list) #define FBIO_DEVID _IOR('F', 34, int) #define FBIO_U_RST _IOW('F', 35, int) #define FBIO_FULLSCREEN_ELIMINATION_GROUPS _IOR('F', 36, unsigned char *) #define FBIO_WID_DBL_SET _IO('F', 37) #define FBIOVRTOFFSET _IOR('F', 38, int) struct cg6_info { u_short accessible_width; /* accessible bytes in scanline */ u_short accessible_height; /* number of accessible scanlines */ u_short line_bytes; /* number of bytes/scanline */ u_short hdb_capable; /* can this thing hardware db? */ u_short vmsize; /* this is Mb of video memory */ u_char boardrev; /* board revision # */ u_char slot; /* sbus slot # */ u_long pad1; /* expansion */ } ; #define MON_TYPE_STEREO 0x8 /* stereo display */ #define MON_TYPE_0_OFFSET 0x4 /* black level 0 ire instead of 7.5 */ #define MON_TYPE_OVERSCAN 0x2 /* overscan */ #define MON_TYPE_GRAY 0x1 /* greyscale monitor */ struct mon_info { u_long mon_type; /* bit array: defined above */ u_long pixfreq; /* pixel frequency in Hz */ u_long hfreq; /* horizontal freq in Hz */ u_long vfreq; /* vertical freq in Hz */ u_long vsync; /* vertical sync in scanlines */ u_long hsync; /* horizontal sync in pixels */ /* these are in pixel units */ u_short hfporch; /* horizontal front porch */ u_short hbporch; /* horizontal back porch */ u_short vfporch; /* vertical front porch */ u_short vbporch; /* vertical back porch */ } ; #define FBIOGXINFO _IOR('F', 39, struct cg6_info) #define FBIOMONINFO _IOR('F', 40, struct mon_info) /* * Color map I/O. */ struct fbcmap_i { unsigned int flags; /* see below */ int id; /* colormap id for multiple cmaps */ int index; /* first element (0 origin) */ int count; /* number of elements */ unsigned char *red; /* red color map elements */ unsigned char *green; /* green color map elements */ unsigned char *blue; /* blue color map elements */ }; #define FB_CMAP_BLOCK 0x1 /* wait for vrt before returning */ #define FB_CMAP_KERNEL 0x2 /* called within kernel */ #define FBIOPUTCMAPI _IOW('F', 41, struct fbcmap_i) #define FBIOGETCMAPI _IOW('F', 42, struct fbcmap_i) /* assigning a given window id to a pixrect - special for PHIGS */ #define FBIO_ASSIGNWID _IOWR('F', 43, struct fb_wid_alloc) /* assigning a given window to be stereo */ #define FBIO_STEREO _IOWR('F', 44, int) #define FB_WIN_STEREO 0x2 #endif /* 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_SUNGIFB 15 /* medical image */ #define FBTYPE_SUNGPLAS 16 /* plasma panel */ #define FBTYPE_SUNGP3 17 /* cg12 running gpsi microcode */ #define FBTYPE_SUNGT 18 /* gt graphics accelerator */ #define FBTYPE_RESERVED1 19 /* reserved, do not use */ #define FBTYPE_LASTPLUSONE 20 /* max number of fbs (change as add) */ #endif /*!_sun_fbio_h*/
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.