sbusfb.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:4k
- #include <linux/timer.h>
- #include <asm/sbus.h>
- #include <asm/oplib.h>
- #include <asm/fbio.h>
- #include <video/fbcon.h>
- struct bt_regs {
- volatile unsigned int addr; /* address register */
- volatile unsigned int color_map; /* color map */
- volatile unsigned int control; /* control register */
- volatile unsigned int cursor; /* cursor map register */
- };
- struct fb_info_creator {
- struct ffb_fbc *fbc;
- struct ffb_dac *dac;
- int xy_margin;
- int fifo_cache;
- u64 yx_margin;
- int fg_cache;
- int bg_cache;
- int dac_rev;
- };
- struct fb_info_cgsix {
- struct bt_regs *bt;
- struct cg6_fbc *fbc;
- struct cg6_thc *thc;
- struct cg6_tec *tec;
- volatile u32 *fhc;
- };
- struct fb_info_bwtwo {
- struct bw2_regs *regs;
- };
- struct fb_info_cgthree {
- struct cg3_regs *regs;
- };
- struct fb_info_tcx {
- struct bt_regs *bt;
- struct tcx_thc *thc;
- struct tcx_tec *tec;
- u32 *cplane;
- };
- struct fb_info_leo {
- struct leo_lx_krn *lx_krn;
- struct leo_lc_ss0_usr *lc_ss0_usr;
- struct leo_ld_ss0 *ld_ss0;
- struct leo_ld_ss1 *ld_ss1;
- struct leo_cursor *cursor;
- unsigned int extent;
- };
- struct fb_info_cgfourteen {
- struct cg14_regs *regs;
- struct cg14_cursor *cursor;
- struct cg14_clut *clut;
- int ramsize;
- int mode;
- };
- struct fb_info_p9100 {
- struct p9100_ctrl *ctrl;
- volatile u32 *fbmem;
- };
- struct cg_cursor {
- char enable; /* cursor is enabled */
- char mode; /* cursor mode */
- struct fbcurpos cpos; /* position */
- struct fbcurpos chot; /* hot-spot */
- struct fbcurpos size; /* size of mask & image fields */
- struct fbcurpos hwsize; /* hw max size */
- int bits[2][128]; /* space for mask & image bits */
- char color [6]; /* cursor colors */
- struct timer_list timer; /* cursor timer */
- int blink_rate; /* cursor blink rate */
- };
- struct sbus_mmap_map {
- unsigned long voff;
- unsigned long poff;
- unsigned long size;
- };
- #define SBUS_MMAP_FBSIZE(n) (-n)
- #define SBUS_MMAP_EMPTY 0x80000000
- struct fb_info_sbusfb {
- struct fb_info info;
- struct fb_fix_screeninfo fix;
- struct fb_var_screeninfo var;
- struct display disp;
- struct display_switch dispsw;
- struct fbtype type;
- struct sbus_dev *sbdp;
- spinlock_t lock;
- int prom_node, prom_parent;
- union {
- struct fb_info_creator ffb;
- struct fb_info_cgsix cg6;
- struct fb_info_bwtwo bw2;
- struct fb_info_cgthree cg3;
- struct fb_info_tcx tcx;
- struct fb_info_leo leo;
- struct fb_info_cgfourteen cg14;
- struct fb_info_p9100 p9100;
- } s;
- unsigned char *color_map;
- struct cg_cursor cursor;
- unsigned char open;
- unsigned char mmaped;
- unsigned char blanked;
- int x_margin;
- int y_margin;
- int vtconsole;
- int consolecnt;
- int graphmode;
- int emulations[4];
- struct sbus_mmap_map *mmap_map;
- unsigned long physbase;
- int iospace;
- /* Methods */
- void (*setup)(struct display *);
- void (*setcursor)(struct fb_info_sbusfb *);
- void (*setcurshape)(struct fb_info_sbusfb *);
- void (*setcursormap)(struct fb_info_sbusfb *, unsigned char *, unsigned char *, unsigned char *);
- void (*loadcmap)(struct fb_info_sbusfb *, struct display *, int, int);
- void (*blank)(struct fb_info_sbusfb *);
- void (*unblank)(struct fb_info_sbusfb *);
- void (*margins)(struct fb_info_sbusfb *, struct display *, int, int);
- void (*reset)(struct fb_info_sbusfb *);
- void (*fill)(struct fb_info_sbusfb *, struct display *, int, int, unsigned short *);
- void (*switch_from_graph)(struct fb_info_sbusfb *);
- void (*restore_palette)(struct fb_info_sbusfb *);
- int (*ioctl)(struct fb_info_sbusfb *, unsigned int, unsigned long);
- };
- extern char *creatorfb_init(struct fb_info_sbusfb *);
- extern char *cgsixfb_init(struct fb_info_sbusfb *);
- extern char *cgthreefb_init(struct fb_info_sbusfb *);
- extern char *tcxfb_init(struct fb_info_sbusfb *);
- extern char *leofb_init(struct fb_info_sbusfb *);
- extern char *bwtwofb_init(struct fb_info_sbusfb *);
- extern char *cgfourteenfb_init(struct fb_info_sbusfb *);
- extern char *p9100fb_init(struct fb_info_sbusfb *);
- #define sbusfbinfod(disp) ((struct fb_info_sbusfb *)(disp->fb_info))
- #define sbusfbinfo(info) ((struct fb_info_sbusfb *)(info))
- #define CM(i, j) [3*(i)+(j)]
- #define SBUSFBINIT_SIZECHANGE ((char *)-1)