diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 | 
| commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
| tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/linux/console_struct.h | |
| download | olio-linux-3.10-1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.tar.xz olio-linux-3.10-1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.zip  | |
Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/linux/console_struct.h')
| -rw-r--r-- | include/linux/console_struct.h | 123 | 
1 files changed, 123 insertions, 0 deletions
diff --git a/include/linux/console_struct.h b/include/linux/console_struct.h new file mode 100644 index 00000000000..725be90ef55 --- /dev/null +++ b/include/linux/console_struct.h @@ -0,0 +1,123 @@ +/* + * console_struct.h + * + * Data structure describing single virtual console except for data + * used by vt.c. + * + * Fields marked with [#] must be set by the low-level driver. + * Fields marked with [!] can be changed by the low-level driver + * to achieve effects such as fast scrolling by changing the origin. + */ + +struct vt_struct; + +#define NPAR 16 + +struct vc_data { +	unsigned short	vc_num;			/* Console number */ +	unsigned int	vc_cols;		/* [#] Console size */ +	unsigned int	vc_rows; +	unsigned int	vc_size_row;		/* Bytes per row */ +	unsigned int	vc_scan_lines;		/* # of scan lines */ +	unsigned long	vc_origin;		/* [!] Start of real screen */ +	unsigned long	vc_scr_end;		/* [!] End of real screen */ +	unsigned long	vc_visible_origin;	/* [!] Top of visible window */ +	unsigned int	vc_top, vc_bottom;	/* Scrolling region */ +	const struct consw *vc_sw; +	unsigned short	*vc_screenbuf;		/* In-memory character/attribute buffer */ +	unsigned int	vc_screenbuf_size; +	unsigned char	vc_mode;		/* KD_TEXT, ... */ +	/* attributes for all characters on screen */ +	unsigned char	vc_attr;		/* Current attributes */ +	unsigned char	vc_def_color;		/* Default colors */ +	unsigned char	vc_color;		/* Foreground & background */ +	unsigned char	vc_s_color;		/* Saved foreground & background */ +	unsigned char	vc_ulcolor;		/* Color for underline mode */ +	unsigned char	vc_halfcolor;		/* Color for half intensity mode */ +	/* cursor */ +	unsigned int	vc_cursor_type; +	unsigned short	vc_complement_mask;	/* [#] Xor mask for mouse pointer */ +	unsigned short	vc_s_complement_mask;	/* Saved mouse pointer mask */ +	unsigned int	vc_x, vc_y;		/* Cursor position */ +	unsigned int	vc_saved_x, vc_saved_y; +	unsigned long	vc_pos;			/* Cursor address */ +	/* fonts */	 +	unsigned short	vc_hi_font_mask;	/* [#] Attribute set for upper 256 chars of font or 0 if not supported */ +	struct console_font vc_font;		/* Current VC font set */ +	unsigned short	vc_video_erase_char;	/* Background erase character */ +	/* VT terminal data */ +	unsigned int	vc_state;		/* Escape sequence parser state */ +	unsigned int	vc_npar,vc_par[NPAR];	/* Parameters of current escape sequence */ +	struct tty_struct *vc_tty;		/* TTY we are attached to */ +	/* data for manual vt switching */ +	struct vt_mode	vt_mode; +	int		vt_pid; +	int		vt_newvt; +	wait_queue_head_t paste_wait; +	/* mode flags */ +	unsigned int	vc_charset	: 1;	/* Character set G0 / G1 */ +	unsigned int	vc_s_charset	: 1;	/* Saved character set */ +	unsigned int	vc_disp_ctrl	: 1;	/* Display chars < 32? */ +	unsigned int	vc_toggle_meta	: 1;	/* Toggle high bit? */ +	unsigned int	vc_decscnm	: 1;	/* Screen Mode */ +	unsigned int	vc_decom	: 1;	/* Origin Mode */ +	unsigned int	vc_decawm	: 1;	/* Autowrap Mode */ +	unsigned int	vc_deccm	: 1;	/* Cursor Visible */ +	unsigned int	vc_decim	: 1;	/* Insert Mode */ +	unsigned int	vc_deccolm	: 1;	/* 80/132 Column Mode */ +	/* attribute flags */ +	unsigned int	vc_intensity	: 2;	/* 0=half-bright, 1=normal, 2=bold */ +	unsigned int	vc_underline	: 1; +	unsigned int	vc_blink	: 1; +	unsigned int	vc_reverse	: 1; +	unsigned int	vc_s_intensity	: 2;	/* saved rendition */ +	unsigned int	vc_s_underline	: 1; +	unsigned int	vc_s_blink	: 1; +	unsigned int	vc_s_reverse	: 1; +	/* misc */ +	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 int	vc_kmalloced	: 1; +	unsigned char	vc_utf		: 1;	/* Unicode UTF-8 encoding */ +	unsigned char	vc_utf_count; +		 int	vc_utf_char; +	unsigned int	vc_tab_stop[8];		/* Tab stops. 256 columns. */ +	unsigned char   vc_palette[16*3];       /* Colour palette for VGA+ */ +	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_bell_pitch;		/* Console bell pitch */ +	unsigned int	vc_bell_duration;	/* Console bell duration */ +	struct vc_data **vc_display_fg;		/* [!] Ptr to var holding fg console for this display */ +	unsigned long	vc_uni_pagedir; +	unsigned long	*vc_uni_pagedir_loc;  /* [!] Location of uni_pagedir variable for this console */ +	/* additional information is in vt_kern.h */ +}; + +struct vc { +	struct vc_data *d; + +	/* might add  scrmem, vt_struct, kbd  at some time, +	   to have everything in one place - the disadvantage +	   would be that vc_cons etc can no longer be static */ +}; + +extern struct vc vc_cons [MAX_NR_CONSOLES]; + +#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)  |