1*1f5207b7SJohn Levon /* We used to get '##' wrong for the kernel.
2*1f5207b7SJohn Levon  *
3*1f5207b7SJohn Levon  * It could possibly be argued that the kernel usage is undefined (since the
4*1f5207b7SJohn Levon  * different sides of the '##' are not proper tokens), but we try to do it
5*1f5207b7SJohn Levon  * right anyway.
6*1f5207b7SJohn Levon  *
7*1f5207b7SJohn Levon  * We used to break up the "003d" into two tokens ('003' and 'd') and then put
8*1f5207b7SJohn Levon  * the 'o' marker to mark the token 003 as an octal number, resulting in:
9*1f5207b7SJohn Levon  *
10*1f5207b7SJohn Levon  *	static char __vendorstr_o03 d [ ] __devinitdata = "Lockheed Martin-Marietta Corp";
11*1f5207b7SJohn Levon  *
12*1f5207b7SJohn Levon  * which didn't work, of course.
13*1f5207b7SJohn Levon  */
14*1f5207b7SJohn Levon 
15*1f5207b7SJohn Levon #define __devinitdata __attribute__((section(".devinit")))
16*1f5207b7SJohn Levon 
17*1f5207b7SJohn Levon #define VENDOR( vendor, name ) \
18*1f5207b7SJohn Levon 	static char __vendorstr_##vendor[] __devinitdata = name;
19*1f5207b7SJohn Levon VENDOR(003d,"Lockheed Martin-Marietta Corp")
20*1f5207b7SJohn Levon 
21*1f5207b7SJohn Levon /*
22*1f5207b7SJohn Levon  * check-name: Preprocessor #6
23*1f5207b7SJohn Levon  * check-command: sparse -E $file
24*1f5207b7SJohn Levon  *
25*1f5207b7SJohn Levon  * check-output-start
26*1f5207b7SJohn Levon 
27*1f5207b7SJohn Levon static char __vendorstr_003d[] __attribute__((section(".devinit"))) = "Lockheed Martin-Marietta Corp";
28*1f5207b7SJohn Levon  * check-output-end
29*1f5207b7SJohn Levon  */
30