[roll] Roll fuchsia [tee] Add scaffolding for TEE implementation

This adds generated Rust bindings and an implementation of single TEE
entry point (TEE_Panic) as well as an example TA that panics on each
entry point. The implementation is currently factored as a Rust shared
library, but this may evolve over time. The TA links as a shared library
with a dependency on `libtee_internal_api.so` and undefined references
on the TEE_ entry points.

There are 3 layers in the implementation of TEE bindings:

- bindings.rs contains the bindgen generate Rust definitions of the TEE
  internal APIs
- binding_stubs.rs contains hand written mechanical forwarding stubs
  that implement the bindgen extern "C" functions by calling a
  (non-extern) Rust function in the tee_impl crate.
- tee_impl.rs has our implementations of the entry points as regular
  Rust functions. Over time these will likely call in to other crates to
  implement more complex functionality.

The stubs layer exists so that we can get Rust type checking on our
implementations as the generated extern "C" functions do no type
checking on parameters and return values.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1002113
Original-Revision: 1ef09fedb5af5b5edf2072763cbb680deef90cea
GitOrigin-RevId: 1526a929242df226ebc638bd95bfbaa47b80e7c0
Change-Id: If07470cb2174315f6caa0d3c6a2c991cd795a349
1 file changed
tree: 6ea9abd0792ba13d15b96de602971f98f4f18019
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.