]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/compat-uitron-interrupt-management-functions.html
RedBoot TX53 Release 2012-02-15
[karo-tx-redboot.git] / doc / html / ref / compat-uitron-interrupt-management-functions.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 >Interrupt management functions</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="eCos Reference Manual"
20 HREF="ecos-ref.html"><LINK
21 REL="UP"
22 TITLE="µITRON API"
23 HREF="compat-uitron-microitron-api.html"><LINK
24 REL="PREVIOUS"
25 TITLE="Extended Synchronization and Communication Functions"
26 HREF="compat-uitron-extended-sync-comm-functions.html"><LINK
27 REL="NEXT"
28 TITLE="   Memory pool Management Functions"
29 HREF="compat-uitron-memory-pool-mgmt-functions.html"></HEAD
30 ><BODY
31 CLASS="SECT1"
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 >eCos Reference Manual</TH
50 ></TR
51 ><TR
52 ><TD
53 WIDTH="10%"
54 ALIGN="left"
55 VALIGN="bottom"
56 ><A
57 HREF="compat-uitron-extended-sync-comm-functions.html"
58 ACCESSKEY="P"
59 >Prev</A
60 ></TD
61 ><TD
62 WIDTH="80%"
63 ALIGN="center"
64 VALIGN="bottom"
65 >Chapter 32. &micro;ITRON API</TD
66 ><TD
67 WIDTH="10%"
68 ALIGN="right"
69 VALIGN="bottom"
70 ><A
71 HREF="compat-uitron-memory-pool-mgmt-functions.html"
72 ACCESSKEY="N"
73 >Next</A
74 ></TD
75 ></TR
76 ></TABLE
77 ><HR
78 ALIGN="LEFT"
79 WIDTH="100%"></DIV
80 ><DIV
81 CLASS="SECT1"
82 ><H1
83 CLASS="SECT1"
84 ><A
85 NAME="COMPAT-UITRON-INTERRUPT-MANAGEMENT-FUNCTIONS">Interrupt management functions</H1
86 ><P
87 >These functions are fully supported in this release:</P
88 ><TABLE
89 BORDER="5"
90 BGCOLOR="#E0E0F0"
91 WIDTH="70%"
92 ><TR
93 ><TD
94 ><PRE
95 CLASS="PROGRAMLISTING"
96 >void   <TT
97 CLASS="FUNCTION"
98 > ret_int</TT
99 >( void )</PRE
100 ></TD
101 ></TR
102 ></TABLE
103 ><TABLE
104 BORDER="5"
105 BGCOLOR="#E0E0F0"
106 WIDTH="70%"
107 ><TR
108 ><TD
109 ><PRE
110 CLASS="PROGRAMLISTING"
111 >ER <TT
112 CLASS="FUNCTION"
113 >loc_cpu</TT
114 >( void )</PRE
115 ></TD
116 ></TR
117 ></TABLE
118 ><TABLE
119 BORDER="5"
120 BGCOLOR="#E0E0F0"
121 WIDTH="70%"
122 ><TR
123 ><TD
124 ><PRE
125 CLASS="PROGRAMLISTING"
126 >ER <TT
127 CLASS="FUNCTION"
128 >unl_cpu</TT
129 >( void )</PRE
130 ></TD
131 ></TR
132 ></TABLE
133 ><TABLE
134 BORDER="5"
135 BGCOLOR="#E0E0F0"
136 WIDTH="70%"
137 ><TR
138 ><TD
139 ><PRE
140 CLASS="PROGRAMLISTING"
141 >ER <TT
142 CLASS="FUNCTION"
143 >dis_int</TT
144 >( 
145     UINT <SPAN
146 CLASS="emphasis"
147 ><I
148 CLASS="EMPHASIS"
149 >eintno</I
150 ></SPAN
151 > )</PRE
152 ></TD
153 ></TR
154 ></TABLE
155 ><TABLE
156 BORDER="5"
157 BGCOLOR="#E0E0F0"
158 WIDTH="70%"
159 ><TR
160 ><TD
161 ><PRE
162 CLASS="PROGRAMLISTING"
163 >ER <TT
164 CLASS="FUNCTION"
165 >ena_int</TT
166 >( 
167     UINT <SPAN
168 CLASS="emphasis"
169 ><I
170 CLASS="EMPHASIS"
171 >eintno</I
172 ></SPAN
173 > )</PRE
174 ></TD
175 ></TR
176 ></TABLE
177 ><TABLE
178 BORDER="5"
179 BGCOLOR="#E0E0F0"
180 WIDTH="70%"
181 ><TR
182 ><TD
183 ><PRE
184 CLASS="PROGRAMLISTING"
185 >void   <TT
186 CLASS="FUNCTION"
187 >ret_wup</TT
188 >( 
189     ID <SPAN
190 CLASS="emphasis"
191 ><I
192 CLASS="EMPHASIS"
193 >tskid</I
194 ></SPAN
195 > )</PRE
196 ></TD
197 ></TR
198 ></TABLE
199 ><TABLE
200 BORDER="5"
201 BGCOLOR="#E0E0F0"
202 WIDTH="70%"
203 ><TR
204 ><TD
205 ><PRE
206 CLASS="PROGRAMLISTING"
207 >ER <TT
208 CLASS="FUNCTION"
209 >iwup_tsk</TT
210 >( 
211     ID <SPAN
212 CLASS="emphasis"
213 ><I
214 CLASS="EMPHASIS"
215 >tskid</I
216 ></SPAN
217 > )</PRE
218 ></TD
219 ></TR
220 ></TABLE
221 ><TABLE
222 BORDER="5"
223 BGCOLOR="#E0E0F0"
224 WIDTH="70%"
225 ><TR
226 ><TD
227 ><PRE
228 CLASS="PROGRAMLISTING"
229 >ER <TT
230 CLASS="FUNCTION"
231 >isig_sem</TT
232 >( 
233     ID <SPAN
234 CLASS="emphasis"
235 ><I
236 CLASS="EMPHASIS"
237 >semid</I
238 ></SPAN
239 > )</PRE
240 ></TD
241 ></TR
242 ></TABLE
243 ><TABLE
244 BORDER="5"
245 BGCOLOR="#E0E0F0"
246 WIDTH="70%"
247 ><TR
248 ><TD
249 ><PRE
250 CLASS="PROGRAMLISTING"
251 >ER <TT
252 CLASS="FUNCTION"
253 >iset_flg</TT
254 >( 
255     ID <SPAN
256 CLASS="emphasis"
257 ><I
258 CLASS="EMPHASIS"
259 >flgid ,</I
260 ></SPAN
261 >
262     UID<SPAN
263 CLASS="emphasis"
264 ><I
265 CLASS="EMPHASIS"
266 > setptn</I
267 ></SPAN
268 > )</PRE
269 ></TD
270 ></TR
271 ></TABLE
272 ><TABLE
273 BORDER="5"
274 BGCOLOR="#E0E0F0"
275 WIDTH="70%"
276 ><TR
277 ><TD
278 ><PRE
279 CLASS="PROGRAMLISTING"
280 >ER <TT
281 CLASS="FUNCTION"
282 >isend_msg</TT
283 >( 
284     ID <SPAN
285 CLASS="emphasis"
286 ><I
287 CLASS="EMPHASIS"
288 >mbxid ,</I
289 ></SPAN
290 >
291     T_MSG<SPAN
292 CLASS="emphasis"
293 ><I
294 CLASS="EMPHASIS"
295 > *pk_msg</I
296 ></SPAN
297 > )</PRE
298 ></TD
299 ></TR
300 ></TABLE
301 ><P
302 >Note that <TT
303 CLASS="FUNCTION"
304 >ret_int()</TT
305 > and
306 the <TT
307 CLASS="FUNCTION"
308 >ret_wup()</TT
309 > are  implemented
310 as macros, containing a &#8220;return&#8221; statement.</P
311 ><P
312 >Also note that <TT
313 CLASS="FUNCTION"
314 >ret_wup()</TT
315 > and
316 the <TT
317 CLASS="FUNCTION"
318 >ixxx_yyy()</TT
319 > style functions
320 will only work when called from an ISR whose associated DSR is <TT
321 CLASS="FUNCTION"
322 >cyg_uitron_dsr()</TT
323 >,
324 as specified in include file <TT
325 CLASS="FILENAME"
326 >&lt;cyg/compat/uitron/uit_ifnc.h&gt;</TT
327 >,
328 which defines the <TT
329 CLASS="FUNCTION"
330 >ixxx_yyy()</TT
331 > style
332 functions also.</P
333 ><P
334 >If you are writing interrupt handlers more in the
335 <SPAN
336 CLASS="emphasis"
337 ><I
338 CLASS="EMPHASIS"
339 >eCos</I
340 ></SPAN
341 > style, with separate ISR and DSR routines both of
342 your own devising, do not use these special functions from a DSR: use plain
343 <TT
344 CLASS="FUNCTION"
345 >xxx_yyy()</TT
346 > style functions (with no &#8216;i&#8217; prefix)
347 instead, and do not call any &micro;ITRON functions from the ISR at
348 all.</P
349 ><P
350 >The following functions are not supported in this release: </P
351 ><TABLE
352 BORDER="5"
353 BGCOLOR="#E0E0F0"
354 WIDTH="70%"
355 ><TR
356 ><TD
357 ><PRE
358 CLASS="PROGRAMLISTING"
359 >ER <TT
360 CLASS="FUNCTION"
361 >def_int</TT
362 >( 
363     UINT <SPAN
364 CLASS="emphasis"
365 ><I
366 CLASS="EMPHASIS"
367 >dintno,</I
368 ></SPAN
369 >
370   T_DINT *<SPAN
371 CLASS="emphasis"
372 ><I
373 CLASS="EMPHASIS"
374 >pk_dint</I
375 ></SPAN
376 > )</PRE
377 ></TD
378 ></TR
379 ></TABLE
380 ><TABLE
381 BORDER="5"
382 BGCOLOR="#E0E0F0"
383 WIDTH="70%"
384 ><TR
385 ><TD
386 ><PRE
387 CLASS="PROGRAMLISTING"
388 >ER <TT
389 CLASS="FUNCTION"
390 >chg_iXX</TT
391 >( 
392     UINT <SPAN
393 CLASS="emphasis"
394 ><I
395 CLASS="EMPHASIS"
396 >iXXXX</I
397 ></SPAN
398 > )
399   </PRE
400 ></TD
401 ></TR
402 ></TABLE
403 ><TABLE
404 BORDER="5"
405 BGCOLOR="#E0E0F0"
406 WIDTH="70%"
407 ><TR
408 ><TD
409 ><PRE
410 CLASS="PROGRAMLISTING"
411 >ER <TT
412 CLASS="FUNCTION"
413 >ref_iXX</TT
414 >( 
415     UINT * <SPAN
416 CLASS="emphasis"
417 ><I
418 CLASS="EMPHASIS"
419 >p_iXXXX</I
420 ></SPAN
421 > )</PRE
422 ></TD
423 ></TR
424 ></TABLE
425 ><P
426 >These unsupported functions are all Level C (CPU dependent).
427 Equivalent functionality is available via other <SPAN
428 CLASS="emphasis"
429 ><I
430 CLASS="EMPHASIS"
431 >eCos</I
432 ></SPAN
433 >-specific
434 APIs. </P
435 ><DIV
436 CLASS="SECT2"
437 ><H2
438 CLASS="SECT2"
439 ><A
440 NAME="AEN13831">Error checking</H2
441 ><P
442 >The following conditions are only checked for, and only return
443 errors if 
444 <TT
445 CLASS="LITERAL"
446 >CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS</TT
447 >
448 is enabled:</P
449 ><P
450 ></P
451 ><UL
452 ><LI
453 ><P
454 ><TT
455 CLASS="FUNCTION"
456 >loc/unl_cpu()</TT
457 >
458 : these must only be called in a 
459 &micro;ITRON task context, else E_CTX.</P
460 ></LI
461 ><LI
462 ><P
463 ><TT
464 CLASS="FUNCTION"
465 >dis/ena_int()</TT
466 >
467 : the interrupt number must be in range as specified by the platform
468 HAL in qustion, else E_PAR.</P
469 ></LI
470 ></UL
471 ></DIV
472 ></DIV
473 ><DIV
474 CLASS="NAVFOOTER"
475 ><HR
476 ALIGN="LEFT"
477 WIDTH="100%"><TABLE
478 SUMMARY="Footer navigation table"
479 WIDTH="100%"
480 BORDER="0"
481 CELLPADDING="0"
482 CELLSPACING="0"
483 ><TR
484 ><TD
485 WIDTH="33%"
486 ALIGN="left"
487 VALIGN="top"
488 ><A
489 HREF="compat-uitron-extended-sync-comm-functions.html"
490 ACCESSKEY="P"
491 >Prev</A
492 ></TD
493 ><TD
494 WIDTH="34%"
495 ALIGN="center"
496 VALIGN="top"
497 ><A
498 HREF="ecos-ref.html"
499 ACCESSKEY="H"
500 >Home</A
501 ></TD
502 ><TD
503 WIDTH="33%"
504 ALIGN="right"
505 VALIGN="top"
506 ><A
507 HREF="compat-uitron-memory-pool-mgmt-functions.html"
508 ACCESSKEY="N"
509 >Next</A
510 ></TD
511 ></TR
512 ><TR
513 ><TD
514 WIDTH="33%"
515 ALIGN="left"
516 VALIGN="top"
517 >Extended Synchronization and Communication Functions</TD
518 ><TD
519 WIDTH="34%"
520 ALIGN="center"
521 VALIGN="top"
522 ><A
523 HREF="compat-uitron-microitron-api.html"
524 ACCESSKEY="U"
525 >Up</A
526 ></TD
527 ><TD
528 WIDTH="33%"
529 ALIGN="right"
530 VALIGN="top"
531 >Memory pool Management Functions</TD
532 ></TR
533 ></TABLE
534 ></DIV
535 ></BODY
536 ></HTML
537 >