| /* |
| * Generate definitions needed by the preprocessor. |
| * This code generates raw asm output which is post-processed |
| * to extract and format the required data. |
| */ |
| |
| #define __GENERATING_BOUNDS_H |
| /* Include headers that define the enum constants of interest */ |
| #include <linux/page-flags.h> |
| #include <linux/mmzone.h> |
| |
| #define DEFINE(sym, val) \ |
| asm volatile("\n->" #sym " %0 " #val : : "i" (val)) |
| |
| #define BLANK() asm volatile("\n->" : : ) |
| |
| void foo(void) |
| { |
| /* The enum constants to put into include/linux/bounds.h */ |
| DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS); |
| DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES); |
| /* End of constants */ |
| } |