From 5156e781bd530a1763c0a33a49871cf58dea7eb0 Mon Sep 17 00:00:00 2001 From: Jean-Christophe PLAGNIOL-VILLARD Date: Mon, 27 Sep 2010 12:52:17 +0200 Subject: import __stringify from linux update the current code Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Sascha Hauer --- arch/ppc/include/asm/processor.h | 12 +++++------- include/command.h | 5 +---- include/linux/stringify.h | 12 ++++++++++++ 3 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 include/linux/stringify.h 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 #include +#include /* 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 +#include #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 */ -- cgit v1.2.3