Skip to contentSkip to conversation

PATCH: libv4l-0.3.4-sync.patch

PATCH Hans de Goede 1 participant 1 message Jul 7, 2008 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

Hi,

This patch syncs mercurial with the 0.3.4 tarbal I've just released, which contains the following single (brownpaperbag) fix:
* The mmap64 support in 0.3.3, has caused a bug in libv4l1 when running on
32 bit systems (who uses those now a days?), this bug caused v4l1
compatibility to not work at all, this release fixes this

Regards,

Hans

Sync mercurial with 0.3.4 release (which contains a single fix):
* The mmap64 support in 0.3.3, has caused a bug in libv4l1 when running on 32 bit systems (who uses those now a days?), this bug caused v4l1 compatibility to not work at all, this release fixes this

v4l2-apps/lib/libv4l/ChangeLog +7 -0
diff -r fb3e549faf69 v4l2-apps/lib/libv4l/ChangeLog
@@ -1,3 +1,10 @@
+libv4l-0.3.4 (the brownpaperbag release)
+----------------------------------------
+* The mmap64 support in 0.3.3, has caused a bug in libv4l1 when running on
+  32 bit systems (who uses those now a days?), this bug caused v4l1
+  compatibility to not work at all, this release fixes this
+
+
 libv4l-0.3.3
 ------------
 * Add open64 and mmap64 wrappers to the LD_PRELOAD wrapper libs, so that
v4l2-apps/lib/libv4l/libv4l1/libv4l1-priv.h +9 -0
diff -r fb3e549faf69 v4l2-apps/lib/libv4l/libv4l1/libv4l1-priv.h
@@ -21,6 +21,15 @@
 
 #include <stdio.h>
 #include <pthread.h>
+
+/* On 32 bits archs we always use mmap2, on 64 bits archs there is no mmap2 */
+#ifdef __NR_mmap2
+#define SYS_mmap2 __NR_mmap2
+#define MMAP2_PAGE_SHIFT 12
+#else
+#define SYS_mmap2 SYS_mmap
+#define MMAP2_PAGE_SHIFT 0
+#endif
 
 #define V4L1_MAX_DEVICES 16
 #define V4L1_NO_FRAMES 4
v4l2-apps/lib/libv4l/libv4l1/libv4l1.c +1 -1
diff -r fb3e549faf69 v4l2-apps/lib/libv4l/libv4l1/libv4l1.c
@@ -639,7 +639,7 @@
 	}
 
 	if (devices[index].v4l1_frame_pointer == MAP_FAILED) {
-	  devices[index].v4l1_frame_pointer = (void *)syscall(SYS_mmap, NULL,
+	  devices[index].v4l1_frame_pointer = (void *)syscall(SYS_mmap2, NULL,
 				      (size_t)mbuf->size,
 				      PROT_READ|PROT_WRITE,
 				      MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list