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

📄 confdefs.h

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 H
📖 第 1 页 / 共 3 页
字号:
#define CONFIGURE_ITRON_INIT_TASK_TABLE_NAME NULL#define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE 0#endif#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API \  ( \    sizeof (ITRON_API_Control) \  )#define CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES(_semaphores) \  ((_semaphores) * \   ( sizeof(ITRON_Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS(_eventflags) \  ((_eventflags) * \   ( sizeof(ITRON_Eventflags_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES(_mailboxes) \  ((_mailboxes) * \   ( sizeof(ITRON_Mailbox_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS(_message_buffers) \  ((_message_buffers) * \   ( sizeof(ITRON_Message_buffer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_ITRON_PORTS(_ports) \  ((_ports) * \   ( sizeof(ITRON_Port_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS(_memory_pools) \  ((_memory_pools) * \   (sizeof(ITRON_Variable_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF))#define CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS(_fixed_memory_pools) \  ((_fixed_memory_pools) * \   ( sizeof(ITRON_Fixed_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZE#define CONFIGURE_ITRON_INIT_TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE * 2)#endif#define CONFIGURE_MEMORY_FOR_ITRON \  ( \    CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES( \        CONFIGURE_MAXIMUM_ITRON_SEMAPHORES ) + \    CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS( \        CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS ) + \    CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES( \        CONFIGURE_MAXIMUM_ITRON_MAILBOXES ) + \    CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS( \        CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS ) + \    CONFIGURE_MEMORY_FOR_ITRON_PORTS( \        CONFIGURE_MAXIMUM_ITRON_PORTS ) + \    CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS( \        CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS ) + \    CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS( \        CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS ) + \    CONFIGURE_ITRON_INIT_TASK_STACK_SIZE \   )#else#define CONFIGURE_MAXIMUM_ITRON_TASKS               0#define CONFIGURE_MAXIMUM_ITRON_SEMAPHORES          0#define CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS          0#define CONFIGURE_MAXIMUM_ITRON_MAILBOXES           0#define CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS     0#define CONFIGURE_MAXIMUM_ITRON_PORTS               0#define CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS        0#define CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS  0#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API     0#define CONFIGURE_MEMORY_FOR_ITRON                  0#endif    /* RTEMS_ITRON_API *//*  *  Calculate the RAM size based on the maximum number of objects configured. */#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE#define CONFIGURE_OBJECT_TABLE_STUFF \  ( sizeof(Objects_Control *) + sizeof(rtems_name *) + sizeof(rtems_name) )#define CONFIGURE_MEMORY_FOR_TASKS(_tasks) \  (((_tasks) + 1 ) * \   ((sizeof(Thread_Control) + CONTEXT_FP_SIZE + \      STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \      CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API + \      CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API + \      CONFIGURE_OBJECT_TABLE_STUFF)) \  )#define CONFIGURE_MEMORY_FOR_TIMERS(_timers) \  ((_timers) * ( sizeof(Timer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \  ((_semaphores) * \   ( sizeof(Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \  ( (_queues) * \    ( sizeof(Message_queue_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \  ( (_partitions) * \    ( sizeof(Partition_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_REGIONS(_regions) \  ( (_regions) * \    ( sizeof(Region_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_PORTS(_ports) \  ( (_ports) * \    ( sizeof(Dual_ported_memory_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_PERIODS(_periods) \  ( (_periods) * \    ( sizeof(Rate_monotonic_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \  ( (_extensions) * \    ( sizeof(Extension_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )#define CONFIGURE_MEMORY_FOR_DEVICES(_devices) \  (((_devices) + 1) * ( sizeof(rtems_driver_name_t) ) )#ifdef CONFIGURE_MP_APPLICATION#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE#define CONFIGURE_MEMORY_FOR_PROXIES(_proxies) \  ( ((_proxies) + 1) * ( sizeof(Thread_Proxy_control) )  )#define CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \  ((_global_objects)  * ( sizeof(Objects_MP_Control) )  )#define CONFIGURE_MEMORY_FOR_MP \  ( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \    CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) + \    CONFIGURE_MEMORY_FOR_TASKS(1) \  )#endif  /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */#else#define CONFIGURE_MEMORY_FOR_MP  0#endif#ifndef CONFIGURE_MEMORY_OVERHEAD#define CONFIGURE_MEMORY_OVERHEAD 0#endif#ifndef CONFIGURE_EXTRA_TASK_STACKS#define CONFIGURE_EXTRA_TASK_STACKS 0#endif#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD \  ( CONFIGURE_MEMORY_FOR_TASKS(1) +    /* IDLE */ \    (256 * 12) +                       /* Ready chains */ \    256        +                       /* name/ptr table overhead */ \    CONFIGURE_INTERRUPT_STACK_MEMORY   /* interrupt stack */ \  )/* *  Now account for any extra memory that initialization tasks or threads *  may have requested. */#ifdef RTEMS_POSIX_API#define CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART \    (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - RTEMS_MINIMUM_STACK_SIZE)#else#define CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART 0#endif#ifdef RTEMS_ITRON_API#define CONFIGURE_INITIALIZATION_THREADS_STACKS_ITRON_PART \    (CONFIGURE_ITRON_INIT_TASK_STACK_SIZE - RTEMS_MINIMUM_STACK_SIZE)#else#define CONFIGURE_INITIALIZATION_THREADS_STACKS_ITRON_PART 0#endif#define CONFIGURE_INITIALIZATION_THREADS_STACKS \   ((CONFIGURE_INIT_TASK_STACK_SIZE - RTEMS_MINIMUM_STACK_SIZE) + \    CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART + \    CONFIGURE_INITIALIZATION_THREADS_STACKS_ITRON_PART)#define CONFIGURE_EXECUTIVE_RAM_SIZE \(( CONFIGURE_MEMORY_FOR_POSIX + \   CONFIGURE_MEMORY_FOR_ITRON + \   CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS + \      CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS + \      CONFIGURE_MAXIMUM_ITRON_TASKS ) + \   CONFIGURE_INITIALIZATION_THREADS_STACKS + \   CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \   CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES + \     CONFIGURE_LIBIO_SEMAPHORES + CONFIGURE_TERMIOS_SEMAPHORES) + \   CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES) + \   CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS) + \   CONFIGURE_MEMORY_FOR_REGIONS( \      CONFIGURE_MAXIMUM_REGIONS + CONFIGURE_MALLOC_REGION ) + \   CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS) + \   CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS) + \   CONFIGURE_MEMORY_FOR_USER_EXTENSIONS( \      CONFIGURE_MAXIMUM_USER_EXTENSIONS + CONFIGURE_NEWLIB_EXTENSION + \      CONFIGURE_STACK_CHECKER_EXTENSION ) + \   CONFIGURE_MEMORY_FOR_DEVICES(CONFIGURE_MAXIMUM_DEVICES) + \   CONFIGURE_MEMORY_FOR_MP + \   CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD + \   (((CONFIGURE_MEMORY_OVERHEAD)+1) * 1024) + \   (CONFIGURE_EXTRA_TASK_STACKS) + (CONFIGURE_ADA_TASKS_STACK) \) & 0xfffffc00)#endif#ifdef CONFIGURE_GNAT_RTEMS#define CONFIGURE_GNAT_MUTEXES 10#define CONFIGURE_GNAT_KEYS    1/* 20 are required to run all tests in the ACVC */#ifndef CONFIGURE_MAXIMUM_ADA_TASKS#define CONFIGURE_MAXIMUM_ADA_TASKS  20#endif/* This is the number of non-Ada tasks which invoked Ada code. */#ifndef CONFIGURE_MAXIMUM_FAKE_ADA_TASKS#define CONFIGURE_MAXIMUM_FAKE_ADA_TASKS 0#endif/* Ada tasks are allocated twice the minimum stack space */#define CONFIGURE_ADA_TASKS_STACK \  (CONFIGURE_MAXIMUM_ADA_TASKS * (RTEMS_MINIMUM_STACK_SIZE + (6 * 1024)))#else#define CONFIGURE_GNAT_MUTEXES           0#define CONFIGURE_GNAT_KEYS              0#define CONFIGURE_MAXIMUM_ADA_TASKS      0#define CONFIGURE_MAXIMUM_FAKE_ADA_TASKS 0#define CONFIGURE_ADA_TASKS_STACK        0#endif#ifdef CONFIGURE_INITrtems_api_configuration_table Configuration_RTEMS_API = {  CONFIGURE_MAXIMUM_TASKS,  CONFIGURE_MAXIMUM_TIMERS,  CONFIGURE_MAXIMUM_SEMAPHORES + CONFIGURE_LIBIO_SEMAPHORES +    CONFIGURE_TERMIOS_SEMAPHORES,  CONFIGURE_MAXIMUM_MESSAGE_QUEUES,  CONFIGURE_MAXIMUM_PARTITIONS,  CONFIGURE_MAXIMUM_REGIONS + CONFIGURE_MALLOC_REGION,  CONFIGURE_MAXIMUM_PORTS,  CONFIGURE_MAXIMUM_PERIODS,  CONFIGURE_INIT_TASK_TABLE_SIZE,  CONFIGURE_INIT_TASK_TABLE};#ifdef RTEMS_POSIX_APIposix_api_configuration_table Configuration_POSIX_API = {  CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS,  CONFIGURE_MAXIMUM_POSIX_MUTEXES + CONFIGURE_GNAT_MUTEXES +    CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,  CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES +    CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,  CONFIGURE_MAXIMUM_POSIX_KEYS + CONFIGURE_GNAT_KEYS,  CONFIGURE_MAXIMUM_POSIX_TIMERS,  CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS,  CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES,  CONFIGURE_MAXIMUM_POSIX_SEMAPHORES,  CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE,  CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME};#endif#ifdef RTEMS_ITRON_APIitron_api_configuration_table Configuration_ITRON_API = {  CONFIGURE_MAXIMUM_ITRON_TASKS,  CONFIGURE_MAXIMUM_ITRON_SEMAPHORES,  CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS,  CONFIGURE_MAXIMUM_ITRON_MAILBOXES,  CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS,  CONFIGURE_MAXIMUM_ITRON_PORTS,  CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS,  CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS,  CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE,  CONFIGURE_ITRON_INIT_TASK_TABLE_NAME};#endifrtems_configuration_table Configuration = {  CONFIGURE_EXECUTIVE_RAM_WORK_AREA,  CONFIGURE_EXECUTIVE_RAM_SIZE,  CONFIGURE_MAXIMUM_USER_EXTENSIONS + CONFIGURE_NEWLIB_EXTENSION +       CONFIGURE_STACK_CHECKER_EXTENSION,  CONFIGURE_MICROSECONDS_PER_TICK,  CONFIGURE_TICKS_PER_TIMESLICE,  CONFIGURE_MAXIMUM_DEVICES,  CONFIGURE_MAXIMUM_DRIVERS,  CONFIGURE_NUMBER_OF_DRIVERS,               /* number of device drivers */  Device_drivers,                            /* pointer to driver table */  CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS,    /* number of initial extensions */  CONFIGURE_INITIAL_EXTENSION_TABLE,         /* pointer to initial extensions */  CONFIGURE_MULTIPROCESSING_TABLE,           /* pointer to MP config table */  &Configuration_RTEMS_API,                  /* pointer to RTEMS API config */#ifdef RTEMS_POSIX_API  &Configuration_POSIX_API,                  /* pointer to POSIX API config */#else  NULL,                                      /* pointer to POSIX API config */#endif#ifdef RTEMS_ITRON_API  &Configuration_ITRON_API                   /* pointer to ITRON API config */#else  NULL                                       /* pointer to ITRON API config */#endif};#endif#endif /* CONFIGURE_HAS_OWN_CONFIGURATION_TABLE */#ifdef __cplusplus}#endif /* *  Some warnings and error checking *//* *  Make sure a task/thread of some sort is configured */#if (CONFIGURE_MAXIMUM_TASKS == 0) && \    (CONFIGURE_MAXIMUM_POSIX_THREADS == 0) && \    (CONFIGURE_MAXIMUM_ADA_TASKS == 0) &&  \    (CONFIGURE_MAXIMUM_ITRON_TASKS == 0)#error "CONFIGURATION ERROR: No tasks or threads configured!!"#endif/* *  Make sure at least one of the initialization task/thread *  tables was defined. */#if !defined(CONFIGURE_RTEMS_INIT_TASKS_TABLE) && \    !defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) && \    !defined(CONFIGURE_ITRON_INIT_TASK_TABLE)#error "CONFIGURATION ERROR: No initialization tasks or threads configured!!"#endif#endif/* end of include file */

⌨️ 快捷键说明

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