linux-old/include/linux/console_struct.h
<<
>>
Prefs
   1/*
   2 * console_struct.h
   3 *
   4 * Data structure describing single virtual console except for data
   5 * used by vt.c.
   6 *
   7 * Fields marked with [#] must be set by the low-level driver.
   8 * Fields marked with [!] can be changed by the low-level driver
   9 * to achieve effects such as fast scrolling by changing the origin.
  10 */
  11
  12#ifndef _LINUX_CONSOLE_STRUCT_H_
  13#define _LINUX_CONSOLE_STRUCT_H_
  14
  15#define NPAR 16
  16
  17struct vc_data {
  18        unsigned short  vc_num;                 /* Console number */
  19        unsigned int    vc_cols;                /* [#] Console size */
  20        unsigned int    vc_rows;
  21        unsigned int    vc_size_row;            /* Bytes per row */
  22        const struct consw *vc_sw;
  23        unsigned short  *vc_screenbuf;          /* In-memory character/attribute buffer */
  24        unsigned int    vc_screenbuf_size;
  25        unsigned char   vc_attr;                /* Current attributes */
  26        unsigned char   vc_def_color;           /* Default colors */
  27        unsigned char   vc_color;               /* Foreground & background */
  28        unsigned char   vc_s_color;             /* Saved foreground & background */
  29        unsigned char   vc_ulcolor;             /* Color for underline mode */
  30        unsigned char   vc_halfcolor;           /* Color for half intensity mode */
  31        unsigned short  vc_complement_mask;     /* [#] Xor mask for mouse pointer */
  32        unsigned short  vc_hi_font_mask;        /* [#] Attribute set for upper 256 chars of font or 0 if not supported */
  33        unsigned short  vc_video_erase_char;    /* Background erase character */
  34        unsigned short  vc_s_complement_mask;   /* Saved mouse pointer mask */
  35        unsigned int    vc_x, vc_y;             /* Cursor position */
  36        unsigned int    vc_top, vc_bottom;      /* Scrolling region */
  37        unsigned int    vc_state;               /* Escape sequence parser state */
  38        unsigned int    vc_npar,vc_par[NPAR];   /* Parameters of current escape sequence */
  39        unsigned long   vc_origin;              /* [!] Start of real screen */
  40        unsigned long   vc_scr_end;             /* [!] End of real screen */
  41        unsigned long   vc_visible_origin;      /* [!] Top of visible window */
  42        unsigned long   vc_pos;                 /* Cursor address */
  43        unsigned int    vc_saved_x;
  44        unsigned int    vc_saved_y;
  45        /* mode flags */
  46        unsigned int    vc_charset      : 1;    /* Character set G0 / G1 */
  47        unsigned int    vc_s_charset    : 1;    /* Saved character set */
  48        unsigned int    vc_disp_ctrl    : 1;    /* Display chars < 32? */
  49        unsigned int    vc_toggle_meta  : 1;    /* Toggle high bit? */
  50        unsigned int    vc_decscnm      : 1;    /* Screen Mode */
  51        unsigned int    vc_decom        : 1;    /* Origin Mode */
  52        unsigned int    vc_decawm       : 1;    /* Autowrap Mode */
  53        unsigned int    vc_deccm        : 1;    /* Cursor Visible */
  54        unsigned int    vc_decim        : 1;    /* Insert Mode */
  55        unsigned int    vc_deccolm      : 1;    /* 80/132 Column Mode */
  56        /* attribute flags */
  57        unsigned int    vc_intensity    : 2;    /* 0=half-bright, 1=normal, 2=bold */
  58        unsigned int    vc_underline    : 1;
  59        unsigned int    vc_blink        : 1;
  60        unsigned int    vc_reverse      : 1;
  61        unsigned int    vc_s_intensity  : 2;    /* saved rendition */
  62        unsigned int    vc_s_underline  : 1;
  63        unsigned int    vc_s_blink      : 1;
  64        unsigned int    vc_s_reverse    : 1;
  65        /* misc */
  66        unsigned int    vc_ques         : 1;
  67        unsigned int    vc_need_wrap    : 1;
  68        unsigned int    vc_can_do_color : 1;
  69        unsigned int    vc_report_mouse : 2;
  70        unsigned int    vc_kmalloced    : 1;
  71        unsigned char   vc_utf          : 1;    /* Unicode UTF-8 encoding */
  72        unsigned char   vc_utf_count;
  73                 int    vc_utf_char;
  74        unsigned int    vc_tab_stop[8];         /* Tab stops. 256 columns. */
  75        unsigned char   vc_palette[16*3];       /* Colour palette for VGA+ */
  76        unsigned short * vc_translate;
  77        unsigned char   vc_G0_charset;
  78        unsigned char   vc_G1_charset;
  79        unsigned char   vc_saved_G0;
  80        unsigned char   vc_saved_G1;
  81        unsigned int    vc_bell_pitch;          /* Console bell pitch */
  82        unsigned int    vc_bell_duration;       /* Console bell duration */
  83        unsigned int    vc_cursor_type;
  84        struct vc_data **vc_display_fg;         /* [!] Ptr to var holding fg console for this display */
  85        unsigned long   vc_uni_pagedir;
  86        unsigned long   *vc_uni_pagedir_loc;  /* [!] Location of uni_pagedir variable for this console */
  87        /* additional information is in vt_kern.h */
  88};
  89
  90struct vc {
  91        struct vc_data *d;
  92
  93        /* might add  scrmem, vt_struct, kbd  at some time,
  94           to have everything in one place - the disadvantage
  95           would be that vc_cons etc can no longer be static */
  96};
  97
  98extern struct vc vc_cons [MAX_NR_CONSOLES];
  99
 100#define CUR_DEF         0
 101#define CUR_NONE        1
 102#define CUR_UNDERLINE   2
 103#define CUR_LOWER_THIRD 3
 104#define CUR_LOWER_HALF  4
 105#define CUR_TWO_THIRDS  5
 106#define CUR_BLOCK       6
 107#define CUR_HWMASK      0x0f
 108#define CUR_SWMASK      0xfff0
 109
 110#define CUR_DEFAULT CUR_UNDERLINE
 111
 112#define CON_IS_VISIBLE(conp) (*conp->vc_display_fg == conp)
 113
 114#endif /* _LINUX_CONSOLE_STRUCT_H_ */
 115
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.