/* * * Copyright (c) 2022 Project CHIP Authors * All rights reserved. * * 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 * * http://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. */ /** * @file * This file provides the common Open IoT SDK platform functions. * It can be used in Matter examples implementation. */ #ifndef OPENIOTSDK_PLATFORM_H #define OPENIOTSDK_PLATFORM_H #include #include // Default stack size for network thread (8kB) #define NETWORK_THREAD_STACK_SIZE_DEFAULT (8 * 1024) /** * @brief Initialise the Open IoT SDK platform * Mbedtls platform setup * OS kernel initialization and check * * @return EXIT_SUCCESS or EXIT_FAILURE */ int openiotsdk_platform_init(void); /** * @brief Initialise the CHIP sources * Platform memory and CHIP stack initialization * Start CHIP event loop task * * @return EXIT_SUCCESS or EXIT_FAILURE */ int openiotsdk_chip_init(void); /** * @brief Run the Open IoT SDK platform * Start the OS kernel * * @return EXIT_SUCCESS or EXIT_FAILURE */ int openiotsdk_platform_run(void); /** * @brief Initialise the Open IoT SDK network * Run the network task and wait for newtork up * * @param wait Wait for network up * @return EXIT_SUCCESS or EXIT_FAILURE */ int openiotsdk_network_init(bool wait); /** * @brief Run the CHIP sources/components * Initialize ZCL Data Model and start server * * @return EXIT_SUCCESS or EXIT_FAILURE */ int openiotsdk_chip_run(void); /** * @brief Shutdown the CHIP sources/components * Stop chip server */ void openiotsdk_chip_shutdown(void); #endif /* ! OPENIOTSDK_PLATFORM_H */