Please observe the following notes when making changes to the source tree. The directory h contains header files used internally in the zephyr source tree. The directory h/zephyr contains header files containing declarations for the Zephyr API. h/zephyr/zephyr_err.h is generated from lib/zephyr/zephyr_err.et when lib/zephyr is built. h/zephyr/zephyr.h is generated by configure, as is h/config.h. Those header files live in the build tree. All other header files in h live in the source tree. h/config.h is generated by configure and contains the results of configure tests as well as definitions for the installation configuration directory and data directory. h/sysdep.h uses h/config.h to include various header files or make various external declarations which many programs might be interested in. h/internal.h contains declarations internal to the "Zephyr system proper," which includes the Zephyr library, the server, the hostmanager, and (for now) zstat. h/zephyr/zephyr.h is a public header file; that is, it is installed with the Zephyr system. As such, this header file may need to work with compilers other than the compiler used to build the Zephyr system itself. Thus, we use __STDC__ (both in h/sysdep.h and in zephyr.h) to guess whether the compiler will handle const, prototypes, and stdarg. This is unfortunately not as reliable as using autoconf features like AC_C_CONST.