<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/dev/syscons/syscons.h, branch release/8.2.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F8.2.0_cvs</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F8.2.0_cvs'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2011-02-16T16:18:46Z</updated>
<entry>
<title>Copy releng/8.2 to release/8.2.0 for 8.2-RELEASE.</title>
<updated>2011-02-16T16:18:46Z</updated>
<author>
<name>Ken Smith</name>
<email>kensmith@FreeBSD.org</email>
</author>
<published>2011-02-16T16:18:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=dec99dafe5763ba1db6950342aa80a634169c083'/>
<id>urn:sha1:dec99dafe5763ba1db6950342aa80a634169c083</id>
<content type='text'>
Approved by:	re (implicit)

This commit was manufactured to restore the state of the 8.2-RELEASE image.
</content>
</entry>
<entry>
<title>MFC:	r208411, r208412, r208413, r208564, r208567, r210149</title>
<updated>2010-07-20T18:28:34Z</updated>
<author>
<name>Jung-uk Kim</name>
<email>jkim@FreeBSD.org</email>
</author>
<published>2010-07-20T18:28:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=529db2d244af1e356d26ab8a7f335fe5dc7c2a86'/>
<id>urn:sha1:529db2d244af1e356d26ab8a7f335fe5dc7c2a86</id>
<content type='text'>
- Suspend screen updates when the video controller is powered down.
- Let the first device suspend and the last device resume syscons(4).
- Do not attempt to switch to the same VTs between suspend and resume.
- When we are not switching VTs, just mark all buffer to be updated.
- Fix some style(9) nits.
</content>
</entry>
<entry>
<title>MFC x86emu/x86bios emulator and make previously i386 only dpms and vesa</title>
<updated>2010-03-02T01:56:55Z</updated>
<author>
<name>Xin LI</name>
<email>delphij@FreeBSD.org</email>
</author>
<published>2010-03-02T01:56:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=aa3d547d095ff07fdc39ffc5ae4c371844b504ab'/>
<id>urn:sha1:aa3d547d095ff07fdc39ffc5ae4c371844b504ab</id>
<content type='text'>
framebuffer driver, etc. work on FreeBSD/amd64.

A significant amount of improvements were done by jkim@ during the recent
months to make vesa(4) work better, over the initial code import.  This
work is based on OpenBSD's x86emu implementation and contributed by
paradox &lt;ddkprog yahoo com&gt; and swell.k at gmail com.

Hopefully I have stolen all their work to 8-STABLE :)

All bugs in this commit are mine, as usual.
</content>
</entry>
<entry>
<title>Make a 1:1 mapping between syscons stats and terminal emulators.</title>
<updated>2009-03-10T11:28:54Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2009-03-10T11:28:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=630b9bf23fa7e7e4e8248031eb637900e91275d0'/>
<id>urn:sha1:630b9bf23fa7e7e4e8248031eb637900e91275d0</id>
<content type='text'>
After I imported libteken into the source tree, I noticed syscons didn't
store the cursor position inside the terminal emulator, but inside the
virtual terminal stat. This is not very useful, because when you
implement more complex forms of line wrapping, you need to keep track of
more state than just the cursor position.

Because the kernel messages didn't share the same terminal emulator as
ttyv0, this caused a lot of strange things, like kernel messages being
misplaced and a missing notification to resize the terminal emulator for
kernel messages never to be resized when using vidcontrol.

This patch just removes kernel_console_ts and adds a special parameter
to te_puts to determine whether messages should be printed using regular
colors or the ones for kernel messages.

Reported by:	ache
Tested by:	nyan, garga (older version)
</content>
</entry>
<entry>
<title>Replace syscons terminal renderer by a new renderer that uses libteken.</title>
<updated>2009-01-01T13:26:53Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2009-01-01T13:26:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=b4b1c5169ddd9042d4dacabed5b91fa8f2b773aa'/>
<id>urn:sha1:b4b1c5169ddd9042d4dacabed5b91fa8f2b773aa</id>
<content type='text'>
Some time ago I started working on a library called libteken, which is
terminal emulator. It does not buffer any screen contents, but only
keeps terminal state, such as cursor position, attributes, etc. It
should implement all escape sequences that are implemented by the
cons25 terminal emulator, but also a fair amount of sequences that are
present in VT100 and xterm.

A lot of random notes, which could be of interest to users/developers:

- Even though I'm leaving the terminal type set to `cons25', users can
  do experiments with placing `xterm-color' in /etc/ttys. Because we
  only implement a subset of features of xterm, this may cause
  artifacts. We should consider extending libteken, because in my
  opinion xterm is the way to go. Some missing features:

  - Keypad application mode (DECKPAM)
  - Character sets (SCS)

- libteken is filled with a fair amount of assertions, but unfortunately
  we cannot go into the debugger anymore if we fail them. I've done
  development of this library almost entirely in userspace. In
  sys/dev/syscons/teken there are two applications that can be helpful
  when debugging the code:

  - teken_demo: a terminal emulator that can be started from a regular
    xterm that emulates a terminal using libteken. This application can
    be very useful to debug any rendering issues.

  - teken_stress: a stress testing application that emulates random
    terminal output. libteken has literally survived multiple terabytes
    of random input.

- libteken also includes support for UTF-8, but unfortunately our input
  layer and font renderer don't support this. If users want to
  experiment with UTF-8 support, they can enable `TEKEN_UTF8' in
  teken.h. If you recompile your kernel or the teken_demo application,
  you can hold some nice experiments.

- I've left PC98 the way it is right now. The PC98 platform has a custom
  syscons renderer, which supports some form of localised input. Maybe
  we should port PC98 to libteken by the time syscons supports UTF-8?

- I've removed the `dumb' terminal emulator. It has been broken for
  years. It hasn't survived the `struct proc' -&gt; `struct thread'
  conversion.

- To prevent confusion among people that want to hack on libteken:
  unlike syscons, the state machines that parse the escape sequences are
  machine generated. This means that if you want to add new escape
  sequences, you have to add an entry to the `sequences' file. This will
  cause new entries to be added to `teken_state.h'.

- Any rendering artifacts that didn't occur prior to this commit are by
  accident. They should be reported to me, so I can fix them.

Discussed on:	current@, hackers@
Discussed with:	philip (at 25C3)
</content>
</entry>
<entry>
<title>Integrate the new MPSAFE TTY layer to the FreeBSD operating system.</title>
<updated>2008-08-20T08:31:58Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2008-08-20T08:31:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=bc093719ca478fe10b938cef32c30b528042cbcd'/>
<id>urn:sha1:bc093719ca478fe10b938cef32c30b528042cbcd</id>
<content type='text'>
The last half year I've been working on a replacement TTY layer for the
FreeBSD kernel. The new TTY layer was designed to improve the following:

- Improved driver model:

  The old TTY layer has a driver model that is not abstract enough to
  make it friendly to use. A good example is the output path, where the
  device drivers directly access the output buffers. This means that an
  in-kernel PPP implementation must always convert network buffers into
  TTY buffers.

  If a PPP implementation would be built on top of the new TTY layer
  (still needs a hooks layer, though), it would allow the PPP
  implementation to directly hand the data to the TTY driver.

- Improved hotplugging:

  With the old TTY layer, it isn't entirely safe to destroy TTY's from
  the system. This implementation has a two-step destructing design,
  where the driver first abandons the TTY. After all threads have left
  the TTY, the TTY layer calls a routine in the driver, which can be
  used to free resources (unit numbers, etc).

  The pts(4) driver also implements this feature, which means
  posix_openpt() will now return PTY's that are created on the fly.

- Improved performance:

  One of the major improvements is the per-TTY mutex, which is expected
  to improve scalability when compared to the old Giant locking.
  Another change is the unbuffered copying to userspace, which is both
  used on TTY device nodes and PTY masters.

Upgrading should be quite straightforward. Unlike previous versions,
existing kernel configuration files do not need to be changed, except
when they reference device drivers that are listed in UPDATING.

Obtained from:		//depot/projects/mpsafetty/...
Approved by:		philip (ex-mentor)
Discussed:		on the lists, at BSDCan, at the DevSummit
Sponsored by:		Snow B.V., the Netherlands
dcons(4) fixed by:	kan
</content>
</entry>
<entry>
<title>Mark the syscons video spin mutex as recursable since it is currently</title>
<updated>2008-02-13T23:38:08Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2008-02-13T23:38:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=1d9c3ad3ef6623762107360da30f0cba6fd38bd2'/>
<id>urn:sha1:1d9c3ad3ef6623762107360da30f0cba6fd38bd2</id>
<content type='text'>
recursed in a few places.

MFC after:	1 week
</content>
</entry>
<entry>
<title>Remove explicit calls to keyboard methods with their respective variants</title>
<updated>2007-12-29T21:55:25Z</updated>
<author>
<name>Wojciech A. Koszek</name>
<email>wkoszek@FreeBSD.org</email>
</author>
<published>2007-12-29T21:55:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=259699b294163f99205912e9e2ffcd59d1fbf9b8'/>
<id>urn:sha1:259699b294163f99205912e9e2ffcd59d1fbf9b8</id>
<content type='text'>
implemented with macros. This patch improves code readability. Reasoning
behind kbdd_* is a "keyboard discipline".

List of macros is supposed to be complete--all methods of keyboard_switch
should have their respective macros from now on.

Functionally, this code should be no-op. My intention is to leave current
behaviour of code as is.

Glanced at by:	rwatson
Reviewed by:	emax, marcel
Approved by:	cognet
</content>
</entry>
<entry>
<title>Serialize output routine of terminal emulator (te_puts()) by a lock.</title>
<updated>2007-09-20T04:05:59Z</updated>
<author>
<name>Hidetoshi Shimokawa</name>
<email>simokawa@FreeBSD.org</email>
</author>
<published>2007-09-20T04:05:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=a69d19dc330fd7a70921421c89df368b72205b1a'/>
<id>urn:sha1:a69d19dc330fd7a70921421c89df368b72205b1a</id>
<content type='text'>
- The output routine of low level console is not protected by any lock
by default.
- Increment and decrement of sc-&gt;write_in_progress are not atomic and
this may cause console hang.
- We also have many other states used by emulator that should be protected
by the lock.
- This change does not fix interspersed messages which PRINTF_BUFR_SIZE
kernel option should fix.

Approved by: re (bmah)
MFC after: 1 week
</content>
</entry>
<entry>
<title>Introduce a spinlock for synchronizing access to the video output hardware</title>
<updated>2006-09-13T15:48:15Z</updated>
<author>
<name>Scott Long</name>
<email>scottl@FreeBSD.org</email>
</author>
<published>2006-09-13T15:48:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=988129b8244bd95f0d74c5b5f7eb116097d753d3'/>
<id>urn:sha1:988129b8244bd95f0d74c5b5f7eb116097d753d3</id>
<content type='text'>
in syscons.  This replaces a simple access semaphore that was assumed to be
protected by Giant but often was not.  If two threads that were otherwise
SMP-safe called printf at the same time, there was a high likelyhood that
the semaphore would get corrupted and result in a permanently frozen video
console.  This is similar to what is already done in the serial console
drivers.
</content>
</entry>
</feed>
