Implement border color customization in wscons(4), only available for vga(4)
at the moment.
This includes the addition of two new wsdisplay ioctls, WSDISPLAY_{G,S}BORDER,
one to get the actual color and one to set it, respectively. Possible colors
match those defined by ANSI (and listed in wsdisplayvar.h).
It also adds two accessops to the underlying graphics device, getborder and
setborder, which mach their ioctl counterparts.
Two kernel options are added: WSDISPLAY_CUSTOM_BORDER, which enables the
ioctls described above (to customize the border color from userland after
boot), and WSDISPLAY_BORDER_COLOR, which sets the color at boot time.
The former is enabled by default on the GENERIC kernel, but not on INSTALL
(among others). The later is always commented out, leaving the usual black
border as a default.
wsconsctl is modified to allow accessing this value easily. For example,
'wsconsctl -d -w border=blue'.
2004-07-30 02:29:35 +04:00
|
|
|
/* $NetBSD: vgareg.h,v 1.8 2004/07/29 22:29:37 jmmv Exp $ */
|
1998-03-22 18:11:49 +03:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright (c) 1998
|
|
|
|
* Matthias Drochner. All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
|
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
|
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
|
|
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
|
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
|
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
struct reg_vgaattr { /* indexed via port 0x3c0 */
|
2001-12-30 16:13:04 +03:00
|
|
|
u_int8_t palette[16];
|
|
|
|
u_int8_t mode, overscan, colplen, horpixpan;
|
|
|
|
u_int8_t colreset, misc;
|
1998-03-22 18:11:49 +03:00
|
|
|
};
|
2001-12-29 20:44:35 +03:00
|
|
|
#define VGA_ATC_NREGS 21
|
2003-01-27 18:16:10 +03:00
|
|
|
#define VGA_ATC_INDEX 0x0
|
|
|
|
#define VGA_ATC_DATAW 0x0
|
|
|
|
#define VGA_ATC_DATAR 0x1
|
Implement border color customization in wscons(4), only available for vga(4)
at the moment.
This includes the addition of two new wsdisplay ioctls, WSDISPLAY_{G,S}BORDER,
one to get the actual color and one to set it, respectively. Possible colors
match those defined by ANSI (and listed in wsdisplayvar.h).
It also adds two accessops to the underlying graphics device, getborder and
setborder, which mach their ioctl counterparts.
Two kernel options are added: WSDISPLAY_CUSTOM_BORDER, which enables the
ioctls described above (to customize the border color from userland after
boot), and WSDISPLAY_BORDER_COLOR, which sets the color at boot time.
The former is enabled by default on the GENERIC kernel, but not on INSTALL
(among others). The later is always commented out, leaving the usual black
border as a default.
wsconsctl is modified to allow accessing this value easily. For example,
'wsconsctl -d -w border=blue'.
2004-07-30 02:29:35 +04:00
|
|
|
#define VGA_ATC_OVERSCAN 0x11
|
1998-03-22 18:11:49 +03:00
|
|
|
|
|
|
|
struct reg_vgats { /* indexed via port 0x3c4 */
|
2001-12-30 16:13:04 +03:00
|
|
|
u_int8_t syncreset, mode, wrplmask, fontsel, memmode;
|
1998-03-22 18:11:49 +03:00
|
|
|
};
|
2003-01-27 18:16:10 +03:00
|
|
|
#define VGA_TS_MODE_BLANK 0x20
|
|
|
|
|
|
|
|
#define VGA_TS_NREGS 5
|
|
|
|
#define VGA_TS_INDEX 0x4
|
|
|
|
#define VGA_TS_DATA 0x5
|
1998-03-22 18:11:49 +03:00
|
|
|
|
|
|
|
struct reg_vgagdc { /* indexed via port 0x3ce */
|
2001-12-30 16:13:04 +03:00
|
|
|
u_int8_t setres, ensetres, colorcomp, rotfunc;
|
|
|
|
u_int8_t rdplanesel, mode, misc, colorcare;
|
|
|
|
u_int8_t bitmask;
|
1998-03-22 18:11:49 +03:00
|
|
|
};
|
2001-12-29 20:44:35 +03:00
|
|
|
#define VGA_GDC_NREGS 9
|
|
|
|
#define VGA_GDC_INDEX 0xe
|
|
|
|
#define VGA_GDC_DATA 0xf
|
|
|
|
|
2003-01-27 18:16:10 +03:00
|
|
|
/*
|
|
|
|
* CRTC registers are defined in sys/dev/ic/mc6845reg.h
|
|
|
|
*/
|
2001-12-29 20:44:35 +03:00
|
|
|
|
2003-02-01 00:57:23 +03:00
|
|
|
/* video DAC palette registers */
|
|
|
|
#define VGA_DAC_PELMASK 0x6
|
|
|
|
#define VGA_DAC_STATE 0x7
|
|
|
|
#define VGA_DAC_ADDRR 0x7
|
|
|
|
#define VGA_DAC_ADDRW 0x8
|
|
|
|
#define VGA_DAC_PALETTE 0x9
|
|
|
|
|
2001-12-29 20:44:35 +03:00
|
|
|
/* misc output register */
|
|
|
|
#define VGA_MISC_DATAR 0xc
|
2003-01-27 18:16:10 +03:00
|
|
|
#define VGA_MISC_DATAW 0x2
|