#
162a2b85 |
|
24-Nov-2023 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): New bitblt_text variant making a copy before unlocking vt_buf [Why] In the DRM drivers and the integration with vt(4), we need to execute DRM code outside of the vtbuf_lock. The reason is that this DRM code acquires locks which can't be acquired when vtbuf_lock, an MTX_SPIN mutex, is already held. [How] A vt(4) backend can now set the `vd_bitblt_after_vtbuf_unlock` flag to true if it wants to be called outside of vt_buf_lock. In this case, vt(4) uses an internal version of bitblt_text that uses the `vd_drawn` arrays, plus a new `vd_pos_to_flush` array, to track characters to draw/refresh. This internal version then uses the backend's bitblt_bmp callback to draw the characters after vt_buf has been unlocked. Drawing borders and CPU logos is also deferred after the vt_buf lock is released for the same reason. We introduce another lock (a default mutex), only used when the `vd_bitblt_after_vtbuf_unlock` flag is set, to replace part the role of the vt_buf lock and manage concurrent calls to vt_flush(). The `SC_NO_CONSDRAWN` define is dropped because we now always need the `vd_drawn` arrays. Reviewed by: manu Approved by: manu Differential Revision: https://reviews.freebsd.org/D42057
|
#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
29ab1945 |
|
14-Jan-2023 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Return errors from `vt_{,de}allocate()` This is useful to the DRM drivers to let them know if a device is effectively used by the console. Reviewed by: manu Approved by: manu Differential Revision: https://reviews.freebsd.org/D38089
|
#
90b89100 |
|
05-Oct-2022 |
Ivan Quitschal <tezeka@hotmail.com> |
vt(4): When cutting a line, append a newline character. While at it optimise "case 3" into a default. This way there is no need to initialize the "mark" variable in the beginning, because all cases set it. MFC after: 1 week Sponsored by: NVIDIA Networking Differential Revision: https://reviews.freebsd.org/D36042
|
#
2cce9aa0 |
|
26-Sep-2022 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
vt(4): Make sure vt_switch_timer() has a sleepable context. Fixes the following panic backtrace: panic() usbhid_sync_xfer() usbhid_set_report() hid_set_report() hidbus_write() hid_write() hkbd_set_leds() hkbd_ioctl_locked() hkbd_ioctl_locked() hkbd_ioctl() kbdmux_ioctl() vt_window_switch() vt_switch_timer() Differential Revision: https://reviews.freebsd.org/D36715 MFC after: 1 week Sponsored by: NVIDIA Networking
|
#
ff1c8af8 |
|
20-Sep-2021 |
Mitchell Horne <mhorne@FreeBSD.org> |
vt: use TERMINAL_DECLARE_EARLY() macro It simplifies the declaration of the driver structures a little. There are no current consumers of this macro, in fact it looks like it was added for exactly this purpose. This decreases the scope of some variables, so rework the initialization in vt_init_logos() such that it doesn't require them. No functional change intended. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D34820
|
#
2533eca1 |
|
03-Nov-2021 |
Warner Losh <imp@FreeBSD.org> |
vt(4): Connect to teken's TP_SETBELLPD Add the glue needed to listen to TP_SETBELLPD which teken uses to inform its client drivers about the results of parsing \e[=<pitch>;<duration>B. It converts these to a Hz value for the tone/pitch of the bell and a duration in ms. There's some loss of precision because <pitch> in the escape seuquence is defined to be (1193182 / pitch) Hz and <duration> is in 10ms units. Also note that kbdcontrol also parses 'off' but then doesn't send the proper escape sequence, leading me to wonder if that's another bug since teken appears to parse that sequence properly and I've added code here to treat that as the same as quiet or disabled. In general, Hz from 100 to 2000 is good. Outside that range is possible, but even at 100Hz the square wave is starting to sound bad and above 2000Hz the speaker may not respond. Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D32620
|
#
9feff969 |
|
08-Aug-2021 |
Ed Maste <emaste@FreeBSD.org> |
Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights These ones were unambiguous cases where the Foundation was the only listed copyright holder (in the associated license block). Sponsored by: The FreeBSD Foundation
|
#
c4a0333b |
|
31-Dec-2020 |
Kyle Evans <kevans@FreeBSD.org> |
vt: restore tty when console is ungrabbed When a break-to-debugger is triggered, kdb will grab the console and vt(4) will generally switch back to ttyv0. If one issues a continue from the debugger, then kdb will ungrab the console and the system rolls on. This change adds a perhaps minor feature: when we're down to grab == 0 and if vt actually switched away to ttyv0, switch back to the tty it was previously on before the console was grabbed. The justification behind this is that a typical flow is to work in !ttyv0 to avoid console spam while occasionally dropping to ddb to inspect system state before returning. This could easily enough be tossed behind a sysctl or something if it's not generally appreciated, but I anticipate indifference. Reviewed by: ray Differential Revision: https://reviews.freebsd.org/D27110
|
#
d276d86e |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vt: clean up empty lines in .c and .h files
|
#
e7fd9688 |
|
14-Jun-2020 |
Toomas Soome <tsoome@FreeBSD.org> |
Move font related data structured to sys/font.c and update vtfontcvt Prepare support to be able to handle font data in loader, consolidate data structures to sys/font.h and update vtfontcvt. vtfontcvt update is about to output set of glyphs in form of C source, the implementation does allow to output compressed or uncompressed font bitmaps. Reviewed by: bcr Differential Revision: https://reviews.freebsd.org/D24189
|
#
98f7cf02 |
|
28-May-2020 |
Jason A. Harmening <jah@FreeBSD.org> |
vt(4): Add support for `vidcontrol -C' Extract scrollback buffer initialization into a common routine, used both during vt(4) init and in handling the CONS_CLRHIST ioctl. PR: 224436 Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D24815
|
#
eee77063 |
|
20-Dec-2019 |
Kyle Evans <kevans@FreeBSD.org> |
vt: store a pointer to the keyboard instead of index This effectively reverts r355935, but is functionally equivalent. We gain no benefit from storing the index and repeatedly fetching the keyboard with `kbd_get_keyboard` when we need it. We'll be notified when it's going away so we can clean up the pointer. All existing references were trivially converted. Only once instance actually needed the index.
|
#
df1bc27a |
|
25-Sep-2019 |
Toomas Soome <tsoome@FreeBSD.org> |
vt: use colors from terminal emulator Instead of hardcoded colors, use terminal state. This also means, we need to record the pointer to terminal state with vtbuf.
|
#
ee97b233 |
|
25-Aug-2018 |
Colin Percival <cperciva@FreeBSD.org> |
Speed up vt(4) by keeping a record of the most recently drawn character and the foreground and background colours. In bitblt_text functions, compare values to this cache and don't re-draw the characters if they haven't changed. When invalidating the display, clear this cache in order to force characters to be redrawn; also force full redraws between suspend/resume pairs since odd artifacts can otherwise result. When scrolling the display (which is where most time is spent within the vt driver) this yields a significant performance improvement if most lines are less than the width of the terminal, since this avoids re-drawing blanks on top of blanks. (Note that "re-drawing" here includes writing to the VGA text mode buffer; on virtualized systems this can be extremely slow since it triggers a glyph being rendered onto a 640x480 screen). On a c5.4xlarge EC2 instance (with emulated text mode VGA) this cuts the time spent in vt(4) during the kernel boot from 1200 ms to 700ms; on my laptop (with a 3200x1800 display) the corresponding time is reduced from 970 ms down to 155 ms. Reviewed by: imp, cem Approved by: re (gjb) Relnotes: Significant speedup in vt(4) and the system boot generally. Differential Revision: https://reviews.freebsd.org/D16723
|
#
c9a1264c |
|
16-May-2018 |
Ed Maste <emaste@FreeBSD.org> |
Clean up vt source whitespace issues
|
#
4e5a8fdb |
|
16-May-2018 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Resume vt_timer() in vtterm_post_input() only There is no need to try to resume it after each smaller operations (putchar, cursor_position, copy, fill). The resume function already checks if the timer is armed before doing anything, but it uses an atomic cmpset which is expensive. And resuming the timer at the end of input processing is enough. While here, we also skip timer resume if the input is for another windows than the currently displayed one. I.e. if `ttyv0` is currently displayed, any changes to `ttyv1` shouldn't resume the timer (which would refresh `ttyv0`). By doing the same benchmark as r333669, I get: * vt(4), before r333669: 1500 ms * vt(4), with this patch: 760 ms * syscons(4): 700 ms
|
#
547e74a8 |
|
16-May-2018 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
teken, vt(4): New callbacks to lock the terminal once ... to process input, instead of inside each smaller operations such as appending a character or moving the cursor forward. In other words, before we were doing (oversimplified): teken_input() <for each input character> vtterm_putchar() VTBUF_LOCK() VTBUF_UNLOCK() vtterm_cursor_position() VTBUF_LOCK() VTBUF_UNLOCK() Now, we are doing: vtterm_pre_input() VTBUF_LOCK() teken_input() <for each input character> vtterm_putchar() vtterm_cursor_position() vtterm_post_input() VTBUF_UNLOCK() The situation was even worse when the vtterm_copy() and vtterm_fill() callbacks were involved. The new callbacks are: * struct terminal_class->tc_pre_input() * struct terminal_class->tc_post_input() They are called in teken_input(), surrounding the while() loop. The goal is to improve input processing speed of vt(4). As a benchmark, here is the time taken to write a text file of 360 000 lines (26 MiB) on `ttyv0`: * vt(4), unmodified: 1500 ms * vt(4), with this patch: 1200 ms * syscons(4): 700 ms This is on a Haswell laptop with a GENERIC-NODEBUG kernel. At the same time, the locking is changed in the vt_flush() function which is responsible to draw the text on screen. So instead of (indirectly) using VTBUF_LOCK() just to read and reset the dirty area of the internal buffer, the lock is held for about the entire function, including the drawing part. The change is mostly visible while content is scrolling fast: before, lines could appear garbled while scrolling because the internal buffer was accessed without locks (once the scrolling was finished, the output was correct). Now, the scrolling appears correct. In the end, the locking model is closer to what syscons(4) does. Differential Revision: https://reviews.freebsd.org/D15302
|
#
e1734edf |
|
05-Dec-2017 |
Ed Maste <emaste@FreeBSD.org> |
Implement "vidcontrol -h <history_size>" for vt(4) PR: 210415 Submitted by: Siva Mahadevan Reviewed by: ray (earlier) MFC after: 1 month Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D11814
|
#
718cf2cc |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: further adoption of SPDX licensing ID tags. 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.
|
#
f41bde66 |
|
19-Jul-2016 |
Conrad Meyer <cem@FreeBSD.org> |
Increase vt(4) framebuffer maximum size And rename "DEFAULT" constants to the more accurate "MAX." PR: 210382 Submitted by: Felix <felixphew0 at gmail.com> Reviewed by: wblock, cem Tested by: Dave Cottlehuber <dch at skunkwerks.at>
|
#
15d449a5 |
|
21-Aug-2015 |
Conrad Meyer <cem@FreeBSD.org> |
vt_cpulogos: Resize all terms/windows when tearing down logos PR: 202288 (partial) Tested by: Jakob Alvermark Reviewed by: ed Approved by: markj (mentor) Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3388
|
#
ec6b1f6a |
|
17-Aug-2015 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Support frame buffers that are larger than the default screen size as defined by VT_FB_DEFAULT_WIDTH and VT_FB_DEFAULT_HEIGHT (at this time 2048x1200). The default is really a max. We cap the height and width to those defaults and position the screen in the center of the frame buffer. Ideally we use a bigger font to utility the entire real estate that is the frame buffer, but that's seen as an improvement over making it work first. PR: 193745
|
#
75ac3a73 |
|
21-Jul-2015 |
Conrad Meyer <cem@FreeBSD.org> |
vt: Draw logos per CPU core This feature is inspired by another Unix-alike OS commonly found on airplane headrests. A number of beasties[0] are drawn at top of framebuffer during boot, based on the number of active SMP CPUs[1]. Console buffer output continues to scroll in the screen area below beastie(s)[2]. After some time[3] has passed, the beasties are erased leaving the entire terminal for use. Includes two 80x80 vga16 beastie graphics and an 80x80 vga16 orb graphic. (The graphics are RLE compressed to save some space -- 3x 3200 bytes uncompressed, or 4208 compressed.) [0]: The user may select the style of beastie with kern.vt.splash_cpu_style=(0|1|2) [1]: Or the number may be overridden with tunable kern.vt.splash_ncpu. [2]: https://www.youtube.com/watch?v=UP2jizfr3_o [3]: Configurable with kern.vt.splash_cpu_duration (seconds, def. 10). Differential Revision: https://reviews.freebsd.org/D2181 Reviewed by: dumbbell, emaste Approved by: markj (mentor) MFC after: 2 weeks
|
#
bcfb2e3d |
|
21-Jul-2015 |
Conrad Meyer <cem@FreeBSD.org> |
vt: De-static VT_SYSCTL_INT-defined objects Explicitly mark existing VT_SYSCTL_INTs static. This is in preparation for D2181. Reviewed by: dumbbell, emaste Approved by: markj (mentor) MFC after: 1 week
|
#
e4a5ee71 |
|
08-May-2015 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
The "SYSCTL_INT()" default value is only used for read only SYSCTLs and is not applicable unless the integer pointer is NULL. Set it to zero to avoid confusion. While at it remove extra semicolon at the end of the "VT_SYSCTL_INT()" macro. MFC after: 1 week
|
#
76e2f976 |
|
28-Feb-2015 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Add support to "downgrade" from eg. vt_fb to vt_vga The main purpose of this feature is to be able to unload a KMS driver. When going back from the current vt(4) backend to the previous backend, the previous backend is reinitialized with the special VDF_DOWNGRADE flag set. Then the current driver is terminated with the new "vd_fini" callback. In the case of vt_fb and vt_vga, this allows the former to pass the vgapci device vt_fb used to vt_vga so the device can be rePOSTed. Differential Revision: https://reviews.freebsd.org/D687
|
#
6dfa4578 |
|
27-Jan-2015 |
Andriy Gapon <avg@FreeBSD.org> |
vt(4): Use power_{suspend,resume} event handlers to implement suspend/resume The goal is to avoid that the vt(4) resume happens before the video display is resumed. The original patch was provided by Andriy Gapon. This new patch registers the handlers in vt_upgrade(). This is done once, thanks to the VDF_ASYNC flag. I abused this flag because it was already abused by the keyboard allocation. The event handlers then call the backend if it provides callbacks for suspend/resume. Differential Revision: https://reviews.freebsd.org/D1004 On behalf of: dumbbell MFC after: 2 weeks
|
#
a09a539f |
|
26-Dec-2014 |
Ed Maste <emaste@FreeBSD.org> |
Support ALT_BREAK_TO_DEBUGGER in vt(4) Submitted by: Andre Albsmeier on -hackers
|
#
0d265707 |
|
04-Nov-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Support syscons' SC_HISTORY_SIZE to configure history size Therefore, to set histry size to 2000 lines, add the following line to your kernel configuration file: options SC_HISTORY_SIZE=2000 The default history remains at 500 lines. MFC after: 1 week
|
#
61220c0d |
|
02-Oct-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Save/restore keyboard mode & LED states when switching window Add new functions to manipulate these mode & state, instead of calling kbdd_ioctl() everyhere. This fixes at least two bugs: 1. The state of the Scroll Lock LED and the state of scroll mode could be out-of-sync. For instance, if one enables scroll mode on window #1 and switches to window #2, the LED would remain on, but the window wouldn't be in scroll mode. Similarily, when switching between a console and an X.Org session, the LED states could be inconsistent with the real state. 2. When exiting from an X.Org session, the user could be unable to type anything. The workaround was to switch to another console window and come back. Differential Revision: https://reviews.freebsd.org/D821 Reviewed by: ray@ Approved by: ray@ Tested by: kwm@ MFC after: 3 days
|
#
c3a05e54 |
|
19-Sep-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Remove vt_buf->vb_dirtymask This structure and the associated functions were unused since the implementation of vd_bitblt_text_t callbacks. MFC after: 3 days
|
#
4f4b93ae |
|
12-Sep-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Switch vt(4) to traditional behaviour with copy-paste same as syscons(4) do. (forgetted in last commit) Reviewed by: dumbbell (as D755) MFC after: 1 week
|
#
8a6a5892 |
|
09-Sep-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Revert r269474. Special keyboard combinations should be handled by separate sysctls.
|
#
b7fe4961 |
|
29-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Change vb_history_size from "int" to "unsigned int" CID: 1230002, 1230003 MFC after: 1 week
|
#
3e206539 |
|
27-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Add cngrab() and cnungrab() callbacks They are used when a panic occurs or when entering a DDB session for instance. cngrab() forces a vt-switch to the console window, no matter if the original window is another terminal or an X session. However, cnungrab() doesn't vt-switch back to the original window currently. MFC after: 1 week
|
#
d3773c6e |
|
27-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Implement basic support for KDSETMODE ioctl With the current implementation, this allows an X11 server to tell the console it switches a particular window in "graphics mode". This information is used by the mouse handling code to ignore sysmouse events in the window taken by the X server: only him should receive those events. Reported by: flo@, glebius@, kan@ Tested by: flo@ Reviewed by: kan@ MFC after: 1 week
|
#
83fbb296 |
|
25-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Store a rectangle for the drawable area, not just the top-left corner This allows backends to verify they do not draw outside of this area. This fixes a bug in vt_vga where the text was happily drawn over the right and bottom margins, when using the Gallant font. MFC after: 1 week
|
#
9de6b2c5 |
|
24-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Remove vd_bitbltchr_t It's replaced by vd_bitblt_text_t, which gives more context to the backend and allows it to perform more efficiently when redrawing a given area. MFC after: 1 week
|
#
631bb572 |
|
23-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Add vd_bitblt_bmp_t callback The code was already there in all backends, we just expose it. This is used to display the splash screen. MFC after: 1 week
|
#
946d0288 |
|
23-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Fix cursor handling in vt_flush() There were situations where the cursor was not erased/redrawn or its position was marked as dirty even though it's not displayed. The code is now more straightforward. At the same, add a function to determine if the cursor covers a given area. This is used by backends to know if they need to draw the cursor. This new function should be paired with a new state in struct vt_device, called vd_mshown, which indicates if the cursor should be displayed. This again simplifies vd_bitblt_text_t callback's API. MFC after: 1 week
|
#
82276bbb |
|
22-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Use the actual size of the mouse when marking its position as dirty This fixes a bug where part of the cursor was not erased. MFC after: 1 week
|
#
ccd5615a |
|
22-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): The offset to center the text area is per-window now The previous global offset, based on the last loaded font, had no meaning for other windows. This caused a shifted text area, often partly out-of-screen. MFC after: 1 week
|
#
ab06c776 |
|
22-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Give the window to vd_bitblt_text_t callback ... instead of both the buffer and the font. Again, this simplifies the API. MFC after: 1 week
|
#
3235c9eb |
|
22-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Store cursor bitmap & colors in struct vt_device This removes the need to specify them to each call to vd_bitblt_text_t and, therefore, simplifies the API. MFC after: 1 week
|
#
bdcaf97c |
|
22-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Add new vd_bitblt_text_t callback, and implement it for vt_vga Compared to the deprecated vd_bitbltchr_t callback, vd_bitblt_text_t receives: o the whole text buffer o the dirty area o the mouse cursor (map, position, colors) This allows the backend to perform optimization on how to draw things. The goal is to remove vd_bitbltchr_t and vd_putchar_t, once all driver are converted (only vt_vga is included in this commit). In vt_vga, this allows to draw the text and the cursor in one pass, without ever reading from video memory (because it has all the context). The main benefit is the speed improvement: no more slideshow during boot! Other bugs fixed in vt_vga are: o left-most characters are drawn properly (the left-most pixels were missing with bold characters and some wide letters such as 'm') o no more black square around the cursor o no cursor flickering when the text is scrolling There are still many problems to fix: the known issues are marked with "FIXME" inside the code. MFC after: 1 week
|
#
02ebdd50 |
|
21-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Rename the "mouse_cursor" structure to "vt_mouse_cursor" At the same time, "w" and "h" members are now called "width" and "height". The goal is to have a more "public" structure, because it will soon be passed as argument to a new callback, replacing vd_bitbltchr_t. MFC after: 1 week
|
#
c6e1a987 |
|
21-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Constify vt_buf argument of vtbuf_iscursor() MFC after: 1 week
|
#
52ff33d9 |
|
21-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): Pause the flush timer while swithing window This fixes bad looking refresh when switching window: squares instead of text, flashing screen, and so on. In the worst case, vt_flush() came at a very inappropriate timing and the screen was not refreshed at all (leaving squares all over the place). This doesn't fix the flickering of the screen with vt_vga, because the sync signal is temporarily stopped and the video memory is cleared. MFC after: 1 week
|
#
608b7cea |
|
21-Aug-2014 |
Jean-Sébastien Pédron <dumbbell@FreeBSD.org> |
vt(4): If the cursor didn't move, don't mark its position as dirty Currently, this has no effect, because the cursor is always redrawn anyway. But this will be useful after improvements to the vd_bitbltchr_t callback API. The vt_device structure members used to store the position of the cursor as of the last redraw are renamed from vd_mdirty{x,y} to vd_mold{x,y}. The associated comment is fixed too. Also, their value is now expressed in pixels, not in character columns/row. MFC after: 1 week
|
#
0f3ec4da |
|
07-Aug-2014 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Retire vd_maskbitbltchr. The same functionality can be obtained by testing for mask != NULL in vd_bitbltchr, which all implementations of vd_bitbltchr() were doing anyway.
|
#
45dc3700 |
|
03-Aug-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Allow to disable some special key combinations handled by vt(4), like debug request, reboot request. Requested by: Claude Buisson Sponsored by: The FreeBSD Foundation
|
#
3f71a6b8 |
|
28-Jul-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Remove unused macro VT_CONSDEV_DECLARE. Join console device now declared in one place. MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
af3b2549 |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
#
37a107a4 |
|
27-Jun-2014 |
Glen Barber <gjb@FreeBSD.org> |
Revert r267961, r267973: These changes prevent sysctl(8) from returning proper output, such as: 1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
#
7344ee18 |
|
27-Jun-2014 |
Marius Strobl <marius@FreeBSD.org> |
In order to get vt(4) a bit closer to the feature set provided by sc(4), implement options TERMINAL_{KERN,NORM}_ATTR. These are aliased to SC_{KERNEL_CONS,NORM}_ATTR and like these latter, allow to change the default colors of normal and kernel text respectively. Note on the naming: Although affecting the output of vt(4), technically kern/subr_terminal.c is primarily concerned with changing default colors so it would be inconsistent to term these options VT_{KERN,NORM}_ATTR. Actually, if the architecture and abstraction of terminal+teken+vt would be perfect, dev/vt/* wouldn't be touched by this commit at all. Reviewed by: emaste MFC after: 3 days Sponsored by: Bally Wulff Games & Entertainment GmbH
|
#
3da1cf1e |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel. Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change. MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
#
c3586380 |
|
18-Jun-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
syscons(4) and vt(4) can be built together now. MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
bfc00339 |
|
03-Jun-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Fix case when vt(4) started w/o driver assigned. o Always init locks and cv ASAP. o Initialize driver-independent parts even if driver probing fail. o Allow to call vt_upgrade anytime, for later loaded drivers. o New window flag VWF_READY, to track if window already initialized. Other updates: o Pass vd as a cookie for kbd_allocate. o Do not blank window on driver replacement. Tested by: hselasky (RPi), emaste(VGA, EFIFB, KMS), me MFC after: 7 days Sponsored by: The FreeBSD Foundation
|
#
16aa1f09 |
|
08-May-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Hide debug messages under VT_DEBUG. Sponsored by: The FreeBSD Foundation
|
#
90fdc1c6 |
|
05-May-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Create dataset for vt(4) drivers. Sponsored by: The FreeBSD Foundation
|
#
f06a8166 |
|
05-May-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Define a new method for probing vt(4) driver before attach it at early stage. Sponsored by: The FreeBSD Foundation
|
#
b2d52f78 |
|
26-Apr-2014 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Increase the maximum framebuffer size to more reasonable values reflecting the high-resolution boot consoles present on Open Firmware and EFI systems.
|
#
1da9f0d7 |
|
28-Mar-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
o Add new vd_driver method to do bitblt with mask, named vd_maskbitbltchr. o Move vd_bitbltchr vga's driver method to vd_maskbitbltchr. o Implement new vd_bitbltchr method for vga driver. (It do single write for 8 pixels, have to be a bit faster). MFC after: 7 days Sponsored by: The FreeBSD Foundation
|
#
9e497e7b |
|
06-Feb-2014 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Add two new vt(9) driver methods: vd_drawrect and vd_setpixel. Implement vd_drawrect and vd_setpixel for vt_fb driver. Sponsored by: The FreeBSD Foundation
|
#
650c134f |
|
25-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Use statndard (syscons) way to disable bell. Testesd by: markj Sponsored by: The FreeBSD Foundation
|
#
7a1a32c4 |
|
23-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
o Add virtual terminal mmap request handler. o Forward termianl framebuffer ioctl to fbd. o Forward terminal mmap request to fbd. o Move inclusion of sys/conf.h to vt.h. Sponsored by: The FreeBSD Foundation
|
#
41fb0665 |
|
21-Dec-2013 |
Ed Maste <emaste@FreeBSD.org> |
Support double-width characters in vt(9) 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
|
#
d454a052 |
|
20-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Set mouse level per window, instead of global. Sponsored by: The FreeBSD Foundation
|
#
0a036e52 |
|
19-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Enable mouse support for terminal clients (like dialog(1)). Sponsored by: The FreeBSD Foundation
|
#
00f4f023 |
|
10-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Break build with error in case when both syscons and newcons are enabled. Sponsored by: The FreeBSD Foundation
|
#
c323f803 |
|
09-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
o Compat options have to be defined before sys/ioccom.h included, so move inclusion of right after sys/param.h. o Only vt_core module use compat options, move it from common header to module. Reported by: Larry Rosenman ler at lerctr dot org Sponsored by: The FreeBSD Foundation
|
#
0f49db6e |
|
09-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Respect SC_NO_CUTPASTE option. It disable mouse cursor and cut/paste support for vt(9). Note: /dev/sysmouse not affected. Sponsored by: The FreeBSD Foundation
|
#
37fd54ff |
|
08-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
o Build syscons(9)'s splash support if both sc and splash are enabled. o Include opt_splash.h for vt(9) to know when splash device is enabled. o Build logo_freebsd.c only if splash and vt are enabled. o Include opt_compat.h to know when we have to respect compatibility. Sponsored by: The FreeBSD Foundation
|
#
27cf7d04 |
|
05-Dec-2013 |
Aleksandr Rybalko <ray@FreeBSD.org> |
Merge VT(9) project (a.k.a. newcons). Reviewed by: nwhitehorn MFC_to_10_after: re approval Sponsored by: The FreeBSD Foundation
|