The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/alphapc/screen.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 typedef struct Cursor Cursor;
    2 typedef struct Cursorinfo Cursorinfo;
    3 struct Cursorinfo {
    4         Cursor;
    5         Lock;
    6 };
    7 
    8 /* devmouse.c */
    9 extern void mousetrack(int, int, int, int);
   10 extern Point mousexy(void);
   11 
   12 extern void mouseaccelerate(int);
   13 extern int m3mouseputc(Queue*, int);
   14 extern int m5mouseputc(Queue*, int);
   15 extern int mouseputc(Queue*, int);
   16 
   17 extern Cursorinfo cursor;
   18 extern Cursor arrow;
   19 
   20 /*
   21  * Generic VGA registers.
   22  */
   23 enum {
   24         MiscW           = 0x03C2,       /* Miscellaneous Output (W) */
   25         MiscR           = 0x03CC,       /* Miscellaneous Output (R) */
   26         Status0         = 0x03C2,       /* Input status 0 (R) */
   27         Status1         = 0x03DA,       /* Input Status 1 (R) */
   28         FeatureR        = 0x03CA,       /* Feature Control (R) */
   29         FeatureW        = 0x03DA,       /* Feature Control (W) */
   30 
   31         Seqx            = 0x03C4,       /* Sequencer Index, Data at Seqx+1 */
   32         Crtx            = 0x03D4,       /* CRT Controller Index, Data at Crtx+1 */
   33         Grx             = 0x03CE,       /* Graphics Controller Index, Data at Grx+1 */
   34         Attrx           = 0x03C0,       /* Attribute Controller Index and Data */
   35 
   36         PaddrW          = 0x03C8,       /* Palette Address Register, write */
   37         Pdata           = 0x03C9,       /* Palette Data Register */
   38         Pixmask         = 0x03C6,       /* Pixel Mask Register */
   39         PaddrR          = 0x03C7,       /* Palette Address Register, read */
   40         Pstatus         = 0x03C7,       /* DAC Status (RO) */
   41 
   42         Pcolours        = 256,          /* Palette */
   43         Pred            = 0,
   44         Pgreen          = 1,
   45         Pblue           = 2,
   46 
   47         Pblack          = 0x00,
   48         Pwhite          = 0xFF,
   49 };
   50 
   51 #define VGAMEM()        PADDR(arch->pcimem(0xA0000, 1<<16))
   52 
   53 #define vgai(port)              inb(port)
   54 #define vgao(port, data)        outb(port, data)
   55 
   56 extern int vgaxi(long, uchar);
   57 extern int vgaxo(long, uchar, uchar);
   58 
   59 /*
   60  */
   61 typedef struct VGAdev VGAdev;
   62 typedef struct VGAcur VGAcur;
   63 typedef struct VGAscr VGAscr;
   64 
   65 struct VGAdev {
   66         char*   name;
   67 
   68         void    (*enable)(VGAscr*);
   69         void    (*disable)(VGAscr*);
   70         void    (*page)(VGAscr*, int);
   71         void    (*linear)(VGAscr*, int, int);
   72         void    (*drawinit)(VGAscr*);
   73         int     (*fill)(VGAscr*, Rectangle, ulong);
   74         void (*flush)(VGAscr*, Rectangle);
   75 
   76 };
   77 
   78 struct VGAcur {
   79         char*   name;
   80 
   81         void    (*enable)(VGAscr*);
   82         void    (*disable)(VGAscr*);
   83         void    (*load)(VGAscr*, Cursor*);
   84         int     (*move)(VGAscr*, Point);
   85 
   86         int     doespanning;
   87 };
   88 
   89 /*
   90  */
   91 struct VGAscr {
   92         Lock    devlock;
   93         VGAdev* dev;
   94         Pcidev* pci;
   95 
   96         VGAcur* cur;
   97         ulong   storage;
   98         Cursor;
   99 
  100         int     useflush;
  101 
  102         ulong   paddr;          /* frame buffer */
  103         void*   vaddr;
  104         int     apsize;
  105 
  106         ulong   io;                             /* device specific registers */
  107         ulong   *mmio;
  108         
  109         ulong   colormap[Pcolours][3];
  110         int     palettedepth;
  111 
  112         Memimage* gscreen;
  113         Memdata* gscreendata;
  114         Memsubfont* memdefont;
  115 
  116         int     (*fill)(VGAscr*, Rectangle, ulong);
  117         int     (*scroll)(VGAscr*, Rectangle, Rectangle);
  118         void    (*blank)(VGAscr*, int);
  119         ulong   id;     /* internal identifier for driver use */
  120 };
  121 
  122 extern VGAscr vgascreen[];
  123 
  124 enum {
  125         Backgnd         = 0,    /* black */
  126 };
  127 
  128 /* mouse.c */
  129 extern void mousectl(Cmdbuf*);
  130 
  131 /* screen.c */
  132 extern int      hwaccel;        /* use hw acceleration; default on */
  133 extern int      hwblank;        /* use hw blanking; default on */
  134 extern void     addvgaseg(char*, ulong, ulong);
  135 extern uchar*   attachscreen(Rectangle*, ulong*, int*, int*, int*);
  136 extern void     flushmemscreen(Rectangle);
  137 extern int      cursoron(int);
  138 extern void     cursoroff(int);
  139 extern void     setcursor(Cursor*);
  140 extern int      screensize(int, int, int, ulong);
  141 extern int      screenaperture(int, int);
  142 extern Rectangle physgscreenr;  /* actual monitor size */
  143 extern void     blankscreen(int);
  144 
  145 extern VGAcur swcursor;
  146 extern void swcursorinit(void);
  147 extern void swcursorhide(void);
  148 extern void swcursoravoid(Rectangle);
  149 extern void swcursorunhide(void);
  150 
  151 /* devdraw.c */
  152 extern void     deletescreenimage(void);
  153 extern int      drawhasclients(void);
  154 extern ulong    blanktime;
  155 extern QLock    drawlock;
  156 
  157 /* vga.c */
  158 extern void     vgascreenwin(VGAscr*);
  159 extern void     vgaimageinit(ulong);
  160 extern void     vgalinearpciid(VGAscr*, int, int);
  161 extern void     vgalinearpci(VGAscr*);
  162 extern void     vgalinearaddr(VGAscr*, ulong, int);
  163 
  164 extern void     drawblankscreen(int);
  165 extern void     vgablank(VGAscr*, int);
  166 
  167 extern Lock     vgascreenlock;
  168 
  169 #define ishwimage(i)    (vgascreen[0].gscreendata && (i)->data->bdata == vgascreen[0].gscreendata->bdata)
  170 
  171 

Cache object: f421d5c5ba8d97e03db2af878f7ecf04


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.