include/ contains the header files for the TEE Internal Core API v1.2.1.
src/ contains the implementation of the API. It is currently a shared library, although it might not stay that way.
src/binding.rs is the generated Rust definitions based on the header files. It is manually updated by running bindgen.sh and checking in the results.
Richer, more idiomatic, more ergonomic, layout-compatible bindings are exported top-level within the tee_internal_api crate. Groups of constants that are morally enums and bitflags are defined as Rust enums and bitflags, respectively; TEE_ERROR_* constants are made to comprise a proper error type implementing std::error:Error; further, each tee_internal_api::binding::TEE_Foo type is made to correspond to a tee_internal_api::Foo enriched with those enum/bitflag abstraction when possible and stripped of FFI awkwardness. APIs that wrap this crate should opt to to use the tee_internal_api::Foo definitions over the tee_internal_api::TEE_Foo ones (except of course the implementations of the extern C API).