Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
vga_safety_fork(3)	      Svgalib User Manual	    vga_safety_fork(3)

       vga_safety_fork	- start	a parallel process to restore the console at a

       #include	<vga.h>

       void vga_safety_fork(void (*shutdown_routine)(void))

       Calling this at the start of a program results in a  better  chance  of
       textmode	 being	restored  in case of a crash.  However it has to raise
       the iopl	level to 3 to work. This is a small security breach as	it  is
       inherited  to any programs you fork of. However,	some SVGA card drivers
       have to use iopl(3) anyway.  If you use it call that  function  as  the
       very first vga_ function. Call it right before vga_init (3).  Note that
       vga_safety_fork() will already enter  a	graphicsmode.  (For  font  and
       grafix  state  saving).	Don't overestimate the power of	this function.
       Your application	will continue to run in	background while a  foreground
       application will	restore	a usable screen	and graphics mode in case of a

       The forktest(6) demo shows the  principal  operation.   (*shutdown_rou-
       tine)()	is  called  when the system crashes. However, realize that the
       call will take in a forked copy of your program,	you'll not have	access
       to any globals modified after the vga_safety_fork() call!

       svgalib(7), vgagl(7), libvga.config(5), forktest(6), vga_init(3),

       This  manual page was edited by Michael Weller <eowmob@exp-math.uni-es->.	The exact source of the	referenced function as well as of  the
       original	documentation is unknown.

       It is very likely that both are at least	to some	extent are due to Harm
       Hanemaayer <>.

       Occasionally this might be wrong. I hereby asked	to be excused  by  the
       original	author and will	happily	accept any additions or	corrections to
       this first version of the svgalib manual.

Svgalib	(>= 1.2.11)		 27 July 1997		    vga_safety_fork(3)


Want to link to this manual page? Use this URL:

home | help