blob: 47143f2a8865fe3c066b1e3ac9994f5b4c06847b [file] [log] [blame] [edit]
// 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;
}