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

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

?? language.interface.html

?? ecos 文檔
?? HTML
字號:
<!-- 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
>Interfaces</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="Values and Expressions"
HREF="language.values.html"><LINK
REL="NEXT"
TITLE="Updating the ecos.db database"
HREF="language.database.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.values.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.database.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="LANGUAGE.INTERFACE">Interfaces</H1
><P
>For many configurability requirements, options provide sufficient
expressive power. However there are times when a higher level of
abstraction is appropriate. As an example, suppose that some package
relies on the presence of code that implements the standard kernel
scheduling interface. However the requirement is no more stringent
than this, so the constraint can be satisfied by the mlqueue
scheduler, the bitmap scheduler, or any additional schedulers that may
get implemented in future. A first attempt at expressing the
dependency might be:</P
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>    requires CYGSEM_KERNEL_SCHED_MLQUEUE || CYGSEM_KERNEL_SCHED_BITMAP</PRE
></TD
></TR
></TABLE
><P
>This constraint will work with the current release, but it is limited.
Suppose there is a new release of the kernel which adds another
scheduler such as a deadline scheduler, or suppose that there is a new
third party package which adds such a scheduler. The package
containing the limited constraint would now have to be updated and
another release made, with possible knock-on effects.</P
><P
><SPAN
CLASS="APPLICATION"
>CDL</SPAN
> interfaces provide an abstraction mechanism: constraints can be
expressed in terms of an abstract concept, for example
&#8220;scheduler&#8221;, rather than specific implementations such as
<TT
CLASS="VARNAME"
>CYGSEM_KERNEL_SCHED_MLQUEUE</TT
> and
<TT
CLASS="VARNAME"
>CYGSEM_KERNEL_SCHED_BITMAP</TT
>. Basically an interface
is a calculated configuration option:</P
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>cdl_interface CYGINT_KERNEL_SCHEDULER {
    display  "Number of schedulers in this configuration"
    &#8230;
}</PRE
></TD
></TR
></TABLE
><P
>The individual schedulers can then implement this interface:</P
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>cdl_option CYGSEM_KERNEL_SCHED_MLQUEUE {
    display       "Multi-level queue scheduler"
    default_value 1
    implements    CYGINT_KERNEL_SCHEDULER
    &#8230;
}

cdl_option CYGSEM_KERNEL_SCHED_BITMAP {
    display       "Bitmap scheduler"
    default_value 0
    implements    CYGINT_KERNEL_SCHEDULER
    &#8230;
}</PRE
></TD
></TR
></TABLE
><P
>Future schedulers can also implement this interface. The value of an
interface, for the purposes of expression evaluation, is the number of
active and enabled options which implement this interface. Packages
which rely on the presence of a scheduler can impose constraints such
as:</P
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>    requires CYGINT_KERNEL_SCHEDULER</PRE
></TD
></TR
></TABLE
><P
>If none of the schedulers are enabled, or if the kernel package is not
loaded, then <TT
CLASS="VARNAME"
>CYGINT_KERNEL_SCHEDULER</TT
> will evaluate
to <TT
CLASS="LITERAL"
>0</TT
>. If at least one scheduler is active and
enabled then the constraint will be satisfied.</P
><P
>Because interfaces have a calculated value determined by the
implementors, the <SPAN
CLASS="PROPERTY"
>default_value</SPAN
> and <SPAN
CLASS="PROPERTY"
>calculated</SPAN
> properties are not
applicable and should not appear in the body of a <TT
CLASS="LITERAL"
>cdl_interface</TT
>
command. Interfaces have the <TT
CLASS="LITERAL"
>data</TT
> flavor by
default, but the <TT
CLASS="LITERAL"
>bool</TT
> and
<TT
CLASS="LITERAL"
>booldata</TT
> flavors may be specified instead. A
<TT
CLASS="LITERAL"
>bool</TT
> interface is disabled if there are no active
and enabled implementors, otherwise it is enabled. A
<TT
CLASS="LITERAL"
>booldata</TT
> interface is disabled if there are no
active and enabled implementors, otherwise it is enabled and has a
value corresponding to the number of these implementors. Other
properties such as <SPAN
CLASS="PROPERTY"
>requires</SPAN
> and <SPAN
CLASS="PROPERTY"
>compile</SPAN
> can be used as normal.</P
><P
>Some component writers will not want to use interfaces in this way.
The reasoning is that their code will only have been tested with the
existing schedulers, so the <SPAN
CLASS="PROPERTY"
>requires</SPAN
> constraint needs to be
expressed in terms of those schedulers; it is possible that the
component will still work with a new scheduler, but there are no
guarantees. Other component writers may take a more optimistic view
and assume that their code will work with any scheduler until proven
otherwise. It is up to individual component writers to decide which
approach is most appropriate in any given case.</P
><P
>One common use for interfaces is to describe the hardware
functionality provided by a given target. For example the <SPAN
CLASS="APPLICATION"
>CDL</SPAN
>
scripts for a TCP/IP package might want to know whether or not the
target hardware has an ethernet interface. Generally it is not
necessary for the TCP/IP stack to know exactly which ethernet hardware
is present, since there should be a device driver which implements the
appropriate functionality. In <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> terms the device drivers should
implement an interface <TT
CLASS="VARNAME"
>CYGHWR_NET_DRIVERS</TT
>, and the
<SPAN
CLASS="APPLICATION"
>CDL</SPAN
> scripts for the TCP/IP stack can use this in appropriate
expressions. </P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>Using the term <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>interface</I
></SPAN
> for this concept is
sometimes confusing, since the term has various other meanings as
well. In practice, it is often correct. If there is a configuration
option that implements a given <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> interface, then usually this
option will enable some code that provides a particular interface at
the C or C++ level. For example an ethernet device driver implements
the <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> interface <TT
CLASS="VARNAME"
>CYGHWR_NET_DRIVERS</TT
>, and also
implements a set of C functions that can be used by the TCP/IP stack.
Similarly <TT
CLASS="VARNAME"
>CYGSEM_KERNEL_SCHED_MLQUEUE</TT
> implements
the <SPAN
CLASS="APPLICATION"
>CDL</SPAN
> interface <TT
CLASS="VARNAME"
>CYGINT_KERNEL_SCHEDULER</TT
> and
also provides the appropriate scheduling functions.</P
></BLOCKQUOTE
></DIV
></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.values.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.database.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Values and Expressions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="language.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Updating the <SPAN
CLASS="DATABASE"
>ecos.db</SPAN
> database</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费亚洲电影在线| 欧美日韩情趣电影| 精品视频1区2区| 亚洲精品一区二区三区精华液| 亚洲色图欧美偷拍| 日韩精品亚洲专区| 色综合中文字幕国产 | 天堂成人国产精品一区| 国产精品一区二区三区99| 欧美伊人久久大香线蕉综合69 | 日韩一级片网站| 亚洲伦理在线精品| 粉嫩在线一区二区三区视频| 日韩免费一区二区| 日韩成人精品在线| 欧美日韩免费视频| 亚洲成人av免费| www.亚洲人| 国产女人18毛片水真多成人如厕| 麻豆一区二区99久久久久| 欧美日韩午夜在线视频| 一区二区在线观看免费| 91网站最新地址| 亚洲欧洲精品天堂一级| 成人午夜av电影| 国产精品久久久久久久第一福利| 国产真实乱子伦精品视频| 日韩三级在线观看| 九九精品视频在线看| 日韩欧美在线不卡| 久久精品国产网站| 26uuu亚洲综合色| 国产精品一区二区三区四区| 亚洲精品一区二区三区福利| 国产伦精一区二区三区| 国产欧美日韩中文久久| 大陆成人av片| 亚洲日韩欧美一区二区在线| 福利视频网站一区二区三区| 国产欧美日韩不卡| 97成人超碰视| 亚洲伊人伊色伊影伊综合网| 欧美日韩精品专区| 麻豆精品一二三| 国产亚洲欧美激情| eeuss鲁一区二区三区| 亚洲欧美色图小说| 欧美日韩夫妻久久| 久久精品国产亚洲一区二区三区| 精品盗摄一区二区三区| 国产91精品久久久久久久网曝门| 国产精品无遮挡| 在线免费观看一区| 麻豆一区二区三| 国产精品三级视频| 欧美日韩亚洲丝袜制服| 看电影不卡的网站| 欧美国产欧美亚州国产日韩mv天天看完整| 成人午夜精品在线| 亚洲图片欧美视频| 久久综合网色—综合色88| yourporn久久国产精品| 日韩不卡一区二区| 欧美国产精品劲爆| 欧美日韩另类一区| 国产一区二区三区高清播放| 成人欧美一区二区三区视频网页 | av在线不卡网| 亚洲成人久久影院| 欧美极品美女视频| 91精品国产综合久久精品图片| 国产成人av一区二区三区在线观看| 亚洲欧美二区三区| 日韩精品在线看片z| 91麻豆文化传媒在线观看| 免费在线观看日韩欧美| 国产精品久久免费看| 欧美日韩精品一区二区天天拍小说| 精品亚洲成av人在线观看| 亚洲综合免费观看高清在线观看 | 欧美一级视频精品观看| 成人av网站免费| 另类中文字幕网| 亚洲在线免费播放| 日本一区二区三级电影在线观看| 欧美三级电影精品| 粗大黑人巨茎大战欧美成人| 奇米色一区二区| 亚洲人成伊人成综合网小说| 国产三级精品在线| 日韩欧美123| 欧美精品123区| 色哦色哦哦色天天综合| 国产精品性做久久久久久| 美女视频黄久久| 亚洲国产综合在线| 亚洲激情自拍偷拍| 国产精品久久一卡二卡| 国产三区在线成人av| 欧美xxxxx牲另类人与| 69精品人人人人| 欧美视频一区二区三区| 欧洲中文字幕精品| 91婷婷韩国欧美一区二区| 成人一区二区三区| 国产乱码精品一区二区三| 精品一区二区三区的国产在线播放 | 亚洲.国产.中文慕字在线| 一区二区在线观看视频| 亚洲激情男女视频| 亚洲精品国产一区二区精华液 | 久久久精品免费免费| 一区二区三区产品免费精品久久75| 日韩午夜电影在线观看| 欧美日韩一二区| 欧美日韩一区不卡| 欧美日韩不卡一区二区| 欧美日韩国产综合草草| 欧美日韩高清一区二区三区| 在线精品国精品国产尤物884a| 一本色道久久加勒比精品| 91麻豆123| 欧美网站大全在线观看| 欧美群妇大交群中文字幕| 欧美疯狂性受xxxxx喷水图片| 欧美日韩国产三级| aa级大片欧美| 91在线丨porny丨国产| 色婷婷av一区二区三区软件| 欧美视频在线播放| 日韩欧美国产高清| 欧美国产成人精品| 亚洲精品高清视频在线观看| 香蕉久久一区二区不卡无毒影院| 日本在线不卡视频| 国产高清成人在线| av色综合久久天堂av综合| 欧洲av在线精品| 日韩欧美色综合| 国产精品久久久久aaaa| 亚洲国产日产av| 国产麻豆欧美日韩一区| 色噜噜狠狠成人中文综合| 欧美高清精品3d| 国产欧美精品一区| 亚洲午夜久久久久久久久电影网| 麻豆极品一区二区三区| 99热国产精品| 日韩欧美国产一区二区在线播放 | 欧美经典三级视频一区二区三区| 亚洲欧美偷拍卡通变态| 久久精品国产精品青草| 9人人澡人人爽人人精品| 欧美久久久一区| 欧美国产精品劲爆| 日韩电影在线看| 91在线小视频| 日韩女优制服丝袜电影| 亚洲免费电影在线| 国产精华液一区二区三区| 欧美在线观看视频一区二区三区 | 国产成人aaaa| 7777精品伊人久久久大香线蕉的| 国产精品水嫩水嫩| 麻豆精品久久久| 色老综合老女人久久久| 国产日韩欧美综合一区| 日韩精品欧美精品| 色欧美乱欧美15图片| 亚洲国产精品精华液2区45| 麻豆传媒一区二区三区| 色999日韩国产欧美一区二区| 久久久www成人免费无遮挡大片 | 国v精品久久久网| 欧美一区二区三区四区五区| 亚洲欧美在线视频观看| 国产成人精品影视| 精品女同一区二区| 午夜精品一区二区三区电影天堂| 成人小视频免费观看| 久久久久久电影| 精品在线播放免费| 91精品蜜臀在线一区尤物| 亚洲一区二区美女| 91蜜桃传媒精品久久久一区二区| 中文字幕不卡在线播放| 国产一区二区视频在线播放| 欧美成人欧美edvon| 麻豆成人综合网| 欧美不卡一二三| 麻豆一区二区99久久久久| 欧美一区二区三区白人| 国产网站一区二区三区| 91丨九色丨蝌蚪富婆spa| 91 com成人网| 亚洲另类一区二区| 99免费精品在线| 亚洲国产精品精华液2区45| 久久国产夜色精品鲁鲁99| 日韩欧美激情四射|