source: rtems/cpukit/score/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: 14.4 KB
Line 
1include $(top_srcdir)/automake/multilib.am
2include $(top_srcdir)/automake/compile.am
3
4SUBDIRS = cpu
5
6## include
7
8include_rtemsdir = $(includedir)/rtems
9
10include_rtems_HEADERS = include/rtems/debug.h
11include_rtems_HEADERS += include/rtems/system.h
12include_rtems_HEADERS += include/rtems/seterr.h
13
14include_rtems_scoredir = $(includedir)/rtems/score
15
16include_rtems_score_HEADERS = include/rtems/score/address.h
17include_rtems_score_HEADERS += include/rtems/score/apiext.h
18include_rtems_score_HEADERS += include/rtems/score/apimutex.h
19include_rtems_score_HEADERS += include/rtems/score/assert.h
20include_rtems_score_HEADERS += include/rtems/score/chain.h
21include_rtems_score_HEADERS += include/rtems/score/chainimpl.h
22include_rtems_score_HEADERS += include/rtems/score/context.h
23include_rtems_score_HEADERS += include/rtems/score/copyrt.h
24include_rtems_score_HEADERS += include/rtems/score/corebarrier.h
25include_rtems_score_HEADERS += include/rtems/score/corebarrierimpl.h
26include_rtems_score_HEADERS += include/rtems/score/coremsg.h
27include_rtems_score_HEADERS += include/rtems/score/coremsgimpl.h
28include_rtems_score_HEADERS += include/rtems/score/coremutex.h
29include_rtems_score_HEADERS += include/rtems/score/coremuteximpl.h
30include_rtems_score_HEADERS += include/rtems/score/coresem.h
31include_rtems_score_HEADERS += include/rtems/score/coresemimpl.h
32include_rtems_score_HEADERS += include/rtems/score/cpuset.h
33include_rtems_score_HEADERS += include/rtems/score/cpusetimpl.h
34include_rtems_score_HEADERS += include/rtems/score/heap.h
35include_rtems_score_HEADERS += include/rtems/score/heapimpl.h
36include_rtems_score_HEADERS += include/rtems/score/protectedheap.h
37include_rtems_score_HEADERS += include/rtems/score/interr.h
38include_rtems_score_HEADERS += include/rtems/score/isr.h
39include_rtems_score_HEADERS += include/rtems/score/isrlevel.h
40include_rtems_score_HEADERS += include/rtems/score/isrlock.h
41include_rtems_score_HEADERS += include/rtems/score/freechain.h
42include_rtems_score_HEADERS += include/rtems/score/mrsp.h
43include_rtems_score_HEADERS += include/rtems/score/mrspimpl.h
44include_rtems_score_HEADERS += include/rtems/score/object.h
45include_rtems_score_HEADERS += include/rtems/score/objectimpl.h
46include_rtems_score_HEADERS += include/rtems/score/onceimpl.h
47include_rtems_score_HEADERS += include/rtems/score/percpu.h
48include_rtems_score_HEADERS += include/rtems/score/priority.h
49include_rtems_score_HEADERS += include/rtems/score/prioritybitmap.h
50include_rtems_score_HEADERS += include/rtems/score/prioritybitmapimpl.h
51include_rtems_score_HEADERS += include/rtems/score/profiling.h
52include_rtems_score_HEADERS += include/rtems/score/rbtree.h
53include_rtems_score_HEADERS += include/rtems/score/rbtreeimpl.h
54include_rtems_score_HEADERS += include/rtems/score/scheduler.h
55include_rtems_score_HEADERS += include/rtems/score/schedulerimpl.h
56include_rtems_score_HEADERS += include/rtems/score/schedulercbs.h
57include_rtems_score_HEADERS += include/rtems/score/schedulercbsimpl.h
58include_rtems_score_HEADERS += include/rtems/score/scheduleredf.h
59include_rtems_score_HEADERS += include/rtems/score/scheduleredfimpl.h
60include_rtems_score_HEADERS += include/rtems/score/schedulerpriority.h
61include_rtems_score_HEADERS += include/rtems/score/schedulerpriorityimpl.h
62include_rtems_score_HEADERS += include/rtems/score/schedulerprioritysmp.h
63include_rtems_score_HEADERS += include/rtems/score/schedulersimple.h
64include_rtems_score_HEADERS += include/rtems/score/schedulersimpleimpl.h
65include_rtems_score_HEADERS += include/rtems/score/schedulersmp.h
66include_rtems_score_HEADERS += include/rtems/score/schedulersmpimpl.h
67include_rtems_score_HEADERS += include/rtems/score/smp.h
68include_rtems_score_HEADERS += include/rtems/score/smpbarrier.h
69include_rtems_score_HEADERS += include/rtems/score/smplock.h
70include_rtems_score_HEADERS += include/rtems/score/smpimpl.h
71include_rtems_score_HEADERS += include/rtems/score/stack.h
72include_rtems_score_HEADERS += include/rtems/score/stackimpl.h
73include_rtems_score_HEADERS += include/rtems/score/states.h
74include_rtems_score_HEADERS += include/rtems/score/statesimpl.h
75include_rtems_score_HEADERS += include/rtems/score/sysstate.h
76include_rtems_score_HEADERS += include/rtems/score/thread.h
77include_rtems_score_HEADERS += include/rtems/score/threadimpl.h
78include_rtems_score_HEADERS += include/rtems/score/threaddispatch.h
79include_rtems_score_HEADERS += include/rtems/score/threadq.h
80include_rtems_score_HEADERS += include/rtems/score/threadqimpl.h
81include_rtems_score_HEADERS += include/rtems/score/threadsync.h
82include_rtems_score_HEADERS += include/rtems/score/timespec.h
83include_rtems_score_HEADERS += include/rtems/score/timestamp.h
84include_rtems_score_HEADERS += include/rtems/score/timestamp64.h
85include_rtems_score_HEADERS += include/rtems/score/tls.h
86include_rtems_score_HEADERS += include/rtems/score/tod.h
87include_rtems_score_HEADERS += include/rtems/score/todimpl.h
88include_rtems_score_HEADERS += include/rtems/score/userext.h
89include_rtems_score_HEADERS += include/rtems/score/userextimpl.h
90include_rtems_score_HEADERS += include/rtems/score/watchdog.h
91include_rtems_score_HEADERS += include/rtems/score/watchdogimpl.h
92include_rtems_score_HEADERS += include/rtems/score/wkspace.h
93include_rtems_score_HEADERS += include/rtems/score/cpuopts.h
94include_rtems_score_HEADERS += include/rtems/score/basedefs.h
95
96if HAS_PTHREADS
97include_rtems_score_HEADERS += include/rtems/score/corespinlock.h
98include_rtems_score_HEADERS += include/rtems/score/corespinlockimpl.h
99include_rtems_score_HEADERS += include/rtems/score/corerwlock.h
100include_rtems_score_HEADERS += include/rtems/score/corerwlockimpl.h
101endif
102
103if HAS_MP
104# We only build multiprocessing related files if HAS_MP was defined
105include_rtems_score_HEADERS += include/rtems/score/mpci.h
106include_rtems_score_HEADERS += include/rtems/score/mpciimpl.h
107include_rtems_score_HEADERS += include/rtems/score/mppkt.h
108include_rtems_score_HEADERS += include/rtems/score/objectmp.h
109include_rtems_score_HEADERS += include/rtems/score/threadmp.h
110endif
111
112if HAS_SMP
113include_rtems_score_HEADERS += include/rtems/score/atomic.h
114include_rtems_score_HEADERS += include/rtems/score/cpustdatomic.h
115include_rtems_score_HEADERS += include/rtems/score/schedulerpriorityaffinitysmp.h
116include_rtems_score_HEADERS += include/rtems/score/schedulersimplesmp.h
117endif
118
119## src
120
121noinst_LIBRARIES = libscore.a
122libscore_a_SOURCES =
123libscore_a_CPPFLAGS = $(AM_CPPFLAGS)
124
125# We only build multiprocessing related files if HAS_MP was defined
126if HAS_MP
127libscore_a_SOURCES += src/mpci.c src/objectmp.c src/threadmp.c
128endif
129
130if HAS_SMP
131libscore_a_SOURCES += src/profilingsmplock.c
132libscore_a_SOURCES += src/schedulersmpvalidstatechanges.c
133libscore_a_SOURCES += src/schedulerpriorityaffinitysmp.c
134libscore_a_SOURCES += src/schedulerprioritysmp.c
135libscore_a_SOURCES += src/schedulersimplesmp.c
136libscore_a_SOURCES += src/smp.c
137libscore_a_SOURCES += src/cpuset.c
138libscore_a_SOURCES += src/cpusetprintsupport.c
139libscore_a_SOURCES += src/schedulerdefaultgetaffinity.c
140libscore_a_SOURCES += src/schedulerdefaultsetaffinity.c
141libscore_a_SOURCES += src/schedulersmpstartidle.c
142endif
143
144## CORE_APIMUTEX_C_FILES
145libscore_a_SOURCES += src/apimutex.c \
146    src/apimutexlock.c src/apimutexunlock.c
147
148## CORE_BARRIER_C_FILES
149libscore_a_SOURCES += src/corebarrier.c src/corebarrierrelease.c \
150    src/corebarrierwait.c
151
152## CORE_MESSAGE_QUEUE_C_FILES
153libscore_a_SOURCES += src/coremsg.c src/coremsgbroadcast.c \
154    src/coremsgclose.c src/coremsgflush.c src/coremsgflushwait.c \
155    src/coremsginsert.c src/coremsgflushsupp.c src/coremsgseize.c \
156    src/coremsgsubmit.c
157
158## CORE_MUTEX_C_FILES
159libscore_a_SOURCES += src/coremutex.c src/coremutexflush.c \
160    src/coremutexseize.c src/coremutexsurrender.c \
161    src/coremutexseizeintr.c
162
163## CORE_PERCPU_C_FILES
164libscore_a_SOURCES += src/percpu.c
165libscore_a_SOURCES += src/percpuasm.c
166
167## CORE_RWLOCK_C_FILES
168if HAS_PTHREADS
169libscore_a_SOURCES += src/corerwlock.c src/corerwlockobtainread.c \
170    src/corerwlockobtainwrite.c src/corerwlockrelease.c src/corerwlocktimeout.c
171endif
172
173## CORE_SEMAPHORE_C_FILES
174libscore_a_SOURCES += src/coresem.c src/coresemflush.c src/coresemseize.c \
175    src/coresemsurrender.c
176
177## CORE_SPINLOCK_C_FILES
178if HAS_PTHREADS
179libscore_a_SOURCES += src/corespinlock.c src/corespinlockrelease.c \
180    src/corespinlockwait.c
181endif
182
183## HEAP_C_FILES
184libscore_a_SOURCES += src/heap.c src/heapallocate.c src/heapextend.c \
185    src/heapfree.c src/heapsizeofuserarea.c src/heapwalk.c src/heapgetinfo.c \
186    src/heapgetfreeinfo.c src/heapresizeblock.c src/heapiterate.c \
187    src/heapgreedy.c src/heapnoextend.c
188
189## OBJECT_C_FILES
190libscore_a_SOURCES += src/objectallocate.c src/objectclose.c \
191    src/objectextendinformation.c src/objectfree.c src/objectget.c \
192    src/objectgetisr.c src/objectgetnext.c src/objectinitializeinformation.c \
193    src/objectnametoid.c src/objectnametoidstring.c \
194    src/objectshrinkinformation.c src/objectgetnoprotection.c \
195    src/objectidtoname.c src/objectgetnameasstring.c src/objectsetname.c \
196    src/objectgetinfo.c src/objectgetinfoid.c src/objectapimaximumclass.c \
197    src/objectnamespaceremove.c \
198    src/objectactivecount.c
199
200## SCHEDULER_C_FILES
201libscore_a_SOURCES += src/log2table.c
202libscore_a_SOURCES += src/scheduler.c
203libscore_a_SOURCES += src/schedulergetaffinity.c
204libscore_a_SOURCES += src/schedulersetaffinity.c
205libscore_a_SOURCES += src/schedulerdefaultallocatefree.c
206libscore_a_SOURCES += src/schedulerdefaultreleasejob.c
207libscore_a_SOURCES += src/schedulerdefaultschedule.c
208libscore_a_SOURCES += src/schedulerdefaultstartidle.c
209libscore_a_SOURCES += src/schedulerdefaulttick.c
210libscore_a_SOURCES += src/schedulerdefaultupdate.c
211
212## SCHEDULERPRIORITY_C_FILES
213libscore_a_SOURCES += src/schedulerpriority.c \
214    src/schedulerpriorityblock.c \
215    src/schedulerprioritychangepriority.c \
216    src/schedulerpriorityprioritycompare.c \
217    src/schedulerpriorityschedule.c \
218    src/schedulerpriorityunblock.c \
219    src/schedulerpriorityupdate.c \
220    src/schedulerpriorityyield.c
221
222## SCHEDULERSIMPLE_C_FILES
223libscore_a_SOURCES += src/schedulersimple.c \
224    src/schedulersimpleblock.c \
225    src/schedulersimplechangepriority.c \
226    src/schedulersimpleschedule.c \
227    src/schedulersimpleunblock.c \
228    src/schedulersimpleyield.c
229
230## SCHEDULEREDF_C_FILES
231libscore_a_SOURCES += src/scheduleredf.c \
232    src/scheduleredfallocate.c \
233    src/scheduleredfblock.c \
234    src/scheduleredfchangepriority.c \
235    src/scheduleredfprioritycompare.c \
236    src/scheduleredfreleasejob.c \
237    src/scheduleredfschedule.c \
238    src/scheduleredfunblock.c \
239    src/scheduleredfupdate.c \
240    src/scheduleredfyield.c
241
242## SCHEDULERCBS_C_FILES
243libscore_a_SOURCES += src/schedulercbs.c \
244    src/schedulercbsallocate.c \
245    src/schedulercbsattachthread.c \
246    src/schedulercbscleanup.c \
247    src/schedulercbscreateserver.c \
248    src/schedulercbsdestroyserver.c \
249    src/schedulercbsdetachthread.c \
250    src/schedulercbsgetapprovedbudget.c \
251    src/schedulercbsgetexecutiontime.c \
252    src/schedulercbsgetparameters.c \
253    src/schedulercbsgetremainingbudget.c \
254    src/schedulercbsgetserverid.c \
255    src/schedulercbssetparameters.c \
256    src/schedulercbsreleasejob.c \
257    src/schedulercbsunblock.c
258
259## PROTECTED_HEAP_C_FILES
260libscore_a_SOURCES += src/pheapallocate.c \
261    src/pheapextend.c src/pheapfree.c src/pheapgetsize.c \
262    src/pheapgetblocksize.c src/pheapgetfreeinfo.c src/pheapgetinfo.c \
263    src/pheapinit.c src/pheapresizeblock.c src/pheapwalk.c src/pheapiterate.c
264
265## FREECHAIN_C_FILES
266libscore_a_SOURCES += src/freechain.c
267
268## RBTREE_C_FILES
269libscore_a_SOURCES += src/rbtree.c \
270    src/rbtreeextract.c src/rbtreefind.c \
271    src/rbtreeinsert.c src/rbtreeiterate.c src/rbtreenext.c
272
273## THREAD_C_FILES
274libscore_a_SOURCES += src/thread.c src/threadchangepriority.c \
275    src/threadclearstate.c src/threadcreateidle.c \
276    src/threaddelayended.c src/threaddispatch.c \
277    src/threadenabledispatch.c src/threaddisabledispatch.c \
278    src/threadget.c src/threadhandler.c src/threadinitialize.c \
279    src/threadloadenv.c src/threadready.c \
280    src/threadrestart.c src/threadsetpriority.c \
281    src/threadsetstate.c \
282    src/threadstackallocate.c src/threadstackfree.c src/threadstart.c \
283    src/threadstartmultitasking.c src/iterateoverthreads.c \
284    src/threadblockingoperationcancel.c
285
286if HAS_SMP
287libscore_a_SOURCES += src/smpbarrierwait.c
288libscore_a_SOURCES += src/threaddispatchdisablelevel.c
289endif
290
291## THREADQ_C_FILES
292libscore_a_SOURCES += src/threadq.c src/threadqdequeue.c \
293    src/threadqdequeuefifo.c src/threadqdequeuepriority.c \
294    src/threadqenqueue.c src/threadqenqueuefifo.c \
295    src/threadqenqueuepriority.c src/threadqextract.c \
296    src/threadqextractfifo.c src/threadqextractpriority.c \
297    src/threadqextractwithproxy.c src/threadqfirst.c src/threadqfirstfifo.c \
298    src/threadqfirstpriority.c src/threadqflush.c \
299    src/threadqprocesstimeout.c src/threadqtimeout.c
300
301## TIMESPEC_C_FILES
302libscore_a_SOURCES += src/timespecaddto.c src/timespecfromticks.c \
303    src/timespecisvalid.c src/timespeclessthan.c \
304    src/timespecsubtract.c src/timespectoticks.c src/timespecdivide.c \
305    src/timespecdividebyinteger.c src/timespecgetasnanoseconds.c
306
307## TIMESTAMP_INT64_C_FILES
308libscore_a_SOURCES += src/ts64addto.c src/ts64dividebyinteger.c \
309    src/ts64divide.c src/ts64equalto.c \
310    src/ts64getnanoseconds.c src/ts64getseconds.c \
311    src/ts64lessthan.c \
312    src/ts64set.c src/ts64settozero.c src/ts64subtract.c \
313    src/ts64toticks.c src/ts64totimespec.c src/ts64totimeval.c
314
315## TOD_C_FILES
316libscore_a_SOURCES += src/coretod.c src/coretodset.c src/coretodget.c \
317    src/coretodgetuptimetimespec.c src/coretodtickle.c \
318    src/coretodsecondssinceepoch.c \
319    src/coretodtickspersec.c
320
321## WATCHDOG_C_FILES
322libscore_a_SOURCES += src/watchdog.c src/watchdogadjust.c \
323    src/watchdogadjusttochain.c src/watchdoginsert.c src/watchdogremove.c \
324    src/watchdogtickle.c
325
326## USEREXT_C_FILES
327libscore_a_SOURCES += src/userextaddset.c \
328    src/userext.c src/userextremoveset.c src/userextiterate.c
329
330## STD_C_FILES
331libscore_a_SOURCES += src/apiext.c src/chain.c src/chainappend.c \
332    src/chainextract.c src/chainget.c src/chaininsert.c \
333    src/chainappendempty.c src/chainprependempty.c src/chaingetempty.c \
334    src/chainnodecount.c \
335    src/debugisthreaddispatchingallowed.c \
336    src/interr.c src/isr.c src/wkspace.c src/wkstringduplicate.c
337libscore_a_SOURCES += src/debugisownerofallocator.c
338libscore_a_SOURCES += src/profilingisrentryexit.c
339libscore_a_SOURCES += src/once.c
340
341EXTRA_DIST = src/Unlimited.txt
342
343DISTCLEANFILES = include/rtems/score/cpuopts.h
344
345include $(srcdir)/preinstall.am
346include $(top_srcdir)/automake/subdirs.am
347include $(top_srcdir)/automake/local.am
Note: See TracBrowser for help on using the repository browser.