blob: 770f607075f66249105a806a94647246226a46b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
/* eventset.h
*
* This include file contains the information pertaining to the
* Event Sets Handler. This handler provides methods for the manipulation
* of event sets which will be sent and received by tasks.
*
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
* On-Line Applications Research Corporation (OAR).
* All rights assigned to U.S. Government, 1994.
*
* This material may be reproduced by or for the U.S. Government pursuant
* to the copyright license under the clause at DFARS 252.227-7013. This
* notice must appear in all copies of this file and its derivatives.
*
* $Id$
*/
#ifndef __RTEMS_EVENT_SET_h
#define __RTEMS_EVENT_SET_h
#ifdef __cplusplus
extern "C" {
#endif
/*
* The following defines the type used to control event sets.
*/
typedef unsigned32 rtems_event_set;
/*
* The following constants define the individual events which may
* be used to compose an event set.
*/
#define RTEMS_PENDING_EVENTS 0 /* receive pending events */
#define RTEMS_ALL_EVENTS 0xFFFFFFFF
#define RTEMS_EVENT_0 0x00000001
#define RTEMS_EVENT_1 0x00000002
#define RTEMS_EVENT_2 0x00000004
#define RTEMS_EVENT_3 0x00000008
#define RTEMS_EVENT_4 0x00000010
#define RTEMS_EVENT_5 0x00000020
#define RTEMS_EVENT_6 0x00000040
#define RTEMS_EVENT_7 0x00000080
#define RTEMS_EVENT_8 0x00000100
#define RTEMS_EVENT_9 0x00000200
#define RTEMS_EVENT_10 0x00000400
#define RTEMS_EVENT_11 0x00000800
#define RTEMS_EVENT_12 0x00001000
#define RTEMS_EVENT_13 0x00002000
#define RTEMS_EVENT_14 0x00004000
#define RTEMS_EVENT_15 0x00008000
#define RTEMS_EVENT_16 0x00010000
#define RTEMS_EVENT_17 0x00020000
#define RTEMS_EVENT_18 0x00040000
#define RTEMS_EVENT_19 0x00080000
#define RTEMS_EVENT_20 0x00100000
#define RTEMS_EVENT_21 0x00200000
#define RTEMS_EVENT_22 0x00400000
#define RTEMS_EVENT_23 0x00800000
#define RTEMS_EVENT_24 0x01000000
#define RTEMS_EVENT_25 0x02000000
#define RTEMS_EVENT_26 0x04000000
#define RTEMS_EVENT_27 0x08000000
#define RTEMS_EVENT_28 0x10000000
#define RTEMS_EVENT_29 0x20000000
#define RTEMS_EVENT_30 0x40000000
#define RTEMS_EVENT_31 0x80000000
/*
* The following constant is the value of an event set which
* has no events pending.
*/
#define EVENT_SETS_NONE_PENDING 0
/*
* _Event_sets_Is_empty
*
* DESCRIPTION:
*
* This function returns TRUE if on events are posted in the event_set,
* and FALSE otherwise.
*/
STATIC INLINE boolean _Event_sets_Is_empty(
rtems_event_set the_event_set
);
/*
* _Event_sets_Post
*
* DESCRIPTION:
*
* This routine posts the given new_events into the event_set
* passed in. The result is returned to the user in event_set.
*/
STATIC INLINE void _Event_sets_Post(
rtems_event_set the_new_events,
rtems_event_set *the_event_set
);
/*
* _Event_sets_Get
*
* DESCRIPTION:
*
* This function returns the events in event_condition which are
* set in event_set.
*/
STATIC INLINE rtems_event_set _Event_sets_Get(
rtems_event_set the_event_set,
rtems_event_set the_event_condition
);
/*
* _Event_sets_Clear
*
* DESCRIPTION:
*
* This function removes the events in mask from the event_set
* passed in. The result is returned to the user in event_set.
*/
STATIC INLINE rtems_event_set _Event_sets_Clear(
rtems_event_set the_event_set,
rtems_event_set the_mask
);
#include <rtems/rtems/eventset.inl>
#ifdef __cplusplus
}
#endif
#endif
/* end of include file */
|