1
2
3
4
5
6
7
8
9
10
11
12#ifndef _LINUX_CONSOLE_STRUCT_H
13#define _LINUX_CONSOLE_STRUCT_H
14
15#include <linux/wait.h>
16#include <linux/vt.h>
17#include <linux/workqueue.h>
18
19struct vt_struct;
20struct uni_pagedir;
21
22#define NPAR 16
23
24struct vc_data {
25 struct tty_port port;
26
27 unsigned short vc_num;
28 unsigned int vc_cols;
29 unsigned int vc_rows;
30 unsigned int vc_size_row;
31 unsigned int vc_scan_lines;
32 unsigned long vc_origin;
33 unsigned long vc_scr_end;
34 unsigned long vc_visible_origin;
35 unsigned int vc_top, vc_bottom;
36 const struct consw *vc_sw;
37 unsigned short *vc_screenbuf;
38 unsigned int vc_screenbuf_size;
39 unsigned char vc_mode;
40
41 unsigned char vc_attr;
42 unsigned char vc_def_color;
43 unsigned char vc_color;
44 unsigned char vc_s_color;
45 unsigned char vc_ulcolor;
46 unsigned char vc_itcolor;
47 unsigned char vc_halfcolor;
48
49 unsigned int vc_cursor_type;
50 unsigned short vc_complement_mask;
51 unsigned short vc_s_complement_mask;
52 unsigned int vc_x, vc_y;
53 unsigned int vc_saved_x, vc_saved_y;
54 unsigned long vc_pos;
55
56 unsigned short vc_hi_font_mask;
57 struct console_font vc_font;
58 unsigned short vc_video_erase_char;
59
60 unsigned int vc_state;
61 unsigned int vc_npar,vc_par[NPAR];
62
63 struct vt_mode vt_mode;
64 struct pid *vt_pid;
65 int vt_newvt;
66 wait_queue_head_t paste_wait;
67
68 unsigned int vc_charset : 1;
69 unsigned int vc_s_charset : 1;
70 unsigned int vc_disp_ctrl : 1;
71 unsigned int vc_toggle_meta : 1;
72 unsigned int vc_decscnm : 1;
73 unsigned int vc_decom : 1;
74 unsigned int vc_decawm : 1;
75 unsigned int vc_deccm : 1;
76 unsigned int vc_decim : 1;
77 unsigned int vc_deccolm : 1;
78
79 unsigned int vc_intensity : 2;
80 unsigned int vc_italic:1;
81 unsigned int vc_underline : 1;
82 unsigned int vc_blink : 1;
83 unsigned int vc_reverse : 1;
84 unsigned int vc_s_intensity : 2;
85 unsigned int vc_s_italic:1;
86 unsigned int vc_s_underline : 1;
87 unsigned int vc_s_blink : 1;
88 unsigned int vc_s_reverse : 1;
89
90 unsigned int vc_ques : 1;
91 unsigned int vc_need_wrap : 1;
92 unsigned int vc_can_do_color : 1;
93 unsigned int vc_report_mouse : 2;
94 unsigned char vc_utf : 1;
95 unsigned char vc_utf_count;
96 int vc_utf_char;
97 unsigned int vc_tab_stop[8];
98 unsigned char vc_palette[16*3];
99 unsigned short * vc_translate;
100 unsigned char vc_G0_charset;
101 unsigned char vc_G1_charset;
102 unsigned char vc_saved_G0;
103 unsigned char vc_saved_G1;
104 unsigned int vc_resize_user;
105 unsigned int vc_bell_pitch;
106 unsigned int vc_bell_duration;
107 unsigned short vc_cur_blink_ms;
108 struct vc_data **vc_display_fg;
109 struct uni_pagedir *vc_uni_pagedir;
110 struct uni_pagedir **vc_uni_pagedir_loc;
111 bool vc_panic_force_write;
112
113};
114
115struct vc {
116 struct vc_data *d;
117 struct work_struct SAK_work;
118
119
120
121
122};
123
124extern struct vc vc_cons [MAX_NR_CONSOLES];
125extern void vc_SAK(struct work_struct *work);
126
127#define CUR_DEF 0
128#define CUR_NONE 1
129#define CUR_UNDERLINE 2
130#define CUR_LOWER_THIRD 3
131#define CUR_LOWER_HALF 4
132#define CUR_TWO_THIRDS 5
133#define CUR_BLOCK 6
134#define CUR_HWMASK 0x0f
135#define CUR_SWMASK 0xfff0
136
137#define CUR_DEFAULT CUR_UNDERLINE
138
139#define CON_IS_VISIBLE(conp) (*conp->vc_display_fg == conp)
140
141#endif
142