source: rtems/cpukit/score/Makefile.am @ 3af7e23e

4.115
Last change on this file since 3af7e23e was f1738ed, checked in by Sebastian Huber <sebastian.huber@…>, on 11/04/12 at 20:04:39

score: PR1607: Add and use CPU_SIZEOF_POINTER

Add and use new CPU port define CPU_SIZEOF_POINTER. It must be an
integer literal that can be used by the assembler. This value will be
used to calculate offsets of structure members. These offsets will be
used in assembler code.

The size of a pointer is part of the application binary interface (ABI)
and thus independent of the actual programming language. The compiler
will provide defines to determine the current ABI. We use these defines
to select the appropriate CPU_SIZEOF_POINTER value.

Static assertions in the new file "cpukit/score/src/percpuasm.c" will
ensure that the value of CPU_SIZEOF_POINTER is consistent with the
current compiler settings. Also the offset values used by assembler
code are verfied.

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