Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Halt handling uses global performance parameters to decide yield strategy
[palacios.git] / geekos / include / geekos / screen.h
1 /*
2  * GeekOS text screen output
3  * Copyright (c) 2001,2003 David H. Hovemeyer <daveho@cs.umd.edu>
4  * $Revision: 1.2 $
5  * 
6  * This is free software.  You are permitted to use,
7  * redistribute, and modify it as specified in the file "COPYING".
8  */
9
10 #ifndef GEEKOS_SCREEN_H
11 #define GEEKOS_SCREEN_H
12
13 #include <geekos/ktypes.h>
14 #include <geekos/fmtout.h>
15
16 #define BLACK   0
17 #define BLUE    1
18 #define GREEN   2
19 #define CYAN    3
20 #define RED     4
21 #define MAGENTA 5
22 #define AMBER   6
23 #define GRAY    7
24 #define BRIGHT  8
25 #define ATTRIB(bg,fg) ((fg)|((bg)<<4))
26
27 #define NUMCOLS 80
28 #define NUMROWS 25
29
30 #define TABWIDTH 8
31
32 #ifdef GEEKOS
33
34 /*
35  * VGA hardware stuff, for accessing the text display
36  * memory and controlling the cursor
37  */
38 #define VIDMEM_ADDR 0xb8000
39 #define VIDMEM ((uchar_t*) VIDMEM_ADDR)
40 #define CRT_ADDR_REG 0x3D4
41 #define CRT_DATA_REG 0x3D5
42 #define CRT_CURSOR_LOC_HIGH_REG 0x0E
43 #define CRT_CURSOR_LOC_LOW_REG 0x0F
44
45 void Init_Screen(void);
46 void Clear_Screen(void);
47 void Get_Cursor(int* row, int* col);
48 bool Put_Cursor(int row, int col);
49 uchar_t Get_Current_Attr(void);
50 void Set_Current_Attr(uchar_t attrib);
51 void Put_Char(int c);
52 void Put_String(const char* s);
53 void Put_Buf(const char* buf, ulong_t length);
54 void Print(const char* fmt, ...) __attribute__ ((format (printf, 1, 2)));
55 void PrintList(const char * fmt, va_list ap);
56
57
58 #endif  /* GEEKOS */
59
60 #endif  /* GEEKOS_SCREEN_H */