vserver 1.9.5.x5
[linux-2.6.git] / drivers / video / console / fbcon.h
index 71643f5..befa1e7 100644 (file)
@@ -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 */