| // Copyright 2022 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // https://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // CantripOS SDKRuntime services. |
| |
| import <LoggerInterface.camkes>; |
| import <MemoryInterface.camkes>; |
| import <MlCoordinatorInterface.camkes>; |
| import <SDKManagerInterface.camkes>; |
| import <SecurityCoordinatorInterface.camkes>; |
| import <TimerServiceInterface.camkes>; |
| |
| component SDKRuntime { |
| provides SDKManagerInterface sdk_manager; |
| control; // NB: SDKRuntimeInterface |
| |
| maybe uses LoggerInterface logger; |
| uses MemoryInterface memory; |
| maybe uses MlCoordinatorInterface mlcoord; |
| uses SecurityCoordinatorInterface security; |
| maybe uses Timer timer; |
| |
| maybe dataport Buf i2s_csr; |
| maybe consumes Interrupt i2s_rx_watermark; |
| maybe consumes Interrupt i2s_tx_watermark; |
| has semaphore rx_nonempty; |
| has semaphore tx_empty; |
| |
| // Enable CantripOS CAmkES support. |
| attribute int cantripos = true; |
| |
| // Add free slots for minting endpoints. |
| attribute int cnode_headroom = 8; |
| |
| // Copyregion for mapping application request data. |
| has copyregion SDK_PARAMS; |
| |
| // Disable unused threads. |
| attribute int timer_has_thread = false; |
| attribute int mlcoord_has_thread = false; |
| } |