1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
$NetBSD: patch-ak,v 1.2 2010/12/27 04:58:10 obache Exp $
* XXX
* 'mode_t' is promoted to `int' when passwd through `...'.
--- libv4l1/libv4l1.c.orig 2008-08-06 08:46:06.000000000 +0000
+++ libv4l1/libv4l1.c
@@ -44,12 +44,13 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
-#include <syscall.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/mman.h>
+#ifdef __linux__
+#include <syscall.h>
/* These headers are not needed by us, but by linux/videodev2.h,
which is broken on some systems and doesn't include them itself :( */
#include <sys/time.h>
@@ -58,10 +59,20 @@
/* end broken header workaround includes */
#include <linux/videodev.h>
#include <linux/videodev2.h>
+#else
+#include <sys/syscall.h>
+#include <sys/ioctl.h>
+#include "videodev.h"
+#include <sys/videoio.h>
+#endif
#include <libv4l2.h>
#include "libv4l1.h"
#include "libv4l1-priv.h"
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
#define V4L1_SUPPORTS_ENUMINPUT 0x01
#define V4L1_SUPPORTS_ENUMSTD 0x02
#define V4L1_PIX_FMT_TOUCHED 0x04
@@ -267,7 +278,7 @@ int v4l1_open (const char *file, int ofl
mode_t mode;
va_start (ap, oflag);
- mode = va_arg (ap, mode_t);
+ mode = (mode_t)va_arg (ap, int);
fd = syscall(SYS_open, file, oflag, mode);
|