LCOV - code coverage report
Current view: top level - include/linux - console.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 2 100.0 %
Date: 2017-01-25 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  *  linux/include/linux/console.h
       3             :  *
       4             :  *  Copyright (C) 1993        Hamish Macdonald
       5             :  *
       6             :  * This file is subject to the terms and conditions of the GNU General Public
       7             :  * License.  See the file COPYING in the main directory of this archive
       8             :  * for more details.
       9             :  *
      10             :  * Changed:
      11             :  * 10-Mar-94: Arno Griffioen: Conversion for vt100 emulator port from PC LINUX
      12             :  */
      13             : 
      14             : #ifndef _LINUX_CONSOLE_H_
      15             : #define _LINUX_CONSOLE_H_ 1
      16             : 
      17             : #include <linux/types.h>
      18             : 
      19             : struct vc_data;
      20             : struct console_font_op;
      21             : struct console_font;
      22             : struct module;
      23             : struct tty_struct;
      24             : 
      25             : /*
      26             :  * this is what the terminal answers to a ESC-Z or csi0c query.
      27             :  */
      28             : #define VT100ID "\033[?1;2c"
      29             : #define VT102ID "\033[?6c"
      30             : 
      31             : struct consw {
      32             :         struct module *owner;
      33             :         const char *(*con_startup)(void);
      34             :         void    (*con_init)(struct vc_data *, int);
      35             :         void    (*con_deinit)(struct vc_data *);
      36             :         void    (*con_clear)(struct vc_data *, int, int, int, int);
      37             :         void    (*con_putc)(struct vc_data *, int, int, int);
      38             :         void    (*con_putcs)(struct vc_data *, const unsigned short *, int, int, int);
      39             :         void    (*con_cursor)(struct vc_data *, int);
      40             :         int     (*con_scroll)(struct vc_data *, int, int, int, int);
      41             :         void    (*con_bmove)(struct vc_data *, int, int, int, int, int, int);
      42             :         int     (*con_switch)(struct vc_data *);
      43             :         int     (*con_blank)(struct vc_data *, int, int);
      44             :         int     (*con_font_set)(struct vc_data *, struct console_font *, unsigned);
      45             :         int     (*con_font_get)(struct vc_data *, struct console_font *);
      46             :         int     (*con_font_default)(struct vc_data *, struct console_font *, char *);
      47             :         int     (*con_font_copy)(struct vc_data *, int);
      48             :         int     (*con_resize)(struct vc_data *, unsigned int, unsigned int,
      49             :                                unsigned int);
      50             :         int     (*con_set_palette)(struct vc_data *, unsigned char *);
      51             :         int     (*con_scrolldelta)(struct vc_data *, int);
      52             :         int     (*con_set_origin)(struct vc_data *);
      53             :         void    (*con_save_screen)(struct vc_data *);
      54             :         u8      (*con_build_attr)(struct vc_data *, u8, u8, u8, u8, u8, u8);
      55             :         void    (*con_invert_region)(struct vc_data *, u16 *, int);
      56             :         u16    *(*con_screen_pos)(struct vc_data *, int);
      57             :         unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *);
      58             : };
      59             : 
      60             : extern const struct consw *conswitchp;
      61             : 
      62             : extern const struct consw dummy_con;    /* dummy console buffer */
      63             : extern const struct consw vga_con;      /* VGA text console */
      64             : extern const struct consw newport_con;  /* SGI Newport console  */
      65             : extern const struct consw prom_con;     /* SPARC PROM console */
      66             : 
      67             : int con_is_bound(const struct consw *csw);
      68             : int register_con_driver(const struct consw *csw, int first, int last);
      69             : int unregister_con_driver(const struct consw *csw);
      70             : int take_over_console(const struct consw *sw, int first, int last, int deflt);
      71             : void give_up_console(const struct consw *sw);
      72           1 : /* scroll */
      73             : #define SM_UP       (1)
      74             : #define SM_DOWN     (2)
      75             : 
      76             : /* cursor */
      77             : #define CM_DRAW     (1)
      78             : #define CM_ERASE    (2)
      79             : #define CM_MOVE     (3)
      80             : 
      81             : /*
      82             :  * The interface for a console, or any other device that wants to capture
      83             :  * console messages (printer driver?)
      84             :  *
      85             :  * If a console driver is marked CON_BOOT then it will be auto-unregistered
      86             :  * when the first real console is registered.  This is for early-printk drivers.
      87             :  */
      88             : 
      89             : #define CON_PRINTBUFFER (1)
      90             : #define CON_CONSDEV     (2) /* Last on the command line */
      91             : #define CON_ENABLED     (4)
      92             : #define CON_BOOT        (8)
      93             : #define CON_ANYTIME     (16) /* Safe to call when cpu is offline */
      94             : #define CON_BRL         (32) /* Used for a braille device */
      95             : 
      96             : struct console {
      97             :         char    name[16];
      98             :         void    (*write)(struct console *, const char *, unsigned);
      99             :         int     (*read)(struct console *, char *, unsigned);
     100             :         struct tty_driver *(*device)(struct console *, int *);
     101             :         void    (*unblank)(void);
     102             :         int     (*setup)(struct console *, char *);
     103             :         int     (*early_setup)(void);
     104             :         short   flags;
     105             :         short   index;
     106             :         int     cflag;
     107             :         void    *data;
     108             :         struct   console *next;
     109             : };
     110             : 
     111             : extern int console_set_on_cmdline;
     112             : 
     113             : extern int add_preferred_console(char *name, int idx, char *options);
     114             : extern int update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options);
     115             : extern void register_console(struct console *);
     116             : extern int unregister_console(struct console *);
     117             : extern struct console *console_drivers;
     118             : extern void acquire_console_sem(void);
     119             : extern int try_acquire_console_sem(void);
     120             : extern void release_console_sem(void);
     121             : extern void console_conditional_schedule(void);
     122             : extern void console_unblank(void);
     123             : extern struct tty_driver *console_device(int *);
     124             : extern void console_stop(struct console *);
     125             : extern void console_start(struct console *);
     126             : extern int is_console_locked(void);
     127             : extern int braille_register_console(struct console *, int index,
     128             :                 char *console_options, char *braille_options);
     129             : extern int braille_unregister_console(struct console *);
     130             : 
     131             : extern int console_suspend_enabled;
     132             : 
     133             : /* Suspend and resume console messages over PM events */
     134             : extern void suspend_console(void);
     135             : extern void resume_console(void);
     136             : 
     137             : int mda_console_init(void);
     138             : void prom_con_init(void);
     139             : 
     140             : void vcs_make_sysfs(int index);
     141             : void vcs_remove_sysfs(int index);
     142           1 : 
     143             : /* Some debug stub to catch some of the obvious races in the VT code */
     144             : #if 1
     145             : #define WARN_CONSOLE_UNLOCKED() WARN_ON(!is_console_locked() && !oops_in_progress)
     146             : #else
     147             : #define WARN_CONSOLE_UNLOCKED()
     148             : #endif
     149             : 
     150             : /* VESA Blanking Levels */
     151             : #define VESA_NO_BLANKING        0
     152             : #define VESA_VSYNC_SUSPEND      1
     153             : #define VESA_HSYNC_SUSPEND      2
     154             : #define VESA_POWERDOWN          3
     155             : 
     156             : #ifdef CONFIG_VGA_CONSOLE
     157             : extern bool vgacon_text_force(void);
     158             : #endif
     159             : 
     160             : #endif /* _LINUX_CONSOLE_H */

Generated by: LCOV version 1.10