Man Linux: Main Page and Category List

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.