All of lore.kernel.org
 help / color / mirror / Atom feed
* feeding back pkgsrc changs
@ 2016-02-18 15:47 Thomas Klausner
  2016-02-18 15:51 ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-02-18 15:47 UTC (permalink / raw)
  To: alsa-devel

Hi!

I've just updated the pkgsrc packages for alsa-lib, alsa-utils and
alsa-plugins to 1.1.0 and noticed that there are quite a number of
local patches we have. I'd like to get them integrated.

When I visited the alsa-projects web page, I noticed that the link to
the bug tracker is dead.

What is the recommended method to provide the patches?

Thanks,
 Thomas

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: feeding back pkgsrc changs
  2016-02-18 15:47 feeding back pkgsrc changs Thomas Klausner
@ 2016-02-18 15:51 ` Takashi Iwai
  2016-02-23 14:09   ` portability patch: EBADF [was Re: feeding back pkgsrc changs] Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-02-18 15:51 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 18 Feb 2016 16:47:44 +0100,
Thomas Klausner wrote:
> 
> Hi!
> 
> I've just updated the pkgsrc packages for alsa-lib, alsa-utils and
> alsa-plugins to 1.1.0 and noticed that there are quite a number of
> local patches we have. I'd like to get them integrated.
> 
> When I visited the alsa-projects web page, I noticed that the link to
> the bug tracker is dead.
> 
> What is the recommended method to provide the patches?

Just submit your patches to alsa-devel ML.  That's the best way to
review and get merged.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* portability patch: EBADF [was Re: feeding back pkgsrc changs]
  2016-02-18 15:51 ` Takashi Iwai
@ 2016-02-23 14:09   ` Thomas Klausner
  2016-02-23 15:53     ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-02-23 14:09 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 908 bytes --]

Hi Takashi!

Thanks for the answer.

On Thu, Feb 18, 2016 at 04:51:15PM +0100, Takashi Iwai wrote:
> On Thu, 18 Feb 2016 16:47:44 +0100,
> Thomas Klausner wrote:
> > I've just updated the pkgsrc packages for alsa-lib, alsa-utils and
> > alsa-plugins to 1.1.0 and noticed that there are quite a number of
> > local patches we have. I'd like to get them integrated.
> > 
> > When I visited the alsa-projects web page, I noticed that the link to
> > the bug tracker is dead.
> > 
> > What is the recommended method to provide the patches?
> 
> Just submit your patches to alsa-devel ML.  That's the best way to
> review and get merged.

I'll start with a straightforward one. Some operating systems don't
provide an errno 'EBADFD'; let's use EBADF there instead.

This patch adds the define in all files that need it, but if you
prefer to add it to a central place instead, please suggest one.

Thanks,
 Thomas

[-- Attachment #2: 0001-Define-EBADFD-in-terms-of-EBADF-if-it-doesn-t-exist.patch --]
[-- Type: text/plain, Size: 5126 bytes --]

>From e72e16bcb9bd2ddff2624fdb57a96fad6b3cf5bb Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Tue, 23 Feb 2016 15:05:47 +0100
Subject: [PATCH] Define EBADFD in terms of EBADF if it doesn't exist.

For portability on FreeBSD, NetBSD and probably others.
---
 aserver/aserver.c         | 4 ++++
 src/control/control_shm.c | 4 ++++
 src/pcm/pcm.c             | 4 ++++
 src/pcm/pcm_dmix.c        | 4 ++++
 src/pcm/pcm_dshare.c      | 4 ++++
 src/pcm/pcm_dsnoop.c      | 4 ++++
 src/pcm/pcm_hw.c          | 4 ++++
 src/pcm/pcm_ioplug.c      | 4 ++++
 src/pcm/pcm_null.c        | 4 ++++
 src/pcm/pcm_rate.c        | 4 ++++
 src/pcm/pcm_share.c       | 4 ++++
 src/pcm/pcm_shm.c         | 4 ++++
 src/pcm/pcm_simple.c      | 4 ++++
 13 files changed, 52 insertions(+)

diff --git a/aserver/aserver.c b/aserver/aserver.c
index ac20706..88995cf 100644
--- a/aserver/aserver.c
+++ b/aserver/aserver.c
@@ -35,6 +35,10 @@
 
 #include "aserver.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 char *command;
 
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
diff --git a/src/control/control_shm.c b/src/control/control_shm.c
index bd07d4a..618ef39 100644
--- a/src/control/control_shm.c
+++ b/src/control/control_shm.c
@@ -35,6 +35,10 @@
 #include <netdb.h>
 #include "aserver.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_control_shm = "";
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
index 203e7a5..6d40171 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
@@ -639,6 +639,10 @@ playback devices.
 #include <limits.h>
 #include "pcm_local.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 /**
  * \brief get identifier of PCM handle
  * \param pcm PCM handle
diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
index b26a5c7..ba65cad 100644
--- a/src/pcm/pcm_dmix.c
+++ b/src/pcm/pcm_dmix.c
@@ -45,6 +45,10 @@
 #include <sys/mman.h>
 #include "pcm_direct.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_pcm_dmix = "";
diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
index 58e47bb..2556a30 100644
--- a/src/pcm/pcm_dshare.c
+++ b/src/pcm/pcm_dshare.c
@@ -45,6 +45,10 @@
 #include <sys/mman.h>
 #include "pcm_direct.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_pcm_dshare = "";
diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
index 576c35b..26b6f5c 100644
--- a/src/pcm/pcm_dsnoop.c
+++ b/src/pcm/pcm_dsnoop.c
@@ -45,6 +45,10 @@
 #include <sys/mman.h>
 #include "pcm_direct.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_pcm_dsnoop = "";
diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
index 4f4b84b..de9f9d5 100644
--- a/src/pcm/pcm_hw.c
+++ b/src/pcm/pcm_hw.c
@@ -40,6 +40,10 @@
 #include "../control/control_local.h"
 #include "../timer/timer_local.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 //#define DEBUG_RW		/* use to debug readi/writei/readn/writen */
 //#define DEBUG_MMAP		/* debug mmap_commit */
 
diff --git a/src/pcm/pcm_ioplug.c b/src/pcm/pcm_ioplug.c
index 43550c0..bed1c97 100644
--- a/src/pcm/pcm_ioplug.c
+++ b/src/pcm/pcm_ioplug.c
@@ -31,6 +31,10 @@
 #include "pcm_ext_parm.h"
 #include "pcm_generic.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_pcm_ioplug = "";
diff --git a/src/pcm/pcm_null.c b/src/pcm/pcm_null.c
index 5e63caa..9fe3c82 100644
--- a/src/pcm/pcm_null.c
+++ b/src/pcm/pcm_null.c
@@ -31,6 +31,10 @@
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_pcm_null = "";
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
index c76db25..c08a2e8 100644
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
@@ -36,6 +36,10 @@
 
 #include "plugin_ops.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #if 0
 #define DEBUG_REFINE
 #endif
diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c
index 5d8aaf2..9fe8dc1 100644
--- a/src/pcm/pcm_share.c
+++ b/src/pcm/pcm_share.c
@@ -38,6 +38,10 @@
 #include <pthread.h>
 #include "pcm_local.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_pcm_share = "";
diff --git a/src/pcm/pcm_shm.c b/src/pcm/pcm_shm.c
index a815ac6..242b26e 100644
--- a/src/pcm/pcm_shm.c
+++ b/src/pcm/pcm_shm.c
@@ -45,6 +45,10 @@
 #include <netdb.h>
 #include "aserver.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifndef PIC
 /* entry for static linking */
 const char *_snd_module_pcm_shm = "";
diff --git a/src/pcm/pcm_simple.c b/src/pcm/pcm_simple.c
index ce11083..99ba1c3 100644
--- a/src/pcm/pcm_simple.c
+++ b/src/pcm/pcm_simple.c
@@ -25,6 +25,10 @@
 
 #include "pcm_local.h"
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 static int set_buffer_time(snd_spcm_latency_t latency,
 			   unsigned int *buffer_time)
 {
-- 
2.7.1


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: portability patch: EBADF [was Re: feeding back pkgsrc changs]
  2016-02-23 14:09   ` portability patch: EBADF [was Re: feeding back pkgsrc changs] Thomas Klausner
@ 2016-02-23 15:53     ` Takashi Iwai
  2016-02-24 13:16       ` Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-02-23 15:53 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Tue, 23 Feb 2016 15:09:06 +0100,
Thomas Klausner wrote:
> 
> Hi Takashi!
> 
> Thanks for the answer.
> 
> On Thu, Feb 18, 2016 at 04:51:15PM +0100, Takashi Iwai wrote:
> > On Thu, 18 Feb 2016 16:47:44 +0100,
> > Thomas Klausner wrote:
> > > I've just updated the pkgsrc packages for alsa-lib, alsa-utils and
> > > alsa-plugins to 1.1.0 and noticed that there are quite a number of
> > > local patches we have. I'd like to get them integrated.
> > > 
> > > When I visited the alsa-projects web page, I noticed that the link to
> > > the bug tracker is dead.
> > > 
> > > What is the recommended method to provide the patches?
> > 
> > Just submit your patches to alsa-devel ML.  That's the best way to
> > review and get merged.
> 
> I'll start with a straightforward one. Some operating systems don't
> provide an errno 'EBADFD'; let's use EBADF there instead.
> 
> This patch adds the define in all files that need it, but if you
> prefer to add it to a central place instead, please suggest one.

How about put this in include/local.h instead?  Then we need to put it
only in one place, as this is supposed to be included by all codes.


Takashi


> 
> Thanks,
>  Thomas
> >From e72e16bcb9bd2ddff2624fdb57a96fad6b3cf5bb Mon Sep 17 00:00:00 2001
> From: Thomas Klausner <wiz@NetBSD.org>
> Date: Tue, 23 Feb 2016 15:05:47 +0100
> Subject: [PATCH] Define EBADFD in terms of EBADF if it doesn't exist.
> 
> For portability on FreeBSD, NetBSD and probably others.
> ---
>  aserver/aserver.c         | 4 ++++
>  src/control/control_shm.c | 4 ++++
>  src/pcm/pcm.c             | 4 ++++
>  src/pcm/pcm_dmix.c        | 4 ++++
>  src/pcm/pcm_dshare.c      | 4 ++++
>  src/pcm/pcm_dsnoop.c      | 4 ++++
>  src/pcm/pcm_hw.c          | 4 ++++
>  src/pcm/pcm_ioplug.c      | 4 ++++
>  src/pcm/pcm_null.c        | 4 ++++
>  src/pcm/pcm_rate.c        | 4 ++++
>  src/pcm/pcm_share.c       | 4 ++++
>  src/pcm/pcm_shm.c         | 4 ++++
>  src/pcm/pcm_simple.c      | 4 ++++
>  13 files changed, 52 insertions(+)
> 
> diff --git a/aserver/aserver.c b/aserver/aserver.c
> index ac20706..88995cf 100644
> --- a/aserver/aserver.c
> +++ b/aserver/aserver.c
> @@ -35,6 +35,10 @@
>  
>  #include "aserver.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  char *command;
>  
>  #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
> diff --git a/src/control/control_shm.c b/src/control/control_shm.c
> index bd07d4a..618ef39 100644
> --- a/src/control/control_shm.c
> +++ b/src/control/control_shm.c
> @@ -35,6 +35,10 @@
>  #include <netdb.h>
>  #include "aserver.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_control_shm = "";
> diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
> index 203e7a5..6d40171 100644
> --- a/src/pcm/pcm.c
> +++ b/src/pcm/pcm.c
> @@ -639,6 +639,10 @@ playback devices.
>  #include <limits.h>
>  #include "pcm_local.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  /**
>   * \brief get identifier of PCM handle
>   * \param pcm PCM handle
> diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
> index b26a5c7..ba65cad 100644
> --- a/src/pcm/pcm_dmix.c
> +++ b/src/pcm/pcm_dmix.c
> @@ -45,6 +45,10 @@
>  #include <sys/mman.h>
>  #include "pcm_direct.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_pcm_dmix = "";
> diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
> index 58e47bb..2556a30 100644
> --- a/src/pcm/pcm_dshare.c
> +++ b/src/pcm/pcm_dshare.c
> @@ -45,6 +45,10 @@
>  #include <sys/mman.h>
>  #include "pcm_direct.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_pcm_dshare = "";
> diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
> index 576c35b..26b6f5c 100644
> --- a/src/pcm/pcm_dsnoop.c
> +++ b/src/pcm/pcm_dsnoop.c
> @@ -45,6 +45,10 @@
>  #include <sys/mman.h>
>  #include "pcm_direct.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_pcm_dsnoop = "";
> diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
> index 4f4b84b..de9f9d5 100644
> --- a/src/pcm/pcm_hw.c
> +++ b/src/pcm/pcm_hw.c
> @@ -40,6 +40,10 @@
>  #include "../control/control_local.h"
>  #include "../timer/timer_local.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  //#define DEBUG_RW		/* use to debug readi/writei/readn/writen */
>  //#define DEBUG_MMAP		/* debug mmap_commit */
>  
> diff --git a/src/pcm/pcm_ioplug.c b/src/pcm/pcm_ioplug.c
> index 43550c0..bed1c97 100644
> --- a/src/pcm/pcm_ioplug.c
> +++ b/src/pcm/pcm_ioplug.c
> @@ -31,6 +31,10 @@
>  #include "pcm_ext_parm.h"
>  #include "pcm_generic.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_pcm_ioplug = "";
> diff --git a/src/pcm/pcm_null.c b/src/pcm/pcm_null.c
> index 5e63caa..9fe3c82 100644
> --- a/src/pcm/pcm_null.c
> +++ b/src/pcm/pcm_null.c
> @@ -31,6 +31,10 @@
>  #include "pcm_local.h"
>  #include "pcm_plugin.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_pcm_null = "";
> diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
> index c76db25..c08a2e8 100644
> --- a/src/pcm/pcm_rate.c
> +++ b/src/pcm/pcm_rate.c
> @@ -36,6 +36,10 @@
>  
>  #include "plugin_ops.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #if 0
>  #define DEBUG_REFINE
>  #endif
> diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c
> index 5d8aaf2..9fe8dc1 100644
> --- a/src/pcm/pcm_share.c
> +++ b/src/pcm/pcm_share.c
> @@ -38,6 +38,10 @@
>  #include <pthread.h>
>  #include "pcm_local.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_pcm_share = "";
> diff --git a/src/pcm/pcm_shm.c b/src/pcm/pcm_shm.c
> index a815ac6..242b26e 100644
> --- a/src/pcm/pcm_shm.c
> +++ b/src/pcm/pcm_shm.c
> @@ -45,6 +45,10 @@
>  #include <netdb.h>
>  #include "aserver.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  #ifndef PIC
>  /* entry for static linking */
>  const char *_snd_module_pcm_shm = "";
> diff --git a/src/pcm/pcm_simple.c b/src/pcm/pcm_simple.c
> index ce11083..99ba1c3 100644
> --- a/src/pcm/pcm_simple.c
> +++ b/src/pcm/pcm_simple.c
> @@ -25,6 +25,10 @@
>  
>  #include "pcm_local.h"
>  
> +#ifndef EBADFD
> +#define EBADFD EBADF
> +#endif
> +
>  static int set_buffer_time(snd_spcm_latency_t latency,
>  			   unsigned int *buffer_time)
>  {
> -- 
> 2.7.1
> 

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: portability patch: EBADF [was Re: feeding back pkgsrc changs]
  2016-02-23 15:53     ` Takashi Iwai
@ 2016-02-24 13:16       ` Thomas Klausner
  2016-02-24 15:36         ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-02-24 13:16 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 1289 bytes --]

On Tue, Feb 23, 2016 at 04:53:51PM +0100, Takashi Iwai wrote:
> On Tue, 23 Feb 2016 15:09:06 +0100,
> Thomas Klausner wrote:
> > Thanks for the answer.
> > 
> > On Thu, Feb 18, 2016 at 04:51:15PM +0100, Takashi Iwai wrote:
> > > On Thu, 18 Feb 2016 16:47:44 +0100,
> > > Thomas Klausner wrote:
> > > > I've just updated the pkgsrc packages for alsa-lib, alsa-utils and
> > > > alsa-plugins to 1.1.0 and noticed that there are quite a number of
> > > > local patches we have. I'd like to get them integrated.
> > > > 
> > > > When I visited the alsa-projects web page, I noticed that the link to
> > > > the bug tracker is dead.
> > > > 
> > > > What is the recommended method to provide the patches?
> > > 
> > > Just submit your patches to alsa-devel ML.  That's the best way to
> > > review and get merged.
> > 
> > I'll start with a straightforward one. Some operating systems don't
> > provide an errno 'EBADFD'; let's use EBADF there instead.
> > 
> > This patch adds the define in all files that need it, but if you
> > prefer to add it to a central place instead, please suggest one.
> 
> How about put this in include/local.h instead?  Then we need to put it
> only in one place, as this is supposed to be included by all codes.

Sounds good and works. New patch attached.
 Thomas

[-- Attachment #2: 0001-Define-EBADFD-in-terms-of-EBADF-if-it-doesn-t-exist.patch --]
[-- Type: text/plain, Size: 645 bytes --]

>From ac054d580a774344adf2dcf198b50100a3f2967d Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Wed, 24 Feb 2016 14:15:10 +0100
Subject: [PATCH] Define EBADFD in terms of EBADF if it doesn't exist.

For portability on FreeBSD, NetBSD and probably others.
---
 include/local.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/local.h b/include/local.h
index b429f5d..28ed106 100644
--- a/include/local.h
+++ b/include/local.h
@@ -53,6 +53,10 @@
 #include <linux/types.h>
 #include <linux/ioctl.h>
 
+#ifndef EBADFD
+#define EBADFD EBADF
+#endif
+
 #ifdef SUPPORT_RESMGR
 #include <resmgr.h>
 #endif
-- 
2.7.1


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: portability patch: EBADF [was Re: feeding back pkgsrc changs]
  2016-02-24 13:16       ` Thomas Klausner
@ 2016-02-24 15:36         ` Takashi Iwai
  2016-02-25 23:31           ` portability: types Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-02-24 15:36 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Wed, 24 Feb 2016 14:16:55 +0100,
Thomas Klausner wrote:
> 
> On Tue, Feb 23, 2016 at 04:53:51PM +0100, Takashi Iwai wrote:
> > On Tue, 23 Feb 2016 15:09:06 +0100,
> > Thomas Klausner wrote:
> > > Thanks for the answer.
> > > 
> > > On Thu, Feb 18, 2016 at 04:51:15PM +0100, Takashi Iwai wrote:
> > > > On Thu, 18 Feb 2016 16:47:44 +0100,
> > > > Thomas Klausner wrote:
> > > > > I've just updated the pkgsrc packages for alsa-lib, alsa-utils and
> > > > > alsa-plugins to 1.1.0 and noticed that there are quite a number of
> > > > > local patches we have. I'd like to get them integrated.
> > > > > 
> > > > > When I visited the alsa-projects web page, I noticed that the link to
> > > > > the bug tracker is dead.
> > > > > 
> > > > > What is the recommended method to provide the patches?
> > > > 
> > > > Just submit your patches to alsa-devel ML.  That's the best way to
> > > > review and get merged.
> > > 
> > > I'll start with a straightforward one. Some operating systems don't
> > > provide an errno 'EBADFD'; let's use EBADF there instead.
> > > 
> > > This patch adds the define in all files that need it, but if you
> > > prefer to add it to a central place instead, please suggest one.
> > 
> > How about put this in include/local.h instead?  Then we need to put it
> > only in one place, as this is supposed to be included by all codes.
> 
> Sounds good and works. New patch attached.

Applied now.  Thanks.


Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* portability: types
  2016-02-24 15:36         ` Takashi Iwai
@ 2016-02-25 23:31           ` Thomas Klausner
  2016-02-26  8:45             ` Clemens Ladisch
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-02-25 23:31 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Wed, Feb 24, 2016 at 04:36:36PM +0100, Takashi Iwai wrote:
> Applied now.  Thanks.

Thank you.

The next big issue is that multiple places include Linux specific
header files, easily recognizable by the path linux/*.h.

I think these are used to define unusual types like __u32, __u64,
__kernel_off_t, __kernel_pid_t. There are also a number of cases of
u_xxx_t (which don't exist on Solaris) vs. the uxxx_t defined in C99.

Many of these types have POSIX equivalents, like uint32_t, uint64_t,
off_t, pid_t.

Would it be better to switch to those, or should we define compat
#typedefs or #defines in local.h?

Cheers,
 Thomas

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: portability: types
  2016-02-25 23:31           ` portability: types Thomas Klausner
@ 2016-02-26  8:45             ` Clemens Ladisch
  2016-02-29 15:05               ` [PATCH 1/3] Use POSIX uint*_t instead of u_int*_t Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Clemens Ladisch @ 2016-02-26  8:45 UTC (permalink / raw)
  To: Thomas Klausner, Takashi Iwai; +Cc: alsa-devel

Thomas Klausner wrote:
> The next big issue is that multiple places include Linux specific
> header files, easily recognizable by the path linux/*.h.

Once upon a time, alsa-lib was used only on Linux (and also on old
versions such as 2.2.x).

> I think these are used to define unusual types like __u32, __u64,
> __kernel_off_t, __kernel_pid_t. There are also a number of cases of
> u_xxx_t (which don't exist on Solaris) vs. the uxxx_t defined in C99.
>
> Many of these types have POSIX equivalents, like uint32_t, uint64_t,
> off_t, pid_t.
>
> Would it be better to switch to those, or should we define compat
> #typedefs or #defines in local.h?

Linux-specific types should be used only in code that actually is
Linux specific (i.e., the xxx_hw plugins).


Regards,
Clemens

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 1/3] Use POSIX uint*_t instead of u_int*_t.
  2016-02-26  8:45             ` Clemens Ladisch
@ 2016-02-29 15:05               ` Thomas Klausner
  2016-02-29 15:05                 ` [PATCH 2/3] Use pid_t, off_t instead of __kernel_*_t for better portability Thomas Klausner
  2016-02-29 15:05                 ` [PATCH 3/3] Use uint*_t instead of __le* Thomas Klausner
  0 siblings, 2 replies; 30+ messages in thread
From: Thomas Klausner @ 2016-02-29 15:05 UTC (permalink / raw)
  To: alsa-devel; +Cc: Thomas Klausner

From: Thomas Klausner <wiz@NetBSD.org>

This helps in particular for Solaris portability.
---
 include/pcm.h             |   8 +-
 src/pcm/interval.c        |   4 +-
 src/pcm/mask_inline.h     |   6 +-
 src/pcm/pcm.c             |  26 +++----
 src/pcm/pcm_iec958.c      |  12 +--
 src/pcm/pcm_linear.c      |   2 +-
 src/pcm/pcm_misc.c        |  42 +++++------
 src/pcm/pcm_rate_linear.c |   4 +-
 src/pcm/pcm_route.c       |   2 +-
 src/pcm/plugin_ops.h      | 182 +++++++++++++++++++++++-----------------------
 10 files changed, 144 insertions(+), 144 deletions(-)

diff --git a/include/pcm.h b/include/pcm.h
index 0be1a32..d4f1543 100644
--- a/include/pcm.h
+++ b/include/pcm.h
@@ -1108,10 +1108,10 @@ int snd_pcm_format_width(snd_pcm_format_t format);			/* in bits */
 int snd_pcm_format_physical_width(snd_pcm_format_t format);		/* in bits */
 snd_pcm_format_t snd_pcm_build_linear_format(int width, int pwidth, int unsignd, int big_endian);
 ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples);
-u_int8_t snd_pcm_format_silence(snd_pcm_format_t format);
-u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format);
-u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format);
-u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format);
+uint8_t snd_pcm_format_silence(snd_pcm_format_t format);
+uint16_t snd_pcm_format_silence_16(snd_pcm_format_t format);
+uint32_t snd_pcm_format_silence_32(snd_pcm_format_t format);
+uint64_t snd_pcm_format_silence_64(snd_pcm_format_t format);
 int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int samples);
 
 snd_pcm_sframes_t snd_pcm_bytes_to_frames(snd_pcm_t *pcm, ssize_t bytes);
diff --git a/src/pcm/interval.c b/src/pcm/interval.c
index 6e39808..74ec320 100644
--- a/src/pcm/interval.c
+++ b/src/pcm/interval.c
@@ -26,7 +26,7 @@
 #include <limits.h>
 #include "pcm_local.h"
 
-static inline void div64_32(u_int64_t *n, u_int32_t d, u_int32_t *rem)
+static inline void div64_32(uint64_t *n, uint32_t d, uint32_t *rem)
 {
 	*rem = *n % d;
 	*n /= d;
@@ -88,7 +88,7 @@ static inline unsigned int sub(unsigned int a, unsigned int b)
 static inline unsigned int muldiv32(unsigned int a, unsigned int b,
 				    unsigned int c, unsigned int *r)
 {
-	u_int64_t n = (u_int64_t) a * b;
+	uint64_t n = (uint64_t) a * b;
 	if (c == 0) {
 		assert(n > 0);
 		*r = 0;
diff --git a/src/pcm/mask_inline.h b/src/pcm/mask_inline.h
index f656568..04c7ee6 100644
--- a/src/pcm/mask_inline.h
+++ b/src/pcm/mask_inline.h
@@ -29,7 +29,7 @@
 #define MASK_OFS(i)	((i) >> 5)
 #define MASK_BIT(i)	(1U << ((i) & 31))
 
-MASK_INLINE unsigned int ld2(u_int32_t v)
+MASK_INLINE unsigned int ld2(uint32_t v)
 {
         unsigned r = 0;
 
@@ -54,7 +54,7 @@ MASK_INLINE unsigned int ld2(u_int32_t v)
         return r;
 }
 
-MASK_INLINE unsigned int hweight32(u_int32_t v)
+MASK_INLINE unsigned int hweight32(uint32_t v)
 {
         v = (v & 0x55555555) + ((v >> 1) & 0x55555555);
         v = (v & 0x33333333) + ((v >> 2) & 0x33333333);
@@ -75,7 +75,7 @@ MASK_INLINE void snd_mask_none(snd_mask_t *mask)
 
 MASK_INLINE void snd_mask_any(snd_mask_t *mask)
 {
-	memset(mask, 0xff, MASK_SIZE * sizeof(u_int32_t));
+	memset(mask, 0xff, MASK_SIZE * sizeof(uint32_t));
 }
 
 MASK_INLINE int snd_mask_empty(const snd_mask_t *mask)
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
index 203e7a5..3fe3b39 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
@@ -2584,7 +2584,7 @@ int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes
 	char *dst;
 	unsigned int dst_step;
 	int width;
-	u_int64_t silence;
+	uint64_t silence;
 	if (!dst_area->addr)
 		return 0;
 	dst = snd_pcm_channel_area_addr(dst_area, dst_offset);
@@ -2592,7 +2592,7 @@ int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes
 	silence = snd_pcm_format_silence_64(format);
 	if (dst_area->step == (unsigned int) width) {
 		unsigned int dwords = samples * width / 64;
-		u_int64_t *dstp = (u_int64_t *)dst;
+		uint64_t *dstp = (uint64_t *)dst;
 		samples -= dwords * 64 / width;
 		while (dwords-- > 0)
 			*dstp++ = silence;
@@ -2602,8 +2602,8 @@ int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes
 	dst_step = dst_area->step / 8;
 	switch (width) {
 	case 4: {
-		u_int8_t s0 = silence & 0xf0;
-		u_int8_t s1 = silence & 0x0f;
+		uint8_t s0 = silence & 0xf0;
+		uint8_t s1 = silence & 0x0f;
 		int dstbit = dst_area->first % 8;
 		int dstbit_step = dst_area->step % 8;
 		while (samples-- > 0) {
@@ -2624,7 +2624,7 @@ int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes
 		break;
 	}
 	case 8: {
-		u_int8_t sil = silence;
+		uint8_t sil = silence;
 		while (samples-- > 0) {
 			*dst = sil;
 			dst += dst_step;
@@ -2632,9 +2632,9 @@ int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes
 		break;
 	}
 	case 16: {
-		u_int16_t sil = silence;
+		uint16_t sil = silence;
 		while (samples-- > 0) {
-			*(u_int16_t*)dst = sil;
+			*(uint16_t*)dst = sil;
 			dst += dst_step;
 		}
 		break;
@@ -2651,16 +2651,16 @@ int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes
 #endif
 		break;
 	case 32: {
-		u_int32_t sil = silence;
+		uint32_t sil = silence;
 		while (samples-- > 0) {
-			*(u_int32_t*)dst = sil;
+			*(uint32_t*)dst = sil;
 			dst += dst_step;
 		}
 		break;
 	}
 	case 64: {
 		while (samples-- > 0) {
-			*(u_int64_t*)dst = silence;
+			*(uint64_t*)dst = silence;
 			dst += dst_step;
 		}
 		break;
@@ -2804,7 +2804,7 @@ int snd_pcm_area_copy(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes_t
 	}
 	case 16: {
 		while (samples-- > 0) {
-			*(u_int16_t*)dst = *(const u_int16_t*)src;
+			*(uint16_t*)dst = *(const uint16_t*)src;
 			src += src_step;
 			dst += dst_step;
 		}
@@ -2821,7 +2821,7 @@ int snd_pcm_area_copy(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes_t
 		break;
 	case 32: {
 		while (samples-- > 0) {
-			*(u_int32_t*)dst = *(const u_int32_t*)src;
+			*(uint32_t*)dst = *(const uint32_t*)src;
 			src += src_step;
 			dst += dst_step;
 		}
@@ -2829,7 +2829,7 @@ int snd_pcm_area_copy(const snd_pcm_channel_area_t *dst_area, snd_pcm_uframes_t
 	}
 	case 64: {
 		while (samples-- > 0) {
-			*(u_int64_t*)dst = *(const u_int64_t*)src;
+			*(uint64_t*)dst = *(const uint64_t*)src;
 			src += src_step;
 			dst += dst_step;
 		}
diff --git a/src/pcm/pcm_iec958.c b/src/pcm/pcm_iec958.c
index 38c4ce7..a7fe0d7 100644
--- a/src/pcm/pcm_iec958.c
+++ b/src/pcm/pcm_iec958.c
@@ -102,7 +102,7 @@ static unsigned int iec958_parity(unsigned int data)
  *     31   = parity
  */
 
-static inline u_int32_t iec958_subframe(snd_pcm_iec958_t *iec, u_int32_t data, int channel)
+static inline uint32_t iec958_subframe(snd_pcm_iec958_t *iec, uint32_t data, int channel)
 {
 	unsigned int byte = iec->counter >> 3;
 	unsigned int mask = 1 << (iec->counter - (byte << 3));
@@ -132,7 +132,7 @@ static inline u_int32_t iec958_subframe(snd_pcm_iec958_t *iec, u_int32_t data, i
 	return data;
 }
 
-static inline int32_t iec958_to_s32(snd_pcm_iec958_t *iec, u_int32_t data)
+static inline int32_t iec958_to_s32(snd_pcm_iec958_t *iec, uint32_t data)
 {
 	if (iec->byteswap)
 		data = bswap_32(data);
@@ -155,7 +155,7 @@ static void snd_pcm_iec958_decode(snd_pcm_iec958_t *iec,
 	void *put = put32_labels[iec->getput_idx];
 	unsigned int channel;
 	for (channel = 0; channel < channels; ++channel) {
-		const u_int32_t *src;
+		const uint32_t *src;
 		char *dst;
 		int src_step, dst_step;
 		snd_pcm_uframes_t frames1;
@@ -163,7 +163,7 @@ static void snd_pcm_iec958_decode(snd_pcm_iec958_t *iec,
 		const snd_pcm_channel_area_t *dst_area = &dst_areas[channel];
 		src = snd_pcm_channel_area_addr(src_area, src_offset);
 		dst = snd_pcm_channel_area_addr(dst_area, dst_offset);
-		src_step = snd_pcm_channel_area_step(src_area) / sizeof(u_int32_t);
+		src_step = snd_pcm_channel_area_step(src_area) / sizeof(uint32_t);
 		dst_step = snd_pcm_channel_area_step(dst_area);
 		frames1 = frames;
 		while (frames1-- > 0) {
@@ -195,7 +195,7 @@ static void snd_pcm_iec958_encode(snd_pcm_iec958_t *iec,
 	int counter = iec->counter;
 	for (channel = 0; channel < channels; ++channel) {
 		const char *src;
-		u_int32_t *dst;
+		uint32_t *dst;
 		int src_step, dst_step;
 		snd_pcm_uframes_t frames1;
 		const snd_pcm_channel_area_t *src_area = &src_areas[channel];
@@ -203,7 +203,7 @@ static void snd_pcm_iec958_encode(snd_pcm_iec958_t *iec,
 		src = snd_pcm_channel_area_addr(src_area, src_offset);
 		dst = snd_pcm_channel_area_addr(dst_area, dst_offset);
 		src_step = snd_pcm_channel_area_step(src_area);
-		dst_step = snd_pcm_channel_area_step(dst_area) / sizeof(u_int32_t);
+		dst_step = snd_pcm_channel_area_step(dst_area) / sizeof(uint32_t);
 		frames1 = frames;
 		iec->counter = counter;
 		while (frames1-- > 0) {
diff --git a/src/pcm/pcm_linear.c b/src/pcm/pcm_linear.c
index 9a92abd..8b21049 100644
--- a/src/pcm/pcm_linear.c
+++ b/src/pcm/pcm_linear.c
@@ -183,7 +183,7 @@ void snd_pcm_linear_getput(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufra
 	void *get = get32_labels[get_idx];
 	void *put = put32_labels[put_idx];
 	unsigned int channel;
-	u_int32_t sample = 0;
+	uint32_t sample = 0;
 	for (channel = 0; channel < channels; ++channel) {
 		const char *src;
 		char *dst;
diff --git a/src/pcm/pcm_misc.c b/src/pcm/pcm_misc.c
index 5870f82..83e7c79 100644
--- a/src/pcm/pcm_misc.c
+++ b/src/pcm/pcm_misc.c
@@ -387,7 +387,7 @@ ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples)
  * \param format Sample format
  * \return silence 64 bit word
  */
-u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
+uint64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
 {
 	switch (format) {
 	case SNDRV_PCM_FORMAT_S8:
@@ -467,7 +467,7 @@ u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
 	{
 		union {
 			float f[2];
-			u_int64_t i;
+			uint64_t i;
 		} u;
 		u.f[0] = u.f[1] = 0.0;
 #ifdef SNDRV_LITTLE_ENDIAN
@@ -480,7 +480,7 @@ u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
 	{
 		union {
 			double f;
-			u_int64_t i;
+			uint64_t i;
 		} u;
 		u.f = 0.0;
 #ifdef SNDRV_LITTLE_ENDIAN
@@ -493,7 +493,7 @@ u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
 	{
 		union {
 			float f[2];
-			u_int64_t i;
+			uint64_t i;
 		} u;
 		u.f[0] = u.f[1] = 0.0;
 #ifdef SNDRV_LITTLE_ENDIAN
@@ -506,7 +506,7 @@ u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
 	{
 		union {
 			double f;
-			u_int64_t i;
+			uint64_t i;
 		} u;
 		u.f = 0.0;
 #ifdef SNDRV_LITTLE_ENDIAN
@@ -539,10 +539,10 @@ u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
  * \param format Sample format
  * \return silence 32 bit word
  */
-u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format)
+uint32_t snd_pcm_format_silence_32(snd_pcm_format_t format)
 {
 	assert(snd_pcm_format_physical_width(format) <= 32);
-	return (u_int32_t)snd_pcm_format_silence_64(format);
+	return (uint32_t)snd_pcm_format_silence_64(format);
 }
 
 /**
@@ -550,10 +550,10 @@ u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format)
  * \param format Sample format
  * \return silence 16 bit word
  */
-u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format)
+uint16_t snd_pcm_format_silence_16(snd_pcm_format_t format)
 {
 	assert(snd_pcm_format_physical_width(format) <= 16);
-	return (u_int16_t)snd_pcm_format_silence_64(format);
+	return (uint16_t)snd_pcm_format_silence_64(format);
 }
 
 /**
@@ -561,10 +561,10 @@ u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format)
  * \param format Sample format
  * \return silence 8 bit word
  */
-u_int8_t snd_pcm_format_silence(snd_pcm_format_t format)
+uint8_t snd_pcm_format_silence(snd_pcm_format_t format)
 {
 	assert(snd_pcm_format_physical_width(format) <= 8);
-	return (u_int8_t)snd_pcm_format_silence_64(format);
+	return (uint8_t)snd_pcm_format_silence_64(format);
 }
 
 /**
@@ -580,7 +580,7 @@ int snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int
 		return 0;
 	switch (snd_pcm_format_physical_width(format)) {
 	case 4: {
-		u_int8_t silence = snd_pcm_format_silence_64(format);
+		uint8_t silence = snd_pcm_format_silence_64(format);
 		unsigned int samples1;
 		if (samples % 2 != 0)
 			return -EINVAL;
@@ -589,13 +589,13 @@ int snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int
 		break;
 	}
 	case 8: {
-		u_int8_t silence = snd_pcm_format_silence_64(format);
+		uint8_t silence = snd_pcm_format_silence_64(format);
 		memset(data, silence, samples);
 		break;
 	}
 	case 16: {
-		u_int16_t silence = snd_pcm_format_silence_64(format);
-		u_int16_t *pdata = (u_int16_t *)data;
+		uint16_t silence = snd_pcm_format_silence_64(format);
+		uint16_t *pdata = (uint16_t *)data;
 		if (! silence)
 			memset(data, 0, samples * 2);
 		else {
@@ -605,8 +605,8 @@ int snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int
 		break;
 	}
 	case 24: {
-		u_int32_t silence = snd_pcm_format_silence_64(format);
-		u_int8_t *pdata = (u_int8_t *)data;
+		uint32_t silence = snd_pcm_format_silence_64(format);
+		uint8_t *pdata = (uint8_t *)data;
 		if (! silence)
 			memset(data, 0, samples * 3);
 		else {
@@ -625,8 +625,8 @@ int snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int
 		break;
 	}
 	case 32: {
-		u_int32_t silence = snd_pcm_format_silence_64(format);
-		u_int32_t *pdata = (u_int32_t *)data;
+		uint32_t silence = snd_pcm_format_silence_64(format);
+		uint32_t *pdata = (uint32_t *)data;
 		if (! silence)
 			memset(data, 0, samples * 4);
 		else {
@@ -636,8 +636,8 @@ int snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int
 		break;
 	}
 	case 64: {
-		u_int64_t silence = snd_pcm_format_silence_64(format);
-		u_int64_t *pdata = (u_int64_t *)data;
+		uint64_t silence = snd_pcm_format_silence_64(format);
+		uint64_t *pdata = (uint64_t *)data;
 		if (! silence)
 			memset(data, 0, samples * 8);
 		else {
diff --git a/src/pcm/pcm_rate_linear.c b/src/pcm/pcm_rate_linear.c
index 7481b38..4863938 100644
--- a/src/pcm/pcm_rate_linear.c
+++ b/src/pcm/pcm_rate_linear.c
@@ -346,7 +346,7 @@ static int linear_init(void *obj, snd_pcm_rate_info_t *info)
 			rate->func = linear_shrink;
 		/* pitch is get_increment */
 	}
-	rate->pitch = (((u_int64_t)info->out.rate * LINEAR_DIV) +
+	rate->pitch = (((uint64_t)info->out.rate * LINEAR_DIV) +
 		       (info->in.rate / 2)) / info->in.rate;
 	rate->channels = info->channels;
 
@@ -363,7 +363,7 @@ static int linear_adjust_pitch(void *obj, snd_pcm_rate_info_t *info)
 	struct rate_linear *rate = obj;
 	snd_pcm_uframes_t cframes;
 
-	rate->pitch = (((u_int64_t)info->out.period_size * LINEAR_DIV) +
+	rate->pitch = (((uint64_t)info->out.period_size * LINEAR_DIV) +
 		       (info->in.period_size/2) ) / info->in.period_size;
 			
 	cframes = input_frames(rate, info->out.period_size);
diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c
index 646517d..c8e752f 100644
--- a/src/pcm/pcm_route.c
+++ b/src/pcm/pcm_route.c
@@ -190,7 +190,7 @@ static void snd_pcm_route_convert1_one_getput(const snd_pcm_channel_area_t *dst_
 	const char *src;
 	char *dst;
 	int src_step, dst_step;
-	u_int32_t sample = 0;
+	uint32_t sample = 0;
 	for (srcidx = 0; srcidx < ttable->nsrcs && srcidx < src_channels; ++srcidx) {
 		unsigned int channel = ttable->srcs[srcidx].channel;
 		if (channel >= src_channels)
diff --git a/src/pcm/plugin_ops.h b/src/pcm/plugin_ops.h
index eb8c2c4..69e7f2c 100644
--- a/src/pcm/plugin_ops.h
+++ b/src/pcm/plugin_ops.h
@@ -21,13 +21,13 @@
 
 #ifndef SX_INLINES
 #define SX_INLINES
-static inline u_int32_t sx24(u_int32_t x)
+static inline uint32_t sx24(uint32_t x)
 {
 	if(x&0x00800000)
 		return x|0xFF000000;
 	return x&0x00FFFFFF;
 }
-static inline u_int32_t sx24s(u_int32_t x)
+static inline uint32_t sx24s(uint32_t x)
 {
 	if(x&0x00008000)
 		return x|0x000000FF;
@@ -35,10 +35,10 @@ static inline u_int32_t sx24s(u_int32_t x)
 }
 #endif
 
-#define as_u8(ptr) (*(u_int8_t*)(ptr))
-#define as_u16(ptr) (*(u_int16_t*)(ptr))
-#define as_u32(ptr) (*(u_int32_t*)(ptr))
-#define as_u64(ptr) (*(u_int64_t*)(ptr))
+#define as_u8(ptr) (*(uint8_t*)(ptr))
+#define as_u16(ptr) (*(uint16_t*)(ptr))
+#define as_u32(ptr) (*(uint32_t*)(ptr))
+#define as_u64(ptr) (*(uint64_t*)(ptr))
 #define as_s8(ptr) (*(int8_t*)(ptr))
 #define as_s16(ptr) (*(int16_t*)(ptr))
 #define as_s32(ptr) (*(int32_t*)(ptr))
@@ -46,10 +46,10 @@ static inline u_int32_t sx24s(u_int32_t x)
 #define as_float(ptr) (*(float_t*)(ptr))
 #define as_double(ptr) (*(double_t*)(ptr))
 
-#define as_u8c(ptr) (*(const u_int8_t*)(ptr))
-#define as_u16c(ptr) (*(const u_int16_t*)(ptr))
-#define as_u32c(ptr) (*(const u_int32_t*)(ptr))
-#define as_u64c(ptr) (*(const u_int64_t*)(ptr))
+#define as_u8c(ptr) (*(const uint8_t*)(ptr))
+#define as_u16c(ptr) (*(const uint16_t*)(ptr))
+#define as_u32c(ptr) (*(const uint32_t*)(ptr))
+#define as_u64c(ptr) (*(const uint64_t*)(ptr))
 #define as_s8c(ptr) (*(const int8_t*)(ptr))
 #define as_s16c(ptr) (*(const int16_t*)(ptr))
 #define as_s32c(ptr) (*(const int32_t*)(ptr))
@@ -57,18 +57,18 @@ static inline u_int32_t sx24s(u_int32_t x)
 #define as_floatc(ptr) (*(const float_t*)(ptr))
 #define as_doublec(ptr) (*(const double_t*)(ptr))
 
-#define _get_triple_le(ptr) (*(u_int8_t*)(ptr) | (u_int32_t)*((u_int8_t*)(ptr) + 1) << 8 | (u_int32_t)*((u_int8_t*)(ptr) + 2) << 16)
-#define _get_triple_be(ptr) ((u_int32_t)*(u_int8_t*)(ptr) << 16 | (u_int32_t)*((u_int8_t*)(ptr) + 1) << 8 | *((u_int8_t*)(ptr) + 2))
+#define _get_triple_le(ptr) (*(uint8_t*)(ptr) | (uint32_t)*((uint8_t*)(ptr) + 1) << 8 | (uint32_t)*((uint8_t*)(ptr) + 2) << 16)
+#define _get_triple_be(ptr) ((uint32_t)*(uint8_t*)(ptr) << 16 | (uint32_t)*((uint8_t*)(ptr) + 1) << 8 | *((uint8_t*)(ptr) + 2))
 #define _put_triple_le(ptr,val) do { \
-	u_int8_t *_tmp = (u_int8_t *)(ptr); \
-	u_int32_t _val = (val); \
+	uint8_t *_tmp = (uint8_t *)(ptr); \
+	uint32_t _val = (val); \
 	_tmp[0] = _val; \
 	_tmp[1] = _val >> 8; \
 	_tmp[2] = _val >> 16; \
 } while(0)
 #define _put_triple_be(ptr,val) do { \
-	u_int8_t *_tmp = (u_int8_t *)(ptr); \
-	u_int32_t _val = (val); \
+	uint8_t *_tmp = (uint8_t *)(ptr); \
+	uint32_t _val = (val); \
 	_tmp[0] = _val >> 16; \
 	_tmp[1] = _val >> 8; \
 	_tmp[2] = _val; \
@@ -243,45 +243,45 @@ static void *const conv_labels[4 * 2 * 2 * 4 * 2] = {
 #ifdef CONV_END
 while(0) {
 conv_xxx1_xxx1: as_u8(dst) = as_u8c(src); goto CONV_END;
-conv_xxx1_xx10: as_u16(dst) = (u_int16_t)as_u8c(src) << 8; goto CONV_END;
-conv_xxx1_xx01: as_u16(dst) = (u_int16_t)as_u8c(src); goto CONV_END;
-conv_xxx1_x100: as_u32(dst) = sx24((u_int32_t)as_u8c(src) << 16); goto CONV_END;
-conv_xxx1_001x: as_u32(dst) = sx24s((u_int32_t)as_u8c(src) << 8); goto CONV_END;
-conv_xxx1_1000: as_u32(dst) = (u_int32_t)as_u8c(src) << 24; goto CONV_END;
-conv_xxx1_0001: as_u32(dst) = (u_int32_t)as_u8c(src); goto CONV_END;
+conv_xxx1_xx10: as_u16(dst) = (uint16_t)as_u8c(src) << 8; goto CONV_END;
+conv_xxx1_xx01: as_u16(dst) = (uint16_t)as_u8c(src); goto CONV_END;
+conv_xxx1_x100: as_u32(dst) = sx24((uint32_t)as_u8c(src) << 16); goto CONV_END;
+conv_xxx1_001x: as_u32(dst) = sx24s((uint32_t)as_u8c(src) << 8); goto CONV_END;
+conv_xxx1_1000: as_u32(dst) = (uint32_t)as_u8c(src) << 24; goto CONV_END;
+conv_xxx1_0001: as_u32(dst) = (uint32_t)as_u8c(src); goto CONV_END;
 conv_xxx1_xxx9: as_u8(dst) = as_u8c(src) ^ 0x80; goto CONV_END;
-conv_xxx1_xx90: as_u16(dst) = (u_int16_t)(as_u8c(src) ^ 0x80) << 8; goto CONV_END;
-conv_xxx1_xx09: as_u16(dst) = (u_int16_t)(as_u8c(src) ^ 0x80); goto CONV_END;
-conv_xxx1_x900: as_u32(dst) = sx24((u_int32_t)(as_u8c(src) ^ 0x80) << 16); goto CONV_END;
-conv_xxx1_009x: as_u32(dst) = sx24s((u_int32_t)(as_u8c(src) ^ 0x80) << 8); goto CONV_END;
-conv_xxx1_9000: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80) << 24; goto CONV_END;
-conv_xxx1_0009: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80); goto CONV_END;
+conv_xxx1_xx90: as_u16(dst) = (uint16_t)(as_u8c(src) ^ 0x80) << 8; goto CONV_END;
+conv_xxx1_xx09: as_u16(dst) = (uint16_t)(as_u8c(src) ^ 0x80); goto CONV_END;
+conv_xxx1_x900: as_u32(dst) = sx24((uint32_t)(as_u8c(src) ^ 0x80) << 16); goto CONV_END;
+conv_xxx1_009x: as_u32(dst) = sx24s((uint32_t)(as_u8c(src) ^ 0x80) << 8); goto CONV_END;
+conv_xxx1_9000: as_u32(dst) = (uint32_t)(as_u8c(src) ^ 0x80) << 24; goto CONV_END;
+conv_xxx1_0009: as_u32(dst) = (uint32_t)(as_u8c(src) ^ 0x80); goto CONV_END;
 conv_xx12_xxx1: as_u8(dst) = as_u16c(src) >> 8; goto CONV_END;
 conv_xx12_xx12: as_u16(dst) = as_u16c(src); goto CONV_END;
 conv_xx12_xx21: as_u16(dst) = bswap_16(as_u16c(src)); goto CONV_END;
-conv_xx12_x120: as_u32(dst) = sx24((u_int32_t)as_u16c(src) << 8); goto CONV_END;
-conv_xx12_021x: as_u32(dst) = sx24s((u_int32_t)bswap_16(as_u16c(src)) << 8); goto CONV_END;
-conv_xx12_1200: as_u32(dst) = (u_int32_t)as_u16c(src) << 16; goto CONV_END;
-conv_xx12_0021: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)); goto CONV_END;
+conv_xx12_x120: as_u32(dst) = sx24((uint32_t)as_u16c(src) << 8); goto CONV_END;
+conv_xx12_021x: as_u32(dst) = sx24s((uint32_t)bswap_16(as_u16c(src)) << 8); goto CONV_END;
+conv_xx12_1200: as_u32(dst) = (uint32_t)as_u16c(src) << 16; goto CONV_END;
+conv_xx12_0021: as_u32(dst) = (uint32_t)bswap_16(as_u16c(src)); goto CONV_END;
 conv_xx12_xxx9: as_u8(dst) = (as_u16c(src) >> 8) ^ 0x80; goto CONV_END;
 conv_xx12_xx92: as_u16(dst) = as_u16c(src) ^ 0x8000; goto CONV_END;
 conv_xx12_xx29: as_u16(dst) = bswap_16(as_u16c(src)) ^ 0x80; goto CONV_END;
-conv_xx12_x920: as_u32(dst) = sx24((u_int32_t)(as_u16c(src) ^ 0x8000) << 8); goto CONV_END;
-conv_xx12_029x: as_u32(dst) = sx24s((u_int32_t)(bswap_16(as_u16c(src)) ^ 0x80) << 8); goto CONV_END;
-conv_xx12_9200: as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x8000) << 16; goto CONV_END;
-conv_xx12_0029: as_u32(dst) = (u_int32_t)(bswap_16(as_u16c(src)) ^ 0x80); goto CONV_END;
+conv_xx12_x920: as_u32(dst) = sx24((uint32_t)(as_u16c(src) ^ 0x8000) << 8); goto CONV_END;
+conv_xx12_029x: as_u32(dst) = sx24s((uint32_t)(bswap_16(as_u16c(src)) ^ 0x80) << 8); goto CONV_END;
+conv_xx12_9200: as_u32(dst) = (uint32_t)(as_u16c(src) ^ 0x8000) << 16; goto CONV_END;
+conv_xx12_0029: as_u32(dst) = (uint32_t)(bswap_16(as_u16c(src)) ^ 0x80); goto CONV_END;
 conv_xx12_xxx2: as_u8(dst) = as_u16c(src) & 0xff; goto CONV_END;
-conv_xx12_x210: as_u32(dst) = sx24((u_int32_t)bswap_16(as_u16c(src)) << 8); goto CONV_END;
-conv_xx12_012x: as_u32(dst) = sx24s((u_int32_t)as_u16c(src) << 8); goto CONV_END;
-conv_xx12_2100: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)) << 16; goto CONV_END;
-conv_xx12_0012: as_u32(dst) = (u_int32_t)as_u16c(src); goto CONV_END; 
+conv_xx12_x210: as_u32(dst) = sx24((uint32_t)bswap_16(as_u16c(src)) << 8); goto CONV_END;
+conv_xx12_012x: as_u32(dst) = sx24s((uint32_t)as_u16c(src) << 8); goto CONV_END;
+conv_xx12_2100: as_u32(dst) = (uint32_t)bswap_16(as_u16c(src)) << 16; goto CONV_END;
+conv_xx12_0012: as_u32(dst) = (uint32_t)as_u16c(src); goto CONV_END; 
 conv_xx12_xxxA: as_u8(dst) = (as_u16c(src) ^ 0x80) & 0xff; goto CONV_END;
 conv_xx12_xxA1: as_u16(dst) = bswap_16(as_u16c(src) ^ 0x80); goto CONV_END;
 conv_xx12_xx1A: as_u16(dst) = as_u16c(src) ^ 0x80; goto CONV_END;
-conv_xx12_xA10: as_u32(dst) = sx24((u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 8); goto CONV_END;
-conv_xx12_01Ax: as_u32(dst) = sx24s((u_int32_t)(as_u16c(src) ^ 0x80) << 8); goto CONV_END;
-conv_xx12_A100: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto CONV_END;
-conv_xx12_001A: as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x80); goto CONV_END;
+conv_xx12_xA10: as_u32(dst) = sx24((uint32_t)bswap_16(as_u16c(src) ^ 0x80) << 8); goto CONV_END;
+conv_xx12_01Ax: as_u32(dst) = sx24s((uint32_t)(as_u16c(src) ^ 0x80) << 8); goto CONV_END;
+conv_xx12_A100: as_u32(dst) = (uint32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto CONV_END;
+conv_xx12_001A: as_u32(dst) = (uint32_t)(as_u16c(src) ^ 0x80); goto CONV_END;
 conv_x123_xxx1: as_u8(dst) = as_u32c(src) >> 16; goto CONV_END;
 conv_x123_xx12: as_u16(dst) = as_u32c(src) >> 8; goto CONV_END;
 conv_x123_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 8); goto CONV_END;
@@ -376,8 +376,8 @@ static void *const get16_labels[4 * 2 * 2 + 4 * 3] = {
 
 #ifdef GET16_END
 while(0) {
-get16_1_10: sample = (u_int16_t)as_u8c(src) << 8; goto GET16_END;
-get16_1_90: sample = (u_int16_t)(as_u8c(src) ^ 0x80) << 8; goto GET16_END;
+get16_1_10: sample = (uint16_t)as_u8c(src) << 8; goto GET16_END;
+get16_1_90: sample = (uint16_t)(as_u8c(src) ^ 0x80) << 8; goto GET16_END;
 get16_12_12: sample = as_u16c(src); goto GET16_END;
 get16_12_92: sample = as_u16c(src) ^ 0x8000; goto GET16_END;
 get16_12_21: sample = bswap_16(as_u16c(src)); goto GET16_END;
@@ -448,26 +448,26 @@ put16_12_12: as_u16(dst) = sample; goto PUT16_END;
 put16_12_92: as_u16(dst) = sample ^ 0x8000; goto PUT16_END;
 put16_12_21: as_u16(dst) = bswap_16(sample); goto PUT16_END;
 put16_12_29: as_u16(dst) = bswap_16(sample) ^ 0x80; goto PUT16_END;
-put16_12_0120: as_u32(dst) = sx24((u_int32_t)sample << 8); goto PUT16_END;
-put16_12_0920: as_u32(dst) = sx24((u_int32_t)(sample ^ 0x8000) << 8); goto PUT16_END;
-put16_12_0210: as_u32(dst) = sx24s((u_int32_t)bswap_16(sample) << 8); goto PUT16_END;
-put16_12_0290: as_u32(dst) = sx24s((u_int32_t)(bswap_16(sample) ^ 0x80) << 8); goto PUT16_END;
-put16_12_1200: as_u32(dst) = (u_int32_t)sample << 16; goto PUT16_END;
-put16_12_9200: as_u32(dst) = (u_int32_t)(sample ^ 0x8000) << 16; goto PUT16_END;
-put16_12_0021: as_u32(dst) = (u_int32_t)bswap_16(sample); goto PUT16_END;
-put16_12_0029: as_u32(dst) = (u_int32_t)bswap_16(sample) ^ 0x80; goto PUT16_END;
-put16_12_120: _put_triple(dst, (u_int32_t)sample << 8); goto PUT16_END;
-put16_12_920: _put_triple(dst, (u_int32_t)(sample ^ 0x8000) << 8); goto PUT16_END;
-put16_12_021: _put_triple_s(dst, (u_int32_t)sample << 8); goto PUT16_END;
-put16_12_029: _put_triple_s(dst, (u_int32_t)(sample ^ 0x8000) << 8); goto PUT16_END;
-put16_12_120_20: _put_triple(dst, (u_int32_t)sample << 4); goto PUT16_END;
-put16_12_920_20: _put_triple(dst, (u_int32_t)(sample ^ 0x8000) << 4); goto PUT16_END;
-put16_12_021_20: _put_triple_s(dst, (u_int32_t)sample << 4); goto PUT16_END;
-put16_12_029_20: _put_triple_s(dst, (u_int32_t)(sample ^ 0x8000) << 4); goto PUT16_END;
-put16_12_120_18: _put_triple(dst, (u_int32_t)sample << 2); goto PUT16_END;
-put16_12_920_18: _put_triple(dst, (u_int32_t)(sample ^ 0x8000) << 2); goto PUT16_END;
-put16_12_021_18: _put_triple_s(dst, (u_int32_t)sample << 2); goto PUT16_END;
-put16_12_029_18: _put_triple_s(dst, (u_int32_t)(sample ^ 0x8000) << 2); goto PUT16_END;
+put16_12_0120: as_u32(dst) = sx24((uint32_t)sample << 8); goto PUT16_END;
+put16_12_0920: as_u32(dst) = sx24((uint32_t)(sample ^ 0x8000) << 8); goto PUT16_END;
+put16_12_0210: as_u32(dst) = sx24s((uint32_t)bswap_16(sample) << 8); goto PUT16_END;
+put16_12_0290: as_u32(dst) = sx24s((uint32_t)(bswap_16(sample) ^ 0x80) << 8); goto PUT16_END;
+put16_12_1200: as_u32(dst) = (uint32_t)sample << 16; goto PUT16_END;
+put16_12_9200: as_u32(dst) = (uint32_t)(sample ^ 0x8000) << 16; goto PUT16_END;
+put16_12_0021: as_u32(dst) = (uint32_t)bswap_16(sample); goto PUT16_END;
+put16_12_0029: as_u32(dst) = (uint32_t)bswap_16(sample) ^ 0x80; goto PUT16_END;
+put16_12_120: _put_triple(dst, (uint32_t)sample << 8); goto PUT16_END;
+put16_12_920: _put_triple(dst, (uint32_t)(sample ^ 0x8000) << 8); goto PUT16_END;
+put16_12_021: _put_triple_s(dst, (uint32_t)sample << 8); goto PUT16_END;
+put16_12_029: _put_triple_s(dst, (uint32_t)(sample ^ 0x8000) << 8); goto PUT16_END;
+put16_12_120_20: _put_triple(dst, (uint32_t)sample << 4); goto PUT16_END;
+put16_12_920_20: _put_triple(dst, (uint32_t)(sample ^ 0x8000) << 4); goto PUT16_END;
+put16_12_021_20: _put_triple_s(dst, (uint32_t)sample << 4); goto PUT16_END;
+put16_12_029_20: _put_triple_s(dst, (uint32_t)(sample ^ 0x8000) << 4); goto PUT16_END;
+put16_12_120_18: _put_triple(dst, (uint32_t)sample << 2); goto PUT16_END;
+put16_12_920_18: _put_triple(dst, (uint32_t)(sample ^ 0x8000) << 2); goto PUT16_END;
+put16_12_021_18: _put_triple_s(dst, (uint32_t)sample << 2); goto PUT16_END;
+put16_12_029_18: _put_triple_s(dst, (uint32_t)(sample ^ 0x8000) << 2); goto PUT16_END;
 }
 #endif
 
@@ -517,12 +517,12 @@ static void *const get32_labels[4 * 2 * 2 + 4 * 3] = {
 
 #ifdef GET32_END
 while (0) {
-get32_1_1000: sample = (u_int32_t)as_u8c(src) << 24; goto GET32_END;
-get32_1_9000: sample = (u_int32_t)(as_u8c(src) ^ 0x80) << 24; goto GET32_END;
-get32_12_1200: sample = (u_int32_t)as_u16c(src) << 16; goto GET32_END;
-get32_12_9200: sample = (u_int32_t)(as_u16c(src) ^ 0x8000) << 16; goto GET32_END;
-get32_12_2100: sample = (u_int32_t)bswap_16(as_u16c(src)) << 16; goto GET32_END;
-get32_12_A100: sample = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto GET32_END;
+get32_1_1000: sample = (uint32_t)as_u8c(src) << 24; goto GET32_END;
+get32_1_9000: sample = (uint32_t)(as_u8c(src) ^ 0x80) << 24; goto GET32_END;
+get32_12_1200: sample = (uint32_t)as_u16c(src) << 16; goto GET32_END;
+get32_12_9200: sample = (uint32_t)(as_u16c(src) ^ 0x8000) << 16; goto GET32_END;
+get32_12_2100: sample = (uint32_t)bswap_16(as_u16c(src)) << 16; goto GET32_END;
+get32_12_A100: sample = (uint32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto GET32_END;
 get32_0123_1230: sample = as_u32c(src) << 8; goto GET32_END;
 get32_0123_9230: sample = (as_u32c(src) << 8) ^ 0x80000000; goto GET32_END;
 get32_1230_3210: sample = bswap_32(as_u32c(src) >> 8); goto GET32_END;
@@ -786,18 +786,18 @@ static inline void _norms(const void *src, void *dst,
 		s += (1U << (dst_wid - 1));
 	switch (dst_wid) {
 	case 8:
-		*(u_int8_t*)dst = s;
+		*(uint8_t*)dst = s;
 		break;
 	case 16:
 		if (dst_end)
 			s = bswap_16(s);
-		*(u_int16_t*)dst = s;
+		*(uint16_t*)dst = s;
 		break;
 	case 24:
 	case 32:
 		if (dst_end)
 			s = bswap_32(s);
-		*(u_int32_t*)dst = s;
+		*(uint32_t*)dst = s;
 		break;
 	}
 	return;
@@ -806,27 +806,27 @@ static inline void _norms(const void *src, void *dst,
 	switch (dst_wid) {
 	case 8:
 		if (dst_sign)
-			*(u_int8_t*)dst = 0x80;
+			*(uint8_t*)dst = 0x80;
 		else
-			*(u_int8_t*)dst = 0;
+			*(uint8_t*)dst = 0;
 		break;
 	case 16:
 		if (dst_sign)
-			*(u_int16_t*)dst = dst_end ? 0x0080 : 0x8000;
+			*(uint16_t*)dst = dst_end ? 0x0080 : 0x8000;
 		else
-			*(u_int16_t*)dst = 0;
+			*(uint16_t*)dst = 0;
 		break;
 	case 24:
 		if (dst_sign)
-			*(u_int32_t*)dst = dst_end ? 0x00008000 : 0x00800000;
+			*(uint32_t*)dst = dst_end ? 0x00008000 : 0x00800000;
 		else
-			*(u_int32_t*)dst = 0;
+			*(uint32_t*)dst = 0;
 		break;
 	case 32:
 		if (dst_sign)
-			*(u_int32_t*)dst = dst_end ? 0x00000080 : 0x80000000;
+			*(uint32_t*)dst = dst_end ? 0x00000080 : 0x80000000;
 		else
-			*(u_int32_t*)dst = 0;
+			*(uint32_t*)dst = 0;
 		break;
 	default:
 		assert(0);
@@ -838,27 +838,27 @@ static inline void _norms(const void *src, void *dst,
 	switch (dst_wid) {
 	case 8:
 		if (dst_sign)
-			*(u_int8_t*)dst = 0x7f;
+			*(uint8_t*)dst = 0x7f;
 		else
-			*(u_int8_t*)dst = 0xff;
+			*(uint8_t*)dst = 0xff;
 		break;
 	case 16:
 		if (dst_sign)
-			*(u_int16_t*)dst = dst_end ? 0xff7f : 0x7fff;
+			*(uint16_t*)dst = dst_end ? 0xff7f : 0x7fff;
 		else
-			*(u_int16_t*)dst = 0;
+			*(uint16_t*)dst = 0;
 		break;
 	case 24:
 		if (dst_sign)
-			*(u_int32_t*)dst = dst_end ? 0xffff7f00 : 0x007fffff;
+			*(uint32_t*)dst = dst_end ? 0xffff7f00 : 0x007fffff;
 		else
-			*(u_int32_t*)dst = 0;
+			*(uint32_t*)dst = 0;
 		break;
 	case 32:
 		if (dst_sign)
-			*(u_int32_t*)dst = dst_end ? 0xffffff7f : 0x7fffffff;
+			*(uint32_t*)dst = dst_end ? 0xffffff7f : 0x7fffffff;
 		else
-			*(u_int32_t*)dst = 0;
+			*(uint32_t*)dst = 0;
 		break;
 	default:
 		assert(0);
-- 
2.7.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 2/3] Use pid_t, off_t instead of __kernel_*_t for better portability.
  2016-02-29 15:05               ` [PATCH 1/3] Use POSIX uint*_t instead of u_int*_t Thomas Klausner
@ 2016-02-29 15:05                 ` Thomas Klausner
  2016-02-29 16:10                   ` Takashi Iwai
  2016-02-29 15:05                 ` [PATCH 3/3] Use uint*_t instead of __le* Thomas Klausner
  1 sibling, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-02-29 15:05 UTC (permalink / raw)
  To: alsa-devel; +Cc: Thomas Klausner

From: Thomas Klausner <wiz@NetBSD.org>

---
 include/sound/asound.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/sound/asound.h b/include/sound/asound.h
index a82108e..4f2202f 100644
--- a/include/sound/asound.h
+++ b/include/sound/asound.h
@@ -415,7 +415,7 @@ struct snd_pcm_sw_params {
 
 struct snd_pcm_channel_info {
 	unsigned int channel;
-	__kernel_off_t offset;		/* mmap offset */
+	off_t offset;			/* mmap offset */
 	unsigned int first;		/* offset to first sample in bits */
 	unsigned int step;		/* samples distance in bits */
 };
@@ -884,7 +884,7 @@ struct snd_ctl_elem_info {
 	snd_ctl_elem_type_t type;	/* R: value type - SNDRV_CTL_ELEM_TYPE_* */
 	unsigned int access;		/* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
 	unsigned int count;		/* count of values */
-	__kernel_pid_t owner;		/* owner's PID of this control */
+	pid_t owner;			/* owner's PID of this control */
 	union {
 		struct {
 			long min;		/* R: minimum value */
-- 
2.7.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 3/3] Use uint*_t instead of __le*.
  2016-02-29 15:05               ` [PATCH 1/3] Use POSIX uint*_t instead of u_int*_t Thomas Klausner
  2016-02-29 15:05                 ` [PATCH 2/3] Use pid_t, off_t instead of __kernel_*_t for better portability Thomas Klausner
@ 2016-02-29 15:05                 ` Thomas Klausner
  2016-02-29 15:10                   ` [PATCH 4/4] Replace __u* with uint*_t Thomas Klausner
  1 sibling, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-02-29 15:05 UTC (permalink / raw)
  To: alsa-devel; +Cc: Thomas Klausner

From: Thomas Klausner <wiz@NetBSD.org>

For better portability.
---
 include/sound/asoc.h | 178 +++++++++++++++++++++++++--------------------------
 1 file changed, 89 insertions(+), 89 deletions(-)

diff --git a/include/sound/asoc.h b/include/sound/asoc.h
index a29c05c..05bdae7 100644
--- a/include/sound/asoc.h
+++ b/include/sound/asoc.h
@@ -112,15 +112,15 @@
  * This header precedes all object and object arrays below.
  */
 struct snd_soc_tplg_hdr {
-	__le32 magic;		/* magic number */
-	__le32 abi;		/* ABI version */
-	__le32 version;		/* optional vendor specific version details */
-	__le32 type;		/* SND_SOC_TPLG_TYPE_ */
-	__le32 size;		/* size of this structure */
-	__le32 vendor_type;	/* optional vendor specific type info */
-	__le32 payload_size;	/* data bytes, excluding this header */
-	__le32 index;		/* identifier for block */
-	__le32 count;		/* number of elements in block */
+	uint32_t magic;		/* magic number */
+	uint32_t abi;		/* ABI version */
+	uint32_t version;		/* optional vendor specific version details */
+	uint32_t type;		/* SND_SOC_TPLG_TYPE_ */
+	uint32_t size;		/* size of this structure */
+	uint32_t vendor_type;	/* optional vendor specific type info */
+	uint32_t payload_size;	/* data bytes, excluding this header */
+	uint32_t index;		/* identifier for block */
+	uint32_t count;		/* number of elements in block */
 } __attribute__((packed));
 
 /*
@@ -129,7 +129,7 @@ struct snd_soc_tplg_hdr {
  * firmware. Core will ignore this data.
  */
 struct snd_soc_tplg_private {
-	__le32 size;	/* in bytes of private data */
+	uint32_t size;	/* in bytes of private data */
 	char data[0];
 } __attribute__((packed));
 
@@ -137,16 +137,16 @@ struct snd_soc_tplg_private {
  * Kcontrol TLV data.
  */
 struct snd_soc_tplg_tlv_dbscale {
-	__le32 min;
-	__le32 step;
-	__le32 mute;
+	uint32_t min;
+	uint32_t step;
+	uint32_t mute;
 } __attribute__((packed));
 
 struct snd_soc_tplg_ctl_tlv {
-	__le32 size;	/* in bytes of this structure */
-	__le32 type;	/* SNDRV_CTL_TLVT_*, type of TLV */
+	uint32_t size;	/* in bytes of this structure */
+	uint32_t type;	/* SNDRV_CTL_TLVT_*, type of TLV */
 	union {
-		__le32 data[SND_SOC_TPLG_TLV_SIZE];
+		uint32_t data[SND_SOC_TPLG_TLV_SIZE];
 		struct snd_soc_tplg_tlv_dbscale scale;
 	};
 } __attribute__((packed));
@@ -155,10 +155,10 @@ struct snd_soc_tplg_ctl_tlv {
  * Kcontrol channel data
  */
 struct snd_soc_tplg_channel {
-	__le32 size;	/* in bytes of this structure */
-	__le32 reg;
-	__le32 shift;
-	__le32 id;	/* ID maps to Left, Right, LFE etc */
+	uint32_t size;	/* in bytes of this structure */
+	uint32_t reg;
+	uint32_t shift;
+	uint32_t id;	/* ID maps to Left, Right, LFE etc */
 } __attribute__((packed));
 
 /*
@@ -167,19 +167,19 @@ struct snd_soc_tplg_channel {
  * Bytes ext ops need get/put.
  */
 struct snd_soc_tplg_io_ops {
-	__le32 get;
-	__le32 put;
-	__le32 info;
+	uint32_t get;
+	uint32_t put;
+	uint32_t info;
 } __attribute__((packed));
 
 /*
  * kcontrol header
  */
 struct snd_soc_tplg_ctl_hdr {
-	__le32 size;	/* in bytes of this structure */
-	__le32 type;
+	uint32_t size;	/* in bytes of this structure */
+	uint32_t type;
 	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-	__le32 access;
+	uint32_t access;
 	struct snd_soc_tplg_io_ops ops;
 	struct snd_soc_tplg_ctl_tlv tlv;
 } __attribute__((packed));
@@ -188,33 +188,33 @@ struct snd_soc_tplg_ctl_hdr {
  * Stream Capabilities
  */
 struct snd_soc_tplg_stream_caps {
-	__le32 size;		/* in bytes of this structure */
+	uint32_t size;		/* in bytes of this structure */
 	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-	__le64 formats;	/* supported formats SNDRV_PCM_FMTBIT_* */
-	__le32 rates;		/* supported rates SNDRV_PCM_RATE_* */
-	__le32 rate_min;	/* min rate */
-	__le32 rate_max;	/* max rate */
-	__le32 channels_min;	/* min channels */
-	__le32 channels_max;	/* max channels */
-	__le32 periods_min;	/* min number of periods */
-	__le32 periods_max;	/* max number of periods */
-	__le32 period_size_min;	/* min period size bytes */
-	__le32 period_size_max;	/* max period size bytes */
-	__le32 buffer_size_min;	/* min buffer size bytes */
-	__le32 buffer_size_max;	/* max buffer size bytes */
+	uint64_t formats;	/* supported formats SNDRV_PCM_FMTBIT_* */
+	uint32_t rates;		/* supported rates SNDRV_PCM_RATE_* */
+	uint32_t rate_min;	/* min rate */
+	uint32_t rate_max;	/* max rate */
+	uint32_t channels_min;	/* min channels */
+	uint32_t channels_max;	/* max channels */
+	uint32_t periods_min;	/* min number of periods */
+	uint32_t periods_max;	/* max number of periods */
+	uint32_t period_size_min;	/* min period size bytes */
+	uint32_t period_size_max;	/* max period size bytes */
+	uint32_t buffer_size_min;	/* min buffer size bytes */
+	uint32_t buffer_size_max;	/* max buffer size bytes */
 } __attribute__((packed));
 
 /*
  * FE or BE Stream configuration supported by SW/FW
  */
 struct snd_soc_tplg_stream {
-	__le32 size;		/* in bytes of this structure */
+	uint32_t size;		/* in bytes of this structure */
 	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* Name of the stream */
-	__le64 format;		/* SNDRV_PCM_FMTBIT_* */
-	__le32 rate;		/* SNDRV_PCM_RATE_* */
-	__le32 period_bytes;	/* size of period in bytes */
-	__le32 buffer_bytes;	/* size of buffer in bytes */
-	__le32 channels;	/* channels */
+	uint64_t format;		/* SNDRV_PCM_FMTBIT_* */
+	uint32_t rate;		/* SNDRV_PCM_RATE_* */
+	uint32_t period_bytes;	/* size of period in bytes */
+	uint32_t buffer_bytes;	/* size of buffer in bytes */
+	uint32_t channels;	/* channels */
 } __attribute__((packed));
 
 /*
@@ -230,12 +230,12 @@ struct snd_soc_tplg_stream {
  * +-----------------------------------+----+
  */
 struct snd_soc_tplg_manifest {
-	__le32 size;		/* in bytes of this structure */
-	__le32 control_elems;	/* number of control elements */
-	__le32 widget_elems;	/* number of widget elements */
-	__le32 graph_elems;	/* number of graph elements */
-	__le32 pcm_elems;	/* number of PCM elements */
-	__le32 dai_link_elems;	/* number of DAI link elements */
+	uint32_t size;		/* in bytes of this structure */
+	uint32_t control_elems;	/* number of control elements */
+	uint32_t widget_elems;	/* number of widget elements */
+	uint32_t graph_elems;	/* number of graph elements */
+	uint32_t pcm_elems;	/* number of PCM elements */
+	uint32_t dai_link_elems;	/* number of DAI link elements */
 	struct snd_soc_tplg_private priv;
 } __attribute__((packed));
 
@@ -251,12 +251,12 @@ struct snd_soc_tplg_manifest {
  */
 struct snd_soc_tplg_mixer_control {
 	struct snd_soc_tplg_ctl_hdr hdr;
-	__le32 size;	/* in bytes of this structure */
-	__le32 min;
-	__le32 max;
-	__le32 platform_max;
-	__le32 invert;
-	__le32 num_channels;
+	uint32_t size;	/* in bytes of this structure */
+	uint32_t min;
+	uint32_t max;
+	uint32_t platform_max;
+	uint32_t invert;
+	uint32_t num_channels;
 	struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
 	struct snd_soc_tplg_private priv;
 } __attribute__((packed));
@@ -273,14 +273,14 @@ struct snd_soc_tplg_mixer_control {
  */
 struct snd_soc_tplg_enum_control {
 	struct snd_soc_tplg_ctl_hdr hdr;
-	__le32 size;	/* in bytes of this structure */
-	__le32 num_channels;
+	uint32_t size;	/* in bytes of this structure */
+	uint32_t num_channels;
 	struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
-	__le32 items;
-	__le32 mask;
-	__le32 count;
+	uint32_t items;
+	uint32_t mask;
+	uint32_t count;
 	char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-	__le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
+	uint32_t values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
 	struct snd_soc_tplg_private priv;
 } __attribute__((packed));
 
@@ -296,11 +296,11 @@ struct snd_soc_tplg_enum_control {
  */
 struct snd_soc_tplg_bytes_control {
 	struct snd_soc_tplg_ctl_hdr hdr;
-	__le32 size;	/* in bytes of this structure */
-	__le32 max;
-	__le32 mask;
-	__le32 base;
-	__le32 num_regs;
+	uint32_t size;	/* in bytes of this structure */
+	uint32_t max;
+	uint32_t mask;
+	uint32_t base;
+	uint32_t num_regs;
 	struct snd_soc_tplg_io_ops ext_ops;
 	struct snd_soc_tplg_private priv;
 } __attribute__((packed));
@@ -338,20 +338,20 @@ struct snd_soc_tplg_dapm_graph_elem {
  * in the block.
  */
 struct snd_soc_tplg_dapm_widget {
-	__le32 size;		/* in bytes of this structure */
-	__le32 id;		/* SND_SOC_DAPM_CTL */
+	uint32_t size;		/* in bytes of this structure */
+	uint32_t id;		/* SND_SOC_DAPM_CTL */
 	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
 	char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
 
-	__le32 reg;		/* negative reg = no direct dapm */
-	__le32 shift;		/* bits to shift */
-	__le32 mask;		/* non-shifted mask */
-	__le32 subseq;		/* sort within widget type */
-	__le32 invert;		/* invert the power bit */
-	__le32 ignore_suspend;	/* kept enabled over suspend */
-	__le16 event_flags;
-	__le16 event_type;
-	__le32 num_kcontrols;
+	uint32_t reg;		/* negative reg = no direct dapm */
+	uint32_t shift;		/* bits to shift */
+	uint32_t mask;		/* non-shifted mask */
+	uint32_t subseq;		/* sort within widget type */
+	uint32_t invert;		/* invert the power bit */
+	uint32_t ignore_suspend;	/* kept enabled over suspend */
+	uint16_t event_flags;
+	uint16_t event_type;
+	uint32_t num_kcontrols;
 	struct snd_soc_tplg_private priv;
 	/*
 	 * kcontrols that relate to this widget
@@ -371,16 +371,16 @@ struct snd_soc_tplg_dapm_widget {
  * +-----------------------------------+-----+
  */
 struct snd_soc_tplg_pcm {
-	__le32 size;		/* in bytes of this structure */
+	uint32_t size;		/* in bytes of this structure */
 	char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
 	char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-	__le32 pcm_id;		/* unique ID - used to match */
-	__le32 dai_id;		/* unique ID - used to match */
-	__le32 playback;	/* supports playback mode */
-	__le32 capture;		/* supports capture mode */
-	__le32 compress;	/* 1 = compressed; 0 = PCM */
+	uint32_t pcm_id;		/* unique ID - used to match */
+	uint32_t dai_id;		/* unique ID - used to match */
+	uint32_t playback;	/* supports playback mode */
+	uint32_t capture;		/* supports capture mode */
+	uint32_t compress;	/* 1 = compressed; 0 = PCM */
 	struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
-	__le32 num_streams;	/* number of streams */
+	uint32_t num_streams;	/* number of streams */
 	struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
 } __attribute__((packed));
 
@@ -396,9 +396,9 @@ struct snd_soc_tplg_pcm {
  * +-----------------------------------+-----+
  */
 struct snd_soc_tplg_link_config {
-	__le32 size;            /* in bytes of this structure */
-	__le32 id;              /* unique ID - used to match */
+	uint32_t size;            /* in bytes of this structure */
+	uint32_t id;              /* unique ID - used to match */
 	struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */
-	__le32 num_streams;     /* number of streams */
+	uint32_t num_streams;     /* number of streams */
 } __attribute__((packed));
 #endif
-- 
2.7.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4/4] Replace __u* with uint*_t
  2016-02-29 15:05                 ` [PATCH 3/3] Use uint*_t instead of __le* Thomas Klausner
@ 2016-02-29 15:10                   ` Thomas Klausner
  0 siblings, 0 replies; 30+ messages in thread
From: Thomas Klausner @ 2016-02-29 15:10 UTC (permalink / raw)
  To: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 25 bytes --]

And here's a fourth one.

[-- Attachment #2: 0004-Replace-__u-with-uint-_t.patch --]
[-- Type: text/plain, Size: 2011 bytes --]

>From e98b740f7617830f46e58365f3c0602fcb3ff8c2 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Mon, 29 Feb 2016 16:08:54 +0100
Subject: [PATCH 4/4] Replace __u* with uint*_t.

---
 include/sound/asound.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/sound/asound.h b/include/sound/asound.h
index 4f2202f..0d30eaa 100644
--- a/include/sound/asound.h
+++ b/include/sound/asound.h
@@ -370,7 +370,7 @@ struct snd_interval {
 #define SNDRV_MASK_MAX	256
 
 struct snd_mask {
-	__u32 bits[(SNDRV_MASK_MAX+31)/32];
+	uint32_t bits[(SNDRV_MASK_MAX+31)/32];
 };
 
 struct snd_pcm_hw_params {
@@ -447,10 +447,10 @@ struct snd_pcm_status {
 	snd_pcm_uframes_t avail_max;	/* max frames available on hw since last status */
 	snd_pcm_uframes_t overrange;	/* count of ADC (capture) overrange detections from last status */
 	snd_pcm_state_t suspended_state; /* suspended stream state */
-	__u32 audio_tstamp_data;	 /* needed for 64-bit alignment, used for configs/report to/from userspace */
+	uint32_t audio_tstamp_data;	 /* needed for 64-bit alignment, used for configs/report to/from userspace */
 	struct timespec audio_tstamp;	/* sample counter, wall clock, PHC or on-demand sync'ed */
 	struct timespec driver_tstamp;	/* useful in case reference system tstamp is reported with delay */
-	__u32 audio_tstamp_accuracy;	/* in ns units, only valid if indicated in audio_tstamp_data */
+	uint32_t audio_tstamp_accuracy;	/* in ns units, only valid if indicated in audio_tstamp_data */
 	unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */
 };
 
@@ -900,7 +900,7 @@ struct snd_ctl_elem_info {
 			unsigned int items;	/* R: number of items */
 			unsigned int item;	/* W: item number */
 			char name[64];		/* R: value name */
-			__u64 names_ptr;	/* W: names list (ELEM_ADD only) */
+			uint64_t names_ptr;	/* W: names list (ELEM_ADD only) */
 			unsigned int names_length;
 		} enumerated;
 		unsigned char reserved[128];
-- 
2.7.1


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/3] Use pid_t, off_t instead of __kernel_*_t for better portability.
  2016-02-29 15:05                 ` [PATCH 2/3] Use pid_t, off_t instead of __kernel_*_t for better portability Thomas Klausner
@ 2016-02-29 16:10                   ` Takashi Iwai
  2016-03-02 22:14                     ` [PATCH] define more missing types for non-Linux Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-02-29 16:10 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel, Thomas Klausner

On Mon, 29 Feb 2016 16:05:20 +0100,
Thomas Klausner wrote:
> 
> From: Thomas Klausner <wiz@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.

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...


thanks,

Takashi

>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/include/sound/asound.h b/include/sound/asound.h
> index a82108e..4f2202f 100644
> --- a/include/sound/asound.h
> +++ b/include/sound/asound.h
> @@ -415,7 +415,7 @@ struct snd_pcm_sw_params {
>  
>  struct snd_pcm_channel_info {
>  	unsigned int channel;
> -	__kernel_off_t offset;		/* mmap offset */
> +	off_t offset;			/* mmap offset */
>  	unsigned int first;		/* offset to first sample in bits */
>  	unsigned int step;		/* samples distance in bits */
>  };
> @@ -884,7 +884,7 @@ struct snd_ctl_elem_info {
>  	snd_ctl_elem_type_t type;	/* R: value type - SNDRV_CTL_ELEM_TYPE_* */
>  	unsigned int access;		/* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
>  	unsigned int count;		/* count of values */
> -	__kernel_pid_t owner;		/* owner's PID of this control */
> +	pid_t owner;			/* owner's PID of this control */
>  	union {
>  		struct {
>  			long min;		/* R: minimum value */
> -- 
> 2.7.1
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH] define more missing types for non-Linux
  2016-02-29 16:10                   ` Takashi Iwai
@ 2016-03-02 22:14                     ` Thomas Klausner
  2016-03-03  9:32                       ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-02 22:14 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 1054 bytes --]

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@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

[-- Attachment #2: 0001-Define-some-types-if-missing.patch --]
[-- Type: text/plain, Size: 1402 bytes --]

>From 634255a4d87a12132bb65868f5658fd14cd2bfd7 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@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


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH] define more missing types for non-Linux
  2016-03-02 22:14                     ` [PATCH] define more missing types for non-Linux Thomas Klausner
@ 2016-03-03  9:32                       ` Takashi Iwai
  2016-03-03  9:50                         ` Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03  9:32 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Wed, 02 Mar 2016 23:14:54 +0100,
Thomas Klausner wrote:
> 
> >From 634255a4d87a12132bb65868f5658fd14cd2bfd7 Mon Sep 17 00:00:00 2001
> From: Thomas Klausner <wiz@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

Can we put this in include/type_compat.h or something like that, and
include it in #else block of #ifdef __linux__?

As a bonus, the EBADFD definition can also go to there, too.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] define more missing types for non-Linux
  2016-03-03  9:32                       ` Takashi Iwai
@ 2016-03-03  9:50                         ` Thomas Klausner
  2016-03-03  9:53                           ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03  9:50 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 277 bytes --]

On Thu, Mar 03, 2016 at 10:32:04AM +0100, Takashi Iwai wrote:
> Can we put this in include/type_compat.h or something like that, and
> include it in #else block of #ifdef __linux__?
> 
> As a bonus, the EBADFD definition can also go to there, too.

Sure, see attached.
 Thomas

[-- Attachment #2: 0001-Define-some-types-if-missing.patch --]
[-- Type: text/plain, Size: 2697 bytes --]

>From c68bfda4e5198b50b32937de669155afb423d726 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@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 headers on Linux only.
---
 include/local.h       |  6 ++---
 include/type_compat.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 3 deletions(-)
 create mode 100644 include/type_compat.h

diff --git a/include/local.h b/include/local.h
index 28ed106..317f2e3 100644
--- a/include/local.h
+++ b/include/local.h
@@ -50,11 +50,11 @@
 #include <sys/poll.h>
 #include <sys/types.h>
 #include <errno.h>
+#if defined(__linux__)
 #include <linux/types.h>
 #include <linux/ioctl.h>
-
-#ifndef EBADFD
-#define EBADFD EBADF
+#else
+#include "type_compat.h"
 #endif
 
 #ifdef SUPPORT_RESMGR
diff --git a/include/type_compat.h b/include/type_compat.h
new file mode 100644
index 0000000..9cc209f
--- /dev/null
+++ b/include/type_compat.h
@@ -0,0 +1,66 @@
+/*
+ *  ALSA lib - compatibility header to be included by local.h
+ *  Copyright (c) 2016 by  Thomas Klausner <wiz@NetBSD.org>
+ *
+ *
+ *   This library is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU Lesser General Public License as
+ *   published by the Free Software Foundation; either version 2.1 of
+ *   the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU Lesser General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Lesser General Public
+ *   License along with this library; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *
+ */
+
+#ifndef __TYPE_COMPAT_H
+#define __TYPE_COMPAT_H
+
+#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
+
+#endif
-- 
2.7.1


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH] define more missing types for non-Linux
  2016-03-03  9:50                         ` Thomas Klausner
@ 2016-03-03  9:53                           ` Takashi Iwai
  2016-03-03  9:55                             ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03  9:53 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 03 Mar 2016 10:50:41 +0100,
Thomas Klausner wrote:
> 
> On Thu, Mar 03, 2016 at 10:32:04AM +0100, Takashi Iwai wrote:
> > Can we put this in include/type_compat.h or something like that, and
> > include it in #else block of #ifdef __linux__?
> > 
> > As a bonus, the EBADFD definition can also go to there, too.
> 
> Sure, see attached.
>  Thomas
> >From c68bfda4e5198b50b32937de669155afb423d726 Mon Sep 17 00:00:00 2001
> From: Thomas Klausner <wiz@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 headers on Linux only.
> ---
>  include/local.h       |  6 ++---
>  include/type_compat.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 69 insertions(+), 3 deletions(-)
>  create mode 100644 include/type_compat.h

You need to add it in include/Makefile.am, too.
Otherwise it'll slip from the tarball.


Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] define more missing types for non-Linux
  2016-03-03  9:53                           ` Takashi Iwai
@ 2016-03-03  9:55                             ` Takashi Iwai
  2016-03-03  9:58                               ` Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03  9:55 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 03 Mar 2016 10:53:46 +0100,
Takashi Iwai wrote:
> 
> On Thu, 03 Mar 2016 10:50:41 +0100,
> Thomas Klausner wrote:
> > 
> > On Thu, Mar 03, 2016 at 10:32:04AM +0100, Takashi Iwai wrote:
> > > Can we put this in include/type_compat.h or something like that, and
> > > include it in #else block of #ifdef __linux__?
> > > 
> > > As a bonus, the EBADFD definition can also go to there, too.
> > 
> > Sure, see attached.
> >  Thomas
> > >From c68bfda4e5198b50b32937de669155afb423d726 Mon Sep 17 00:00:00 2001
> > From: Thomas Klausner <wiz@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 headers on Linux only.
> > ---
> >  include/local.h       |  6 ++---
> >  include/type_compat.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 69 insertions(+), 3 deletions(-)
> >  create mode 100644 include/type_compat.h
> 
> You need to add it in include/Makefile.am, too.
> Otherwise it'll slip from the tarball.

Oh, also it'd be good if you give your sign-off, too.
For user-space, I accept the patches without sign-off as long as they
are trivial enough.  But this kind of change is preferred with a
proper sign off, of course.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] define more missing types for non-Linux
  2016-03-03  9:55                             ` Takashi Iwai
@ 2016-03-03  9:58                               ` Thomas Klausner
  2016-03-03 10:01                                 ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03  9:58 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 478 bytes --]

On Thu, Mar 03, 2016 at 10:55:01AM +0100, Takashi Iwai wrote:
> On Thu, 03 Mar 2016 10:53:46 +0100,
> Takashi Iwai wrote:
> > You need to add it in include/Makefile.am, too.
> > Otherwise it'll slip from the tarball.

Good catch, added.

> Oh, also it'd be good if you give your sign-off, too.
> For user-space, I accept the patches without sign-off as long as they
> are trivial enough.  But this kind of change is preferred with a
> proper sign off, of course.

Sure!
 Thomas

[-- Attachment #2: 0001-Define-some-types-if-missing.patch --]
[-- Type: text/plain, Size: 3195 bytes --]

>From 0d0a1408432a27cfa1908373bccbb66ac413fc5d Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Wed, 2 Mar 2016 23:11:54 +0100
Subject: [PATCH] Define some types if missing.

Include Linux headers on Linux only.
For portability with non-Linux.

Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
---
 include/Makefile.am   |  2 +-
 include/local.h       |  6 ++---
 include/type_compat.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 70 insertions(+), 4 deletions(-)
 create mode 100644 include/type_compat.h

diff --git a/include/Makefile.am b/include/Makefile.am
index ff931fd..8c83c11 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -59,7 +59,7 @@ alsainclude_HEADERS += alisp.h
 endif
 
 noinst_HEADERS = alsa sys.h search.h list.h aserver.h local.h alsa-symbols.h \
-	asoundlib-head.h asoundlib-tail.h
+	asoundlib-head.h asoundlib-tail.h type_compat.h
 
 DISTCLEANFILES = stamp-vh version.h alsa asoundlib.h
 
diff --git a/include/local.h b/include/local.h
index 28ed106..317f2e3 100644
--- a/include/local.h
+++ b/include/local.h
@@ -50,11 +50,11 @@
 #include <sys/poll.h>
 #include <sys/types.h>
 #include <errno.h>
+#if defined(__linux__)
 #include <linux/types.h>
 #include <linux/ioctl.h>
-
-#ifndef EBADFD
-#define EBADFD EBADF
+#else
+#include "type_compat.h"
 #endif
 
 #ifdef SUPPORT_RESMGR
diff --git a/include/type_compat.h b/include/type_compat.h
new file mode 100644
index 0000000..9cc209f
--- /dev/null
+++ b/include/type_compat.h
@@ -0,0 +1,66 @@
+/*
+ *  ALSA lib - compatibility header to be included by local.h
+ *  Copyright (c) 2016 by  Thomas Klausner <wiz@NetBSD.org>
+ *
+ *
+ *   This library is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU Lesser General Public License as
+ *   published by the Free Software Foundation; either version 2.1 of
+ *   the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU Lesser General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Lesser General Public
+ *   License along with this library; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *
+ */
+
+#ifndef __TYPE_COMPAT_H
+#define __TYPE_COMPAT_H
+
+#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
+
+#endif
-- 
2.7.1


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH] define more missing types for non-Linux
  2016-03-03  9:58                               ` Thomas Klausner
@ 2016-03-03 10:01                                 ` Takashi Iwai
  2016-03-03 10:10                                   ` byteswap.h Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03 10:01 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 03 Mar 2016 10:58:52 +0100,
Thomas Klausner wrote:
> 
> On Thu, Mar 03, 2016 at 10:55:01AM +0100, Takashi Iwai wrote:
> > On Thu, 03 Mar 2016 10:53:46 +0100,
> > Takashi Iwai wrote:
> > > You need to add it in include/Makefile.am, too.
> > > Otherwise it'll slip from the tarball.
> 
> Good catch, added.
> 
> > Oh, also it'd be good if you give your sign-off, too.
> > For user-space, I accept the patches without sign-off as long as they
> > are trivial enough.  But this kind of change is preferred with a
> > proper sign off, of course.
> 
> Sure!

Applied now.  Thanks.


Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* byteswap.h
  2016-03-03 10:01                                 ` Takashi Iwai
@ 2016-03-03 10:10                                   ` Thomas Klausner
  2016-03-03 10:21                                     ` byteswap.h Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03 10:10 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Thu, Mar 03, 2016 at 11:01:23AM +0100, Takashi Iwai wrote:
> Applied now.  Thanks.

Thank you!

Next big issue: Many places include byteswap.h to get bswap_16,
bswap_32, bswap_64.

This header does not exist on *BSD or Solaris.

However, all of these provide similar macros under different names,
from different header files (bswap16 etc, or BSWAP_16).

Do you want a compat header, e.g. include/bswap.h that takes care of
this and is included by local.h, or do you prefer a different
solution?
 Thomas

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: byteswap.h
  2016-03-03 10:10                                   ` byteswap.h Thomas Klausner
@ 2016-03-03 10:21                                     ` Takashi Iwai
  2016-03-03 11:18                                       ` byteswap.h Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03 10:21 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 03 Mar 2016 11:10:05 +0100,
Thomas Klausner wrote:
> 
> On Thu, Mar 03, 2016 at 11:01:23AM +0100, Takashi Iwai wrote:
> > Applied now.  Thanks.
> 
> Thank you!
> 
> Next big issue: Many places include byteswap.h to get bswap_16,
> bswap_32, bswap_64.
> 
> This header does not exist on *BSD or Solaris.
> 
> However, all of these provide similar macros under different names,
> from different header files (bswap16 etc, or BSWAP_16).
> 
> Do you want a compat header, e.g. include/bswap.h that takes care of
> this and is included by local.h, or do you prefer a different
> solution?

bswap.h looks better ATM.  Let's see.


Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: byteswap.h
  2016-03-03 10:21                                     ` byteswap.h Takashi Iwai
@ 2016-03-03 11:18                                       ` Thomas Klausner
  2016-03-03 11:37                                         ` byteswap.h Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03 11:18 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 805 bytes --]

On Thu, Mar 03, 2016 at 11:21:05AM +0100, Takashi Iwai wrote:
> On Thu, 03 Mar 2016 11:10:05 +0100,
> Thomas Klausner wrote:
> > 
> > On Thu, Mar 03, 2016 at 11:01:23AM +0100, Takashi Iwai wrote:
> > > Applied now.  Thanks.
> > 
> > Thank you!
> > 
> > Next big issue: Many places include byteswap.h to get bswap_16,
> > bswap_32, bswap_64.
> > 
> > This header does not exist on *BSD or Solaris.
> > 
> > However, all of these provide similar macros under different names,
> > from different header files (bswap16 etc, or BSWAP_16).
> > 
> > Do you want a compat header, e.g. include/bswap.h that takes care of
> > this and is included by local.h, or do you prefer a different
> > solution?
> 
> bswap.h looks better ATM.  Let's see.

Ok, here's my try for a version of bswap.h. Does it look ok?
 Thomas

[-- Attachment #2: 0001-Introduce-bswap.h-for-portable-definitions-of-byte-s.patch --]
[-- Type: text/plain, Size: 7699 bytes --]

>From 03185793bc290ad2de4506a553f9855ff7241fa0 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Thu, 3 Mar 2016 12:16:57 +0100
Subject: [PATCH] Introduce bswap.h for portable definitions of byte swap
 macros.

Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
---
 include/Makefile.am        |  2 +-
 include/bswap.h            | 39 +++++++++++++++++++++++++++++++++++++++
 src/pcm/pcm_adpcm.c        |  2 +-
 src/pcm/pcm_alaw.c         |  2 +-
 src/pcm/pcm_copy.c         |  2 +-
 src/pcm/pcm_dmix_generic.c |  2 +-
 src/pcm/pcm_file.c         |  2 +-
 src/pcm/pcm_iec958.c       |  2 +-
 src/pcm/pcm_lfloat.c       |  2 +-
 src/pcm/pcm_linear.c       |  2 +-
 src/pcm/pcm_meter.c        |  2 +-
 src/pcm/pcm_misc.c         |  2 +-
 src/pcm/pcm_mulaw.c        |  2 +-
 src/pcm/pcm_null.c         |  2 +-
 src/pcm/pcm_rate.c         |  2 +-
 src/pcm/pcm_rate_linear.c  |  2 +-
 src/pcm/pcm_route.c        |  2 +-
 src/pcm/pcm_softvol.c      |  2 +-
 18 files changed, 56 insertions(+), 17 deletions(-)
 create mode 100644 include/bswap.h

diff --git a/include/Makefile.am b/include/Makefile.am
index 8c83c11..31a3f74 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -59,7 +59,7 @@ alsainclude_HEADERS += alisp.h
 endif
 
 noinst_HEADERS = alsa sys.h search.h list.h aserver.h local.h alsa-symbols.h \
-	asoundlib-head.h asoundlib-tail.h type_compat.h
+	asoundlib-head.h asoundlib-tail.h bswap.h type_compat.h
 
 DISTCLEANFILES = stamp-vh version.h alsa asoundlib.h
 
diff --git a/include/bswap.h b/include/bswap.h
new file mode 100644
index 0000000..68adce3
--- /dev/null
+++ b/include/bswap.h
@@ -0,0 +1,39 @@
+/*
+ *  ALSA lib - compatibility header for providing byte swapping macros
+ *  Copyright (c) 2016 by  Thomas Klausner <wiz@NetBSD.org>
+ *
+ *
+ *   This library is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU Lesser General Public License as
+ *   published by the Free Software Foundation; either version 2.1 of
+ *   the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU Lesser General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Lesser General Public
+ *   License along with this library; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *
+ */
+
+#ifndef __BSWAP_H
+#define __BSWAP_H
+
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
+#include <sys/endian.h>
+#define bswap_16 bswap16
+#define bswap_32 bswap32
+#define bswap_64 bswap64
+#elif defined (__sun)
+#include <sys/byteorder.h>
+#define bswap_16 BSWAP_16
+#define bswap_32 BSWAP_32
+#define bswap_64 BSWAP_64
+#else
+#include <byteswap.h>
+#endif
+
+#endif
diff --git a/src/pcm/pcm_adpcm.c b/src/pcm/pcm_adpcm.c
index 1a83c5a..1c88c83 100644
--- a/src/pcm/pcm_adpcm.c
+++ b/src/pcm/pcm_adpcm.c
@@ -56,7 +56,7 @@ IMA compatibility project proceedings, Vol 2, Issue 2, May 1992.
   come across a good description of XA yet.
  */
 
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
diff --git a/src/pcm/pcm_alaw.c b/src/pcm/pcm_alaw.c
index db759e3..fa58441 100644
--- a/src/pcm/pcm_alaw.c
+++ b/src/pcm/pcm_alaw.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
diff --git a/src/pcm/pcm_copy.c b/src/pcm/pcm_copy.c
index 66d3a47..0dbd5bd 100644
--- a/src/pcm/pcm_copy.c
+++ b/src/pcm/pcm_copy.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
diff --git a/src/pcm/pcm_dmix_generic.c b/src/pcm/pcm_dmix_generic.c
index 9e9d3c3..40c0874 100644
--- a/src/pcm/pcm_dmix_generic.c
+++ b/src/pcm/pcm_dmix_generic.c
@@ -125,7 +125,7 @@ static void mix_select_callbacks(snd_pcm_direct_t *dmix)
 	 (1ULL << SND_PCM_FORMAT_S24_LE) | (1ULL << SND_PCM_FORMAT_S24_3LE) | \
 	 (1ULL << SND_PCM_FORMAT_U8))
 
-#include <byteswap.h>
+#include "bswap.h"
 
 static void generic_mix_areas_16_native(unsigned int size,
 					volatile signed short *dst,
diff --git a/src/pcm/pcm_file.c b/src/pcm/pcm_file.c
index 9ab6964..92eb072 100644
--- a/src/pcm/pcm_file.c
+++ b/src/pcm/pcm_file.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include <ctype.h>
 #include <string.h>
 #include "pcm_local.h"
diff --git a/src/pcm/pcm_iec958.c b/src/pcm/pcm_iec958.c
index 38c4ce7..86ac9cf 100644
--- a/src/pcm/pcm_iec958.c
+++ b/src/pcm/pcm_iec958.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
diff --git a/src/pcm/pcm_lfloat.c b/src/pcm/pcm_lfloat.c
index 2f3e578..22201f8 100644
--- a/src/pcm/pcm_lfloat.c
+++ b/src/pcm/pcm_lfloat.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
diff --git a/src/pcm/pcm_linear.c b/src/pcm/pcm_linear.c
index 9a92abd..50df779 100644
--- a/src/pcm/pcm_linear.c
+++ b/src/pcm/pcm_linear.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
diff --git a/src/pcm/pcm_meter.c b/src/pcm/pcm_meter.c
index 034f582..1b0ccb4 100644
--- a/src/pcm/pcm_meter.c
+++ b/src/pcm/pcm_meter.c
@@ -27,7 +27,7 @@
  */
   
 
-#include <byteswap.h>
+#include "bswap.h"
 #include <time.h>
 #include <pthread.h>
 #include <dlfcn.h>
diff --git a/src/pcm/pcm_misc.c b/src/pcm/pcm_misc.c
index 5870f82..7d2b05d 100644
--- a/src/pcm/pcm_misc.c
+++ b/src/pcm/pcm_misc.c
@@ -23,7 +23,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 
 
diff --git a/src/pcm/pcm_mulaw.c b/src/pcm/pcm_mulaw.c
index 011b2a5..15dbdc1 100644
--- a/src/pcm/pcm_mulaw.c
+++ b/src/pcm/pcm_mulaw.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 
diff --git a/src/pcm/pcm_null.c b/src/pcm/pcm_null.c
index 5e63caa..685618e 100644
--- a/src/pcm/pcm_null.c
+++ b/src/pcm/pcm_null.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include <limits.h>
 #include "pcm_local.h"
 #include "pcm_plugin.h"
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
index c76db25..41bddac 100644
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
@@ -28,7 +28,7 @@
  *
  */
 #include <inttypes.h>
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 #include "pcm_rate.h"
diff --git a/src/pcm/pcm_rate_linear.c b/src/pcm/pcm_rate_linear.c
index 7481b38..70399e0 100644
--- a/src/pcm/pcm_rate_linear.c
+++ b/src/pcm/pcm_rate_linear.c
@@ -21,7 +21,7 @@
  */
 
 #include <inttypes.h>
-#include <byteswap.h>
+#include "bswap.h"
 #include "pcm_local.h"
 #include "pcm_plugin.h"
 #include "pcm_rate.h"
diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c
index 646517d..3611603 100644
--- a/src/pcm/pcm_route.c
+++ b/src/pcm/pcm_route.c
@@ -26,7 +26,7 @@
  *
  */
   
-#include <byteswap.h>
+#include "bswap.h"
 #include <math.h>
 #include "pcm_local.h"
 #include "pcm_plugin.h"
diff --git a/src/pcm/pcm_softvol.c b/src/pcm/pcm_softvol.c
index c6cfd88..802aa4b 100644
--- a/src/pcm/pcm_softvol.c
+++ b/src/pcm/pcm_softvol.c
@@ -26,7 +26,7 @@
  *
  */
 
-#include <byteswap.h>
+#include "bswap.h"
 #include <math.h>
 #include "pcm_local.h"
 #include "pcm_plugin.h"
-- 
2.7.1


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: byteswap.h
  2016-03-03 11:18                                       ` byteswap.h Thomas Klausner
@ 2016-03-03 11:37                                         ` Takashi Iwai
  2016-03-03 11:39                                           ` byteswap.h Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03 11:37 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 03 Mar 2016 12:18:40 +0100,
Thomas Klausner wrote:
> 
> On Thu, Mar 03, 2016 at 11:21:05AM +0100, Takashi Iwai wrote:
> > On Thu, 03 Mar 2016 11:10:05 +0100,
> > Thomas Klausner wrote:
> > > 
> > > On Thu, Mar 03, 2016 at 11:01:23AM +0100, Takashi Iwai wrote:
> > > > Applied now.  Thanks.
> > > 
> > > Thank you!
> > > 
> > > Next big issue: Many places include byteswap.h to get bswap_16,
> > > bswap_32, bswap_64.
> > > 
> > > This header does not exist on *BSD or Solaris.
> > > 
> > > However, all of these provide similar macros under different names,
> > > from different header files (bswap16 etc, or BSWAP_16).
> > > 
> > > Do you want a compat header, e.g. include/bswap.h that takes care of
> > > this and is included by local.h, or do you prefer a different
> > > solution?
> > 
> > bswap.h looks better ATM.  Let's see.
> 
> Ok, here's my try for a version of bswap.h. Does it look ok?

Looks good to me -- supposing you tested it actually :)


Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: byteswap.h
  2016-03-03 11:37                                         ` byteswap.h Takashi Iwai
@ 2016-03-03 11:39                                           ` Thomas Klausner
  2016-03-03 12:02                                             ` Remaining compatibility patches for NetBSD Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03 11:39 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Thu, Mar 03, 2016 at 12:37:25PM +0100, Takashi Iwai wrote:
> On Thu, 03 Mar 2016 12:18:40 +0100,
> Thomas Klausner wrote:
> > 
> > On Thu, Mar 03, 2016 at 11:21:05AM +0100, Takashi Iwai wrote:
> > > On Thu, 03 Mar 2016 11:10:05 +0100,
> > > Thomas Klausner wrote:
> > > > 
> > > > On Thu, Mar 03, 2016 at 11:01:23AM +0100, Takashi Iwai wrote:
> > > > > Applied now.  Thanks.
> > > > 
> > > > Thank you!
> > > > 
> > > > Next big issue: Many places include byteswap.h to get bswap_16,
> > > > bswap_32, bswap_64.
> > > > 
> > > > This header does not exist on *BSD or Solaris.
> > > > 
> > > > However, all of these provide similar macros under different names,
> > > > from different header files (bswap16 etc, or BSWAP_16).
> > > > 
> > > > Do you want a compat header, e.g. include/bswap.h that takes care of
> > > > this and is included by local.h, or do you prefer a different
> > > > solution?
> > > 
> > > bswap.h looks better ATM.  Let's see.
> > 
> > Ok, here's my try for a version of bswap.h. Does it look ok?
> 
> Looks good to me -- supposing you tested it actually :)

This particular patch was only compile-tested on NetBSD, but a quite
similar ifdef has been in pkgsrc for years and has survived a number
of bulk builds over the years.
 Thomas

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Remaining compatibility patches for NetBSD
  2016-03-03 11:39                                           ` byteswap.h Thomas Klausner
@ 2016-03-03 12:02                                             ` Thomas Klausner
  2016-03-03 13:35                                               ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03 12:02 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 575 bytes --]

Here are the remaining patches to make the build succeed on NetBSD.
More patches are needed for FreeBSD and Solaris, but let's take it one
at a time :-)

I think the first two (0002 and 0003) should be uncontroversial.

For patch 0004 it would perhaps be good to have versionsort/alphasort
in a central place instead of two. Do you have a suggestion where?

I'm not sure what to do about 0005 since you said you don't want to
modify include/sound/asound.h.

endian.h seems to be unneeded on src/topology/tplg_local.h; if it's
needed, I can move it inside the #ifdef.
 Thomas

[-- Attachment #2: 0002-Add-more-compatibility-defines.patch --]
[-- Type: text/plain, Size: 700 bytes --]

>From b8abae028c02294906e99b1bc66423a89dce54ec Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Thu, 3 Mar 2016 12:56:58 +0100
Subject: [PATCH 2/5] Add more compatibility defines.

---
 include/type_compat.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/include/type_compat.h b/include/type_compat.h
index 9cc209f..0c10aed 100644
--- a/include/type_compat.h
+++ b/include/type_compat.h
@@ -25,6 +25,9 @@
 #ifndef EBADFD
 #define EBADFD EBADF
 #endif
+#ifndef ESTRPIPE
+#define ESTRPIPE EPIPE
+#endif
 
 #ifndef __u16
 #define __u16	uint16_t
@@ -63,4 +66,8 @@
 #define __kernel_off_t	off_t
 #endif
 
+#ifndef __bitwise
+#define __bitwise
+#endif
+
 #endif
-- 
2.7.1


[-- Attachment #3: 0003-Only-use-F_SETSIG-fcntl-where-it-exists.patch --]
[-- Type: text/plain, Size: 765 bytes --]

>From 72ada4937e512055abd39f83f31214d1e7ee4ebe Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Thu, 3 Mar 2016 12:57:34 +0100
Subject: [PATCH 3/5] Only use F_SETSIG fcntl where it exists.

---
 src/timer/timer_hw.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/timer/timer_hw.c b/src/timer/timer_hw.c
index e61b994..ddaebd3 100644
--- a/src/timer/timer_hw.c
+++ b/src/timer/timer_hw.c
@@ -85,10 +85,12 @@ static int snd_timer_hw_async(snd_timer_t *timer, int sig, pid_t pid)
 	}
 	if (sig < 0)
 		return 0;
+#ifdef F_SETSIG
 	if (fcntl(fd, F_SETSIG, (long)sig) < 0) {
 		SYSERR("F_SETSIG failed");
 		return -errno;
 	}
+#endif
 	if (fcntl(fd, F_SETOWN, (long)pid) < 0) {
 		SYSERR("F_SETOWN failed");
 		return -errno;
-- 
2.7.1


[-- Attachment #4: 0004-Use-alphasort-where-versionsort-is-not-available.patch --]
[-- Type: text/plain, Size: 1204 bytes --]

>From 23ec0e49db34590c8d74b336d7fe0f97dcf28f26 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Thu, 3 Mar 2016 12:58:07 +0100
Subject: [PATCH 4/5] Use alphasort where versionsort is not available.

---
 src/conf.c       | 2 +-
 src/ucm/parser.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/conf.c b/src/conf.c
index a4f2a4f..f8b7a66 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -3549,7 +3549,7 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t
 			int n;
 
 #ifndef DOC_HIDDEN
-#ifdef _GNU_SOURCE
+#if defined(_GNU_SOURCE) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__sun)
 #define SORTFUNC	versionsort
 #else
 #define SORTFUNC	alphasort
diff --git a/src/ucm/parser.c b/src/ucm/parser.c
index 9e1cb41..8405bd2 100644
--- a/src/ucm/parser.c
+++ b/src/ucm/parser.c
@@ -1264,7 +1264,7 @@ int uc_mgr_scan_master_configs(const char **_list[])
 		"%s", env ? env : ALSA_USE_CASE_DIR);
 	filename[MAX_FILE-1] = '\0';
 
-#ifdef _GNU_SOURCE
+#if defined(_GNU_SOURCE) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__sun)
 #define SORTFUNC	versionsort
 #else
 #define SORTFUNC	alphasort
-- 
2.7.1


[-- Attachment #5: 0005-Wrap-linux-specific-headers-in-ifdef-__linux__.patch --]
[-- Type: text/plain, Size: 1069 bytes --]

>From 678c4fd1ada7fb79988df0431312fcdfac9911f8 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz@NetBSD.org>
Date: Thu, 3 Mar 2016 12:58:30 +0100
Subject: [PATCH 5/5] Wrap linux-specific headers in #ifdef __linux__

---
 include/sound/asound.h    | 4 ++++
 src/topology/tplg_local.h | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/sound/asound.h b/include/sound/asound.h
index a82108e..3d581b5 100644
--- a/include/sound/asound.h
+++ b/include/sound/asound.h
@@ -23,7 +23,11 @@
 #ifndef _UAPI__SOUND_ASOUND_H
 #define _UAPI__SOUND_ASOUND_H
 
+#ifdef __linux__
 #include <linux/types.h>
+#else
+#include <sys/ioctl.h>
+#endif
 
 #ifndef __KERNEL__
 #include <stdlib.h>
diff --git a/src/topology/tplg_local.h b/src/topology/tplg_local.h
index e66d7f4..2b44edd 100644
--- a/src/topology/tplg_local.h
+++ b/src/topology/tplg_local.h
@@ -13,8 +13,9 @@
 #include <limits.h>
 #include <stdint.h>
 #include <stdbool.h>
-#include <endian.h>
+#ifdef __linux__
 #include <linux/types.h>
+#endif
 
 #include "local.h"
 #include "list.h"
-- 
2.7.1


[-- Attachment #6: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: Remaining compatibility patches for NetBSD
  2016-03-03 12:02                                             ` Remaining compatibility patches for NetBSD Thomas Klausner
@ 2016-03-03 13:35                                               ` Takashi Iwai
  2016-03-03 13:46                                                 ` Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03 13:35 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 03 Mar 2016 13:02:42 +0100,
Thomas Klausner wrote:
> 
> Here are the remaining patches to make the build succeed on NetBSD.
> More patches are needed for FreeBSD and Solaris, but let's take it one
> at a time :-)
> 
> I think the first two (0002 and 0003) should be uncontroversial.
> 
> For patch 0004 it would perhaps be good to have versionsort/alphasort
> in a central place instead of two. Do you have a suggestion where?
> 
> I'm not sure what to do about 0005 since you said you don't want to
> modify include/sound/asound.h.

Right.  If we need to modify, it must be applied to Linux kernel tree
at first, then copy back to alsa-lib.

> endian.h seems to be unneeded on src/topology/tplg_local.h; if it's
> needed, I can move it inside the #ifdef.

src/topology/parser.c contains the code depending on the endian.
The include can be moved there, too.


Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: Remaining compatibility patches for NetBSD
  2016-03-03 13:35                                               ` Takashi Iwai
@ 2016-03-03 13:46                                                 ` Thomas Klausner
  2016-03-03 13:54                                                   ` Takashi Iwai
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03 13:46 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Thu, Mar 03, 2016 at 02:35:06PM +0100, Takashi Iwai wrote:
> On Thu, 03 Mar 2016 13:02:42 +0100,
> Thomas Klausner wrote:
> > 
> > Here are the remaining patches to make the build succeed on NetBSD.
> > More patches are needed for FreeBSD and Solaris, but let's take it one
> > at a time :-)
> > 
> > I think the first two (0002 and 0003) should be uncontroversial.
> > 
> > For patch 0004 it would perhaps be good to have versionsort/alphasort
> > in a central place instead of two. Do you have a suggestion where?
> > 
> > I'm not sure what to do about 0005 since you said you don't want to
> > modify include/sound/asound.h.
> 
> Right.  If we need to modify, it must be applied to Linux kernel tree
> at first, then copy back to alsa-lib.

I haven't done this before.

I see on https://www.kernel.org/doc/linux/MAINTAINERS

SOUND
M:	Jaroslav Kysela <perex@perex.cz>
M:	Takashi Iwai <tiwai@suse.com>
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
W:	http://www.alsa-project.org/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
T:	git git://git.alsa-project.org/alsa-kernel.git
Q:	http://patchwork.kernel.org/project/alsa-devel/list/
S:	Maintained
F:	Documentation/sound/
F:	include/sound/
F:	include/uapi/sound/
F:	sound/

Against which of the two git trees should I prepare the patch?

> > endian.h seems to be unneeded on src/topology/tplg_local.h; if it's
> > needed, I can move it inside the #ifdef.
> 
> src/topology/parser.c contains the code depending on the endian.
> The include can be moved there, too.

local.h already handles endianness:

#ifdef HAVE_ENDIAN_H
#include <endian.h>
#elif defined(HAVE_SYS_ENDIAN_H)
#include <sys/endian.h>
#ifndef __BYTE_ORDER
#define __BYTE_ORDER BYTE_ORDER
#endif
#ifndef __LITTLE_ENDIAN
#define __LITTLE_ENDIAN LITTLE_ENDIAN
#endif
#ifndef __BIG_ENDIAN
#define __BIG_ENDIAN BIG_ENDIAN
#endif
#else
#error Header defining endianness not defined
#endif

So I think the endian.h include is not necessary and can just be removed.
 Thomas

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: Remaining compatibility patches for NetBSD
  2016-03-03 13:46                                                 ` Thomas Klausner
@ 2016-03-03 13:54                                                   ` Takashi Iwai
  2016-03-03 14:23                                                     ` Thomas Klausner
  0 siblings, 1 reply; 30+ messages in thread
From: Takashi Iwai @ 2016-03-03 13:54 UTC (permalink / raw)
  To: Thomas Klausner; +Cc: alsa-devel

On Thu, 03 Mar 2016 14:46:41 +0100,
Thomas Klausner wrote:
> 
> On Thu, Mar 03, 2016 at 02:35:06PM +0100, Takashi Iwai wrote:
> > On Thu, 03 Mar 2016 13:02:42 +0100,
> > Thomas Klausner wrote:
> > > 
> > > Here are the remaining patches to make the build succeed on NetBSD.
> > > More patches are needed for FreeBSD and Solaris, but let's take it one
> > > at a time :-)
> > > 
> > > I think the first two (0002 and 0003) should be uncontroversial.
> > > 
> > > For patch 0004 it would perhaps be good to have versionsort/alphasort
> > > in a central place instead of two. Do you have a suggestion where?
> > > 
> > > I'm not sure what to do about 0005 since you said you don't want to
> > > modify include/sound/asound.h.
> > 
> > Right.  If we need to modify, it must be applied to Linux kernel tree
> > at first, then copy back to alsa-lib.
> 
> I haven't done this before.
> 
> I see on https://www.kernel.org/doc/linux/MAINTAINERS
> 
> SOUND
> M:	Jaroslav Kysela <perex@perex.cz>
> M:	Takashi Iwai <tiwai@suse.com>
> L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
> W:	http://www.alsa-project.org/
> T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
> T:	git git://git.alsa-project.org/alsa-kernel.git
> Q:	http://patchwork.kernel.org/project/alsa-devel/list/
> S:	Maintained
> F:	Documentation/sound/
> F:	include/sound/
> F:	include/uapi/sound/
> F:	sound/
> 
> Against which of the two git trees should I prepare the patch?

Use my sound git tree.


> > > endian.h seems to be unneeded on src/topology/tplg_local.h; if it's
> > > needed, I can move it inside the #ifdef.
> > 
> > src/topology/parser.c contains the code depending on the endian.
> > The include can be moved there, too.
> 
> local.h already handles endianness:
> 
> #ifdef HAVE_ENDIAN_H
> #include <endian.h>
> #elif defined(HAVE_SYS_ENDIAN_H)
> #include <sys/endian.h>
> #ifndef __BYTE_ORDER
> #define __BYTE_ORDER BYTE_ORDER
> #endif
> #ifndef __LITTLE_ENDIAN
> #define __LITTLE_ENDIAN LITTLE_ENDIAN
> #endif
> #ifndef __BIG_ENDIAN
> #define __BIG_ENDIAN BIG_ENDIAN
> #endif
> #else
> #error Header defining endianness not defined
> #endif
> 
> So I think the endian.h include is not necessary and can just be removed.

Yes, looks so.


Takashi

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: Remaining compatibility patches for NetBSD
  2016-03-03 13:54                                                   ` Takashi Iwai
@ 2016-03-03 14:23                                                     ` Thomas Klausner
  0 siblings, 0 replies; 30+ messages in thread
From: Thomas Klausner @ 2016-03-03 14:23 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

On Thu, Mar 03, 2016 at 02:54:09PM +0100, Takashi Iwai wrote:
> On Thu, 03 Mar 2016 14:46:41 +0100,
> Thomas Klausner wrote:
> > 
> > On Thu, Mar 03, 2016 at 02:35:06PM +0100, Takashi Iwai wrote:
> > > On Thu, 03 Mar 2016 13:02:42 +0100,
> > > Thomas Klausner wrote:
> > > > 
> > > > Here are the remaining patches to make the build succeed on NetBSD.
> > > > More patches are needed for FreeBSD and Solaris, but let's take it one
> > > > at a time :-)
> > > > 
> > > > I think the first two (0002 and 0003) should be uncontroversial.
> > > > 
> > > > For patch 0004 it would perhaps be good to have versionsort/alphasort
> > > > in a central place instead of two. Do you have a suggestion where?
> > > > 
> > > > I'm not sure what to do about 0005 since you said you don't want to
> > > > modify include/sound/asound.h.
> > > 
> > > Right.  If we need to modify, it must be applied to Linux kernel tree
> > > at first, then copy back to alsa-lib.
> > 
> > I haven't done this before.
> > 
> > I see on https://www.kernel.org/doc/linux/MAINTAINERS
> > 
> > SOUND
> > M:	Jaroslav Kysela <perex@perex.cz>
> > M:	Takashi Iwai <tiwai@suse.com>
> > L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
> > W:	http://www.alsa-project.org/
> > T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
> > T:	git git://git.alsa-project.org/alsa-kernel.git
> > Q:	http://patchwork.kernel.org/project/alsa-devel/list/
> > S:	Maintained
> > F:	Documentation/sound/
> > F:	include/sound/
> > F:	include/uapi/sound/
> > F:	sound/
> > 
> > Against which of the two git trees should I prepare the patch?
> 
> Use my sound git tree.

Ok, I've just sent a patch against that repository to this mailing list.
 Thomas

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2016-03-03 14:23 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-18 15:47 feeding back pkgsrc changs Thomas Klausner
2016-02-18 15:51 ` Takashi Iwai
2016-02-23 14:09   ` portability patch: EBADF [was Re: feeding back pkgsrc changs] Thomas Klausner
2016-02-23 15:53     ` Takashi Iwai
2016-02-24 13:16       ` Thomas Klausner
2016-02-24 15:36         ` Takashi Iwai
2016-02-25 23:31           ` portability: types Thomas Klausner
2016-02-26  8:45             ` Clemens Ladisch
2016-02-29 15:05               ` [PATCH 1/3] Use POSIX uint*_t instead of u_int*_t Thomas Klausner
2016-02-29 15:05                 ` [PATCH 2/3] Use pid_t, off_t instead of __kernel_*_t for better portability Thomas Klausner
2016-02-29 16:10                   ` Takashi Iwai
2016-03-02 22:14                     ` [PATCH] define more missing types for non-Linux Thomas Klausner
2016-03-03  9:32                       ` Takashi Iwai
2016-03-03  9:50                         ` Thomas Klausner
2016-03-03  9:53                           ` Takashi Iwai
2016-03-03  9:55                             ` Takashi Iwai
2016-03-03  9:58                               ` Thomas Klausner
2016-03-03 10:01                                 ` Takashi Iwai
2016-03-03 10:10                                   ` byteswap.h Thomas Klausner
2016-03-03 10:21                                     ` byteswap.h Takashi Iwai
2016-03-03 11:18                                       ` byteswap.h Thomas Klausner
2016-03-03 11:37                                         ` byteswap.h Takashi Iwai
2016-03-03 11:39                                           ` byteswap.h Thomas Klausner
2016-03-03 12:02                                             ` Remaining compatibility patches for NetBSD Thomas Klausner
2016-03-03 13:35                                               ` Takashi Iwai
2016-03-03 13:46                                                 ` Thomas Klausner
2016-03-03 13:54                                                   ` Takashi Iwai
2016-03-03 14:23                                                     ` Thomas Klausner
2016-02-29 15:05                 ` [PATCH 3/3] Use uint*_t instead of __le* Thomas Klausner
2016-02-29 15:10                   ` [PATCH 4/4] Replace __u* with uint*_t Thomas Klausner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.