commit | 190ae10c5ebc43ee911e48c29a3c00fa65527aa2 | [log] [tgz] |
---|---|---|
author | RJ Ascani <rjascani@google.com> | Mon Nov 05 09:58:01 2018 -0800 |
committer | RJ Ascani <rjascani@google.com> | Mon Dec 03 09:41:05 2018 -0800 |
tree | b929b31bcc2c327d2226de6d2e619f8ac570b9f7 | |
parent | 3506da13a13a295a4a75576d76ab7e1f6a6809ff [diff] |
[tee][optee] Add TEEC Operation Buffer handling TEE Client Operations allow for two different kinds of command parameters: Value and Buffer types. This CL adds supports for the latter. Unlike Value parameters, the Buffer parameters are fairly complex to support a variety of different use cases. The TEE Client API provides two interfaces for reserving Shared Memory: TEEC_RegisterSharedMemory and TEEC_AllocateSharedMemory. The former is to register an existing user buffer with the TEE, whereas the latter requests that a buffer be provided by the API. Due to current system restraints and a lack of use cases, the Register variant will remain unimplemented for now. Once a TEEC_SharedMemory object has been allocated, it can then be used in TEEC_Operations. TEEC_Operation allows for a variety of different buffer types, called memory references. Temporary memory references do not have a TEEC_SharedMemory parent object and are only valid for the duration of a command. Registered memory references refer to an allocated TEEC_SharedMemory object as either a whole or partial reference. A whole memory reference implies that the whole TEEC_SharedMemory object can be used, whereas partial memory references restrict the portion of the TEEC_SharedMemory object according to the provided offset and size. Test: tee-test on Astro. Change-Id: Ifa4c4565a5198dd6eceed3573510bffe534231d3
Zircon is the core platform that powers the Fuchsia OS. Zircon is composed of a microkernel (source in kernel/...) as well as a small set of userspace services, drivers, and libraries (source in system/...) necessary for the system to boot, talk to hardware, load userspace processes and run them, etc. Fuchsia builds a much larger OS on top of this foundation.
The canonical Zircon Git repository is located at: https://fuchsia.googlesource.com/zircon
A read-only mirror of the code is present at: https://github.com/fuchsia-mirror/zircon
The Zircon Kernel provides syscalls to manage processes, threads, virtual memory, inter-process communication, waiting on object state changes, and locking (via futexes).
Currently there are some temporary syscalls that have been used for early bringup work, which will be going away in the future as the long term syscall API/ABI surface is finalized. The expectation is that there will be about 100 syscalls.
Zircon syscalls are generally non-blocking. The wait_one, wait_many port_wait and thread sleep being the notable exceptions.
This page is a non-comprehensive index of the zircon documentation.