2
* Copyright (c) 2006 Josef Cejka
3
* Copyright (c) 2011 Petr Koupy
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
10
* - Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* - Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* - The name of the author may not be used to endorse or promote products
16
* derived from this software without specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
#ifndef LIBC_IO_CHARFIELD_H_
37
#define LIBC_IO_CHARFIELD_H_
39
#include <sys/types.h>
57
console_color_t bgcolor;
58
console_color_t fgcolor;
59
console_color_attr_t attr;
68
console_style_t style;
69
char_attr_index_t index;
74
char_attr_type_t type;
84
static inline bool attrs_same(char_attrs_t a1, char_attrs_t a2)
86
if (a1.type != a2.type)
91
return (a1.val.style == a2.val.style);
93
return (a1.val.index.bgcolor == a2.val.index.bgcolor)
94
&& (a1.val.index.fgcolor == a2.val.index.fgcolor)
95
&& (a1.val.index.attr == a2.val.index.attr);
97
return (a1.val.rgb.bgcolor == a2.val.rgb.bgcolor)
98
&& (a1.val.rgb.fgcolor == a2.val.rgb.fgcolor);