|  | // SPDX-License-Identifier: GPL-2.0 | 
|  | /* | 
|  | * 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> | 
|  | #include <linux/kbuild.h> | 
|  | #include <linux/log2.h> | 
|  | #include <linux/spinlock_types.h> | 
|  |  | 
|  | void foo(void) | 
|  | { | 
|  | /* The enum constants to put into include/generated/bounds.h */ | 
|  | DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS); | 
|  | DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES); | 
|  | #ifdef CONFIG_SMP | 
|  | DEFINE(NR_CPUS_BITS, ilog2(CONFIG_NR_CPUS)); | 
|  | #endif | 
|  | DEFINE(SPINLOCK_SIZE, sizeof(spinlock_t)); | 
|  | /* End of constants */ | 
|  | } |