blob: c3c55544db2fb515c05c191bfc5c47c26b3cb62e [file] [log] [blame]
Christoph Lameter1cdf25d2008-04-28 02:12:44 -07001/*
2 * Generate definitions needed by the preprocessor.
3 * This code generates raw asm output which is post-processed
4 * to extract and format the required data.
5 */
6
7#define __GENERATING_BOUNDS_H
8/* Include headers that define the enum constants of interest */
Christoph Lameter9223b412008-04-28 02:12:48 -07009#include <linux/page-flags.h>
Christoph Lameter97965472008-04-28 02:12:54 -070010#include <linux/mmzone.h>
Christoph Lameter1cdf25d2008-04-28 02:12:44 -070011
12#define DEFINE(sym, val) \
13 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
14
15#define BLANK() asm volatile("\n->" : : )
16
17void foo(void)
18{
19 /* The enum constants to put into include/linux/bounds.h */
Christoph Lameter9223b412008-04-28 02:12:48 -070020 DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS);
Christoph Lameter97965472008-04-28 02:12:54 -070021 DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES);
Christoph Lameter1cdf25d2008-04-28 02:12:44 -070022 /* End of constants */
23}