LCOV - code coverage report
Current view: top level - include/linux - vt_buffer.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 2 7 28.6 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : /*
       3             :  *      include/linux/vt_buffer.h -- Access to VT screen buffer
       4             :  *
       5             :  *      (c) 1998 Martin Mares <mj@ucw.cz>
       6             :  *
       7             :  *      This is a set of macros and functions which are used in the
       8             :  *      console driver and related code to access the screen buffer.
       9             :  *      In most cases the console works with simple in-memory buffer,
      10             :  *      but when handling hardware text mode consoles, we store
      11             :  *      the foreground console directly in video memory.
      12             :  */
      13             : 
      14             : #ifndef _LINUX_VT_BUFFER_H_
      15             : #define _LINUX_VT_BUFFER_H_
      16             : 
      17             : #include <linux/string.h>
      18             : 
      19             : #if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_MDA_CONSOLE)
      20             : #include <asm/vga.h>
      21             : #endif
      22             : 
      23             : #ifndef VT_BUF_HAVE_RW
      24             : #define scr_writew(val, addr) (*(addr) = (val))
      25             : #define scr_readw(addr) (*(addr))
      26             : #endif
      27             : 
      28             : #ifndef VT_BUF_HAVE_MEMSETW
      29           8 : static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
      30             : {
      31             : #ifdef VT_BUF_HAVE_RW
      32             :         count /= 2;
      33             :         while (count--)
      34             :                 scr_writew(c, s++);
      35             : #else
      36           8 :         memset16(s, c, count / 2);
      37             : #endif
      38           0 : }
      39             : #endif
      40             : 
      41             : #ifndef VT_BUF_HAVE_MEMCPYW
      42           0 : static inline void scr_memcpyw(u16 *d, const u16 *s, unsigned int count)
      43             : {
      44             : #ifdef VT_BUF_HAVE_RW
      45             :         count /= 2;
      46             :         while (count--)
      47             :                 scr_writew(scr_readw(s++), d++);
      48             : #else
      49           0 :         memcpy(d, s, count);
      50             : #endif
      51             : }
      52             : #endif
      53             : 
      54             : #ifndef VT_BUF_HAVE_MEMMOVEW
      55           0 : static inline void scr_memmovew(u16 *d, const u16 *s, unsigned int count)
      56             : {
      57             : #ifdef VT_BUF_HAVE_RW
      58             :         if (d < s)
      59             :                 scr_memcpyw(d, s, count);
      60             :         else {
      61             :                 count /= 2;
      62             :                 d += count;
      63             :                 s += count;
      64             :                 while (count--)
      65             :                         scr_writew(scr_readw(--s), --d);
      66             :         }
      67             : #else
      68           0 :         memmove(d, s, count);
      69             : #endif
      70             : }
      71             : #endif
      72             : 
      73             : #endif

Generated by: LCOV version 1.14