diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2010-09-27 12:52:17 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-09-29 09:30:32 +0200 |
commit | 5156e781bd530a1763c0a33a49871cf58dea7eb0 (patch) | |
tree | 84c06fa3e5e5e8b497a37861ce894173c399fe8c | |
parent | 683e4ef35797f702d5674410aca931a5cba570da (diff) | |
download | barebox-5156e781bd530a1763c0a33a49871cf58dea7eb0.tar.gz barebox-5156e781bd530a1763c0a33a49871cf58dea7eb0.tar.xz |
import __stringify from linux
update the current code
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/ppc/include/asm/processor.h | 12 | ||||
-rw-r--r-- | include/command.h | 5 | ||||
-rw-r--r-- | include/linux/stringify.h | 12 |
3 files changed, 18 insertions, 11 deletions
diff --git a/arch/ppc/include/asm/processor.h b/arch/ppc/include/asm/processor.h index b336f48b78..9c6f79aca3 100644 --- a/arch/ppc/include/asm/processor.h +++ b/arch/ppc/include/asm/processor.h @@ -9,6 +9,7 @@ #include <asm/ptrace.h> #include <asm/types.h> +#include <linux/stringify.h> /* Machine State Register (MSR) Fields */ @@ -887,22 +888,19 @@ n: /* Macros for setting and retrieving special purpose registers */ -#define stringify(s) tostring(s) -#define tostring(s) #s - #define mfdcr(rn) ({unsigned int rval; \ - asm volatile("mfdcr %0," stringify(rn) \ + asm volatile("mfdcr %0," __stringify(rn) \ : "=r" (rval)); rval;}) -#define mtdcr(rn, v) asm volatile("mtdcr " stringify(rn) ",%0" : : "r" (v)) +#define mtdcr(rn, v) asm volatile("mtdcr " __stringify(rn) ",%0" : : "r" (v)) #define mfmsr() ({unsigned int rval; \ asm volatile("mfmsr %0" : "=r" (rval)); rval;}) #define mtmsr(v) asm volatile("mtmsr %0" : : "r" (v)) #define mfspr(rn) ({unsigned int rval; \ - asm volatile("mfspr %0," stringify(rn) \ + asm volatile("mfspr %0," __stringify(rn) \ : "=r" (rval)); rval;}) -#define mtspr(rn, v) asm volatile("mtspr " stringify(rn) ",%0" : : "r" (v)) +#define mtspr(rn, v) asm volatile("mtspr " __stringify(rn) ",%0" : : "r" (v)) #define tlbie(v) asm volatile("tlbie %0 \n sync" : : "r" (v)) diff --git a/include/command.h b/include/command.h index a612d65e54..4a4d9cf925 100644 --- a/include/command.h +++ b/include/command.h @@ -28,6 +28,7 @@ #define __COMMAND_H #include <linux/list.h> +#include <linux/stringify.h> #ifndef NULL #define NULL 0 @@ -75,10 +76,6 @@ void barebox_cmd_usage(struct command *cmdtp); #endif /* __ASSEMBLY__ */ -#define __stringify_1(x) #x -#define __stringify(x) __stringify_1(x) - - #define Struct_Section __attribute__ ((unused,section (".barebox_cmd"))) #define BAREBOX_CMD_START(_name) \ diff --git a/include/linux/stringify.h b/include/linux/stringify.h new file mode 100644 index 0000000000..841cec8ed5 --- /dev/null +++ b/include/linux/stringify.h @@ -0,0 +1,12 @@ +#ifndef __LINUX_STRINGIFY_H +#define __LINUX_STRINGIFY_H + +/* Indirect stringification. Doing two levels allows the parameter to be a + * macro itself. For example, compile with -DFOO=bar, __stringify(FOO) + * converts to "bar". + */ + +#define __stringify_1(x...) #x +#define __stringify(x...) __stringify_1(x) + +#endif /* !__LINUX_STRINGIFY_H */ |