source: rtems/cpukit/score/Makefile.am @ 9704efb4

5
Last change on this file since 9704efb4 was 6c2b8a4b, checked in by Sebastian Huber <sebastian.huber@…>, on 11/29/17 at 05:23:27

score: Use self-contained API mutex

Use a self-contained recursive mutex for API_Mutex_Control. The API
mutexes are protected against asynchronous thread cancellation.

Add dedicated mutexes for libatomic and TOD.

Close #2629.
Close #2630.

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