📄 libc.h
字号:
#ifndef CYGONCE_PKGCONF_LIBC_H#define CYGONCE_PKGCONF_LIBC_H//========================================================================//// libc.h//// Configuration header for the ANSI standard C library////========================================================================//####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): jlarmour// Contributors: jlarmour// Date: 1999-01-20// Purpose: Configuration of the ISO C library// Description: The preprocessor defines here can be used to configure// the ISO C library, preferably with a graphical tool,// but also manually if required.// Usage: #include <pkgconf/libc.h> // ////####DESCRIPTIONEND####////========================================================================// INCLUDES// Include system configuration file to work out whether the C library is// to be included at all#include <pkgconf/system.h>/* {{CFG_DATA cdl_package CYGPKG_LIBC { display "C library" description "This package enables compatibility with the ISO C standard - ISO/IEC 9899:1990. This allows the user application to use well known standard C library functions, and in eCos starts a thread to invoke the user function main()" type boolean requires CYGPKG_ERROR doc ref/ecos-ref/the-iso-standard-c-and-math-libraries.html } }}CFG_DATA*///========================================================================// CTYPE CONFIGURATION OPTIONS/* {{CFG_DATA cdl_option CYGIMP_LIBC_CTYPE_INLINES { display "Inline versions of <ctype.h> functions" description "This option chooses whether the simple character classification and conversion functions (e.g. isupper(), isalpha(), toupper(), etc.) from <ctype.h> are available as inline functions. This may improve performance and as the functions are small, may even improve code size." type boolean parent CYGPKG_LIBC } }}CFG_DATA*/#define CYGIMP_LIBC_CTYPE_INLINES//========================================================================// STRING CONFIGURATION OPTIONS/* {{CFG_DATA cdl_component CYGPKG_LIBC_STRING { display "String functions" description "Options associated with the standard string functions" type dummy parent CYGPKG_LIBC } cdl_option CYGIMP_LIBC_STRING_INLINES { display "Inline versions of <string.h> functions" description "This option chooses whether some of the particularly simple string functions from <string.h> are available as inline functions. This may improve performance, and as the functions are small, may even improve code size." type boolean parent CYGPKG_LIBC_STRING } cdl_component CYGPKG_LIBC_STRING_OPTIMIZATIONS { display "Options for string function optimization" description "This component lets you choose between different implementations of the string functions with different tradeoffs. Most of the string functions can be implemented in two ways. One approach is geared towards smaller code size, while the other tries to improve execution speed at the expense of code size. " type dummy parent CYGPKG_LIBC_STRING } cdl_option CYGIMP_LIBC_STRING_PREFER_FAST { display "Fast" description "This option improves string function execution speed at the expense of code size. This option is overriden if the code is compiled with the -Os option to the compiler." type radio parent CYGPKG_LIBC_STRING_OPTIMIZATIONS } cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL { display "Small" description "This option tries to reduce string function code size at the expense of execution speed. The same effect can be produced if the code is compiled with the -Os option to the compiler." type radio parent CYGPKG_LIBC_STRING_OPTIMIZATIONS } cdl_component CYGPKG_LIBC_STRING_STRTOK { display "strtok" description "These options control the behaviour of the strtok() and strtok_r() string tokenization functions." type dummy parent CYGPKG_LIBC_STRING } cdl_option CYGSEM_LIBC_PER_THREAD_STRTOK { display "Per-thread strtok()" description "This option controls whether the string function strtok() has its state recorded on a per-thread basis rather than global. If this option is disabled, some per-thread space can be saved. Note there is also a POSIX-standard strtok_r() function to achieve a similar effect with user support. Enabling this option will use one slot of kernel per-thread data. You should ensure you have enough slots configured for all your per-thread data." doc ref/ecos-ref/c-and-math-library-overview-thread-safety.html type boolean parent CYGPKG_LIBC_STRING_STRTOK requires CYGVAR_KERNEL_THREADS_DATA } cdl_option CYGNUM_LIBC_STRTOK_TRACE_LEVEL { display "Tracing level" description "Trace verbosity level for debugging the <string.h> functions strtok() and strtok_r(). Increase this value to get additional trace output." type count legal_values 0 to 1 parent CYGPKG_LIBC_STRING_STRTOK } }}CFG_DATA*/#define CYGIMP_LIBC_STRING_INLINES#undef CYGIMP_LIBC_STRING_PREFER_SMALL#define CYGIMP_LIBC_STRING_PREFER_FAST#ifdef CYGIMP_LIBC_STRING_PREFER_SMALL# define CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST#endif#undef CYGSEM_LIBC_PER_THREAD_STRTOK#define CYGNUM_LIBC_STRTOK_TRACE_LEVEL 0//========================================================================// SETJMP CONFIGURATION OPTIONS/* {{CFG_DATA cdl_option CYGIMP_LIBC_SETJMP_INLINES { display "Inline version of the longjmp() function" description "This option chooses whether the longjmp() function is available as an inline function. This may improve performance, and as the function is small may even improve code size. " type boolean parent CYGPKG_LIBC } }}CFG_DATA*/#define CYGIMP_LIBC_SETJMP_INLINES//========================================================================// STDLIB CONFIGURATION OPTIONS/* {{CFG_DATA cdl_component CYGPKG_LIBC_STDLIB { display "Standard utility functions" description "Options associated with the standard utility functions in <stdlib.h>" type dummy parent CYGPKG_LIBC } cdl_option CYGIMP_LIBC_STDLIB_INLINES { display "Inline versions of <stdlib.h> functions" description "This option chooses whether some of the particularly simple standard utility functions from <stdlib.h> are available as inline functions. This may improve performance, and as the functions are small, may even improve code size." type boolean parent CYGPKG_LIBC_STDLIB } cdl_component CYGPKG_LIBC_RAND { display "Random number generation" description "These options control the behaviour of the functions rand(), srand() and rand_r()" type dummy parent CYGPKG_LIBC_STDLIB } cdl_option CYGSEM_LIBC_PER_THREAD_RAND { display "Per-thread random seed" description "This option controls whether the pseudo-random number generation functions rand() and srand() have their state recorded on a per-thread basis rather than global. If this option is disabled, some per-thread space can be saved. Note there is also a POSIX-standard rand_r() function to achieve a similar effect with user support. Enabling this option will use one slot of kernel per-thread data. You should ensure you have enough slots configured for all your per-thread data." doc ref/ecos-ref/c-and-math-library-overview-thread-safety.html type boolean requires CYGVAR_KERNEL_THREADS_DATA parent CYGPKG_LIBC_RAND } cdl_option CYGNUM_LIBC_RAND_SEED { display "Random number seed" description "This selects the initial random number seed for rand()'s pseudo-random number generator. For strict ISO standard compliance, this should be 1, as per section 7.10.2.2 of the standard." type count legal_values 0 to 0x7fffffff parent CYGPKG_LIBC_RAND } cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL { display "Tracing level" description "Trace verbosity level for debugging the rand(), srand() and rand_r() functions. Increase this value to get additional trace output." type count legal_values 0 to 1 parent CYGPKG_LIBC_RAND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -