source: rtems/cpukit/rtems/Makefile.am @ 8fcafdd5

4.115
Last change on this file since 8fcafdd5 was 8fcafdd5, checked in by Sebastian Huber <sebastian.huber@…>, on 05/21/14 at 08:33:43

score: Multiprocessor Resource Sharing Protocol

Add basic support for the Multiprocessor Resource Sharing Protocol
(MrsP).

The Multiprocessor Resource Sharing Protocol (MrsP) is defined in A.
Burns and A.J. Wellings, A Schedulability Compatible Multiprocessor
Resource Sharing Protocol - MrsP, Proceedings of the 25th Euromicro
Conference on Real-Time Systems (ECRTS 2013), July 2013. It is a
generalization of the Priority Ceiling Protocol to SMP systems. Each
MrsP semaphore uses a ceiling priority per scheduler instance. These
ceiling priorities can be specified with rtems_semaphore_set_priority().
A task obtaining or owning a MrsP semaphore will execute with the
ceiling priority for its scheduler instance as specified by the MrsP
semaphore object. Tasks waiting to get ownership of a MrsP semaphore
will not relinquish the processor voluntarily. In case the owner of a
MrsP semaphore gets preempted it can ask all tasks waiting for this
semaphore to help out and temporarily borrow the right to execute on one
of their assigned processors.

The help out feature is not implemented with this patch.

  • Property mode set to 100644
File size: 10.9 KB
Line 
1include $(top_srcdir)/automake/multilib.am
2include $(top_srcdir)/automake/compile.am
3
4noinst_LIBRARIES = librtems.a
5librtems_a_CPPFLAGS = $(AM_CPPFLAGS)
6
7# include
8
9include_HEADERS = include/rtems.h
10
11# include/rtems/rtems
12include_rtems_rtemsdir = $(includedir)/rtems/rtems
13include_rtems_rtems_HEADERS =
14
15include_rtems_rtems_HEADERS += include/rtems/rtems/asr.h
16include_rtems_rtems_HEADERS += include/rtems/rtems/asrimpl.h
17include_rtems_rtems_HEADERS += include/rtems/rtems/attr.h
18include_rtems_rtems_HEADERS += include/rtems/rtems/attrimpl.h
19include_rtems_rtems_HEADERS += include/rtems/rtems/barrier.h
20include_rtems_rtems_HEADERS += include/rtems/rtems/barrierimpl.h
21include_rtems_rtems_HEADERS += include/rtems/rtems/cache.h
22include_rtems_rtems_HEADERS += include/rtems/rtems/clock.h
23include_rtems_rtems_HEADERS += include/rtems/rtems/config.h
24include_rtems_rtems_HEADERS += include/rtems/rtems/dpmem.h
25include_rtems_rtems_HEADERS += include/rtems/rtems/dpmemimpl.h
26include_rtems_rtems_HEADERS += include/rtems/rtems/event.h
27include_rtems_rtems_HEADERS += include/rtems/rtems/eventimpl.h
28include_rtems_rtems_HEADERS += include/rtems/rtems/intr.h
29include_rtems_rtems_HEADERS += include/rtems/rtems/message.h
30include_rtems_rtems_HEADERS += include/rtems/rtems/messageimpl.h
31include_rtems_rtems_HEADERS += include/rtems/rtems/modes.h
32include_rtems_rtems_HEADERS += include/rtems/rtems/modesimpl.h
33include_rtems_rtems_HEADERS += include/rtems/rtems/object.h
34include_rtems_rtems_HEADERS += include/rtems/rtems/options.h
35include_rtems_rtems_HEADERS += include/rtems/rtems/optionsimpl.h
36include_rtems_rtems_HEADERS += include/rtems/rtems/part.h
37include_rtems_rtems_HEADERS += include/rtems/rtems/partimpl.h
38include_rtems_rtems_HEADERS += include/rtems/rtems/ratemon.h
39include_rtems_rtems_HEADERS += include/rtems/rtems/ratemonimpl.h
40include_rtems_rtems_HEADERS += include/rtems/rtems/region.h
41include_rtems_rtems_HEADERS += include/rtems/rtems/regionimpl.h
42include_rtems_rtems_HEADERS += include/rtems/rtems/rtemsapi.h
43include_rtems_rtems_HEADERS += include/rtems/rtems/sem.h
44include_rtems_rtems_HEADERS += include/rtems/rtems/semimpl.h
45include_rtems_rtems_HEADERS += include/rtems/rtems/signal.h
46include_rtems_rtems_HEADERS += include/rtems/rtems/signalimpl.h
47include_rtems_rtems_HEADERS += include/rtems/rtems/smp.h
48include_rtems_rtems_HEADERS += include/rtems/rtems/status.h
49include_rtems_rtems_HEADERS += include/rtems/rtems/statusimpl.h
50include_rtems_rtems_HEADERS += include/rtems/rtems/support.h
51include_rtems_rtems_HEADERS += include/rtems/rtems/tasks.h
52include_rtems_rtems_HEADERS += include/rtems/rtems/tasksimpl.h
53include_rtems_rtems_HEADERS += include/rtems/rtems/timer.h
54include_rtems_rtems_HEADERS += include/rtems/rtems/timerimpl.h
55include_rtems_rtems_HEADERS += include/rtems/rtems/types.h
56if HAS_SMP
57include_rtems_rtems_HEADERS += include/rtems/rtems/atomic.h
58endif
59include_rtems_rtems_HEADERS += mainpage.h
60
61if HAS_MP
62## We only build multiprocessing related files if HAS_MP was defined
63include_rtems_rtems_HEADERS += include/rtems/rtems/eventmp.h
64include_rtems_rtems_HEADERS += include/rtems/rtems/mp.h
65include_rtems_rtems_HEADERS += include/rtems/rtems/msgmp.h
66include_rtems_rtems_HEADERS += include/rtems/rtems/partmp.h
67include_rtems_rtems_HEADERS += include/rtems/rtems/regionmp.h
68include_rtems_rtems_HEADERS += include/rtems/rtems/semmp.h
69include_rtems_rtems_HEADERS += include/rtems/rtems/signalmp.h
70include_rtems_rtems_HEADERS += include/rtems/rtems/taskmp.h
71endif
72
73## src
74librtems_a_SOURCES = src/rtemsbuildid.c
75librtems_a_SOURCES += src/rtemsbuildname.c
76librtems_a_SOURCES += src/rtemsobjectgetname.c
77librtems_a_SOURCES += src/rtemsobjectsetname.c
78librtems_a_SOURCES += src/rtemsobjectidapimaximum.c
79librtems_a_SOURCES += src/rtemsobjectidapiminimum.c
80librtems_a_SOURCES += src/rtemsobjectidgetapi.c
81librtems_a_SOURCES += src/rtemsobjectidgetclass.c
82librtems_a_SOURCES += src/rtemsobjectidgetindex.c
83librtems_a_SOURCES += src/rtemsobjectidgetnode.c
84librtems_a_SOURCES += src/rtemsobjectapiminimumclass.c
85librtems_a_SOURCES += src/rtemsobjectapimaximumclass.c
86librtems_a_SOURCES += src/rtemsobjectgetapiname.c
87librtems_a_SOURCES += src/rtemsobjectgetapiclassname.c
88librtems_a_SOURCES += src/rtemsobjectgetclassinfo.c
89librtems_a_SOURCES += src/rtemsobjectgetclassicname.c
90
91## TASK_C_FILES
92librtems_a_SOURCES += src/tasks.c
93librtems_a_SOURCES += src/taskcreate.c
94librtems_a_SOURCES += src/taskdelete.c
95librtems_a_SOURCES += src/taskgetaffinity.c
96librtems_a_SOURCES += src/taskgetnote.c
97librtems_a_SOURCES += src/taskgetscheduler.c
98librtems_a_SOURCES += src/taskident.c
99librtems_a_SOURCES += src/taskinitusers.c
100librtems_a_SOURCES += src/taskissuspended.c
101librtems_a_SOURCES += src/taskmode.c
102librtems_a_SOURCES += src/taskrestart.c
103librtems_a_SOURCES += src/taskresume.c
104librtems_a_SOURCES += src/taskself.c
105librtems_a_SOURCES += src/tasksetaffinity.c
106librtems_a_SOURCES += src/tasksetnote.c
107librtems_a_SOURCES += src/tasksetpriority.c
108librtems_a_SOURCES += src/tasksetscheduler.c
109librtems_a_SOURCES += src/taskstart.c
110librtems_a_SOURCES += src/tasksuspend.c
111librtems_a_SOURCES += src/taskwakeafter.c
112librtems_a_SOURCES += src/taskwakewhen.c
113if HAS_SMP
114else
115librtems_a_SOURCES += src/taskvariableadd.c
116librtems_a_SOURCES += src/taskvariabledelete.c
117librtems_a_SOURCES += src/taskvariableget.c
118librtems_a_SOURCES += src/taskvariable_invoke_dtor.c
119endif
120librtems_a_SOURCES += src/taskdata.c
121librtems_a_SOURCES += src/schedulergetprocessorset.c
122librtems_a_SOURCES += src/schedulerident.c
123
124## RATEMON_C_FILES
125librtems_a_SOURCES += src/ratemon.c
126librtems_a_SOURCES += src/ratemoncancel.c
127librtems_a_SOURCES += src/ratemoncreate.c
128librtems_a_SOURCES += src/ratemondelete.c
129librtems_a_SOURCES += src/ratemongetstatus.c
130librtems_a_SOURCES += src/ratemongetstatistics.c
131librtems_a_SOURCES += src/ratemonresetstatistics.c
132librtems_a_SOURCES += src/ratemonresetall.c
133librtems_a_SOURCES += src/ratemonreportstatistics.c
134librtems_a_SOURCES += src/ratemonident.c
135librtems_a_SOURCES += src/ratemonperiod.c
136librtems_a_SOURCES += src/ratemontimeout.c
137librtems_a_SOURCES += src/ratemondata.c
138
139## INTR_C_FILES
140librtems_a_SOURCES += src/intrbody.c
141librtems_a_SOURCES += src/intrcatch.c
142
143## BARRIER_C_FILES
144librtems_a_SOURCES += src/barrier.c
145librtems_a_SOURCES += src/barriercreate.c
146librtems_a_SOURCES += src/barrierdelete.c
147librtems_a_SOURCES += src/barrierident.c
148librtems_a_SOURCES += src/barriertranslatereturncode.c
149librtems_a_SOURCES += src/barrierrelease.c
150librtems_a_SOURCES += src/barrierwait.c
151librtems_a_SOURCES += src/barrierdata.c
152
153## CLOCK_C_FILES
154librtems_a_SOURCES += src/clockget.c
155librtems_a_SOURCES += src/clockgetsecondssinceepoch.c
156librtems_a_SOURCES += src/clockgettickspersecond.c
157librtems_a_SOURCES += src/clockgettickssinceboot.c
158librtems_a_SOURCES += src/clockgettod.c
159librtems_a_SOURCES += src/clockgettodtimeval.c
160librtems_a_SOURCES += src/clockgetuptime.c
161librtems_a_SOURCES += src/clockgetuptimetimeval.c
162librtems_a_SOURCES += src/clockgetuptimeseconds.c
163librtems_a_SOURCES += src/clockgetuptimenanoseconds.c
164librtems_a_SOURCES += src/clockset.c
165librtems_a_SOURCES += src/clocksetnsecshandler.c
166librtems_a_SOURCES += src/clocktick.c
167librtems_a_SOURCES += src/clocktodtoseconds.c
168librtems_a_SOURCES += src/clocktodvalidate.c
169
170## TIMER_C_FILES
171librtems_a_SOURCES += src/rtemstimer.c
172librtems_a_SOURCES += src/timercancel.c
173librtems_a_SOURCES += src/timercreate.c
174librtems_a_SOURCES += src/timerdelete.c
175librtems_a_SOURCES += src/timerfireafter.c
176librtems_a_SOURCES += src/timerfirewhen.c
177librtems_a_SOURCES += src/timergetinfo.c
178librtems_a_SOURCES += src/timerident.c
179librtems_a_SOURCES += src/timerreset.c
180librtems_a_SOURCES += src/timerserver.c
181librtems_a_SOURCES += src/timerserverfireafter.c
182librtems_a_SOURCES += src/timerserverfirewhen.c
183librtems_a_SOURCES += src/rtemstimerdata.c
184
185## MESSAGE_QUEUE_C_FILES
186librtems_a_SOURCES += src/msg.c
187librtems_a_SOURCES += src/msgqbroadcast.c
188librtems_a_SOURCES += src/msgqcreate.c
189librtems_a_SOURCES += src/msgqdelete.c
190librtems_a_SOURCES += src/msgqflush.c
191librtems_a_SOURCES += src/msgqgetnumberpending.c
192librtems_a_SOURCES += src/msgqident.c
193librtems_a_SOURCES += src/msgqreceive.c
194librtems_a_SOURCES += src/msgqsend.c
195librtems_a_SOURCES += src/msgqtranslatereturncode.c
196librtems_a_SOURCES += src/msgqurgent.c
197librtems_a_SOURCES += src/msgdata.c
198
199## SEMAPHORE_C_FILES
200librtems_a_SOURCES += src/sem.c
201librtems_a_SOURCES += src/semcreate.c
202librtems_a_SOURCES += src/semdelete.c
203librtems_a_SOURCES += src/semident.c
204librtems_a_SOURCES += src/semobtain.c
205librtems_a_SOURCES += src/semrelease.c
206librtems_a_SOURCES += src/semflush.c
207librtems_a_SOURCES += src/semtranslatereturncode.c
208librtems_a_SOURCES += src/semdata.c
209librtems_a_SOURCES += src/semsetpriority.c
210
211## EVENT_C_FILES
212librtems_a_SOURCES += src/event.c
213librtems_a_SOURCES += src/eventreceive.c
214librtems_a_SOURCES += src/eventseize.c
215librtems_a_SOURCES += src/eventsend.c
216librtems_a_SOURCES += src/eventsurrender.c
217librtems_a_SOURCES += src/eventtimeout.c
218librtems_a_SOURCES += src/eventdata.c
219librtems_a_SOURCES += src/systemeventsend.c
220librtems_a_SOURCES += src/systemeventreceive.c
221
222## SIGNAL_C_FILES
223librtems_a_SOURCES += src/signal.c
224librtems_a_SOURCES += src/signalcatch.c
225librtems_a_SOURCES += src/signalsend.c
226
227## REGION_C_FILES
228librtems_a_SOURCES += src/region.c
229librtems_a_SOURCES += src/regioncreate.c
230librtems_a_SOURCES += src/regiondelete.c
231librtems_a_SOURCES += src/regionextend.c
232librtems_a_SOURCES += src/regiongetsegment.c
233librtems_a_SOURCES += src/regiongetsegmentsize.c
234librtems_a_SOURCES += src/regionident.c
235librtems_a_SOURCES += src/regionreturnsegment.c
236librtems_a_SOURCES += src/regiongetinfo.c
237librtems_a_SOURCES += src/regiongetfreeinfo.c
238librtems_a_SOURCES += src/regionresizesegment.c
239librtems_a_SOURCES += src/regionprocessqueue.c
240librtems_a_SOURCES += src/regiondata.c
241
242## PARTITION_C_FILES
243librtems_a_SOURCES += src/part.c
244librtems_a_SOURCES += src/partcreate.c
245librtems_a_SOURCES += src/partdelete.c
246librtems_a_SOURCES += src/partgetbuffer.c
247librtems_a_SOURCES += src/partident.c
248librtems_a_SOURCES += src/partreturnbuffer.c
249librtems_a_SOURCES += src/partdata.c
250
251## DPMEM_C_FILES
252librtems_a_SOURCES += src/dpmem.c
253librtems_a_SOURCES += src/dpmemcreate.c
254librtems_a_SOURCES += src/dpmemdelete.c
255librtems_a_SOURCES += src/dpmemexternal2internal.c
256librtems_a_SOURCES += src/dpmemident.c
257librtems_a_SOURCES += src/dpmeminternal2external.c
258librtems_a_SOURCES += src/dpmemdata.c
259
260## WORKSPACE_FILES
261librtems_a_SOURCES += src/workspace.c
262librtems_a_SOURCES += src/workspacegreedy.c
263
264librtems_a_SOURCES += src/modes.c
265
266librtems_a_SOURCES += src/status.c
267librtems_a_SOURCES += src/statustext.c
268
269librtems_a_SOURCES += src/getcurrentprocessor.c
270librtems_a_SOURCES += src/getprocessorcount.c
271
272if HAS_MP
273# We only build multiprocessing related files if HAS_MP was defined
274librtems_a_SOURCES += src/eventmp.c
275librtems_a_SOURCES += src/mp.c
276librtems_a_SOURCES += src/msgmp.c
277librtems_a_SOURCES += src/partmp.c
278librtems_a_SOURCES += src/regionmp.c
279librtems_a_SOURCES += src/semmp.c
280librtems_a_SOURCES += src/signalmp.c
281librtems_a_SOURCES += src/taskmp.c
282endif
283
284include $(srcdir)/preinstall.am
285include $(top_srcdir)/automake/local.am
Note: See TracBrowser for help on using the repository browser.