source: rtems/cpukit/score/Makefile.am @ beab7329

4.11
Last change on this file since beab7329 was beab7329, checked in by Sebastian Huber <sebastian.huber@…>, on May 13, 2014 at 2:03:05 PM

score: Introduce scheduler nodes

Rename scheduler per-thread information into scheduler nodes using
Scheduler_Node as the base type. Use inheritance for specialized
schedulers.

Move the scheduler specific states from the thread control block into
the scheduler node structure.

Validate the SMP scheduler node state transitions in case RTEMS_DEBUG is
defined.

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