I don't know, but I found this on TLDP
include
The include subdirectory contains most of the include files needed to build the kernel code. It too has further subdirectories including one for every architecture supported. The include/asm subdirectory is a soft link to the real include directory needed for this architecture, for example include/asm-i386. To change architectures you need to edit the kernel makefile and rerun the Linux kernel configuration program.
it's a kernel header file,
usually, it's under /usr/src/kernels/$(uname -r)/arch/x86/include/asm/
cpp looks for header file following a path list and this location or its parent folder could be either under the path or defined in the makefile