This directory is in the include path for all kernel and system modules in Zircon, and is also exported into the include directory of the generate sysroot.
Most headers should live with their respective libraries. These headers are ones that need to be global because they're a public API/ABI surface or a header needed by a large number of public headers (eg, zircon/compiler.h)
Headers in this directory are also used building Fuchsia host tools. These builds cannot get these headers from sysroot: sysroot is for target builds. Instead such tools need to add the following to their BUILD.gn:
executable("foo") { deps = [ ... ] if (!is_fuchsia) { deps += [ "//zircon/system/public" ] } }