亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? language.naming.html

?? ecos 文檔
?? HTML
字號(hào):
<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
<!-- This material may be distributed only subject to the terms      -->
<!-- and conditions set forth in the Open Publication License, v1.0  -->
<!-- or later (the latest version is presently available at          -->
<!-- http://www.opencontent.org/openpub/).                           -->
<!-- Distribution of the work or derivative of the work in any       -->
<!-- standard (paper) book form is prohibited unless prior           -->
<!-- permission is obtained from the copyright holder.               -->
<HTML
><HEAD
><TITLE
>Option Naming Convention</TITLE
><meta name="MSSmartTagsPreventParsing" content="TRUE">
<META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="The eCos Component Writer's Guide"
HREF="cdl-guide.html"><LINK
REL="UP"
TITLE="The CDL Language"
HREF="language.html"><LINK
REL="PREVIOUS"
TITLE="CDL Properties"
HREF="language.properties.html"><LINK
REL="NEXT"
TITLE="An Introduction to Tcl"
HREF="language.tcl.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The <SPAN
CLASS="APPLICATION"
>eCos</SPAN
> Component Writer's Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="language.properties.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. The CDL Language</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="language.tcl.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="LANGUAGE.NAMING">Option Naming Convention</H1
><P
>All the options in a given configuration live in the same namespace.
Furthermore it is not possible for two separate options to have the
same name, because this would make any references to those options in
<SPAN
CLASS="APPLICATION"
>CDL</SPAN
> expressions ambiguous. A naming convention exists to avoid
problems. It is recommended that component writers observe some or all
of this convention to reduce the probability of name clashes with
other packages.</P
><P
>There is an important restriction on option names. Typically the
component framework will output a <TT
CLASS="LITERAL"
>#define</TT
> for every
active and enabled option, using the name as the symbol being defined.
This requires that all names are valid C preprocessor symbols, a
limitation that is enforced even for options which have the
<SPAN
CLASS="PROPERTY"
>no_define</SPAN
> property. Preprocessor symbols can be any sequence of
lower case letters <TT
CLASS="LITERAL"
>a</TT
>-<TT
CLASS="LITERAL"
>z</TT
>, upper
case letters, <TT
CLASS="LITERAL"
>A</TT
>-<TT
CLASS="LITERAL"
>Z</TT
>, the
underscore character <TT
CLASS="LITERAL"
>_</TT
>, and the digits
<TT
CLASS="LITERAL"
>0</TT
>-<TT
CLASS="LITERAL"
>9</TT
>. The first character must be
a non-digit. Using an underscore as the first character is
discouraged, because that may clash with reserved language
identifiers. In addition there is a convention that preprocessor
symbols only use upper case letters, and some component writers may
wish to follow this convention.</P
><P
>A typical option name could be something like
<TT
CLASS="VARNAME"
>CYGSEM_KERNEL_SCHED_BITMAP</TT
>. This name consists of
several different parts:</P
><P
></P
><OL
TYPE="1"
><LI
><P
>The first few characters, in this case the three letters
<TT
CLASS="LITERAL"
>CYG</TT
>, are used to identify the organization that
produced the package. For historical reasons packages produced by Red
Hat tend to use the prefix <TT
CLASS="LITERAL"
>CYG</TT
> rather than
<TT
CLASS="LITERAL"
>RHAT</TT
>. Component writers should use their own
prefix: even when cutting and pasting from an existing <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> script
the prefix should be changed to something appropriate to their
organization. </P
><P
>It can be argued that a short prefix, often limited to upper case
letters, is not sufficiently long to eliminate the possibility of
name clashes. A longer prefix could be used, for example one based on
internet domain names. However the C preprocessor has no concept of
namespaces or <TT
CLASS="LITERAL"
>import</TT
> directives, so it would always
be necessary to use the full option name in component source code
which gets tedious - option names tend to be long enough as it is.
There is a small increased risk of name clashes, but this risk is felt
to be acceptable.</P
></LI
><LI
><P
>The next three characters indicate the nature of the option, for
example whether it affects the interface or just the implementation. A
list of common tags is given below.</P
></LI
><LI
><P
>The <TT
CLASS="LITERAL"
>KERNEL_SCHED</TT
> part indicates the location of the
option within the overall hierarchy. In this case the option is part of
the scheduling component of the kernel package. Having the hierarchy
details as part of the option name can help in understanding
configurable code and further reduces the probability of a name clash.</P
></LI
><LI
><P
>The final part, <TT
CLASS="LITERAL"
>BITMAP</TT
>, identifies the option
itself. </P
></LI
></OL
><P
>The three-character tag is intended to provide some additional
information about the nature of the option. There are a number of
pre-defined tags. However for many options there is a choice:
options related to the platform should normally use
<TT
CLASS="LITERAL"
>HWR</TT
>, but numerical options should normally use
<TT
CLASS="LITERAL"
>NUM</TT
>; a platform-related numerical option such as
the size of an interrupt stack could therefore use either tag.
There are no absolute rules, and it is left to component writers to
interpret the following guidelines:</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="LITERAL"
>xxxARC_</TT
></DT
><DD
><P
>The <TT
CLASS="LITERAL"
>ARC</TT
> tag is intended for options related
to the processor architecture. Typically such options will only occur
in architectural or variant HAL packages.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxHWR_</TT
></DT
><DD
><P
>The <TT
CLASS="LITERAL"
>HWR</TT
> tag is intended for options related to
the specific target board. Typically such options will only occur in
platform HAL packages.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxPKG_</TT
></DT
><DD
><P
>This tag is intended for packages or components, in other words
options which extend the configuration hierarchy. Arguably a
<TT
CLASS="LITERAL"
>COM</TT
> tag would be more appropriate for
components, but this could be confusing because of the considerable
number of computing terms that begin with com.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxGLO_</TT
></DT
><DD
><P
>This is intended for global configuration options, especially
preferences.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxDBG_</TT
></DT
><DD
><P
>The <TT
CLASS="LITERAL"
>DBG</TT
> tag indicates that the option is in
some way related to debugging, for example it may enable assertions in
some part of the system.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxTST_</TT
></DT
><DD
><P
>This tag is for testing-related options. Typically these do not
affect actual application code, instead they control the interaction
between target-side test cases and a host-side testing infrastructure.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxFUN_</TT
></DT
><DD
><P
>This is for configuration options which affect the interface of a
package. There are a number of related tag which are also
interface-related. <TT
CLASS="LITERAL"
>xxxFUN_</TT
> is intended primarily
for options that control whether or not one or more functions are
provided by the package, but can also be used if none of the other
interface-related tags is applicable.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxVAR_</TT
></DT
><DD
><P
>This is analogous to <TT
CLASS="LITERAL"
>FUN</TT
> but controls the presence
or absence of one or more variables or objects.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxCLS_</TT
></DT
><DD
><P
>The <TT
CLASS="LITERAL"
>CLS</TT
> tag is intended only for packages that
provide an object-oriented interface, and controls the presence or
absence of an entire class.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxMFN_</TT
></DT
><DD
><P
>This is also for object-orientated interfaces, and indicates the
presence or absence of a member function rather than an entire class.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxSEM_</TT
></DT
><DD
><P
>A <TT
CLASS="LITERAL"
>SEM</TT
> option does not affect the interface (or if
does affect the interface, this is incidental). Instead it is used for
options which have a fundamental effect on the semantic behavior of a
package. For example the choice of kernel schedulers is semantic in
nature: it does not affect the interface, in particular the function
<TT
CLASS="FUNCTION"
>cyg_thread_create</TT
> exists irrespective of which
scheduler has been selected. However it does have a major impact on
the system's behavior.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxIMP_</TT
></DT
><DD
><P
><TT
CLASS="LITERAL"
>IMP</TT
> is for implementation options. These do not
affect either the interface or the semantic behavior (with the
possible exception of timing-related changes). A typical
implementation option controls whether or not a particular function or
set of functions should get inlined.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxNUM_</TT
></DT
><DD
><P
>This tag is for numerical options, for example the number of
scheduling priority levels.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxDAT_</TT
></DT
><DD
><P
>This is for data items that are not numerical in nature, for example a
device name.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxBLD_</TT
></DT
><DD
><P
>The <TT
CLASS="LITERAL"
>BLD</TT
> tag indicates an option that affects
the build process, for example compiler flag settings.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxINT_</TT
></DT
><DD
><P
>This should normally be used for <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> interfaces, which is a language
construct that is largely independent from the interface exported by a
package via its header files. For more details of <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> interfaces
see <A
HREF="language.interface.html"
>the Section called <I
>Interfaces</I
></A
>.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxPRI_</TT
></DT
><DD
><P
>This tag is not normally used for configuration options. Instead
it is used by <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> scripts to pass additional private information to
the source code via the configuration header files, typically inside a
<SPAN
CLASS="PROPERTY"
>define_proc</SPAN
> property.</P
></DD
><DT
><TT
CLASS="LITERAL"
>xxxSRC_</TT
></DT
><DD
><P
>This tag is not normally used for configuration options. Instead
it can be used by package source code to interact with such options,
especially in the context of the <SPAN
CLASS="PROPERTY"
>if_define</SPAN
> property.</P
></DD
></DL
></DIV
><P
>There is one special case of a potential name clash that is worth
mentioning here. When the component framework generates a
configuration header file for a given package, by default it will use
a name derived from the package name (the <SPAN
CLASS="PROPERTY"
>define_header</SPAN
> property can
be used to override this). The file name is constructed from the
package name by removing everything up to and including the first
underscore, converting the remainder of the name to lower case, and
appending a <TT
CLASS="LITERAL"
>.h</TT
> suffix. For example the kernel
package <TT
CLASS="VARNAME"
>CYGPKG_KERNEL</TT
> will involve a header file
<TT
CLASS="FILENAME"
>pkgconf/kernel.h</TT
>. If a
configuration contained some other package
<TT
CLASS="VARNAME"
>XYZPKG_KERNEL</TT
> then this would attempt to use the
same configuration header file, with unfortunate effects. Case
sensitivity could introduce problems as well, so a package
<TT
CLASS="VARNAME"
>xyzpkg_kernel</TT
> would involve the same problem. Even
if the header file names preserved the case of the package name, not
all file systems are case sensitive. There is no simple solution to
this problem. Changing the names of the generated configuration header
files would involve a major incompatible change to the interface, to
solve a problem which is essentially hypothetical in nature.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="language.properties.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="cdl-guide.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="language.tcl.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>CDL Properties</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="language.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>An Introduction to Tcl</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女天天操| 久久国产精品72免费观看| 国产精品免费免费| 欧美本精品男人aⅴ天堂| 欧美色综合网站| 99热精品国产| 成年人午夜久久久| 国产成人丝袜美腿| 国产在线不卡一区| 秋霞国产午夜精品免费视频| 亚洲一二三四区不卡| 亚洲欧美一区二区在线观看| 欧美激情一区二区三区| 久久久综合视频| 国产亚洲精品精华液| 国产网站一区二区三区| 欧美激情中文不卡| 亚洲欧洲日产国码二区| 亚洲欧美乱综合| 亚洲成年人影院| 日本欧美加勒比视频| 日韩电影在线观看网站| 精品一区二区三区视频| 麻豆精品视频在线观看免费| 久久狠狠亚洲综合| 国产mv日韩mv欧美| 91丨porny丨国产入口| 日本黄色一区二区| 欧美日韩国产在线播放网站| 日韩欧美国产一二三区| 国产欧美精品一区二区色综合| 色综合久久中文综合久久97| 日韩av电影免费观看高清完整版| 亚洲精品中文字幕乱码三区| 欧美精品一区二区三区一线天视频| 91社区在线播放| 国产aⅴ综合色| 国产精品一区二区久激情瑜伽| 久久精品国产免费看久久精品| 91小宝寻花一区二区三区| 久久亚洲欧美国产精品乐播| 一区二区三区中文在线观看| 处破女av一区二区| 亚洲精品一区二区三区99| 日韩av电影天堂| 欧美在线不卡一区| 一区二区三区在线观看动漫| 国产91精品露脸国语对白| 99re热这里只有精品视频| 欧美午夜精品久久久久久孕妇| 777xxx欧美| 日本一区二区成人| 亚洲成av人影院在线观看网| 国产在线精品免费| 成人网页在线观看| 不卡av电影在线播放| 欧美日韩一区二区电影| 欧美激情艳妇裸体舞| 日韩精品欧美精品| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩在线不卡| 国产精品久久久久毛片软件| 亚洲一区中文在线| 成人美女在线视频| 69精品人人人人| 亚洲私人影院在线观看| 韩国成人精品a∨在线观看| 色天天综合久久久久综合片| 精品国产不卡一区二区三区| 亚洲成a人v欧美综合天堂下载| 成年人国产精品| 国产网红主播福利一区二区| 日韩影院精彩在线| 欧美四级电影网| 亚洲精品国产a久久久久久| 国产伦理精品不卡| 欧美大尺度电影在线| 亚洲国产综合人成综合网站| 91女厕偷拍女厕偷拍高清| 欧美极品美女视频| 在线中文字幕一区二区| 国产精品久久久久久久久图文区| 成人一道本在线| 亚洲欧美国产三级| 91精品婷婷国产综合久久竹菊| 午夜欧美视频在线观看| 精品99一区二区三区| 成人福利电影精品一区二区在线观看 | 一区二区中文字幕在线| 97精品视频在线观看自产线路二| 国产精品免费视频观看| 91麻豆国产在线观看| 天天综合色天天| 久久蜜桃av一区二区天堂| 91在线高清观看| 欧美a级理论片| 亚洲欧洲综合另类在线| 911精品产国品一二三产区| 国产精品一区二区不卡| 伊人色综合久久天天| 精品嫩草影院久久| 91在线视频免费观看| 久久国产精品99精品国产| 亚洲三级电影网站| 欧美大肚乱孕交hd孕妇| 91免费观看视频在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美激情一区二区在线| 欧美裸体bbwbbwbbw| 成人永久aaa| 偷窥国产亚洲免费视频| 国产精品国产三级国产有无不卡| 欧美一级夜夜爽| 一本一道久久a久久精品综合蜜臀| 韩国三级电影一区二区| 亚洲v精品v日韩v欧美v专区| 亚洲欧美日韩国产综合在线 | 国产成人免费视频一区| 日韩黄色免费网站| 一区二区三区国产精华| 中文字幕成人av| 精品久久人人做人人爽| 欧美日本国产视频| 91成人免费网站| 色88888久久久久久影院按摩| 成人视屏免费看| 97久久精品人人澡人人爽| 91视频91自| 欧美精品日日鲁夜夜添| 欧美高清精品3d| 日韩女优制服丝袜电影| 日韩一区二区三区免费看| 亚洲一区国产视频| 3d动漫精品啪啪一区二区竹菊| 日本欧美一区二区三区乱码| 免费日韩伦理电影| 国产91露脸合集magnet| 99久久综合精品| 欧美日韩高清一区二区三区| 日韩欧美国产三级| 欧美日韩在线精品一区二区三区激情| 日本欧美一区二区三区| 综合久久一区二区三区| 日韩一二三区视频| 99久精品国产| 99精品视频在线观看免费| 欧洲视频一区二区| 欧美日本精品一区二区三区| 精品精品欲导航| 国产精品欧美极品| 亚洲国产精品人人做人人爽| 蜜桃精品视频在线观看| 成人av网站在线观看| 欧美日韩三级一区二区| 久久久www成人免费无遮挡大片| 中文字幕亚洲综合久久菠萝蜜| 亚洲成av人综合在线观看| 国产在线精品一区二区| 欧美综合视频在线观看| 亚洲精品一区二区三区蜜桃下载| 中文字幕一区二| 伦理电影国产精品| 91黄色小视频| 久久久久99精品一区| 一区二区三区av电影 | 国产91富婆露脸刺激对白| 2欧美一区二区三区在线观看视频| eeuss鲁片一区二区三区在线看| 不卡一区二区在线| 国产资源精品在线观看| 国产99一区视频免费| 不卡的av网站| 欧美日韩和欧美的一区二区| 色呦呦网站一区| 欧美日韩国产欧美日美国产精品| 欧美三级资源在线| 欧美三级电影在线看| 欧美午夜精品理论片a级按摩| 在线观看一区不卡| 欧美xingq一区二区| 国产精品丝袜在线| 久久精品国产77777蜜臀| 91麻豆文化传媒在线观看| 欧美一区二区视频观看视频 | 国产精品久久99| 久久99国产精品尤物| 欧美综合一区二区| 麻豆精品一区二区三区| 99久久综合狠狠综合久久| 精品区一区二区| 亚洲制服丝袜av| 不卡影院免费观看| 久久久久久一二三区| 婷婷亚洲久悠悠色悠在线播放| 99精品欧美一区二区蜜桃免费 | 亚洲高清视频的网址| 不卡的电影网站| 国产亚洲va综合人人澡精品| 秋霞午夜av一区二区三区| 欧美午夜精品理论片a级按摩|