OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [linux/] [fb.h] - Diff between revs 1633 and 1765

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 1633 Rev 1765
#ifndef _LINUX_FB_H
#ifndef _LINUX_FB_H
#define _LINUX_FB_H
#define _LINUX_FB_H
 
 
/* Definitions of frame buffers                                         */
/* Definitions of frame buffers                                         */
 
 
/* ioctls
/* ioctls
   0x46 is 'F'                                                          */
   0x46 is 'F'                                                          */
#define FBIOGET_VSCREENINFO     0x4600
#define FBIOGET_VSCREENINFO     0x4600
#define FBIOPUT_VSCREENINFO     0x4601
#define FBIOPUT_VSCREENINFO     0x4601
#define FBIOGET_FSCREENINFO     0x4602
#define FBIOGET_FSCREENINFO     0x4602
#define FBIOGETCMAP             0x4604
#define FBIOGETCMAP             0x4604
#define FBIOPUTCMAP             0x4605
#define FBIOPUTCMAP             0x4605
#define FBIOPAN_DISPLAY         0x4606
#define FBIOPAN_DISPLAY         0x4606
 
 
#define FB_TYPE_PACKED_PIXELS           0        /* Packed Pixels        */
#define FB_TYPE_PACKED_PIXELS           0        /* Packed Pixels        */
#define FB_TYPE_PLANES                  1       /* Non interleaved planes */
#define FB_TYPE_PLANES                  1       /* Non interleaved planes */
#define FB_TYPE_INTERLEAVED_PLANES      2       /* Interleaved planes   */
#define FB_TYPE_INTERLEAVED_PLANES      2       /* Interleaved planes   */
 
 
#define FB_VISUAL_MONO01                0        /* Monochr. 1=Black 0=White */
#define FB_VISUAL_MONO01                0        /* Monochr. 1=Black 0=White */
#define FB_VISUAL_MONO10                1       /* Monochr. 1=White 0=Black */
#define FB_VISUAL_MONO10                1       /* Monochr. 1=White 0=Black */
#define FB_VISUAL_TRUECOLOR             2       /* True color   */
#define FB_VISUAL_TRUECOLOR             2       /* True color   */
#define FB_VISUAL_PSEUDOCOLOR           3       /* Pseudo color (like atari) */
#define FB_VISUAL_PSEUDOCOLOR           3       /* Pseudo color (like atari) */
#define FB_VISUAL_DIRECTCOLOR           4       /* Direct color */
#define FB_VISUAL_DIRECTCOLOR           4       /* Direct color */
#define FB_VISUAL_STATIC_PSEUDOCOLOR    5       /* Pseudo color readonly */
#define FB_VISUAL_STATIC_PSEUDOCOLOR    5       /* Pseudo color readonly */
#define FB_VISUAL_STATIC_DIRECTCOLOR    6       /* Direct color readonly */
#define FB_VISUAL_STATIC_DIRECTCOLOR    6       /* Direct color readonly */
 
 
struct fb_fix_screeninfo {
struct fb_fix_screeninfo {
        char id[16];                    /* identification string eg "TT Builtin" */
        char id[16];                    /* identification string eg "TT Builtin" */
        unsigned long smem_start;       /* Start of frame buffer mem */
        unsigned long smem_start;       /* Start of frame buffer mem */
        unsigned long smem_len;         /* Length of frame buffer mem */
        unsigned long smem_len;         /* Length of frame buffer mem */
        int type;                       /* see FB_TYPE_*                */
        int type;                       /* see FB_TYPE_*                */
        int type_aux;                   /* Interleave for interleaved Planes */
        int type_aux;                   /* Interleave for interleaved Planes */
        int visual;                     /* see FB_VISUAL_*              */
        int visual;                     /* see FB_VISUAL_*              */
        u_short xpanstep;               /* zero if no hardware panning  */
        u_short xpanstep;               /* zero if no hardware panning  */
        u_short ypanstep;               /* zero if no hardware panning  */
        u_short ypanstep;               /* zero if no hardware panning  */
        u_short ywrapstep;              /* zero if no hardware ywrap    */
        u_short ywrapstep;              /* zero if no hardware ywrap    */
        u_long line_length;             /* length of a line in bytes    */
        u_long line_length;             /* length of a line in bytes    */
        short reserved[9];              /* Reserved for future compatibility */
        short reserved[9];              /* Reserved for future compatibility */
};
};
 
 
struct fb_bitfield {
struct fb_bitfield {
        int offset;                     /* beginning of bitfield        */
        int offset;                     /* beginning of bitfield        */
        int length;                     /* length of bitfield           */
        int length;                     /* length of bitfield           */
        int msb_right;                  /* != 0 : Most significant bit is */
        int msb_right;                  /* != 0 : Most significant bit is */
                                        /* right */
                                        /* right */
};
};
 
 
#define FB_NONSTD_HAM           1       /* Hold-And-Modify (HAM)        */
#define FB_NONSTD_HAM           1       /* Hold-And-Modify (HAM)        */
 
 
#define FB_ACTIVATE_NOW         0        /* set values immediately (or vbl)*/
#define FB_ACTIVATE_NOW         0        /* set values immediately (or vbl)*/
#define FB_ACTIVATE_NXTOPEN     1       /* activate on next open        */
#define FB_ACTIVATE_NXTOPEN     1       /* activate on next open        */
#define FB_ACTIVATE_TEST        2       /* don't set, round up impossible */
#define FB_ACTIVATE_TEST        2       /* don't set, round up impossible */
#define FB_ACTIVATE_MASK       15
#define FB_ACTIVATE_MASK       15
                                        /* values                       */
                                        /* values                       */
#define FB_ACTIVATE_VBL        16       /* activate values on next vbl  */
#define FB_ACTIVATE_VBL        16       /* activate values on next vbl  */
#define FB_CHANGE_CMAP_VBL     32       /* change colormap on vbl       */
#define FB_CHANGE_CMAP_VBL     32       /* change colormap on vbl       */
 
 
#define FB_ACCEL_NONE           0        /* no hardware accelerator      */
#define FB_ACCEL_NONE           0        /* no hardware accelerator      */
#define FB_ACCEL_ATARIBLITT     1       /* Atari Blitter                */
#define FB_ACCEL_ATARIBLITT     1       /* Atari Blitter                */
#define FB_ACCEL_AMIGABLITT     2       /* Amiga Blitter                */
#define FB_ACCEL_AMIGABLITT     2       /* Amiga Blitter                */
#define FB_ACCEL_CYBERVISION    3       /* Cybervision64 (S3 Trio64)    */
#define FB_ACCEL_CYBERVISION    3       /* Cybervision64 (S3 Trio64)    */
 
 
#define FB_SYNC_HOR_HIGH_ACT    1       /* horizontal sync high active  */
#define FB_SYNC_HOR_HIGH_ACT    1       /* horizontal sync high active  */
#define FB_SYNC_VERT_HIGH_ACT   2       /* vertical sync high active    */
#define FB_SYNC_VERT_HIGH_ACT   2       /* vertical sync high active    */
#define FB_SYNC_EXT             4       /* external sync                */
#define FB_SYNC_EXT             4       /* external sync                */
#define FB_SYNC_COMP_HIGH_ACT   8       /* composite sync high active   */
#define FB_SYNC_COMP_HIGH_ACT   8       /* composite sync high active   */
#define FB_SYNC_BROADCAST       16      /* broadcast video timings      */
#define FB_SYNC_BROADCAST       16      /* broadcast video timings      */
                                        /* vtotal = 144d/288n/576i => PAL  */
                                        /* vtotal = 144d/288n/576i => PAL  */
                                        /* vtotal = 121d/242n/484i => NTSC */
                                        /* vtotal = 121d/242n/484i => NTSC */
 
 
#define FB_VMODE_NONINTERLACED  0       /* non interlaced */
#define FB_VMODE_NONINTERLACED  0       /* non interlaced */
#define FB_VMODE_INTERLACED     1       /* interlaced   */
#define FB_VMODE_INTERLACED     1       /* interlaced   */
#define FB_VMODE_DOUBLE         2       /* double scan */
#define FB_VMODE_DOUBLE         2       /* double scan */
#define FB_VMODE_MASK           255
#define FB_VMODE_MASK           255
 
 
#define FB_VMODE_YWRAP          256     /* ywrap instead of panning     */
#define FB_VMODE_YWRAP          256     /* ywrap instead of panning     */
#define FB_VMODE_SMOOTH_XPAN    512     /* smooth xpan possible (internally used) */
#define FB_VMODE_SMOOTH_XPAN    512     /* smooth xpan possible (internally used) */
#define FB_VMODE_CONUPDATE      512     /* don't update x/yoffset       */
#define FB_VMODE_CONUPDATE      512     /* don't update x/yoffset       */
 
 
struct fb_var_screeninfo {
struct fb_var_screeninfo {
        int xres;                       /* visible resolution           */
        int xres;                       /* visible resolution           */
        int yres;
        int yres;
        int xres_virtual;               /* virtual resolution           */
        int xres_virtual;               /* virtual resolution           */
        int yres_virtual;
        int yres_virtual;
        int xoffset;                    /* offset from virtual to visible */
        int xoffset;                    /* offset from virtual to visible */
        int yoffset;                    /* resolution                   */
        int yoffset;                    /* resolution                   */
 
 
        int bits_per_pixel;             /* guess what                   */
        int bits_per_pixel;             /* guess what                   */
        int grayscale;                  /* != 0 Graylevels instead of colors */
        int grayscale;                  /* != 0 Graylevels instead of colors */
 
 
        struct fb_bitfield red;         /* bitfield in fb mem if true color, */
        struct fb_bitfield red;         /* bitfield in fb mem if true color, */
        struct fb_bitfield green;       /* else only length is significant */
        struct fb_bitfield green;       /* else only length is significant */
        struct fb_bitfield blue;
        struct fb_bitfield blue;
        struct fb_bitfield transp;      /* transparency                 */
        struct fb_bitfield transp;      /* transparency                 */
 
 
        int nonstd;                     /* != 0 Non standard pixel format */
        int nonstd;                     /* != 0 Non standard pixel format */
 
 
        int activate;                   /* see FB_ACTIVATE_*            */
        int activate;                   /* see FB_ACTIVATE_*            */
 
 
        int height;                     /* height of picture in mm    */
        int height;                     /* height of picture in mm    */
        int width;                      /* width of picture in mm     */
        int width;                      /* width of picture in mm     */
 
 
        int accel;                      /* see FB_ACCEL_*               */
        int accel;                      /* see FB_ACCEL_*               */
 
 
        /* Timing: All values in pixclocks, except pixclock (of course) */
        /* Timing: All values in pixclocks, except pixclock (of course) */
        unsigned long pixclock;         /* pixel clock in ps (pico seconds) */
        unsigned long pixclock;         /* pixel clock in ps (pico seconds) */
        unsigned long left_margin;      /* time from sync to picture    */
        unsigned long left_margin;      /* time from sync to picture    */
        unsigned long right_margin;     /* time from picture to sync    */
        unsigned long right_margin;     /* time from picture to sync    */
        unsigned long upper_margin;     /* time from sync to picture    */
        unsigned long upper_margin;     /* time from sync to picture    */
        unsigned long lower_margin;
        unsigned long lower_margin;
        unsigned long hsync_len;        /* length of horizontal sync    */
        unsigned long hsync_len;        /* length of horizontal sync    */
        unsigned long vsync_len;        /* length of vertical sync      */
        unsigned long vsync_len;        /* length of vertical sync      */
        int sync;                       /* see FB_SYNC_*                */
        int sync;                       /* see FB_SYNC_*                */
        int vmode;                      /* see FB_VMODE_*               */
        int vmode;                      /* see FB_VMODE_*               */
        int reserved[6];                /* Reserved for future compatibility */
        int reserved[6];                /* Reserved for future compatibility */
};
};
 
 
struct fb_cmap {
struct fb_cmap {
        int start;                      /* First entry  */
        int start;                      /* First entry  */
        int len;                        /* Number of entries */
        int len;                        /* Number of entries */
        unsigned short *red;            /* Red values   */
        unsigned short *red;            /* Red values   */
        unsigned short *green;
        unsigned short *green;
        unsigned short *blue;
        unsigned short *blue;
        unsigned short *transp;         /* transparency, can be NULL */
        unsigned short *transp;         /* transparency, can be NULL */
};
};
 
 
#ifdef __KERNEL__
#ifdef __KERNEL__
 
 
#include <linux/fs.h>
#include <linux/fs.h>
 
 
struct fb_ops {
struct fb_ops {
        /* get non settable parameters  */
        /* get non settable parameters  */
        int (*fb_get_fix) (struct fb_fix_screeninfo *, int);
        int (*fb_get_fix) (struct fb_fix_screeninfo *, int);
        /* get settable parameters      */
        /* get settable parameters      */
        int (*fb_get_var) (struct fb_var_screeninfo *, int);
        int (*fb_get_var) (struct fb_var_screeninfo *, int);
        /* set settable parameters      */
        /* set settable parameters      */
        int (*fb_set_var) (struct fb_var_screeninfo *, int);
        int (*fb_set_var) (struct fb_var_screeninfo *, int);
        /* get colormap                 */
        /* get colormap                 */
        int (*fb_get_cmap) (struct fb_cmap *, int, int);
        int (*fb_get_cmap) (struct fb_cmap *, int, int);
        /* set colormap                 */
        /* set colormap                 */
        int (*fb_set_cmap) (struct fb_cmap *, int, int);
        int (*fb_set_cmap) (struct fb_cmap *, int, int);
        /* pan display                   */
        /* pan display                   */
        int (*fb_pan_display) (struct fb_var_screeninfo *, int);
        int (*fb_pan_display) (struct fb_var_screeninfo *, int);
        /* perform fb specific ioctl    */
        /* perform fb specific ioctl    */
        int (*fb_ioctl)(struct inode *, struct file *, unsigned int,
        int (*fb_ioctl)(struct inode *, struct file *, unsigned int,
                        unsigned long, int);
                        unsigned long, int);
};
};
 
 
int register_framebuffer(char *, int *, struct fb_ops *, int,
int register_framebuffer(char *, int *, struct fb_ops *, int,
                         struct fb_var_screeninfo *);
                         struct fb_var_screeninfo *);
int unregister_framebuffer(int);
int unregister_framebuffer(int);
 
 
   /*
   /*
    *    This is the interface between the low-level console driver and the
    *    This is the interface between the low-level console driver and the
    *    low-level frame buffer device
    *    low-level frame buffer device
    */
    */
 
 
struct display {
struct display {
   /* Filled in by the frame buffer device */
   /* Filled in by the frame buffer device */
 
 
   struct fb_var_screeninfo var;    /* variable infos. yoffset and vmode */
   struct fb_var_screeninfo var;    /* variable infos. yoffset and vmode */
                                    /* are updated by fbcon.c */
                                    /* are updated by fbcon.c */
   struct fb_cmap cmap;             /* colormap */
   struct fb_cmap cmap;             /* colormap */
   u_char *screen_base;             /* pointer to top of virtual screen */
   u_char *screen_base;             /* pointer to top of virtual screen */
   int visual;
   int visual;
   int type;                        /* see FB_TYPE_* */
   int type;                        /* see FB_TYPE_* */
   int type_aux;                    /* Interleave for interleaved Planes */
   int type_aux;                    /* Interleave for interleaved Planes */
   u_short ypanstep;                /* zero if no hardware ypan */
   u_short ypanstep;                /* zero if no hardware ypan */
   u_short ywrapstep;               /* zero if no hardware ywrap */
   u_short ywrapstep;               /* zero if no hardware ywrap */
   u_long line_length;              /* length of a line in bytes */
   u_long line_length;              /* length of a line in bytes */
   u_short can_soft_blank;          /* zero if no hardware blanking */
   u_short can_soft_blank;          /* zero if no hardware blanking */
   u_short inverse;                 /* != 0 text black on white as default */
   u_short inverse;                 /* != 0 text black on white as default */
 
 
#if 0
#if 0
   struct fb_fix_cursorinfo fcrsr;
   struct fb_fix_cursorinfo fcrsr;
   struct fb_var_cursorinfo *vcrsr;
   struct fb_var_cursorinfo *vcrsr;
   struct fb_cursorstate crsrstate;
   struct fb_cursorstate crsrstate;
#endif
#endif
 
 
   /* Filled in by the low-level console driver */
   /* Filled in by the low-level console driver */
 
 
   struct vc_data *conp;            /* pointer to console data */
   struct vc_data *conp;            /* pointer to console data */
   int vrows;                       /* number of virtual rows */
   int vrows;                       /* number of virtual rows */
   int cursor_x;                    /* current cursor position */
   int cursor_x;                    /* current cursor position */
   int cursor_y;
   int cursor_y;
   int fgcol;                       /* text colors */
   int fgcol;                       /* text colors */
   int bgcol;
   int bgcol;
   u_long next_line;                /* offset to one line below */
   u_long next_line;                /* offset to one line below */
   u_long next_plane;               /* offset to next plane */
   u_long next_plane;               /* offset to next plane */
   u_char *fontdata;                /* Font associated to this display */
   u_char *fontdata;                /* Font associated to this display */
   int fontheight;
   int fontheight;
   int fontwidth;
   int fontwidth;
   int userfont;                    /* != 0 if fontdata kmalloc()ed */
   int userfont;                    /* != 0 if fontdata kmalloc()ed */
   struct display_switch *dispsw;   /* low level operations */
   struct display_switch *dispsw;   /* low level operations */
   u_short scrollmode;              /* Scroll Method */
   u_short scrollmode;              /* Scroll Method */
   short yscroll;                   /* Hardware scrolling */
   short yscroll;                   /* Hardware scrolling */
};
};
 
 
 
 
struct fb_info {
struct fb_info {
   char modename[40];               /* at boottime detected video mode */
   char modename[40];               /* at boottime detected video mode */
   struct display *disp;            /* pointer to display variables */
   struct display *disp;            /* pointer to display variables */
   char fontname[40];               /* default font name */
   char fontname[40];               /* default font name */
   int (*changevar)(int);           /* tell console var has changed */
   int (*changevar)(int);           /* tell console var has changed */
   int (*switch_con)(int);          /* tell fb to switch consoles */
   int (*switch_con)(int);          /* tell fb to switch consoles */
   int (*updatevar)(int);           /* tell fb to update the vars */
   int (*updatevar)(int);           /* tell fb to update the vars */
   void (*blank)(int);              /* tell fb to (un)blank the screen */
   void (*blank)(int);              /* tell fb to (un)blank the screen */
};
};
 
 
#endif /* __KERNEL__ */
#endif /* __KERNEL__ */
 
 
#if 1
#if 1
 
 
#define FBCMD_GET_CURRENTPAR        0xDEAD0005
#define FBCMD_GET_CURRENTPAR        0xDEAD0005
#define FBCMD_SET_CURRENTPAR        0xDEAD8005
#define FBCMD_SET_CURRENTPAR        0xDEAD8005
 
 
#endif
#endif
 
 
 
 
#if 1 /* Preliminary */
#if 1 /* Preliminary */
 
 
   /*
   /*
    *    Hardware Cursor
    *    Hardware Cursor
    */
    */
 
 
#define FBIOGET_FCURSORINFO     0x4607
#define FBIOGET_FCURSORINFO     0x4607
#define FBIOGET_VCURSORINFO     0x4608
#define FBIOGET_VCURSORINFO     0x4608
#define FBIOPUT_VCURSORINFO     0x4609
#define FBIOPUT_VCURSORINFO     0x4609
#define FBIOGET_CURSORSTATE     0x460A
#define FBIOGET_CURSORSTATE     0x460A
#define FBIOPUT_CURSORSTATE     0x460B
#define FBIOPUT_CURSORSTATE     0x460B
 
 
 
 
struct fb_fix_cursorinfo {
struct fb_fix_cursorinfo {
        u_short crsr_width;             /* width and height of the cursor in */
        u_short crsr_width;             /* width and height of the cursor in */
        u_short crsr_height;            /* pixels (zero if no cursor)   */
        u_short crsr_height;            /* pixels (zero if no cursor)   */
        u_short crsr_xsize;             /* cursor size in display pixels */
        u_short crsr_xsize;             /* cursor size in display pixels */
        u_short crsr_ysize;
        u_short crsr_ysize;
        u_short crsr_color1;            /* colormap entry for cursor color1 */
        u_short crsr_color1;            /* colormap entry for cursor color1 */
        u_short crsr_color2;            /* colormap entry for cursor color2 */
        u_short crsr_color2;            /* colormap entry for cursor color2 */
};
};
 
 
struct fb_var_cursorinfo {
struct fb_var_cursorinfo {
        u_short width;
        u_short width;
        u_short height;
        u_short height;
        u_short xspot;
        u_short xspot;
        u_short yspot;
        u_short yspot;
        u_char data[1];                 /* field with [height][width]        */
        u_char data[1];                 /* field with [height][width]        */
};
};
 
 
struct fb_cursorstate {
struct fb_cursorstate {
        short xoffset;
        short xoffset;
        short yoffset;
        short yoffset;
        u_short mode;
        u_short mode;
};
};
 
 
#define FB_CURSOR_OFF           0
#define FB_CURSOR_OFF           0
#define FB_CURSOR_ON            1
#define FB_CURSOR_ON            1
#define FB_CURSOR_FLASH         2
#define FB_CURSOR_FLASH         2
 
 
#define FBCMD_DRAWLINE          0x4621
#define FBCMD_DRAWLINE          0x4621
#define FBCMD_MOVE              0x4622
#define FBCMD_MOVE              0x4622
 
 
#define FB_LINE_XOR     1
#define FB_LINE_XOR     1
#define FB_LINE_BOX     2
#define FB_LINE_BOX     2
#define FB_LINE_FILLED  4
#define FB_LINE_FILLED  4
 
 
struct fb_line {
struct fb_line {
        int start_x;
        int start_x;
        int start_y;
        int start_y;
        int end_x;
        int end_x;
        int end_y;
        int end_y;
        int color;
        int color;
        int option;
        int option;
};
};
 
 
struct fb_move {
struct fb_move {
        int src_x;
        int src_x;
        int src_y;
        int src_y;
        int dest_x;
        int dest_x;
        int dest_y;
        int dest_y;
        int height;
        int height;
        int width;
        int width;
};
};
 
 
#endif /* Preliminary */
#endif /* Preliminary */
 
 
 
 
#endif /* _LINUX_FB_H */
#endif /* _LINUX_FB_H */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.