[alsa-devel] [PATCH v3 1/3] core: add convenience macros to local.h
Liam Girdwood
liam.r.girdwood at linux.intel.com
Tue Aug 11 19:23:15 CEST 2015
Move ARRAY_SIZE() from tplg_local.h to local.h and add container_of()
macro to local.h. Both macros are generic but are initially used by
topology.
Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
include/local.h | 7 +++++++
src/topology/tplg_local.h | 1 -
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/include/local.h b/include/local.h
index 6600816..b429f5d 100644
--- a/include/local.h
+++ b/include/local.h
@@ -350,4 +350,11 @@ int snd_config_search_alias_hooks(snd_config_t *config,
int _snd_conf_generic_id(const char *id);
+/* convenience macros */
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
+
+#define container_of(ptr, type, member) ({ \
+ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
+ (type *)( (char *)__mptr - offsetof(type,member) );})
+
#endif
diff --git a/src/topology/tplg_local.h b/src/topology/tplg_local.h
index febc177..3982cc7 100644
--- a/src/topology/tplg_local.h
+++ b/src/topology/tplg_local.h
@@ -32,7 +32,6 @@
#define MAX_FILE 256
#define TPLG_MAX_PRIV_SIZE (1024 * 128)
#define ALSA_TPLG_DIR ALSA_CONFIG_DIR "/topology"
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
/** The name of the environment variable containing the tplg directory */
#define ALSA_CONFIG_TPLG_VAR "ALSA_CONFIG_TPLG"
--
2.1.4
More information about the Alsa-devel
mailing list