📄 thread.cdl
字号:
# ====================================================================## thread.cdl## configuration data related to the kernel threads## ====================================================================#####COPYRIGHTBEGIN##### # ------------------------------------------- # The contents of this file are subject to the Red Hat eCos Public License # Version 1.1 (the "License"); you may not use this file except in # compliance with the License. You may obtain a copy of the License at # http://www.redhat.com/ # # 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 Configurable Operating System, # released September 30, 1998. # # The Initial Developer of the Original Code is Red Hat. # Portions created by Red Hat are # Copyright (C) 1998, 1999, 2000 Red Hat, Inc. # All Rights Reserved. # ------------------------------------------- # #####COPYRIGHTEND##### ====================================================================######DESCRIPTIONBEGIN###### Author(s): jskov# Original data: nickg# Contributors:# Date: 1999-07-05######DESCRIPTIONEND###### ====================================================================cdl_option CYGFUN_KERNEL_THREADS_TIMER { display "Allow per-thread timers" requires CYGVAR_KERNEL_COUNTERS_CLOCK default_value 1 description " This option controls whether or not the kernel should support per-thread clock and alarm related functions. Also some of the synchronization primitives such as semaphore and condition variable timed wait operations require per-thread timer support. If none of these facilities are required then the option can be disabled."}cdl_option CYGVAR_KERNEL_THREADS_NAME { display "Support optional name for each thread" default_value 1 description " Threads may optionally be supplied with a name string that is used to identify them during debugging. This name is only present if `this option is defined. Disabling it reduces both code and data size."}cdl_option CYGVAR_KERNEL_THREADS_LIST { display "Keep track of all threads using a linked list" default_value 1 description " Threads may optionally be placed on a housekeeping list so that all threads may be located easily. This is useful mainly in conjunction with source-level debugging."}cdl_option CYGFUN_KERNEL_THREADS_STACK_LIMIT { display "Keep track of the base of each thread's stack" default_value 1 description " This option makes the kernel keep track of the lower limit on each thread's stack. It allows the kernel to adjust the lower limit, thus making space for per-thread data. Note that it does not imply any form of run-time stack overflow checking."}cdl_component CYGVAR_KERNEL_THREADS_DATA { display "Support for per-thread data" requires CYGFUN_KERNEL_THREADS_STACK_LIMIT default_value 1 description " It is possible for the kernel to support per-thread data, in other words an area of memory specific to each thread which can be used to store data for that thread. This per-thread data can be used by applications or by other packages such as the ISO C library." cdl_option CYGNUM_KERNEL_THREADS_DATA_MAX { display "Number of words of per-thread data" flavor data legal_values 4 to 65535 default_value 6 description " It is possible for the kernel to support per-thread data, in other words an area of memory specific to each thread which can be used to store data for that thread. This per-thread data can be used by applications or by other packages such as the ISO C library. This configuration option controls the number of words of per-thread data that the kernel will allow." } cdl_component CYGNUM_KERNEL_THREADS_DATA_ALL { display "Bitmap of preallocated slots of thread data" flavor data calculated 15 description " Per thread data options. Per thread data support is based loosely on that defined by POSIX. Each thread has an array of slots, up to CYGNUM_KERNEL_THREADS_DATA_MAX, that may contain data. Some of the slots have been preallocated to specific packages. Others may be allocated dynamically." cdl_option CYGNUM_KERNEL_THREADS_DATA_KERNEL { display "Slot 0 preallocated for the kernel" flavor data calculated 0 description " This option defines the index of a per-thread data slot which is reserved by the eCos kernel for private use." } cdl_option CYGNUM_KERNEL_THREADS_DATA_ITRON { display "Slot 1 preallocated for uITRON" flavor data calculated 1 description " This option defines the index of a per-thread data slot which is reserved by the uITRON compatibility layer for private use." } cdl_option CYGNUM_KERNEL_THREADS_DATA_LIBC { display "Slot 2 preallocated for libc" flavor data calculated 2 description " This option defines the index of a per-thread data slot which is reserved by the C library (libc) for private use." } cdl_option CYGNUM_KERNEL_THREADS_DATA_POSIX { display "Slot 3 preallocated for POSIX" flavor data calculated 3 description " This option defines the index of a per-thread data slot which is reserved by POSIX for private use." } }}cdl_option CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE { display "Stack size for the idle thread" flavor data legal_values 512 to 65536 default_value 2048 description " This configuration option specifies the stack size in bytes for the idle thread. Unless the HAL is configured to use a separate interrupt stack this size must be sufficient to meet the requirements of all interrupt handlers - these requirements are cumulative if nested interrupted are enabled. Depending on the target architecture, the stack size typically has to be a multiple of eight or sixteen bytes. This will be overridden where it is used if the architectural HAL requires a minimum stack size to handle interrupts correctly."}# ---------------------------------------------------------------------# Thread-related miscellania.cdl_option CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT { display "Maximal suspend count" flavor data default_value 500 description " This option provides for an assertion that the count value for counted thread suspends do not exceed set limits. This is to help with debugging, to allow a runaaway loop, for example, to be detected more easily. If the option is not defined, no assert is included. Whether asserts are themselves included depends on infrastructure configury in infra.h"}cdl_option CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT { display "Maximal wake count" flavor data default_value 500 description " This option provides for an assertion that the count value for counted thread wakeups do not exceed set limits. This is to help with debugging, to allow a runaaway loop, for example, to be detected more easily. If the option is not defined, no assert is included. Whether asserts are themselves included depends on infrastructure configury in infra.h"} #if CYGNUM_KERNEL_SCHED_PRIORITIES == 1# define CYGIMP_IDLE_THREAD_YIELD#endifcdl_option CYGIMP_IDLE_THREAD_YIELD { display "Idle thread must always yield" calculated 1 active_if (CYGNUM_KERNEL_SCHED_PRIORITIES == 1) description " If the scheduler configuration only has a single priority level, then the idle thread must yield each time around its loop."}# ---------------------------------------------------------------------# Synchronization primitives miscellania.cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE { display "Priority inheritance" calculated 1 active_if CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE description " This option is automatically enabled when any implementation of priority inheritance is selected."}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -