xref: /OK3568_Linux_fs/kernel/include/linux/selection.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * selection.h
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Interface between console.c, tty_io.c, vt.c, vc_screen.c and selection.c
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef _LINUX_SELECTION_H_
9*4882a593Smuzhiyun #define _LINUX_SELECTION_H_
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include <linux/tiocl.h>
12*4882a593Smuzhiyun #include <linux/vt_buffer.h>
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun struct tty_struct;
15*4882a593Smuzhiyun struct vc_data;
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun extern void clear_selection(void);
18*4882a593Smuzhiyun extern int set_selection_user(const struct tiocl_selection __user *sel,
19*4882a593Smuzhiyun 			      struct tty_struct *tty);
20*4882a593Smuzhiyun extern int set_selection_kernel(struct tiocl_selection *v,
21*4882a593Smuzhiyun 				struct tty_struct *tty);
22*4882a593Smuzhiyun extern int paste_selection(struct tty_struct *tty);
23*4882a593Smuzhiyun extern int sel_loadlut(char __user *p);
24*4882a593Smuzhiyun extern int mouse_reporting(void);
25*4882a593Smuzhiyun extern void mouse_report(struct tty_struct * tty, int butt, int mrx, int mry);
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun bool vc_is_sel(struct vc_data *vc);
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun extern int console_blanked;
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun extern const unsigned char color_table[];
32*4882a593Smuzhiyun extern unsigned char default_red[];
33*4882a593Smuzhiyun extern unsigned char default_grn[];
34*4882a593Smuzhiyun extern unsigned char default_blu[];
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun extern unsigned short *screen_pos(const struct vc_data *vc, int w_offset,
37*4882a593Smuzhiyun 		bool viewed);
38*4882a593Smuzhiyun extern u16 screen_glyph(const struct vc_data *vc, int offset);
39*4882a593Smuzhiyun extern u32 screen_glyph_unicode(const struct vc_data *vc, int offset);
40*4882a593Smuzhiyun extern void complement_pos(struct vc_data *vc, int offset);
41*4882a593Smuzhiyun extern void invert_screen(struct vc_data *vc, int offset, int count, bool viewed);
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun extern void getconsxy(const struct vc_data *vc, unsigned char xy[static 2]);
44*4882a593Smuzhiyun extern void putconsxy(struct vc_data *vc, unsigned char xy[static const 2]);
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun extern u16 vcs_scr_readw(const struct vc_data *vc, const u16 *org);
47*4882a593Smuzhiyun extern void vcs_scr_writew(struct vc_data *vc, u16 val, u16 *org);
48*4882a593Smuzhiyun extern void vcs_scr_updated(struct vc_data *vc);
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun extern int vc_uniscr_check(struct vc_data *vc);
51*4882a593Smuzhiyun extern void vc_uniscr_copy_line(const struct vc_data *vc, void *dest,
52*4882a593Smuzhiyun 				bool viewed,
53*4882a593Smuzhiyun 				unsigned int row, unsigned int col,
54*4882a593Smuzhiyun 				unsigned int nr);
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #endif
57