📄 system.h
字号:
/* system.h * * This include file contains information that is included in every * function in the executive. This must be the first include file * included in all internal RTEMS files. * * COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. * * $Id: system.h,v 1.32.2.6 2006/03/07 20:47:24 joel Exp $ */#ifndef __RTEMS_SYSTEM_h#define __RTEMS_SYSTEM_h#ifdef __cplusplusextern "C" {#endif/* * Major, minor, revision version numbers of RTEMS. * Use these macros to test for features in specific releases. */#define __RTEMS_MAJOR__ 4#define __RTEMS_MINOR__ 6#define __RTEMS_REVISION__ 2/* * The cpu options include file defines all cpu dependent * parameters for this build of RTEMS. It must be included * first so the basic macro definitions are in place. */#include <rtems/score/cpuopts.h>/* * The following ensures that all data is declared in the space * of the initialization routine for either the Initialization Manager * or the initialization file for the appropriate API. It is * referenced as "external" in every other file. */#ifdef SCORE_INIT#undef SCORE_EXTERN#define SCORE_EXTERN#else#undef SCORE_EXTERN#define SCORE_EXTERN extern#endif#ifdef SAPI_INIT#undef SAPI_EXTERN#define SAPI_EXTERN#else#undef SAPI_EXTERN#define SAPI_EXTERN extern#endif#ifdef RTEMS_API_INIT#undef RTEMS_EXTERN#define RTEMS_EXTERN#else#undef RTEMS_EXTERN#define RTEMS_EXTERN extern#endif#ifdef POSIX_API_INIT#undef POSIX_EXTERN#define POSIX_EXTERN#else#undef POSIX_EXTERN#define POSIX_EXTERN extern#endif#ifdef ITRON_API_INIT#undef ITRON_EXTERN#define ITRON_EXTERN#else#undef ITRON_EXTERN#define ITRON_EXTERN extern#endif/* * The following (in conjunction with compiler arguments) are used * to choose between the use of static inline functions and macro * functions. The static inline implementation allows better * type checking with no cost in code size or execution speed. */#ifdef USE_INLINES# ifdef __GNUC__# define RTEMS_INLINE_ROUTINE static __inline__# else# define RTEMS_INLINE_ROUTINE static inline# endif#else# define RTEMS_INLINE_ROUTINE#endif/* * The following macro is a compiler specific way to ensure that memory * writes are not reordered around certian points. This specifically can * impact interrupt disable and thread dispatching critical sections. */#ifdef __GNUC__ #define RTEMS_COMPILER_MEMORY_BARRIER() asm volatile("" ::: "memory")#else #define RTEMS_COMPILER_MEMORY_BARRIER()#endif/* * The following are used by the POSIX implementation to catch bad paths. */#ifdef RTEMS_POSIX_APIint POSIX_MP_NOT_IMPLEMENTED( void );int POSIX_NOT_IMPLEMENTED( void );int POSIX_BOTTOM_REACHED( void );#endif/* * Include a base set of files. *//* * XXX: Eventually proc_ptr needs to disappear!!! */typedef void * proc_ptr;/* * Define NULL */#ifndef NULL#define NULL 0 /* NULL value */#endif/* * Boolean constants */#if !defined( TRUE ) || (TRUE != 1)#undef TRUE#define TRUE (1)#endif#if !defined( FALSE ) || (FALSE != 0)#undef FALSE#define FALSE (0)#endif#include <rtems/score/cpu.h> /* processor specific information */#define RTEMS_offsetof(type, field) \ ((unsigned32) &(((type *) 0)->field))/* * The following is the extern for the RTEMS version string. * The contents of this string are CPU specific. */extern const char _RTEMS_version[]; /* RTEMS version string */extern const char _Copyright_Notice[]; /* RTEMS copyright string *//* * The following defines the CPU dependent information table. */SCORE_EXTERN rtems_cpu_table _CPU_Table; /* CPU dependent info *//* * Macros to access CPU Table fields required by ALL ports. * * NOTE: Similar macros to access port specific fields in in the * appropriate cpu.h file. */#define rtems_cpu_configuration_get_table() \ (&_CPU_Table)#define rtems_cpu_configuration_get_pretasking_hook() \ (_CPU_Table.pretasking_hook)#define rtems_cpu_configuration_get_predriver_hook() \ (_CPU_Table.predriver_hook)#define rtems_cpu_configuration_get_postdriver_hook() \ (_CPU_Table.postdriver_hook)#define rtems_cpu_configuration_get_idle_task() \ (_CPU_Table.idle_task)#define rtems_cpu_configuration_get_do_zero_of_workspace() \ (_CPU_Table.do_zero_of_workspace)#define rtems_cpu_configuration_get_idle_task_stack_size() \ (_CPU_Table.idle_task_stack_size)#define rtems_cpu_configuration_get_interrupt_stack_size() \ (_CPU_Table.interrupt_stack_size)#define rtems_cpu_configuration_get_extra_mpci_receive_server_stack() \ (_CPU_Table.extra_mpci_receive_server_stack)#define rtems_cpu_configuration_get_stack_allocate_hook() \ (_CPU_Table.stack_allocate_hook)#define rtems_cpu_configuration_get_stack_free_hook() \ (_CPU_Table.stack_free_hook)/* * XXX weird RTEMS stuff that probably should be somewhere else. */#define RTEMS_MAXIMUM_NAME_LENGTH sizeof(rtems_name)#ifdef __cplusplus}#endif#endif/* end of include file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -