NAME
vga_safety_fork - start a parallel process to restore the console at a
crash
SYNOPSIS
#include <vga.h>
void vga_safety_fork(void (*shutdown_routine)(void))
DESCRIPTION
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
crash.
The forktest(6) demo shows the principal operation.
(*shutdown_routine)() 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!
SEE ALSO
svgalib(7), vgagl(7), libvga.config(5), forktest(6), vga_init(3),
AUTHOR
This manual page was edited by Michael Weller <eowmob@exp-math.uni-
essen.de>. 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 <H.Hanemaayer@inter.nl.net>.
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.