|  | /* | 
|  | * 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 */ | 
|  | } |