source: rtems/cpukit/rtems/include/rtems/rtems/asr.h @ c85ab23

4.104.115
Last change on this file since c85ab23 was c85ab23, checked in by Joel Sherrill <joel.sherrill@…>, on 08/05/09 at 18:17:12

2009-08-05 Sebastian Huber <sebastian.huber@…>

  • libcsupport/include/rtems/libio_.h, libcsupport/src/fs_null_handlers.c: Null handlers are now const.
  • libi2c/libi2c.c, libi2c/libi2c.h: Documentation. Do not create semaphores on the fly.
  • cpukit/libblock/src/bdpart.c: Fixed format specifier.
  • cpukit/libblock/include/rtems/bdbuf.h, rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/support.inl: Documentation.
  • include/rtems/irq-extension.h: Documentation. Added API for interrupt servers.
  • Property mode set to 100644
File size: 5.5 KB
Line 
1/**
2 * @file rtems/rtems/asr.h
3 *
4 *  This include file contains all the constants and structures associated
5 *  with the Asynchronous Signal Handler.  This Handler provides the low-level
6 *  support required by the Signal Manager.
7 */
8
9/*  COPYRIGHT (c) 1989-2008.
10 *  On-Line Applications Research Corporation (OAR).
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *  http://www.rtems.com/license/LICENSE.
15 *
16 *  $Id$
17 */
18
19#ifndef _RTEMS_RTEMS_ASR_H
20#define _RTEMS_RTEMS_ASR_H
21
22#include <rtems/rtems/modes.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/**
29 *  @defgroup ClassicASR ASR Support
30 *
31 *  @ingroup ClassicRTEMS
32 *
33 *  This encapsulates functionality which XXX
34 */
35/**@{*/
36
37/**
38 *  The following type defines the control block used to manage
39 *  each signal set.
40 */
41typedef uint32_t   rtems_signal_set;
42
43/**
44 *  Return type for ASR Handler
45 */
46typedef void rtems_asr;
47
48/**
49 *  The following type corresponds to the applications asynchronous
50 *  signal processing routine.
51 */
52typedef rtems_asr ( *rtems_asr_entry )(
53                 rtems_signal_set
54             );
55
56/**
57 *  The following defines the control structure used to manage
58 *  signals.  Each thread has a copy of this record.
59 */
60typedef struct {
61  /** This field indicates if are ASRs enabled currently. */
62  bool              is_enabled;
63  /** This field indicates if address of the signal handler function. */
64  rtems_asr_entry   handler;
65  /** This field indicates if the task mode the signal will run with. */
66  Modes_Control     mode_set;
67  /** This field indicates the signal set that is posted. */
68  rtems_signal_set  signals_posted;
69  /** This field indicates the signal set that is pending. */
70  rtems_signal_set  signals_pending;
71  /** This field indicates if nest level of signals being processed */
72  uint32_t          nest_level;
73}   ASR_Information;
74
75/*
76 *  The following constants define the individual signals which may
77 *  be used to compose a signal set.
78 */
79
80/** This defines the bit in the signal set associated with signal 0. */
81#define RTEMS_SIGNAL_0    0x00000001
82/** This defines the bit in the signal set associated with signal 1. */
83#define RTEMS_SIGNAL_1    0x00000002
84/** This defines the bit in the signal set associated with signal 2. */
85#define RTEMS_SIGNAL_2    0x00000004
86/** This defines the bit in the signal set associated with signal 3. */
87#define RTEMS_SIGNAL_3    0x00000008
88/** This defines the bit in the signal set associated with signal 4. */
89#define RTEMS_SIGNAL_4    0x00000010
90/** This defines the bit in the signal set associated with signal 5. */
91#define RTEMS_SIGNAL_5    0x00000020
92/** This defines the bit in the signal set associated with signal 6. */
93#define RTEMS_SIGNAL_6    0x00000040
94/** This defines the bit in the signal set associated with signal 7. */
95#define RTEMS_SIGNAL_7    0x00000080
96/** This defines the bit in the signal set associated with signal 8. */
97#define RTEMS_SIGNAL_8    0x00000100
98/** This defines the bit in the signal set associated with signal 9. */
99#define RTEMS_SIGNAL_9    0x00000200
100/** This defines the bit in the signal set associated with signal 10. */
101#define RTEMS_SIGNAL_10   0x00000400
102/** This defines the bit in the signal set associated with signal 11. */
103#define RTEMS_SIGNAL_11   0x00000800
104/** This defines the bit in the signal set associated with signal 12. */
105#define RTEMS_SIGNAL_12   0x00001000
106/** This defines the bit in the signal set associated with signal 13. */
107#define RTEMS_SIGNAL_13   0x00002000
108/** This defines the bit in the signal set associated with signal 14. */
109#define RTEMS_SIGNAL_14   0x00004000
110/** This defines the bit in the signal set associated with signal 15. */
111#define RTEMS_SIGNAL_15   0x00008000
112/** This defines the bit in the signal set associated with signal 16. */
113#define RTEMS_SIGNAL_16   0x00010000
114/** This defines the bit in the signal set associated with signal 17. */
115#define RTEMS_SIGNAL_17   0x00020000
116/** This defines the bit in the signal set associated with signal 18. */
117#define RTEMS_SIGNAL_18   0x00040000
118/** This defines the bit in the signal set associated with signal 19. */
119#define RTEMS_SIGNAL_19   0x00080000
120/** This defines the bit in the signal set associated with signal 20. */
121#define RTEMS_SIGNAL_20   0x00100000
122/** This defines the bit in the signal set associated with signal 21. */
123#define RTEMS_SIGNAL_21   0x00200000
124/** This defines the bit in the signal set associated with signal 22. */
125#define RTEMS_SIGNAL_22   0x00400000
126/** This defines the bit in the signal set associated with signal 23. */
127#define RTEMS_SIGNAL_23   0x00800000
128/** This defines the bit in the signal set associated with signal 24. */
129#define RTEMS_SIGNAL_24   0x01000000
130/** This defines the bit in the signal set associated with signal 25. */
131#define RTEMS_SIGNAL_25   0x02000000
132/** This defines the bit in the signal set associated with signal 26. */
133#define RTEMS_SIGNAL_26   0x04000000
134/** This defines the bit in the signal set associated with signal 27. */
135#define RTEMS_SIGNAL_27   0x08000000
136/** This defines the bit in the signal set associated with signal 28. */
137#define RTEMS_SIGNAL_28   0x10000000
138/** This defines the bit in the signal set associated with signal 29. */
139#define RTEMS_SIGNAL_29   0x20000000
140/** This defines the bit in the signal set associated with signal 30. */
141#define RTEMS_SIGNAL_30   0x40000000
142/** This defines the bit in the signal set associated with signal 31. */
143#define RTEMS_SIGNAL_31   0x80000000
144
145#ifndef __RTEMS_APPLICATION__
146#include <rtems/rtems/asr.inl>
147#endif
148
149#ifdef __cplusplus
150}
151#endif
152
153/**@}*/
154
155#endif
156/* end of include file */
Note: See TracBrowser for help on using the repository browser.