All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: <alsa-devel@alsa-project.org>, Mark Brown <broonie@kernel.org>,
	"Masahiro Yamada" <yamada.masahiro@socionext.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Liam Girdwood <liam.r.girdwood@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [alsa-devel] [PATCH] ASoC: SOF: use __u32 instead of uint32_t in uapi headers
Date: Mon, 22 Jul 2019 14:56:18 +0200	[thread overview]
Message-ID: <s5hftmy8byl.wl-tiwai@suse.de> (raw)
In-Reply-To: <de9e94ee-9c01-1c0c-4359-b637319a298f@linux.intel.com>

On Mon, 22 Jul 2019 14:49:34 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> 
> On 7/21/19 9:23 AM, Masahiro Yamada wrote:
> > When CONFIG_UAPI_HEADER_TEST=y, exported headers are compile-tested to
> > make sure they can be included from user-space.
> >
> > Currently, header.h and fw.h are excluded from the test coverage.
> > To make them join the compile-test, we need to fix the build errors
> > attached below.
> >
> > For a case like this, we decided to use __u{8,16,32,64} variable types
> > in this discussion:
> >
> >    https://lkml.org/lkml/2019/6/5/18
> 
> these files are shared with the SOF project and used as is (with minor
> formatting) for the firmware compilation. I am not sure I understand
> the ask here, are you really asking SOF to use linux-specific type
> definitions?

Actually this is linux-kernel UAPI header files, so yes, we should
follow the convention there as much as possible.

So far we haven't been strict about these types.  But now we have a
unit test for checking it, so it's a good opportunity to address the
issues.


thanks,

Takashi

> 
> >
> > Build log:
> >
> >    CC      usr/include/sound/sof/header.h.s
> >    CC      usr/include/sound/sof/fw.h.s
> > In file included from <command-line>:32:0:
> > ./usr/include/sound/sof/header.h:19:2: error: unknown type name ‘uint32_t’
> >    uint32_t magic;  /**< 'S', 'O', 'F', '\0' */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:20:2: error: unknown type name ‘uint32_t’
> >    uint32_t type;  /**< component specific type */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:21:2: error: unknown type name ‘uint32_t’
> >    uint32_t size;  /**< size in bytes of data excl. this struct */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:22:2: error: unknown type name ‘uint32_t’
> >    uint32_t abi;  /**< SOF ABI version */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:23:2: error: unknown type name ‘uint32_t’
> >    uint32_t reserved[4]; /**< reserved for future use */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:24:2: error: unknown type name ‘uint32_t’
> >    uint32_t data[0]; /**< Component data - opaque to core */
> >    ^~~~~~~~
> > In file included from <command-line>:32:0:
> > ./usr/include/sound/sof/fw.h:49:2: error: unknown type name ‘uint32_t’
> >    uint32_t size;  /* bytes minus this header */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:50:2: error: unknown type name ‘uint32_t’
> >    uint32_t offset; /* offset from base */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:64:2: error: unknown type name ‘uint32_t’
> >    uint32_t size;  /* bytes minus this header */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:65:2: error: unknown type name ‘uint32_t’
> >    uint32_t num_blocks; /* number of blocks */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:73:2: error: unknown type name ‘uint32_t’
> >    uint32_t file_size; /* size of file minus this header */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:74:2: error: unknown type name ‘uint32_t’
> >    uint32_t num_modules; /* number of modules */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:75:2: error: unknown type name ‘uint32_t’
> >    uint32_t abi;  /* version of header format */
> >    ^~~~~~~~
> >
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> > ---
> >
> >   include/uapi/sound/sof/fw.h     | 16 +++++++++-------
> >   include/uapi/sound/sof/header.h | 14 ++++++++------
> >   2 files changed, 17 insertions(+), 13 deletions(-)
> >
> > diff --git a/include/uapi/sound/sof/fw.h b/include/uapi/sound/sof/fw.h
> > index 1afca973eb09..e9f697467a86 100644
> > --- a/include/uapi/sound/sof/fw.h
> > +++ b/include/uapi/sound/sof/fw.h
> > @@ -13,6 +13,8 @@
> >   #ifndef __INCLUDE_UAPI_SOF_FW_H__
> >   #define __INCLUDE_UAPI_SOF_FW_H__
> >   +#include <linux/types.h>
> > +
> >   #define SND_SOF_FW_SIG_SIZE	4
> >   #define SND_SOF_FW_ABI		1
> >   #define SND_SOF_FW_SIG		"Reef"
> > @@ -46,8 +48,8 @@ enum snd_sof_fw_blk_type {
> >     struct snd_sof_blk_hdr {
> >   	enum snd_sof_fw_blk_type type;
> > -	uint32_t size;		/* bytes minus this header */
> > -	uint32_t offset;	/* offset from base */
> > +	__u32 size;		/* bytes minus this header */
> > +	__u32 offset;		/* offset from base */
> >   } __packed;
> >     /*
> > @@ -61,8 +63,8 @@ enum snd_sof_fw_mod_type {
> >     struct snd_sof_mod_hdr {
> >   	enum snd_sof_fw_mod_type type;
> > -	uint32_t size;		/* bytes minus this header */
> > -	uint32_t num_blocks;	/* number of blocks */
> > +	__u32 size;		/* bytes minus this header */
> > +	__u32 num_blocks;	/* number of blocks */
> >   } __packed;
> >     /*
> > @@ -70,9 +72,9 @@ struct snd_sof_mod_hdr {
> >    */
> >   struct snd_sof_fw_header {
> >   	unsigned char sig[SND_SOF_FW_SIG_SIZE]; /* "Reef" */
> > -	uint32_t file_size;	/* size of file minus this header */
> > -	uint32_t num_modules;	/* number of modules */
> > -	uint32_t abi;		/* version of header format */
> > +	__u32 file_size;	/* size of file minus this header */
> > +	__u32 num_modules;	/* number of modules */
> > +	__u32 abi;		/* version of header format */
> >   } __packed;
> >     #endif
> > diff --git a/include/uapi/sound/sof/header.h b/include/uapi/sound/sof/header.h
> > index 7868990b0d6f..5f4518e7a972 100644
> > --- a/include/uapi/sound/sof/header.h
> > +++ b/include/uapi/sound/sof/header.h
> > @@ -9,6 +9,8 @@
> >   #ifndef __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
> >   #define __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
> >   +#include <linux/types.h>
> > +
> >   /*
> >    * Header for all non IPC ABI data.
> >    *
> > @@ -16,12 +18,12 @@
> >    * Used by any bespoke component data structures or binary blobs.
> >    */
> >   struct sof_abi_hdr {
> > -	uint32_t magic;		/**< 'S', 'O', 'F', '\0' */
> > -	uint32_t type;		/**< component specific type */
> > -	uint32_t size;		/**< size in bytes of data excl. this struct */
> > -	uint32_t abi;		/**< SOF ABI version */
> > -	uint32_t reserved[4];	/**< reserved for future use */
> > -	uint32_t data[0];	/**< Component data - opaque to core */
> > +	__u32 magic;		/**< 'S', 'O', 'F', '\0' */
> > +	__u32 type;		/**< component specific type */
> > +	__u32 size;		/**< size in bytes of data excl. this struct */
> > +	__u32 abi;		/**< SOF ABI version */
> > +	__u32 reserved[4];	/**< reserved for future use */
> > +	__u32 data[0];		/**< Component data - opaque to core */
> >   }  __packed;
> >     #endif
> >
> 

WARNING: multiple messages have this Message-ID (diff)
From: Takashi Iwai <tiwai@suse.de>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: alsa-devel@alsa-project.org, Mark Brown <broonie@kernel.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Liam Girdwood <liam.r.girdwood@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [alsa-devel] [PATCH] ASoC: SOF: use __u32 instead of uint32_t in uapi headers
Date: Mon, 22 Jul 2019 14:56:18 +0200	[thread overview]
Message-ID: <s5hftmy8byl.wl-tiwai@suse.de> (raw)
In-Reply-To: <de9e94ee-9c01-1c0c-4359-b637319a298f@linux.intel.com>

On Mon, 22 Jul 2019 14:49:34 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> 
> On 7/21/19 9:23 AM, Masahiro Yamada wrote:
> > When CONFIG_UAPI_HEADER_TEST=y, exported headers are compile-tested to
> > make sure they can be included from user-space.
> >
> > Currently, header.h and fw.h are excluded from the test coverage.
> > To make them join the compile-test, we need to fix the build errors
> > attached below.
> >
> > For a case like this, we decided to use __u{8,16,32,64} variable types
> > in this discussion:
> >
> >    https://lkml.org/lkml/2019/6/5/18
> 
> these files are shared with the SOF project and used as is (with minor
> formatting) for the firmware compilation. I am not sure I understand
> the ask here, are you really asking SOF to use linux-specific type
> definitions?

Actually this is linux-kernel UAPI header files, so yes, we should
follow the convention there as much as possible.

So far we haven't been strict about these types.  But now we have a
unit test for checking it, so it's a good opportunity to address the
issues.


thanks,

Takashi

> 
> >
> > Build log:
> >
> >    CC      usr/include/sound/sof/header.h.s
> >    CC      usr/include/sound/sof/fw.h.s
> > In file included from <command-line>:32:0:
> > ./usr/include/sound/sof/header.h:19:2: error: unknown type name ‘uint32_t’
> >    uint32_t magic;  /**< 'S', 'O', 'F', '\0' */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:20:2: error: unknown type name ‘uint32_t’
> >    uint32_t type;  /**< component specific type */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:21:2: error: unknown type name ‘uint32_t’
> >    uint32_t size;  /**< size in bytes of data excl. this struct */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:22:2: error: unknown type name ‘uint32_t’
> >    uint32_t abi;  /**< SOF ABI version */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:23:2: error: unknown type name ‘uint32_t’
> >    uint32_t reserved[4]; /**< reserved for future use */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/header.h:24:2: error: unknown type name ‘uint32_t’
> >    uint32_t data[0]; /**< Component data - opaque to core */
> >    ^~~~~~~~
> > In file included from <command-line>:32:0:
> > ./usr/include/sound/sof/fw.h:49:2: error: unknown type name ‘uint32_t’
> >    uint32_t size;  /* bytes minus this header */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:50:2: error: unknown type name ‘uint32_t’
> >    uint32_t offset; /* offset from base */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:64:2: error: unknown type name ‘uint32_t’
> >    uint32_t size;  /* bytes minus this header */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:65:2: error: unknown type name ‘uint32_t’
> >    uint32_t num_blocks; /* number of blocks */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:73:2: error: unknown type name ‘uint32_t’
> >    uint32_t file_size; /* size of file minus this header */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:74:2: error: unknown type name ‘uint32_t’
> >    uint32_t num_modules; /* number of modules */
> >    ^~~~~~~~
> > ./usr/include/sound/sof/fw.h:75:2: error: unknown type name ‘uint32_t’
> >    uint32_t abi;  /* version of header format */
> >    ^~~~~~~~
> >
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> > ---
> >
> >   include/uapi/sound/sof/fw.h     | 16 +++++++++-------
> >   include/uapi/sound/sof/header.h | 14 ++++++++------
> >   2 files changed, 17 insertions(+), 13 deletions(-)
> >
> > diff --git a/include/uapi/sound/sof/fw.h b/include/uapi/sound/sof/fw.h
> > index 1afca973eb09..e9f697467a86 100644
> > --- a/include/uapi/sound/sof/fw.h
> > +++ b/include/uapi/sound/sof/fw.h
> > @@ -13,6 +13,8 @@
> >   #ifndef __INCLUDE_UAPI_SOF_FW_H__
> >   #define __INCLUDE_UAPI_SOF_FW_H__
> >   +#include <linux/types.h>
> > +
> >   #define SND_SOF_FW_SIG_SIZE	4
> >   #define SND_SOF_FW_ABI		1
> >   #define SND_SOF_FW_SIG		"Reef"
> > @@ -46,8 +48,8 @@ enum snd_sof_fw_blk_type {
> >     struct snd_sof_blk_hdr {
> >   	enum snd_sof_fw_blk_type type;
> > -	uint32_t size;		/* bytes minus this header */
> > -	uint32_t offset;	/* offset from base */
> > +	__u32 size;		/* bytes minus this header */
> > +	__u32 offset;		/* offset from base */
> >   } __packed;
> >     /*
> > @@ -61,8 +63,8 @@ enum snd_sof_fw_mod_type {
> >     struct snd_sof_mod_hdr {
> >   	enum snd_sof_fw_mod_type type;
> > -	uint32_t size;		/* bytes minus this header */
> > -	uint32_t num_blocks;	/* number of blocks */
> > +	__u32 size;		/* bytes minus this header */
> > +	__u32 num_blocks;	/* number of blocks */
> >   } __packed;
> >     /*
> > @@ -70,9 +72,9 @@ struct snd_sof_mod_hdr {
> >    */
> >   struct snd_sof_fw_header {
> >   	unsigned char sig[SND_SOF_FW_SIG_SIZE]; /* "Reef" */
> > -	uint32_t file_size;	/* size of file minus this header */
> > -	uint32_t num_modules;	/* number of modules */
> > -	uint32_t abi;		/* version of header format */
> > +	__u32 file_size;	/* size of file minus this header */
> > +	__u32 num_modules;	/* number of modules */
> > +	__u32 abi;		/* version of header format */
> >   } __packed;
> >     #endif
> > diff --git a/include/uapi/sound/sof/header.h b/include/uapi/sound/sof/header.h
> > index 7868990b0d6f..5f4518e7a972 100644
> > --- a/include/uapi/sound/sof/header.h
> > +++ b/include/uapi/sound/sof/header.h
> > @@ -9,6 +9,8 @@
> >   #ifndef __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
> >   #define __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
> >   +#include <linux/types.h>
> > +
> >   /*
> >    * Header for all non IPC ABI data.
> >    *
> > @@ -16,12 +18,12 @@
> >    * Used by any bespoke component data structures or binary blobs.
> >    */
> >   struct sof_abi_hdr {
> > -	uint32_t magic;		/**< 'S', 'O', 'F', '\0' */
> > -	uint32_t type;		/**< component specific type */
> > -	uint32_t size;		/**< size in bytes of data excl. this struct */
> > -	uint32_t abi;		/**< SOF ABI version */
> > -	uint32_t reserved[4];	/**< reserved for future use */
> > -	uint32_t data[0];	/**< Component data - opaque to core */
> > +	__u32 magic;		/**< 'S', 'O', 'F', '\0' */
> > +	__u32 type;		/**< component specific type */
> > +	__u32 size;		/**< size in bytes of data excl. this struct */
> > +	__u32 abi;		/**< SOF ABI version */
> > +	__u32 reserved[4];	/**< reserved for future use */
> > +	__u32 data[0];		/**< Component data - opaque to core */
> >   }  __packed;
> >     #endif
> >
> 

  reply	other threads:[~2019-07-22 12:56 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-21 14:23 [PATCH] ASoC: SOF: use __u32 instead of uint32_t in uapi headers Masahiro Yamada
2019-07-21 14:23 ` Masahiro Yamada
2019-07-22 12:22 ` Applied "ASoC: SOF: use __u32 instead of uint32_t in uapi headers" to the asoc tree Mark Brown
2019-07-22 12:22   ` Mark Brown
2019-07-22 12:49 ` [alsa-devel] [PATCH] ASoC: SOF: use __u32 instead of uint32_t in uapi headers Pierre-Louis Bossart
2019-07-22 12:56   ` Takashi Iwai [this message]
2019-07-22 12:56     ` Takashi Iwai
2019-07-22 13:16     ` Pierre-Louis Bossart
2019-07-22 13:34       ` Arnd Bergmann
2019-07-22 15:18         ` Pierre-Louis Bossart
2019-07-22 15:18           ` Pierre-Louis Bossart
2019-07-22 15:21           ` [alsa-devel] " Arnd Bergmann
2019-07-22 13:39 ` Arnd Bergmann
2019-07-22 14:35   ` Masahiro Yamada
2019-07-22 15:19   ` [alsa-devel] " Pierre-Louis Bossart
2019-07-22 15:19     ` Pierre-Louis Bossart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hftmy8byl.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@suse.com \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.