X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fvt_kern.h;h=918a29763aea3e0afb58cb78d62db873bad16169;hb=16c70f8c1b54b61c3b951b6fb220df250fe09b32;hp=d1f3c979ce14c9c2b65889a3266481b4e364cc66;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h index d1f3c979c..918a29763 100644 --- a/include/linux/vt_kern.h +++ b/include/linux/vt_kern.h @@ -6,11 +6,11 @@ * with information needed by the vt package */ -#include #include #include #include #include +#include /* * Presently, a lot of graphics programs do not restore the contents of @@ -24,37 +24,28 @@ #define BROKEN_GRAPHICS_PROGRAMS 1 #endif -extern struct vt_struct { - int vc_num; /* The console number */ - unsigned char vc_mode; /* KD_TEXT, ... */ - struct vt_mode vt_mode; - int vt_pid; - int vt_newvt; - wait_queue_head_t paste_wait; -} *vt_cons[MAX_NR_CONSOLES]; - extern void kd_mksound(unsigned int hz, unsigned int ticks); extern int kbd_rate(struct kbd_repeat *rep); +extern int fg_console, last_console, want_console; /* console.c */ int vc_allocate(unsigned int console); int vc_cons_allocated(unsigned int console); -int vc_resize(int currcons, unsigned int cols, unsigned int lines); +int vc_resize(struct vc_data *vc, unsigned int cols, unsigned int lines); void vc_disallocate(unsigned int console); -void reset_palette(int currcons); -void set_palette(int currcons); +void reset_palette(struct vc_data *vc); void do_blank_screen(int entering_gfx); void do_unblank_screen(int leaving_gfx); void unblank_screen(void); void poke_blanked_console(void); -int con_font_op(int currcons, struct console_font_op *op); -int con_set_cmap(unsigned char *cmap); -int con_get_cmap(unsigned char *cmap); -void scrollback(int); -void scrollfront(int); -void update_region(int currcons, unsigned long start, int count); -void redraw_screen(int new_console, int is_switch); +int con_font_op(struct vc_data *vc, struct console_font_op *op); +int con_set_cmap(unsigned char __user *cmap); +int con_get_cmap(unsigned char __user *cmap); +void scrollback(struct vc_data *vc, int lines); +void scrollfront(struct vc_data *vc, int lines); +void update_region(struct vc_data *vc, unsigned long start, int count); +void redraw_screen(struct vc_data *vc, int is_switch); #define update_screen(x) redraw_screen(x, 0) #define switch_screen(x) redraw_screen(x, 1) @@ -66,22 +57,30 @@ int tioclinux(struct tty_struct *tty, unsigned long arg); struct unimapinit; struct unipair; -int con_set_trans_old(unsigned char * table); -int con_get_trans_old(unsigned char * table); -int con_set_trans_new(unsigned short * table); -int con_get_trans_new(unsigned short * table); -int con_clear_unimap(int currcons, struct unimapinit *ui); -int con_set_unimap(int currcons, ushort ct, struct unipair *list); -int con_get_unimap(int currcons, ushort ct, ushort *uct, struct unipair *list); -int con_set_default_unimap(int currcons); -void con_free_unimap(int currcons); -void con_protect_unimap(int currcons, int rdonly); -int con_copy_unimap(int dstcons, int srccons); +int con_set_trans_old(unsigned char __user * table); +int con_get_trans_old(unsigned char __user * table); +int con_set_trans_new(unsigned short __user * table); +int con_get_trans_new(unsigned short __user * table); +int con_clear_unimap(struct vc_data *vc, struct unimapinit *ui); +int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list); +int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct, struct unipair __user *list); +int con_set_default_unimap(struct vc_data *vc); +void con_free_unimap(struct vc_data *vc); +void con_protect_unimap(struct vc_data *vc, int rdonly); +int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc); /* vt.c */ -void complete_change_console(unsigned int new_console); int vt_waitactive(int vt); -void change_console(unsigned int); -void reset_vc(unsigned int new_console); +void change_console(struct vc_data *new_vc); +void reset_vc(struct vc_data *vc); + +/* + * vc_screen.c shares this temporary buffer with the console write code so that + * we can easily avoid touching user space while holding the console spinlock. + */ + +#define CON_BUF_SIZE (CONFIG_BASE_SMALL ? 256 : PAGE_SIZE) +extern char con_buf[CON_BUF_SIZE]; +extern struct semaphore con_buf_sem; #endif /* _VT_KERN_H */