📄 confdefs.h
字号:
#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 + -