]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/cdl-guide/ref.implements.html
Initial revision
[karo-tx-redboot.git] / doc / html / cdl-guide / ref.implements.html
1 <!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2 <!-- This material may be distributed only subject to the terms      -->
3 <!-- and conditions set forth in the Open Publication License, v1.0  -->
4 <!-- or later (the latest version is presently available at          -->
5 <!-- http://www.opencontent.org/openpub/).                           -->
6 <!-- Distribution of the work or derivative of the work in any       -->
7 <!-- standard (paper) book form is prohibited unless prior           -->
8 <!-- permission is obtained from the copyright holder.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >implements</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
14 <META
15 NAME="GENERATOR"
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17 "><LINK
18 REL="HOME"
19 TITLE="The eCos Component Writer's Guide"
20 HREF="cdl-guide.html"><LINK
21 REL="UP"
22 TITLE="CDL Language Specification"
23 HREF="reference.html"><LINK
24 REL="PREVIOUS"
25 TITLE="if_define"
26 HREF="ref.if-define.html"><LINK
27 REL="NEXT"
28 TITLE="include_dir"
29 HREF="ref.include-dir.html"></HEAD
30 ><BODY
31 CLASS="REFENTRY"
32 BGCOLOR="#FFFFFF"
33 TEXT="#000000"
34 LINK="#0000FF"
35 VLINK="#840084"
36 ALINK="#0000FF"
37 ><DIV
38 CLASS="NAVHEADER"
39 ><TABLE
40 SUMMARY="Header navigation table"
41 WIDTH="100%"
42 BORDER="0"
43 CELLPADDING="0"
44 CELLSPACING="0"
45 ><TR
46 ><TH
47 COLSPAN="3"
48 ALIGN="center"
49 >The <SPAN
50 CLASS="APPLICATION"
51 >eCos</SPAN
52 > Component Writer's Guide</TH
53 ></TR
54 ><TR
55 ><TD
56 WIDTH="10%"
57 ALIGN="left"
58 VALIGN="bottom"
59 ><A
60 HREF="ref.if-define.html"
61 ACCESSKEY="P"
62 >Prev</A
63 ></TD
64 ><TD
65 WIDTH="80%"
66 ALIGN="center"
67 VALIGN="bottom"
68 ></TD
69 ><TD
70 WIDTH="10%"
71 ALIGN="right"
72 VALIGN="bottom"
73 ><A
74 HREF="ref.include-dir.html"
75 ACCESSKEY="N"
76 >Next</A
77 ></TD
78 ></TR
79 ></TABLE
80 ><HR
81 ALIGN="LEFT"
82 WIDTH="100%"></DIV
83 ><H1
84 ><A
85 NAME="REF.IMPLEMENTS"><SPAN
86 CLASS="PROPERTY"
87 >implements</SPAN
88 ></H1
89 ><DIV
90 CLASS="REFNAMEDIV"
91 ><A
92 NAME="AEN4507"
93 ></A
94 ><H2
95 >Name</H2
96 >Property <SPAN
97 CLASS="PROPERTY"
98 >implements</SPAN
99 >&nbsp;--&nbsp;Enabling this option provides one instance of a more
100 general interface.</DIV
101 ><DIV
102 CLASS="REFSYNOPSISDIV"
103 ><A
104 NAME="AEN4511"><H2
105 >Synopsis</H2
106 ><TABLE
107 BORDER="5"
108 BGCOLOR="#E0E0F0"
109 WIDTH="70%"
110 ><TR
111 ><TD
112 ><PRE
113 CLASS="SYNOPSIS"
114 >cdl_option &lt;name&gt; {
115     implements &lt;interface&gt;
116     &#8230;
117 }</PRE
118 ></TD
119 ></TR
120 ></TABLE
121 ></DIV
122 ><DIV
123 CLASS="REFSECT1"
124 ><A
125 NAME="AEN4513"
126 ></A
127 ><H2
128 >Description</H2
129 ><P
130 >The <SPAN
131 CLASS="APPLICATION"
132 >CDL</SPAN
133 > interface concept provides an abstraction mechanism that can
134 be useful in many different circumstances. Essentially an interface is
135 a calculated option whose value is the number of active and enabled
136 options which implement that interface. For example the interface
137 <TT
138 CLASS="VARNAME"
139 >CYGINT_KERNEL_SCHEDULER</TT
140 > has a value corresponding
141 to the number of schedulers in the system, typically just one.</P
142 ><P
143 >The <SPAN
144 CLASS="PROPERTY"
145 >implements</SPAN
146 > property takes a single argument, which should be the
147 name of an interface. This interface may be defined in the same
148 package as the implementor or in some other package. In the latter
149 case it may sometimes be appropriate for the implementor or the
150 implementor's package to have a <SPAN
151 CLASS="PROPERTY"
152 >requires</SPAN
153 > property for the package
154 containing the interface. An option may contain multiple <SPAN
155 CLASS="PROPERTY"
156 >implements</SPAN
157 >
158 properties. It is possible for an option to implement a given
159 interface multiple times, and on occasion this is actually useful.</P
160 ></DIV
161 ><DIV
162 CLASS="REFSECT1"
163 ><A
164 NAME="AEN4522"
165 ></A
166 ><H2
167 >Example</H2
168 ><TABLE
169 BORDER="5"
170 BGCOLOR="#E0E0F0"
171 WIDTH="70%"
172 ><TR
173 ><TD
174 ><PRE
175 CLASS="PROGRAMLISTING"
176 >cdl_option CYGSEM_KERNEL_SCHED_MLQUEUE {
177     display       "Multi-level queue scheduler"
178     default_value 1
179     implements    CYGINT_KERNEL_SCHEDULER
180     &#8230;
181 }</PRE
182 ></TD
183 ></TR
184 ></TABLE
185 ></DIV
186 ><DIV
187 CLASS="REFSECT1"
188 ><A
189 NAME="AEN4525"
190 ></A
191 ><H2
192 >See Also</H2
193 ><P
194 >Command <A
195 HREF="ref.cdl-interface.html"
196 ><TT
197 CLASS="LITERAL"
198 >cdl_interface</TT
199 ></A
200 >.</P
201 ></DIV
202 ><DIV
203 CLASS="NAVFOOTER"
204 ><HR
205 ALIGN="LEFT"
206 WIDTH="100%"><TABLE
207 SUMMARY="Footer navigation table"
208 WIDTH="100%"
209 BORDER="0"
210 CELLPADDING="0"
211 CELLSPACING="0"
212 ><TR
213 ><TD
214 WIDTH="33%"
215 ALIGN="left"
216 VALIGN="top"
217 ><A
218 HREF="ref.if-define.html"
219 ACCESSKEY="P"
220 >Prev</A
221 ></TD
222 ><TD
223 WIDTH="34%"
224 ALIGN="center"
225 VALIGN="top"
226 ><A
227 HREF="cdl-guide.html"
228 ACCESSKEY="H"
229 >Home</A
230 ></TD
231 ><TD
232 WIDTH="33%"
233 ALIGN="right"
234 VALIGN="top"
235 ><A
236 HREF="ref.include-dir.html"
237 ACCESSKEY="N"
238 >Next</A
239 ></TD
240 ></TR
241 ><TR
242 ><TD
243 WIDTH="33%"
244 ALIGN="left"
245 VALIGN="top"
246 ><SPAN
247 CLASS="PROPERTY"
248 >if_define</SPAN
249 ></TD
250 ><TD
251 WIDTH="34%"
252 ALIGN="center"
253 VALIGN="top"
254 ><A
255 HREF="reference.html"
256 ACCESSKEY="U"
257 >Up</A
258 ></TD
259 ><TD
260 WIDTH="33%"
261 ALIGN="right"
262 VALIGN="top"
263 ><SPAN
264 CLASS="PROPERTY"
265 >include_dir</SPAN
266 ></TD
267 ></TR
268 ></TABLE
269 ></DIV
270 ></BODY
271 ></HTML
272 >