[alsa-devel] [PATCH] define more missing types for non-Linux
Thomas Klausner
tk at giga.or.at
Wed Mar 2 23:14:54 CET 2016
Hi!
On Mon, Feb 29, 2016 at 05:10:34PM +0100, Takashi Iwai wrote:
> On Mon, 29 Feb 2016 16:05:20 +0100,
> Thomas Klausner wrote:
> >
> > From: Thomas Klausner <wiz at NetBSD.org>
> >
> > ---
> > include/sound/asound.h | 4 ++--
>
> Sorry, this is no-go. The files in include/sound/* are basically
> copies of Linux ABI. So, all these files must not be modified in
> alsa-lib side. And, using __kernel_off_t there is in purpose -- to
> distinguish from the user-space off_t.
>
> That said, the best workaround for these files are to provide the
> compatible typedefs.
So how about the attached patch instead?
> OTOH, the code changes in include/pcm.h and src/pcm/* are acceptable,
> in general, but I still hesitate to apply it, so far. If it's only
> about portability, we may wrap it with a few typedefs instead of
> touching so many lines. And it would bring any other real benefit?
> It's the question...
I still prefer uint* to u_int* because uint* is in POSIX and u_int* is
not, but I added the necessary defines in the new patch.
Thomas
-------------- next part --------------
>From 634255a4d87a12132bb65868f5658fd14cd2bfd7 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz at NetBSD.org>
Date: Wed, 2 Mar 2016 23:11:54 +0100
Subject: [PATCH] Define some types if missing.
For portability with non-Linux.
Include Linux header on Linux only.
---
include/local.h | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/include/local.h b/include/local.h
index 28ed106..9728598 100644
--- a/include/local.h
+++ b/include/local.h
@@ -50,13 +50,52 @@
#include <sys/poll.h>
#include <sys/types.h>
#include <errno.h>
+#if defined(__linux__)
#include <linux/types.h>
#include <linux/ioctl.h>
+#endif
#ifndef EBADFD
#define EBADFD EBADF
#endif
+#ifndef __u16
+#define __u16 uint16_t
+#endif
+#ifndef __u32
+#define __u32 uint32_t
+#endif
+#ifndef __u64
+#define __u64 uint64_t
+#endif
+#ifndef __le16
+#define __le16 uint16_t
+#endif
+#ifndef __le32
+#define __le32 uint32_t
+#endif
+#ifndef __le64
+#define __le64 uint64_t
+#endif
+#ifndef u_int8_t
+#define u_int8_t uint8_t
+#endif
+#ifndef u_int16_t
+#define u_int16_t uint16_t
+#endif
+#ifndef u_int32_t
+#define u_int32_t uint32_t
+#endif
+#ifndef u_int32_t
+#define u_int32_t uint64_t
+#endif
+#ifndef __kernel_pid_t
+#define __kernel_pid_t pid_t
+#endif
+#ifndef __kernel_off_t
+#define __kernel_off_t off_t
+#endif
+
#ifdef SUPPORT_RESMGR
#include <resmgr.h>
#endif
--
2.7.1
More information about the Alsa-devel
mailing list