aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/consio.h
Commit message (Collapse)AuthorAgeFilesLines
* sys/sys: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-271-0/+2
| | | | | | | | | | | | | | | Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Notes: svn path=/head/; revision=326256
* Support setting the colors of cursors for the VGA renderer.Bruce Evans2017-08-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Advertise this by changing the defaults to mostly red. If you don't like this, change them (almost) back using: vidcontrol -c charcolors,base=7,height=0 vidcontrol -c mousecolors,base=0[,height=15] The (graphics mode only) mouse cursor colors were hard-coded to a black border and lightwhite interior. Black for the border is the worst possible default, since it is the same as the default black background and not good for any dark background. Reversing this gives the better default of X Windows. Coloring everything works better still. Now the coloring defaults to a lightwhite border and red interior. Coloring for the character cursor is more complicated and mode dependent. The new coloring doesn't apply for hardware cursors. For non-block cursors, it only applies in graphics mode. In text mode, the cursor color was usually a hard-coded (dull)white for the background only, unless the foreground was white when it was a hard-coded black for the background only, unless the foreground was white and the background was black it was reverse video. In graphics mode, it was always reverse video for the block cursor. Reverse video is worse, especially over cutmarking regions, since cutmarking still uses simple reverse video (nothing better is possible in text mode) and double reverse video for the cursor gives normal video. Now, graphics mode uses the same algorithm as the best case for text mode in all cases for graphics mode. The hard-coded sequence { white, black, } for the background is now { red, white, blue, } where the first 2 colors can be configured. The blue color at the end is a sentinel which prevents reverse video being used in most cases but breaks the compatibility setting for white on black and black on white characters. This will be fixed later. The compatibility setting is most needed for mono modes. The previous commit to syscons.c changed sc_cnterm() to be more careful. It followed null pointers in some cases. But sc_cnterm() has been unreachable for 15+ years since changes for multiple consoles turned off calls to the the cnterm destructor for all console drivers. Before them, it was only called at boot time. So no driver with an attached console has ever been unloadable and not even the non-console destructors have been tested much. Notes: svn path=/head/; revision=322878
* Fix setting of defaults for the text cursor.Bruce Evans2017-08-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | There was already a per-vty defaults field, but it was useless since it was only initialized when propagating the global settings and thus no different from the current global settings and not per-vty. The global defaults field was also invariant after boot time, but not quite so useless. Fix this by adding a second selection bit the the control flags of the relevant ioctl(). vidcontrol doesn't support this yet. Setting either default propagates the change to the current setting for the same level and then to all lower levels. Improve the 3-way escape sequence used by termcap to control the cursor. The "normal" (ve) case has always used reset, so the user could set it to anything, but since the reset is to a global value this is not very useful, especially since the "very visible" (vs) case doesn't reset but inconsistently forces to a blinking block. Change vs to first reset and then XOR the blinking bit so that it is predictably different from ve. Notes: svn path=/head/; revision=322709
* Rename curr_curs_attr to base_curr_attr. The actual current cursorBruce Evans2017-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | attribute field is curs_attr. The base field holds user data translated in a reversible way and is needed because current field holds this in an irreversible way for efficiency. Factor out some common code for the reversible translation. This is slightly simpler now, and much easier to expand. Translate the magic flags value -1 to a single control flag internally up front so other flags can be trusted later. This can be used for the relevant ioctl() too. Remove CONS_CURSOR_FLAGS which contained all the control flags. It was unused and not useful. After adding more flags, there will be tests on a couple at a time but never on them all. This API should have used this to disallow unknown flags. Notes: svn path=/head/; revision=322708
* Undeprecate the CONS_CURSORTYPE ioctl. It was "deprecated" in 2001,Bruce Evans2017-08-161-4/+8
| | | | | | | | | | | | | | | | but it was actually extended then and it is still used (just once) in /usr/src by its primary user (vidcontrol), while its replacement is still not used in /usr/src. yokota became inactive soon after deprecating CONS_CURSORTYPE (this was part of a large change to make cursor attributes per-vty). vidcontrol has incomplete support even for the old ioctl. I will update it soon. Then there are many broken escape sequences to fix. This is just to prepare for setting cursor colors using vidcontrol. Notes: svn path=/head/; revision=322575
* Remove pc98 support completely.Yoshihiro Takahashi2017-01-281-6/+0
| | | | | | | | | I thank all developers and contributors for pc98. Relnotes: yes Notes: svn path=/head/; revision=312910
* vt(4): Add PIO_VFONT_DEFAULT ioctl to restore the default builtin fontJean-Sébastien Pédron2014-10-231-0/+1
| | | | | | | | | | | | | | | | To restore the default font using vidcontrol(1), use the "-f" flag without an argument: vidcontrol -f < /dev/ttyv0 PR: 193910 Differential Revision: https://reviews.freebsd.org/D971 Submitted by: Marcin Cieslak <saper@saper.info> Reviewed by: ray@, emaste@ Approved by: ray@ MFC after: 1 week Notes: svn path=/head/; revision=273544
* Support double-width characters in vt(9)Ed Maste2013-12-211-5/+8
| | | | | | | | | | | | Normal and bold fonts each have a glyph map for single or left half- glyphs, and right half glyphs. The flag TF_CJK_RIGHT in term_char_t requests the right half-glyph. Reviewed by: ed@ Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=259680
* Merge VT(9) project (a.k.a. newcons).Aleksandr Rybalko2013-12-051-0/+21
| | | | | | | | | | Reviewed by: nwhitehorn MFC_to_10_after: re approval Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=259016
* Fix undefined behavior: (1 << 31) is not defined as 1 is an int and thisEitan Adler2013-11-301-1/+1
| | | | | | | | | | | | | | | | shifts into the sign bit. Instead use (1U << 31) which gets the expected result. This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases. A similar change was made in OpenBSD. Discussed with: -arch, rdivacky Reviewed by: cperciva Notes: svn path=/head/; revision=258780
* Convert files to UTF-8Ulrich Spörlein2012-01-151-1/+1
| | | | Notes: svn path=/head/; revision=230132
* Fix our ioctl(2) implementation when the argument is "int". NewRuslan Ermilov2006-09-271-7/+7
| | | | | | | | | | | | | | | | ioctls passing integer arguments should use the _IOWINT() macro. This fixes a lot of ioctl's not working on sparc64, most notable being keyboard/syscons ioctls. Full ABI compatibility is provided, with the bonus of fixing the handling of old ioctls on sparc64. Reviewed by: bde (with contributions) Tested by: emax, marius MFC after: 1 week Notes: svn path=/head/; revision=162711
* Remove the ADJUST_CLOCK ioctl on pc98. It's not used at all.Yoshihiro Takahashi2005-05-151-4/+0
| | | | Notes: svn path=/head/; revision=146235
* 1. Allow information about current history size be retrieved using ioctl(2);Maxim Sobolev2002-08-191-0/+3
| | | | | | | | 2. modify screen dumpung routine, so that in addition to visible area, it allows to grab any portion of history buffer as well. Notes: svn path=/head/; revision=102108
* Add a VT_LOCKSWITCH ioctl that disallows vty switching. SomethingDima Dorfman2002-07-101-0/+3
| | | | | | | | | | | like this can be emulated by VT_SETMODEing to VT_PROCESS and never releasing the vty, but this has a number of problems, most notably that a process must stay resident for the lock to be in effect. Reviewed by: roam, sheldonh Notes: svn path=/head/; revision=99704
* Rename struct scr_size into struct _scr_size and struct scrmap intoMaxim Sobolev2002-05-161-4/+4
| | | | | | | | | | struct _scrmap, so that it doesn't break C++ programs (name of element of the structure is the same as the name of the scructure itself). MFC after: 5 days Notes: svn path=/head/; revision=96724
* Extend CONS_GETINFO ioctl to provide information about size of the currentlyMaxim Sobolev2002-03-161-0/+1
| | | | | | | | | displayed font. MFC after: 2 weeks Notes: svn path=/head/; revision=92459
* Refine cursor type/shape control escape sequences andKazutaka YOKOTA2001-08-021-1/+19
| | | | | | | | | | ioctls. We can now add ve, vi and vs capabilities to cons25 in termcap. Discussed with and tested by: ache Notes: svn path=/head/; revision=81030
* Move definition of structure used in CONS_SCRSHOT ioctl in front of definitionMaxim Sobolev2001-07-261-3/+3
| | | | | | | | | of ioctl itself, like we have for all other ioctl's in this file. MFC after: 2 weeks Notes: svn path=/head/; revision=80387
* - Define a convenience macro ISTTYOPEN().Kazutaka YOKOTA2001-07-121-0/+1
| | | | | | | | | | - Slightly refine screen saver logic. No functional change. MFC after: 2 weeks Notes: svn path=/head/; revision=79622
* Add a CONS_CLRHIST ioctl which instructs syscons to clear the historyDima Dorfman2001-05-271-0/+3
| | | | | | | | | | (scroll-back) buffer. PR: 27616 Reviewed by: ru Notes: svn path=/head/; revision=77251
* Add a new ioctl to syscons, CONS_SCRSHOT. Given a userland buffer, itNik Clayton2001-05-181-0/+10
| | | | | | | | | | | | | | copies out the current contents of the video buffer for a syscons terminal, providing a snapshot of the text and attributes. Based heavily on work originally submitted by Joel Holveck <joelh@gnu.org> for 2.2.x almost 30 months ago, which I cleaned up a little, and forward ported to -current. See also the usr.bin/scrshot utility. Notes: svn path=/head/; revision=76798
* Supported EGC 640x400, PEGC 640x400 and PEGC 640x480 graphics modes.Yoshihiro Takahashi2000-04-271-2/+5
| | | | | | | | Submitted by: Chiharu Shibata <chi@bd.mbn.or.jp> and Tomokazu HARADA <tkhara@osk4.3web.ne.jp> Notes: svn path=/head/; revision=59689
* This is the 3rd stage of syscons code reorganization.Kazutaka YOKOTA2000-01-151-0/+15
| | | | | | | | | | | | | | | | | | - Split terminal emulation code from the main part of the driver so that we can have alternative terminal emulator modules if we like in the future. (We are not quite there yet, though.) - Put sysmouse related code in a separate file, thus, simplifying the main part of the driver. As some files are added to the source tree, you need to run config(8) before you compile a new kernel next time. You shouldn't see any functional change by this commit; this is only internal code reorganization. Notes: svn path=/head/; revision=56043
* Make the mouse cursor char code configurable via the CONS_MOUSECTLKazutaka YOKOTA2000-01-121-0/+2
| | | | | | | | | ioctl. By popular demand. Notes: svn path=/head/; revision=55849
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"Peter Wemm1999-12-291-1/+1
| | | | | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come. Notes: svn path=/head/; revision=55205
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* The second phase of syscons reorganization.Kazutaka YOKOTA1999-06-221-0/+385
- Split syscons source code into manageable chunks and reorganize some of complicated functions. - Many static variables are moved to the softc structure. - Added a new key function, PREV. When this key is pressed, the vty immediately before the current vty will become foreground. Analogue to PREV, which is usually assigned to the PrntScrn key. PR: kern/10113 Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de> - Modified the kernel console input function sccngetc() so that it handles function keys properly. - Reorganized the screen update routine. - VT switching code is reorganized. It now should be slightly more robust than before. - Added the DEVICE_RESUME function so that syscons no longer hooks the APM resume event directly. - New kernel configuration options: SC_NO_CUTPASTE, SC_NO_FONT_LOADING, SC_NO_HISTORY and SC_NO_SYSMOUSE. Various parts of syscons can be omitted so that the kernel size is reduced. SC_PIXEL_MODE Made the VESA 800x600 mode an option, rather than a standard part of syscons. SC_DISABLE_DDBKEY Disables the `debug' key combination. SC_ALT_MOUSE_IMAGE Inverse the character cell at the mouse cursor position in the text console, rather than drawing an arrow on the screen. Submitted by: Nick Hibma (n_hibma@FreeBSD.ORG) SC_DFLT_FONT makeoptions "SC_DFLT_FONT=_font_name_" Include the named font as the default font of syscons. 16-line, 14-line and 8-line font data will be compiled in. This option replaces the existing STD8X16FONT option, which loads 16-line font data only. - The VGA driver is split into /sys/dev/fb/vga.c and /sys/isa/vga_isa.c. - The video driver provides a set of ioctl commands to manipulate the frame buffer. - New kernel configuration option: VGA_WIDTH90 Enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60. These modes are mot always supported by the video card. PR: i386/7510 Submitted by: kbyanc@freedomnet.com and alexv@sui.gda.itesm.mx. - The header file machine/console.h is reorganized; its contents is now split into sys/fbio.h, sys/kbio.h (a new file) and sys/consio.h (another new file). machine/console.h is still maintained for compatibility reasons. - Kernel console selection/installation routines are fixed and slightly rebumped so that it should now be possible to switch between the interanl kernel console (sc or vt) and a remote kernel console (sio) again, as it was in 2.x, 3.0 and 3.1. - Screen savers and splash screen decoders Because of the header file reorganization described above, screen savers and splash screen decoders are slightly modified. After this update, /sys/modules/syscons/saver.h is no longer necessary and is removed. Notes: svn path=/head/; revision=48104