source: rtems/cpukit/score/Makefile.am @ 69aa3349

4.115
Last change on this file since 69aa3349 was 69aa3349, checked in by Sebastian Huber <sebastian.huber@…>, on 04/08/14 at 07:42:29

score: Simplify thread control initialization

The thread control block contains fields that point to application
configuration dependent memory areas, like the scheduler information,
the API control blocks, the user extension context table, the RTEMS
notepads and the Newlib re-entrancy support. Account for these areas in
the configuration and avoid extra workspace allocations for these areas.

This helps also to avoid heap fragementation and reduces the per thread
memory due to a reduced heap allocation overhead.

  • Property mode set to 100644
File size: 14.3 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/scheduleredf.h
56include_rtems_score_HEADERS += include/rtems/score/scheduleredfimpl.h
57include_rtems_score_HEADERS += include/rtems/score/schedulerpriority.h
58include_rtems_score_HEADERS += include/rtems/score/schedulerpriorityimpl.h
59include_rtems_score_HEADERS += include/rtems/score/schedulerprioritysmp.h
60include_rtems_score_HEADERS += include/rtems/score/schedulersimple.h
61include_rtems_score_HEADERS += include/rtems/score/schedulersimpleimpl.h
62include_rtems_score_HEADERS += include/rtems/score/schedulersmp.h
63include_rtems_score_HEADERS += include/rtems/score/schedulersmpimpl.h
64include_rtems_score_HEADERS += include/rtems/score/smp.h
65include_rtems_score_HEADERS += include/rtems/score/smpbarrier.h
66include_rtems_score_HEADERS += include/rtems/score/smplock.h
67include_rtems_score_HEADERS += include/rtems/score/smpimpl.h
68include_rtems_score_HEADERS += include/rtems/score/stack.h
69include_rtems_score_HEADERS += include/rtems/score/stackimpl.h
70include_rtems_score_HEADERS += include/rtems/score/states.h
71include_rtems_score_HEADERS += include/rtems/score/statesimpl.h
72include_rtems_score_HEADERS += include/rtems/score/sysstate.h
73include_rtems_score_HEADERS += include/rtems/score/thread.h
74include_rtems_score_HEADERS += include/rtems/score/threadimpl.h
75include_rtems_score_HEADERS += include/rtems/score/threaddispatch.h
76include_rtems_score_HEADERS += include/rtems/score/threadq.h
77include_rtems_score_HEADERS += include/rtems/score/threadqimpl.h
78include_rtems_score_HEADERS += include/rtems/score/threadsync.h
79include_rtems_score_HEADERS += include/rtems/score/timespec.h
80include_rtems_score_HEADERS += include/rtems/score/timestamp.h
81include_rtems_score_HEADERS += include/rtems/score/timestamp64.h
82include_rtems_score_HEADERS += include/rtems/score/tls.h
83include_rtems_score_HEADERS += include/rtems/score/tod.h
84include_rtems_score_HEADERS += include/rtems/score/todimpl.h
85include_rtems_score_HEADERS += include/rtems/score/userext.h
86include_rtems_score_HEADERS += include/rtems/score/userextimpl.h
87include_rtems_score_HEADERS += include/rtems/score/watchdog.h
88include_rtems_score_HEADERS += include/rtems/score/watchdogimpl.h
89include_rtems_score_HEADERS += include/rtems/score/wkspace.h
90include_rtems_score_HEADERS += include/rtems/score/cpuopts.h
91include_rtems_score_HEADERS += include/rtems/score/basedefs.h
92
93if HAS_PTHREADS
94include_rtems_score_HEADERS += include/rtems/score/corespinlock.h
95include_rtems_score_HEADERS += include/rtems/score/corespinlockimpl.h
96include_rtems_score_HEADERS += include/rtems/score/corerwlock.h
97include_rtems_score_HEADERS += include/rtems/score/corerwlockimpl.h
98endif
99
100if HAS_MP
101# We only build multiprocessing related files if HAS_MP was defined
102include_rtems_score_HEADERS += include/rtems/score/mpci.h
103include_rtems_score_HEADERS += include/rtems/score/mpciimpl.h
104include_rtems_score_HEADERS += include/rtems/score/mppkt.h
105include_rtems_score_HEADERS += include/rtems/score/objectmp.h
106include_rtems_score_HEADERS += include/rtems/score/threadmp.h
107endif
108
109if HAS_SMP
110include_rtems_score_HEADERS += include/rtems/score/atomic.h
111include_rtems_score_HEADERS += include/rtems/score/cpustdatomic.h
112include_rtems_score_HEADERS += include/rtems/score/schedulerpriorityaffinitysmp.h
113include_rtems_score_HEADERS += include/rtems/score/schedulersimplesmp.h
114endif
115
116## src
117
118noinst_LIBRARIES = libscore.a
119libscore_a_SOURCES =
120libscore_a_CPPFLAGS = $(AM_CPPFLAGS)
121
122# We only build multiprocessing related files if HAS_MP was defined
123if HAS_MP
124libscore_a_SOURCES += src/mpci.c src/objectmp.c src/threadmp.c
125endif
126
127if HAS_SMP
128libscore_a_SOURCES += src/profilingsmplock.c
129libscore_a_SOURCES += src/schedulerpriorityaffinitysmp.c
130libscore_a_SOURCES += src/schedulerprioritysmp.c
131libscore_a_SOURCES += src/schedulersimplesmp.c
132libscore_a_SOURCES += src/smp.c
133libscore_a_SOURCES += src/cpuset.c
134libscore_a_SOURCES += src/cpusetprintsupport.c
135libscore_a_SOURCES += src/schedulerdefaultgetaffinity.c
136libscore_a_SOURCES += src/schedulerdefaultsetaffinity.c
137endif
138
139## CORE_APIMUTEX_C_FILES
140libscore_a_SOURCES += src/apimutex.c \
141    src/apimutexlock.c src/apimutexunlock.c
142
143## CORE_BARRIER_C_FILES
144libscore_a_SOURCES += src/corebarrier.c src/corebarrierrelease.c \
145    src/corebarrierwait.c
146
147## CORE_MESSAGE_QUEUE_C_FILES
148libscore_a_SOURCES += src/coremsg.c src/coremsgbroadcast.c \
149    src/coremsgclose.c src/coremsgflush.c src/coremsgflushwait.c \
150    src/coremsginsert.c src/coremsgflushsupp.c src/coremsgseize.c \
151    src/coremsgsubmit.c
152
153## CORE_MUTEX_C_FILES
154libscore_a_SOURCES += src/coremutex.c src/coremutexflush.c \
155    src/coremutexseize.c src/coremutexsurrender.c \
156    src/coremutexseizeintr.c
157
158## CORE_PERCPU_C_FILES
159libscore_a_SOURCES += src/percpu.c
160libscore_a_SOURCES += src/percpuasm.c
161
162## CORE_RWLOCK_C_FILES
163if HAS_PTHREADS
164libscore_a_SOURCES += src/corerwlock.c src/corerwlockobtainread.c \
165    src/corerwlockobtainwrite.c src/corerwlockrelease.c src/corerwlocktimeout.c
166endif
167
168## CORE_SEMAPHORE_C_FILES
169libscore_a_SOURCES += src/coresem.c src/coresemflush.c src/coresemseize.c \
170    src/coresemsurrender.c
171
172## CORE_SPINLOCK_C_FILES
173if HAS_PTHREADS
174libscore_a_SOURCES += src/corespinlock.c src/corespinlockrelease.c \
175    src/corespinlockwait.c
176endif
177
178## HEAP_C_FILES
179libscore_a_SOURCES += src/heap.c src/heapallocate.c src/heapextend.c \
180    src/heapfree.c src/heapsizeofuserarea.c src/heapwalk.c src/heapgetinfo.c \
181    src/heapgetfreeinfo.c src/heapresizeblock.c src/heapiterate.c \
182    src/heapgreedy.c src/heapnoextend.c
183
184## OBJECT_C_FILES
185libscore_a_SOURCES += src/objectallocate.c src/objectclose.c \
186    src/objectextendinformation.c src/objectfree.c src/objectget.c \
187    src/objectgetisr.c src/objectgetnext.c src/objectinitializeinformation.c \
188    src/objectnametoid.c src/objectnametoidstring.c \
189    src/objectshrinkinformation.c src/objectgetnoprotection.c \
190    src/objectidtoname.c src/objectgetnameasstring.c src/objectsetname.c \
191    src/objectgetinfo.c src/objectgetinfoid.c src/objectapimaximumclass.c \
192    src/objectnamespaceremove.c \
193    src/objectactivecount.c
194
195## SCHEDULER_C_FILES
196libscore_a_SOURCES += src/log2table.c
197libscore_a_SOURCES += src/scheduler.c
198libscore_a_SOURCES += src/schedulerdefaultallocatefree.c
199libscore_a_SOURCES += src/schedulerdefaultreleasejob.c
200libscore_a_SOURCES += src/schedulerdefaultstartidle.c
201libscore_a_SOURCES += src/schedulerdefaulttick.c
202libscore_a_SOURCES += src/schedulerdefaultupdate.c
203
204## SCHEDULERPRIORITY_C_FILES
205libscore_a_SOURCES += src/schedulerpriority.c \
206    src/schedulerpriorityblock.c \
207    src/schedulerpriorityenqueue.c \
208    src/schedulerpriorityenqueuefirst.c \
209    src/schedulerpriorityextract.c \
210    src/schedulerpriorityprioritycompare.c \
211    src/schedulerpriorityschedule.c \
212    src/schedulerpriorityunblock.c \
213    src/schedulerpriorityupdate.c \
214    src/schedulerpriorityyield.c
215
216## SCHEDULERSIMPLE_C_FILES
217libscore_a_SOURCES += src/schedulersimple.c \
218    src/schedulersimpleblock.c \
219    src/schedulersimpleenqueue.c \
220    src/schedulersimpleenqueuefirst.c \
221    src/schedulersimpleextract.c \
222    src/schedulersimplereadyqueueenqueue.c \
223    src/schedulersimplereadyqueueenqueuefirst.c \
224    src/schedulersimpleschedule.c \
225    src/schedulersimpleunblock.c \
226    src/schedulersimpleyield.c
227
228## SCHEDULEREDF_C_FILES
229libscore_a_SOURCES += src/scheduleredf.c \
230    src/scheduleredfallocate.c \
231    src/scheduleredfblock.c \
232    src/scheduleredfenqueue.c \
233    src/scheduleredfenqueuefirst.c \
234    src/scheduleredfextract.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 src/threadsettransient.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 src/threadqrequeue.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.