⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uit_objs.hxx

📁 ecos为实时嵌入式操作系统
💻 HXX
字号:
#ifndef CYGONCE_COMPAT_UITRON_UIT_OBJS_HXX#define CYGONCE_COMPAT_UITRON_UIT_OBJS_HXX//===========================================================================////      uit_objs.hxx////      uITRON static objects////===========================================================================//####COPYRIGHTBEGIN####//// -------------------------------------------// The contents of this file are subject to the Cygnus eCos Public License// Version 1.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://sourceware.cygnus.com/ecos// // Software distributed under the License is distributed on an "AS IS"// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the// License for the specific language governing rights and limitations under// the License.// // The Original Code is eCos - Embedded Cygnus Operating System, released// September 30, 1998.// // The Initial Developer of the Original Code is Cygnus.  Portions created// by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions.  All Rights Reserved.// -------------------------------------------////####COPYRIGHTEND####//===========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):   hmt// Contributors:        hmt// Date:        1998-03-13// Purpose:     uITRON static system objects// Description: ////####DESCRIPTIONEND####////===========================================================================#include <pkgconf/uitron.h>             // uITRON setup CYGNUM_UITRON_SEMAS                                        // CYGPKG_UITRON et al#ifdef CYGPKG_UITRON#include <cyg/infra/cyg_type.h>         // types; cyg_int32, CYG_ADDRWORD#include <pkgconf/kernel.h>#include <cyg/kernel/ktypes.h>#include <cyg/kernel/thread.hxx>        // Cyg_Thread#include <cyg/kernel/mbox.hxx>          // Cyg_Mbox#include <cyg/kernel/flag.hxx>          // Cyg_Flag#include <cyg/kernel/sema2.hxx>         // Cyg_Counting_Semaphore2#include <cyg/kernel/memfixed.hxx>      // Cyg_Mempool_Fixed#include <cyg/kernel/memvar.hxx>        // Cyg_Mempool_Variable#include <cyg/kernel/timer.hxx>         // Cyg_Timer// ------------------------------------------------------------------------// Some pasting macros to create names of the config macro and the// static data resulting:#define CYG_UITRON_NUM( _which_ )  (CYGNUM_UITRON_ ## _which_)#define CYG_UITRON_OBJS( _which_ )  cyg_uitron_ ## _which_#define CYG_UITRON_PTRS( _which_ )  cyg_uitron_ ## _which_ ## _ptrs// ------------------------------------------------------------------------// CYG_UITRON_DECL// // Macro to declare static uitron static objects; uses the appropriate// config define for the number of them to have.#define CYG_UITRON_DECL( _which_ ) \    CYG_UITRON_OBJS( _which_ ) [ CYG_UITRON_NUM( _which_ ) ]// and the array of pointers to them for those with dynamic existence:#define CYG_UITRON_DECL_PTRS( _which_ ) \    CYG_UITRON_PTRS( _which_ ) [ CYG_UITRON_NUM( _which_ ) ]// ------------------------------------------------------------------------// The external system objects themselves.#ifdef CYGPKG_UITRON_SEMASexternCyg_Counting_Semaphore2 CYG_UITRON_OBJS( SEMAS )        [];#ifdef CYGPKG_UITRON_SEMAS_CREATE_DELETEexternCyg_Counting_Semaphore2 *CYG_UITRON_PTRS( SEMAS )       [];#endif#endif#ifdef CYGPKG_UITRON_MBOXESexternCyg_Mbox                CYG_UITRON_OBJS( MBOXES )       [];#ifdef CYGPKG_UITRON_MBOXES_CREATE_DELETEexternCyg_Mbox                *CYG_UITRON_PTRS( MBOXES )      [];#endif#endif#ifdef CYGPKG_UITRON_FLAGSexternCyg_Flag                CYG_UITRON_OBJS( FLAGS )        [];#ifdef CYGPKG_UITRON_FLAGS_CREATE_DELETEexternCyg_Flag                *CYG_UITRON_PTRS( FLAGS )       [];#endif#endif// there must always be tasksexternCyg_Thread              CYG_UITRON_OBJS( TASKS )        [];#ifdef CYGPKG_UITRON_TASKS_CREATE_DELETEexternCyg_Thread              *CYG_UITRON_PTRS( TASKS )       [];#endif// no endif#ifdef CYGPKG_UITRON_MEMPOOLFIXEDexternCyg_Mempool_Fixed       CYG_UITRON_OBJS( MEMPOOLFIXED ) [];#ifdef CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETEexternCyg_Mempool_Fixed       *CYG_UITRON_PTRS( MEMPOOLFIXED )[];#endif#endif#ifdef CYGPKG_UITRON_MEMPOOLVARexternCyg_Mempool_Variable    CYG_UITRON_OBJS( MEMPOOLVAR )   [];#ifdef CYGPKG_UITRON_MEMPOOLVAR_CREATE_DELETEexternCyg_Mempool_Variable    *CYG_UITRON_PTRS( MEMPOOLVAR )  [];#endif#endif#ifdef CYGPKG_UITRON_CYCLICSexternCyg_Timer               CYG_UITRON_OBJS( CYCLICS )      [];#endif#ifdef CYGPKG_UITRON_ALARMSexternCyg_Timer               CYG_UITRON_OBJS( ALARMS )       [];#endif// ------------------------------------------------------------------------// Ancillary system objects - cleaner than extending the basic class#ifdef CYGIMP_THREAD_PRIORITY// An array of priorities, for resetting back to the "created" prio when a// task cycles though exit, dormancy, restart.extern cyg_prioritycyg_uitron_task_initial_priorities[ CYG_UITRON_NUM( TASKS ) ];// and an accessor macro, for the addressing of this is naturally// from 1..N also:#define CYG_UITRON_TASK_INITIAL_PRIORITY( _tskid_ ) \    (cyg_uitron_task_initial_priorities[ (_tskid_) - 1 ])#endif // CYGIMP_THREAD_PRIORITY// ------------------------------------------------------------------------#endif // CYGPKG_UITRON#endif // CYGONCE_COMPAT_UITRON_UIT_OBJS_HXX// EOF uit_objs.hxx

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -