Bug 15436

Summary: [syscons] syscons extension: "propellers"
Product: Base System Reporter: oliver.fromme <oliver.fromme>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed Overcome By Events    
Severity: Affects Only Me CC: hiren, imp
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
syscons-diff.tar.gz none

Description oliver.fromme 1999-12-12 14:10:02 UTC
   The attached patches implement an extension to syscons called
   "propellers", along with a status line.  The following is an
   excerpt from the (patched) syscons(4) manual page, which describes
   the extension in more detail:

   ------ [BEGIN EXCERPT] ------
   Propellers are a useful feature to watch for activity on all existing
   virtual terminals.

   When using the SC_PROPELLERS option, support for a status line and so-
   called ``propellers'' is compiled in.  The other SC_PROP_* options can be
   used to set the default look and behaviour of this feature, but you can
   also change all of this at run-time using the vidcontrol(1) tool.

   A propeller is a character sequence, usually consisting of the characters
   / - \ |.  Propellers are commonly used to indicate activity (the boot-
   loader uses them, too) by cycling through these characters.  The idea to
   implement them in syscons was inspired by the old DOS CU/TCP telnet pro-
   gram, which used propellers to watch for activity in multiple telnet ses-
   sions.

   When propellers are enabled, a status line is displayed at the bottom of
   the screen.  This means that the usable area of the screen is reduced by
   one line (e.g. in the standard 80x25 mode, only 24 lines are available
   for the actual terminal).	Propellers can be enabled per terminal, so you
   can have a status line on some terminals, but not on others, if desired.

   The status line is divided into a number of fields, each of which belongs
   to one virtual terminal.  The number of the terminal is printed at the
   left of each field, starting at 1 (just like the function keys used to
   switch terminals).  The actual propeller is displayed to the right of the
   number.

   If output occurs on a virtual terminal, the propeller of the correspond-
   ing field in the status line cycles through the character sequence, as
   explained above.  Additionally, if a beep occurs, the propeller is dis-
   played with a different video attribute (the default is light white).
   When you switch to another virtual terminal, its propeller is cleared.

   At the right of the status line, a certain number of character columns
   can be reserved.  This reserved area is not used by propellers, and it
   can be written to by userland applications, e.g.  vidcontrol(1),  or
   propclockd(1).
   ------ [END EXCERPT] ------

   The patch set consists of three parts:
   1. kernel patches
   2. vidcontrol patches
   3. new program "propclockd"

   I have tried to keep the new kernel code as much separated from the
   rest as possible.  The new code is in src/sys/dev/syscons/scprops.c,
   the modifications to the existing files are appropriately #ifdef'ed.
   The new kernel code is _only_ compiled in if the SC_PROPELLERS option
   is defined.

   The new code for vidcontrol has been handled in a similar way.  The
   new code is in src/usr.sbin/vidcontrol/propeller.c, and there have
   been only minimal changes to the existing code.  Instead of burdening
   vidcontrol with a dozen new options, I decided to add only one option
   (-p) which is able to handle all the new features on its own, and I
   think this is pretty clean.  (Of course I'm open to suggestions to
   make this better.)

   "propclockd" is a very small and simple program which can be used to
   exploit one of the new kernel features.  Actually it's intended to be
   just an example of what can be done (and how), but it's useful on its
   own, so I think it should be included.

   Everything is properly documented.  The patches include additions to
   the syscons(4) and vidcontrol(1) manual pages, as well as a new manual
   page for the propclockd(1) utility.  The new kernel options have been
   added to LINT with some comments, too.  Note, however, that I'm not
   a native English speaker, so someone should probably proofread the
   textual additions of mine.

   I have started programming these extensions back in the old days of
   FreeBSD 2.1, and me and my friends have been using them on a lot of
   machines for years, literally, so I would regard them as pretty stable.
   I'm submitting them now because I'm tired of updating and merging them
   every time a new FreeBSD release comes out.  :-)

How-To-Repeat: 
   n/a
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2005-10-24 10:51:19 UTC
State Changed
From-To: open->suspended

Mark as 'suspended' since this does not seem as though it is being 
actively worked on.
Comment 2 Hiren Panchasara freebsd_committer freebsd_triage 2017-01-06 08:52:15 UTC
Anyone cares to comment if this is still useful/relevant?
Comment 3 Eitan Adler freebsd_committer freebsd_triage 2018-05-20 23:53:59 UTC
For bugs matching the following conditions:
- Status == In Progress
- Assignee == "bugs@FreeBSD.org"
- Last Modified Year <= 2017

Do
- Set Status to "Open"
Comment 4 Warner Losh freebsd_committer freebsd_triage 2019-01-07 19:20:26 UTC
This is OBE. syscons is on the way out, and we have other ways of doing the propeller. Closing.