X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fvideo%2Fconsole%2Ffbcon.h;h=befa1e725b1f7181154033d4548c38088c6500ce;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=71643f5ad94f487769d8615f9c265d5ebfa978d6;hpb=9bf4aaab3e101692164d49b7ca357651eb691cb6;p=linux-2.6.git diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h index 71643f5ad..befa1e725 100644 --- a/drivers/video/console/fbcon.h +++ b/drivers/video/console/fbcon.h @@ -33,12 +33,42 @@ struct display { short yscroll; /* Hardware scrolling */ int vrows; /* number of virtual rows */ int cursor_shape; + u32 xres_virtual; + u32 yres_virtual; + u32 height; + u32 width; + u32 bits_per_pixel; + u32 grayscale; + u32 nonstd; + u32 accel_flags; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + struct fb_videomode *mode; }; -/* drivers/video/console/fbcon.c */ -extern signed char con2fb_map[MAX_NR_CONSOLES]; -extern int set_con2fb_map(int unit, int newidx); +struct fbcon_ops { + void (*bmove)(struct vc_data *vc, struct fb_info *info, int sy, + int sx, int dy, int dx, int height, int width); + void (*clear)(struct vc_data *vc, struct fb_info *info, int sy, + int sx, int height, int width); + void (*putcs)(struct vc_data *vc, struct fb_info *info, + const unsigned short *s, int count, int yy, int xx, + int fg, int bg); + void (*clear_margins)(struct vc_data *vc, struct fb_info *info, + int bottom_only); + void (*cursor)(struct vc_data *vc, struct fb_info *info, + struct display *p, int mode, int fg, int bg); + struct timer_list cursor_timer; /* Cursor timer */ + struct fb_cursor cursor_state; + int currcon; /* Current VC. */ + int cursor_flash; + int cursor_reset; + int blank_state; + char *cursor_data; +}; /* * Attribute Decoding */ @@ -56,13 +86,20 @@ extern int set_con2fb_map(int unit, int newidx); /* Monochrome */ #define attr_bold(s) \ ((s) & 0x200) -#define attr_reverse(s, inverse) \ - (((s) & 0x800) ^ (inverse ? 0x800 : 0)) +#define attr_reverse(s) \ + ((s) & 0x800) #define attr_underline(s) \ ((s) & 0x400) #define attr_blink(s) \ ((s) & 0x8000) +/* Font */ +#define REFCOUNT(fd) (((int *)(fd))[-1]) +#define FNTSIZE(fd) (((int *)(fd))[-2]) +#define FNTCHARCNT(fd) (((int *)(fd))[-3]) +#define FNTSUM(fd) (((int *)(fd))[-4]) +#define FONT_EXTRA_WORDS 4 + /* * Scroll Method */ @@ -120,5 +157,12 @@ extern int set_con2fb_map(int unit, int newidx); #define SCROLL_PAN_REDRAW 0x005 extern int fb_console_init(void); +#ifdef CONFIG_FB_TILEBLITTING +extern void fbcon_set_tileops(struct vc_data *vc, struct fb_info *info, + struct display *p, struct fbcon_ops *ops); +#endif +extern void fbcon_set_bitops(struct fbcon_ops *ops); + +extern const struct consw fb_con; #endif /* _VIDEO_FBCON_H */