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