]> granicus.if.org Git - strace/commitdiff
Introduce f_owner_ex.h
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 2 May 2018 15:23:46 +0000 (15:23 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 3 May 2018 00:09:53 +0000 (00:09 +0000)
Some headers define struct f_owner_ex, some struct __kernel_f_owner_ex,
we have to support both variants.

* configure.ac (AC_CHECK_TYPES): Check for "struct f_owner_ex"
and "struct __kernel_f_owner_ex" in <linux/fcntl.h>.
* f_owner_ex.h: New file.
* Makefile.am (strace_SOURCES): Add it.

Makefile.am
configure.ac
f_owner_ex.h [new file with mode: 0644]

index c616e7c7771345eb8b89eb79434326926f681c2b..64c0f4a059f3aa6149a99f6d43f16bd75702c767 100644 (file)
@@ -128,6 +128,7 @@ strace_SOURCES =    \
        evdev_mpers.c   \
        eventfd.c       \
        execve.c        \
+       f_owner_ex.h    \
        fadvise.c       \
        fallocate.c     \
        fanotify.c      \
index b2a4e4922dfa454cc412d4e5d669a20d5ca719ff..720df0b95a6f4b51ce65365ee695404c6bb8523b 100644 (file)
@@ -322,7 +322,9 @@ AC_CHECK_TYPES(m4_normalize([
        struct flock,
        struct flock64,
        struct __kernel_flock,
-       struct __kernel_flock64
+       struct __kernel_flock64,
+       struct f_owner_ex,
+       struct __kernel_f_owner_ex
 ]),,,
 [#include <sys/types.h>
 #include <linux/fcntl.h>])
diff --git a/f_owner_ex.h b/f_owner_ex.h
new file mode 100644 (file)
index 0000000..ec76ac8
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_F_OWNER_EX_H
+#define STRACE_F_OWNER_EX_H
+
+#include <linux/fcntl.h>
+
+#if defined HAVE_STRUCT_F_OWNER_EX
+typedef struct f_owner_ex struct_kernel_f_owner_ex;
+#elif defined HAVE_STRUCT___KERNEL_F_OWNER_EX
+typedef struct __kernel_f_owner_ex struct_kernel_f_owner_ex;
+#else
+# error struct f_owner_ex definition not found in <linux/fcntl.h>
+#endif
+
+#endif /* !STRACE_F_OWNER_EX_H */