NAME
vga_setlinearaddressing - switch to linear addressing mode
SYNOPSIS
#include <vga.h>
int vga_setlinearaddressing(void);
DESCRIPTION
Switch to linear addressing mode. This maps all (or most) of the SVGA
memory at the position returned by vga_getgraphmem(3) (which will
probably change by the call to vga_setlinearaddressing()). The
vga_set*page(3) calls are no longer required. This ensures optimal
performance, however the drawing functions of svgalib do not support
this memory layout and not all cards support it (and not in all modes).
Use vga_modeinfo(3) to check for availability of the function in a
given mode.
Furthermore, some cards (Cirrus) just enable this buffer at a fixed
hardware address. For Cirrus it is mapped at 14MB so you should never
used it if you have more than 14MB of memory (But how does an
application know?). The Mach32 support for this is smarter. It makes
this feature only available when it is safe to be used.
To avoid all this problems you can use
nolinear
Inhibit use of a linear mmaped frame buffer.
linear Allow (not enforce!) use of a linear mmaped frame buffer.
in the /etc/vga/libvga.config file to disable the linear frame buffer
if it cannot be used.
Returns the size of the mapped framebuffer if successful (can be less
than total video memory), -1 if not.
The testlinear(6) demo shows the use of this feature (and if it works
for you).
SEE ALSO
svgalib(7), vgagl(7), libvga.config(5), testlinear(6), vga_modeinfo(3),
vga_getgraphmem(3), vga_setpage(3), vga_setreadpage(3),
vga_setwritepage(3), vga_setlinearaddressing(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.