aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Common
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2013-04-06 22:07:54 +0000
committerDean Camera <dean@fourwalledcubicle.com>2013-04-06 22:07:54 +0000
commit7c3867da33250e5a20d26f64c5a127323c2094cc (patch)
tree6c0bc8892eaf7d7767e20bb1d2296389fd13b959 /LUFA/Common
parent7dc77a6abc7f3a86970ca48d355b55ed5931a350 (diff)
downloadlufa-7c3867da33250e5a20d26f64c5a127323c2094cc.tar.gz
lufa-7c3867da33250e5a20d26f64c5a127323c2094cc.tar.bz2
lufa-7c3867da33250e5a20d26f64c5a127323c2094cc.zip
Added new CONCAT() and CONCAT_EXPANDED() convenience macros.
Diffstat (limited to 'LUFA/Common')
-rw-r--r--LUFA/Common/Common.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 9bfe1f3b3..c0a711261 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -112,7 +112,7 @@
#include <math.h>
// === TODO: Find abstracted way to handle these ===
- #define PROGMEM
+ #define PROGMEM
#define pgm_read_byte(x) *x
#define memcmp_P(...) memcmp(__VA_ARGS__)
#define memcpy_P(...) memcpy(__VA_ARGS__)
@@ -178,8 +178,8 @@
* \attention This macro should only be used with operands that do not have side effects from being evaluated
* multiple times.
*
- * \param[in] x First value to compare
- * \param[in] y First value to compare
+ * \param[in] x First value to compare.
+ * \param[in] y First value to compare.
*
* \return The smaller of the two input parameters
*/
@@ -207,6 +207,26 @@
#define STRINGIFY_EXPANDED(x) STRINGIFY(x)
#endif
+ #if !defined(CONCAT) || defined(__DOXYGEN__)
+ /** Concatenates the given input into a single token, via the C Preprocessor.
+ *
+ * \param[in] x First item to concatenate.
+ * \param[in] y Second item to concatenate.
+ *
+ * \return Concatenated version of the input.
+ */
+ #define CONCAT(x, y) x ## y
+
+ /** CConcatenates the given input into a single token after macro expansion, via the C Preprocessor.
+ *
+ * \param[in] x First item to concatenate.
+ * \param[in] y Second item to concatenate.
+ *
+ * \return Concatenated version of the expanded input.
+ */
+ #define CONCAT_EXPANDED(x, y) CONCAT(x, y)
+ #endif
+
#if !defined(ISR) || defined(__DOXYGEN__)
/** Macro for the definition of interrupt service routines, so that the compiler can insert the required
* prologue and epilogue code to properly manage the interrupt routine without affecting the main thread's