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

4.115
Last change on this file since cc366ec was cc366ec, checked in by Sebastian Huber <sebastian.huber@…>, on 04/24/15 at 10:02:20

score: New thread queue implementation

Use thread wait flags for synchronization. The enqueue operation is now
part of the initial critical section. This is the key change and
enables fine grained locking on SMP for objects using a thread queue
like semaphores and message queues.

Update #2273.

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