12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /*
- * include/linux/vt_buffer.h -- Access to VT screen buffer
- *
- * (c) 1998 Martin Mares <mj@ucw.cz>
- *
- * This is a set of macros and functions which are used in the
- * console driver and related code to access the screen buffer.
- * In most cases the console works with simple in-memory buffer,
- * but when handling hardware text mode consoles, we store
- * the foreground console directly in video memory.
- */
- #ifndef _LINUX_VT_BUFFER_H_
- #define _LINUX_VT_BUFFER_H_
- #if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_MDA_CONSOLE)
- #include <asm/vga.h>
- #endif
- #ifndef VT_BUF_HAVE_RW
- #define scr_writew(val, addr) (*(addr) = (val))
- #define scr_readw(addr) (*(addr))
- #define scr_memcpyw(d, s, c) memcpy(d, s, c)
- #define scr_memmovew(d, s, c) memmove(d, s, c)
- #define VT_BUF_HAVE_MEMCPYW
- #define VT_BUF_HAVE_MEMMOVEW
- #endif
- #ifndef VT_BUF_HAVE_MEMSETW
- static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
- {
- count /= 2;
- while (count--)
- scr_writew(c, s++);
- }
- #endif
- #ifndef VT_BUF_HAVE_MEMCPYW
- static inline void scr_memcpyw(u16 *d, const u16 *s, unsigned int count)
- {
- count /= 2;
- while (count--)
- scr_writew(scr_readw(s++), d++);
- }
- #endif
- #ifndef VT_BUF_HAVE_MEMMOVEW
- static inline void scr_memmovew(u16 *d, const u16 *s, unsigned int count)
- {
- if (d < s)
- scr_memcpyw(d, s, count);
- else {
- count /= 2;
- d += count;
- s += count;
- while (count--)
- scr_writew(scr_readw(--s), --d);
- }
- }
- #endif
- #endif
|