aboutsummaryrefslogtreecommitdiff
path: root/include/linux/console_struct.h
blob: 187224a149548b1c97617b5dfc5e6213c24d6111 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#ifndef _LINUX_CONSOLE_STRUCT_H
#define _LINUX_CONSOLE_STRUCT_H

#include <linux/wait.h>
#include <linux/vt.h>
#include <linux/workqueue.h>

struct vt_struct;

#define NPAR 16

struct vc_data {
	struct tty_port port;			

	unsigned short	vc_num;			
	unsigned int	vc_cols;		
	unsigned int	vc_rows;
	unsigned int	vc_size_row;		
	unsigned int	vc_scan_lines;		
	unsigned long	vc_origin;		
	unsigned long	vc_scr_end;		
	unsigned long	vc_visible_origin;	
	unsigned int	vc_top, vc_bottom;	
	const struct consw *vc_sw;
	unsigned short	*vc_screenbuf;		
	unsigned int	vc_screenbuf_size;
	unsigned char	vc_mode;		
	
	unsigned char	vc_attr;		
	unsigned char	vc_def_color;		
	unsigned char	vc_color;		
	unsigned char	vc_s_color;		
	unsigned char	vc_ulcolor;		
	unsigned char   vc_itcolor;
	unsigned char	vc_halfcolor;		
	
	unsigned int	vc_cursor_type;
	unsigned short	vc_complement_mask;	
	unsigned short	vc_s_complement_mask;	
	unsigned int	vc_x, vc_y;		
	unsigned int	vc_saved_x, vc_saved_y;
	unsigned long	vc_pos;			
		
	unsigned short	vc_hi_font_mask;	
	struct console_font vc_font;		
	unsigned short	vc_video_erase_char;	
	
	unsigned int	vc_state;		
	unsigned int	vc_npar,vc_par[NPAR];	
	
	struct vt_mode	vt_mode;
	struct pid 	*vt_pid;
	int		vt_newvt;
	wait_queue_head_t paste_wait;
	
	unsigned int	vc_charset	: 1;	
	unsigned int	vc_s_charset	: 1;	
	unsigned int	vc_disp_ctrl	: 1;	
	unsigned int	vc_toggle_meta	: 1;	
	unsigned int	vc_decscnm	: 1;	
	unsigned int	vc_decom	: 1;	
	unsigned int	vc_decawm	: 1;	
	unsigned int	vc_deccm	: 1;	
	unsigned int	vc_decim	: 1;	
	unsigned int	vc_deccolm	: 1;	
	
	unsigned int	vc_intensity	: 2;	
	unsigned int    vc_italic:1;
	unsigned int	vc_underline	: 1;
	unsigned int	vc_blink	: 1;
	unsigned int	vc_reverse	: 1;
	unsigned int	vc_s_intensity	: 2;	
	unsigned int    vc_s_italic:1;
	unsigned int	vc_s_underline	: 1;
	unsigned int	vc_s_blink	: 1;
	unsigned int	vc_s_reverse	: 1;
	
	unsigned int	vc_ques		: 1;
	unsigned int	vc_need_wrap	: 1;
	unsigned int	vc_can_do_color	: 1;
	unsigned int	vc_report_mouse : 2;
	unsigned char	vc_utf		: 1;	
	unsigned char	vc_utf_count;
		 int	vc_utf_char;
	unsigned int	vc_tab_stop[8];		
	unsigned char   vc_palette[16*3];       
	unsigned short * vc_translate;
	unsigned char 	vc_G0_charset;
	unsigned char 	vc_G1_charset;
	unsigned char 	vc_saved_G0;
	unsigned char 	vc_saved_G1;
	unsigned int    vc_resize_user;         
	unsigned int	vc_bell_pitch;		
	unsigned int	vc_bell_duration;	
	struct vc_data **vc_display_fg;		
	unsigned long	vc_uni_pagedir;
	unsigned long	*vc_uni_pagedir_loc;  
	bool vc_panic_force_write; 
	
};

struct vc {
	struct vc_data *d;
	struct work_struct SAK_work;

};

extern struct vc vc_cons [MAX_NR_CONSOLES];
extern void vc_SAK(struct work_struct *work);

#define CUR_DEF		0
#define CUR_NONE	1
#define CUR_UNDERLINE	2
#define CUR_LOWER_THIRD	3
#define CUR_LOWER_HALF	4
#define CUR_TWO_THIRDS	5
#define CUR_BLOCK	6
#define CUR_HWMASK	0x0f
#define CUR_SWMASK	0xfff0

#define CUR_DEFAULT CUR_UNDERLINE

#define CON_IS_VISIBLE(conp) (*conp->vc_display_fg == conp)

#endif