Root/svgalib/patches/100-fbdev-setpage.patch

1Index: svgalib-1.4.3/src/fbdev.c
2===================================================================
3--- svgalib-1.4.3.orig/src/fbdev.c 2011-01-06 14:24:59.000000000 +0100
4+++ svgalib-1.4.3/src/fbdev.c 2011-01-06 14:27:39.000000000 +0100
5@@ -141,9 +141,17 @@
6     if (page != oldpage)
7     {
8 // munmap(BANKED_MEM_POINTER, __svgalib_banked_mem_size);
9- mmap(BANKED_MEM_POINTER, __svgalib_banked_mem_size,
10+ long size = __svgalib_banked_mem_size;
11+ long offs = page * __svgalib_banked_mem_size;
12+ if (size + offs > __svgalib_linear_mem_size)
13+ size = __svgalib_linear_mem_size - offs;
14+ if (size <= 0) {
15+ fprintf (stderr, "invalid page %i requested", page);
16+ }
17+
18+ mmap(BANKED_MEM_POINTER, size,
19              PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED,
20- fbdev_fd, page * __svgalib_banked_mem_size);
21+ fbdev_fd, offs);
22         oldpage = page;
23     }
24 }
25

Archive Download this file



interactive