/*---------------------------------------------------------------------------- * CMSIS-RTOS - RTX *---------------------------------------------------------------------------- * Name: RT_TASK.H * Purpose: Task functions and system start up. * Rev.: V4.79 *---------------------------------------------------------------------------- * * Copyright (c) 1999-2009 KEIL, 2009-2017 ARM Germany GmbH. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * 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 * * 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. *---------------------------------------------------------------------------*/ /* Definitions */ /* Values for 'state' */ #define INACTIVE 0U #define READY 1U #define RUNNING 2U #define WAIT_DLY 3U #define WAIT_ITV 4U #define WAIT_OR 5U #define WAIT_AND 6U #define WAIT_SEM 7U #define WAIT_MBX 8U #define WAIT_MUT 9U /* Return codes */ #define OS_R_TMO 0x01U #define OS_R_EVT 0x02U #define OS_R_SEM 0x03U #define OS_R_MBX 0x04U #define OS_R_MUT 0x05U #define OS_R_OK 0x00U #define OS_R_NOK 0xFFU /* Variables */ extern struct OS_TSK os_tsk; extern struct OS_TCB os_idle_TCB; /* Functions */ extern void rt_switch_req (P_TCB p_next); extern void rt_dispatch (P_TCB next_TCB); extern void rt_block (U16 timeout, U8 block_state); extern void rt_tsk_pass (void); extern OS_TID rt_tsk_self (void); extern OS_RESULT rt_tsk_prio (OS_TID task_id, U8 new_prio); extern OS_TID rt_tsk_create (FUNCP task, U32 prio_stksz, void *stk, void *argv); extern OS_RESULT rt_tsk_delete (OS_TID task_id); #ifdef __CMSIS_RTOS extern void rt_sys_init (void); extern void rt_sys_start (void); #else extern void rt_sys_init (FUNCP first_task, U32 prio_stksz, void *stk); #endif /*---------------------------------------------------------------------------- * end of file *---------------------------------------------------------------------------*/