1*cfb92d14SAndroid Build Coastguard Worker /* 2*cfb92d14SAndroid Build Coastguard Worker * Copyright (c) 2016, The OpenThread Authors. 3*cfb92d14SAndroid Build Coastguard Worker * All rights reserved. 4*cfb92d14SAndroid Build Coastguard Worker * 5*cfb92d14SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*cfb92d14SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions are met: 7*cfb92d14SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 8*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 9*cfb92d14SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 10*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 11*cfb92d14SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 12*cfb92d14SAndroid Build Coastguard Worker * 3. Neither the name of the copyright holder nor the 13*cfb92d14SAndroid Build Coastguard Worker * names of its contributors may be used to endorse or promote products 14*cfb92d14SAndroid Build Coastguard Worker * derived from this software without specific prior written permission. 15*cfb92d14SAndroid Build Coastguard Worker * 16*cfb92d14SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17*cfb92d14SAndroid Build Coastguard Worker * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*cfb92d14SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*cfb92d14SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20*cfb92d14SAndroid Build Coastguard Worker * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21*cfb92d14SAndroid Build Coastguard Worker * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22*cfb92d14SAndroid Build Coastguard Worker * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23*cfb92d14SAndroid Build Coastguard Worker * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24*cfb92d14SAndroid Build Coastguard Worker * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25*cfb92d14SAndroid Build Coastguard Worker * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*cfb92d14SAndroid Build Coastguard Worker * POSSIBILITY OF SUCH DAMAGE. 27*cfb92d14SAndroid Build Coastguard Worker */ 28*cfb92d14SAndroid Build Coastguard Worker 29*cfb92d14SAndroid Build Coastguard Worker /** 30*cfb92d14SAndroid Build Coastguard Worker * @file 31*cfb92d14SAndroid Build Coastguard Worker * @brief 32*cfb92d14SAndroid Build Coastguard Worker * This file defines the platform-specific functions needed by OpenThread's example applications. 33*cfb92d14SAndroid Build Coastguard Worker */ 34*cfb92d14SAndroid Build Coastguard Worker 35*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_SYSTEM_H_ 36*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_SYSTEM_H_ 37*cfb92d14SAndroid Build Coastguard Worker 38*cfb92d14SAndroid Build Coastguard Worker #include <openthread/instance.h> 39*cfb92d14SAndroid Build Coastguard Worker 40*cfb92d14SAndroid Build Coastguard Worker #ifdef __cplusplus 41*cfb92d14SAndroid Build Coastguard Worker extern "C" { 42*cfb92d14SAndroid Build Coastguard Worker #endif 43*cfb92d14SAndroid Build Coastguard Worker 44*cfb92d14SAndroid Build Coastguard Worker /** 45*cfb92d14SAndroid Build Coastguard Worker * Performs all platform-specific initialization of OpenThread's drivers. 46*cfb92d14SAndroid Build Coastguard Worker * 47*cfb92d14SAndroid Build Coastguard Worker * @note This function is not called by the OpenThread library. Instead, the system/RTOS should call this function 48*cfb92d14SAndroid Build Coastguard Worker * when initialization of OpenThread's drivers is most appropriate. 49*cfb92d14SAndroid Build Coastguard Worker * 50*cfb92d14SAndroid Build Coastguard Worker * @param[in] argc Number of arguments in @p argv. 51*cfb92d14SAndroid Build Coastguard Worker * @param[in] argv Argument vector. 52*cfb92d14SAndroid Build Coastguard Worker * 53*cfb92d14SAndroid Build Coastguard Worker */ 54*cfb92d14SAndroid Build Coastguard Worker void otSysInit(int argc, char *argv[]); 55*cfb92d14SAndroid Build Coastguard Worker 56*cfb92d14SAndroid Build Coastguard Worker /** 57*cfb92d14SAndroid Build Coastguard Worker * Performs all platform-specific deinitialization for OpenThread's drivers. 58*cfb92d14SAndroid Build Coastguard Worker * 59*cfb92d14SAndroid Build Coastguard Worker * @note This function is not called by the OpenThread library. Instead, the system/RTOS should call this function 60*cfb92d14SAndroid Build Coastguard Worker * when deinitialization of OpenThread's drivers is most appropriate. 61*cfb92d14SAndroid Build Coastguard Worker * 62*cfb92d14SAndroid Build Coastguard Worker */ 63*cfb92d14SAndroid Build Coastguard Worker void otSysDeinit(void); 64*cfb92d14SAndroid Build Coastguard Worker 65*cfb92d14SAndroid Build Coastguard Worker /** 66*cfb92d14SAndroid Build Coastguard Worker * Returns true if a pseudo-reset was requested. 67*cfb92d14SAndroid Build Coastguard Worker * 68*cfb92d14SAndroid Build Coastguard Worker * In such a case, the main loop should shut down and re-initialize the OpenThread instance. 69*cfb92d14SAndroid Build Coastguard Worker * 70*cfb92d14SAndroid Build Coastguard Worker * @note This function is not called by the OpenThread library. Instead, the system/RTOS should call this function 71*cfb92d14SAndroid Build Coastguard Worker * in the main loop to determine when to shut down and re-initialize the OpenThread instance. 72*cfb92d14SAndroid Build Coastguard Worker * 73*cfb92d14SAndroid Build Coastguard Worker */ 74*cfb92d14SAndroid Build Coastguard Worker bool otSysPseudoResetWasRequested(void); 75*cfb92d14SAndroid Build Coastguard Worker 76*cfb92d14SAndroid Build Coastguard Worker /** 77*cfb92d14SAndroid Build Coastguard Worker * Performs all platform-specific processing for OpenThread's example applications. 78*cfb92d14SAndroid Build Coastguard Worker * 79*cfb92d14SAndroid Build Coastguard Worker * @note This function is not called by the OpenThread library. Instead, the system/RTOS should call this function 80*cfb92d14SAndroid Build Coastguard Worker * in the main loop when processing OpenThread's drivers is most appropriate. 81*cfb92d14SAndroid Build Coastguard Worker * 82*cfb92d14SAndroid Build Coastguard Worker * @param[in] aInstance The OpenThread instance structure. 83*cfb92d14SAndroid Build Coastguard Worker * 84*cfb92d14SAndroid Build Coastguard Worker */ 85*cfb92d14SAndroid Build Coastguard Worker void otSysProcessDrivers(otInstance *aInstance); 86*cfb92d14SAndroid Build Coastguard Worker 87*cfb92d14SAndroid Build Coastguard Worker /** 88*cfb92d14SAndroid Build Coastguard Worker * Is called whenever platform drivers needs processing. 89*cfb92d14SAndroid Build Coastguard Worker * 90*cfb92d14SAndroid Build Coastguard Worker * @note This function is not handled by the OpenThread library. Instead, the system/RTOS should handle this function 91*cfb92d14SAndroid Build Coastguard Worker * and schedule a call to `otSysProcessDrivers()`. 92*cfb92d14SAndroid Build Coastguard Worker * 93*cfb92d14SAndroid Build Coastguard Worker */ 94*cfb92d14SAndroid Build Coastguard Worker extern void otSysEventSignalPending(void); 95*cfb92d14SAndroid Build Coastguard Worker 96*cfb92d14SAndroid Build Coastguard Worker #ifdef __cplusplus 97*cfb92d14SAndroid Build Coastguard Worker } // end of extern "C" 98*cfb92d14SAndroid Build Coastguard Worker #endif 99*cfb92d14SAndroid Build Coastguard Worker 100*cfb92d14SAndroid Build Coastguard Worker #endif // OPENTHREAD_SYSTEM_H_ 101