source: rtems/cpukit/score/Makefile.am @ 06dcaf0

4.115
Last change on this file since 06dcaf0 was 06dcaf0, checked in by Joel Sherrill <joel.sherrill@…>, on 03/16/11 at 20:05:06

2011-03-16 Jennifer Averett <jennifer.averett@…>

PR 1729/cpukit

  • configure.ac, sapi/include/confdefs.h, sapi/src/exinit.c, score/Makefile.am, score/preinstall.am, score/cpu/i386/rtems/score/cpu.h, score/cpu/sparc/cpu_asm.S, score/cpu/sparc/rtems/score/cpu.h, score/include/rtems/score/basedefs.h, score/include/rtems/score/context.h, score/include/rtems/score/percpu.h, score/src/percpu.c, score/src/thread.c, score/src/threadcreateidle.c: Add next step in SMP support. This adds an allocated array of the Per_CPU structures to support multiple cpus vs a single instance of the structure which is still used if SMP support is disabled. Configuration support is also added to explicitly enable or disable SMP. But SMP can only be enabled for the CPUs which will support it initially -- SPARC and i386. With the stub BSP support, a BSP can be run as a single core SMP system from an RTEMS data structure standpoint.
  • aclocal/check-smp.m4, aclocal/enable-smp.m4, score/include/rtems/bspsmp.h, score/include/rtems/score/smplock.h, score/src/smp.c, score/src/smplock.c: New files.
  • Property mode set to 100644
File size: 9.5 KB
Line 
1##
2## $Id$
3##
4
5include $(top_srcdir)/automake/multilib.am
6include $(top_srcdir)/automake/compile.am
7
8SUBDIRS = cpu
9
10## include
11
12include_rtemsdir = $(includedir)/rtems
13
14include_rtems_HEADERS = include/rtems/debug.h include/rtems/system.h \
15    include/rtems/seterr.h include/rtems/bspsmp.h
16
17include_rtems_scoredir = $(includedir)/rtems/score
18
19include_rtems_score_HEADERS = include/rtems/score/address.h \
20    include/rtems/score/apiext.h include/rtems/score/apimutex.h \
21    include/rtems/score/bitfield.h include/rtems/score/chain.h \
22    include/rtems/score/context.h include/rtems/score/copyrt.h \
23    include/rtems/score/corebarrier.h include/rtems/score/coremsg.h \
24    include/rtems/score/coremutex.h include/rtems/score/coresem.h \
25    include/rtems/score/heap.h include/rtems/score/protectedheap.h \
26    include/rtems/score/interr.h include/rtems/score/isr.h \
27    include/rtems/score/object.h include/rtems/score/percpu.h \
28    include/rtems/score/priority.h include/rtems/score/prioritybitmap.h \
29    include/rtems/score/scheduler.h include/rtems/score/schedulerpriority.h \
30    include/rtems/score/schedulersimple.h \
31    include/rtems/score/stack.h include/rtems/score/states.h \
32    include/rtems/score/sysstate.h include/rtems/score/thread.h \
33    include/rtems/score/threadq.h include/rtems/score/threadsync.h \
34    include/rtems/score/timespec.h include/rtems/score/timestamp.h \
35    include/rtems/score/timestamp64.h include/rtems/score/tod.h \
36    include/rtems/score/tqdata.h include/rtems/score/userext.h \
37    include/rtems/score/watchdog.h include/rtems/score/wkspace.h \
38    include/rtems/score/cpuopts.h include/rtems/score/basedefs.h \
39    include/rtems/score/smplock.h
40
41if HAS_PTHREADS
42include_rtems_score_HEADERS += include/rtems/score/corespinlock.h \
43    include/rtems/score/corerwlock.h
44endif
45
46if HAS_MP
47# We only build multiprocessing related files if HAS_MP was defined
48include_rtems_score_HEADERS += include/rtems/score/mpci.h \
49    include/rtems/score/mppkt.h include/rtems/score/objectmp.h \
50    include/rtems/score/threadmp.h
51endif
52
53## inline
54include_rtems_score_HEADERS += inline/rtems/score/address.inl \
55    inline/rtems/score/chain.inl inline/rtems/score/corebarrier.inl \
56    inline/rtems/score/coremsg.inl inline/rtems/score/coremutex.inl \
57    inline/rtems/score/coresem.inl inline/rtems/score/heap.inl \
58    inline/rtems/score/isr.inl inline/rtems/score/object.inl \
59    inline/rtems/score/priority.inl inline/rtems/score/prioritybitmap.inl \
60    inline/rtems/score/scheduler.inl inline/rtems/score/schedulerpriority.inl \
61    inline/rtems/score/schedulersimple.inl \
62    inline/rtems/score/stack.inl inline/rtems/score/states.inl \
63    inline/rtems/score/sysstate.inl inline/rtems/score/thread.inl \
64    inline/rtems/score/threadq.inl inline/rtems/score/tod.inl \
65    inline/rtems/score/tqdata.inl inline/rtems/score/watchdog.inl \
66    inline/rtems/score/wkspace.inl
67
68if HAS_PTHREADS
69include_rtems_score_HEADERS += inline/rtems/score/corespinlock.inl \
70    inline/rtems/score/corerwlock.inl
71endif
72
73if HAS_MP
74## We only build multiprocessing related files if HAS_MP was defined
75include_rtems_score_HEADERS += inline/rtems/score/mppkt.inl \
76    inline/rtems/score/objectmp.inl inline/rtems/score/threadmp.inl
77endif
78
79## src
80
81AM_CPPFLAGS += -D__RTEMS_INSIDE__
82
83noinst_LIBRARIES = libscore.a
84libscore_a_SOURCES =
85libscore_a_CPPFLAGS = $(AM_CPPFLAGS)
86
87# We only build multiprocessing related files if HAS_MP was defined
88if HAS_MP
89libscore_a_SOURCES += src/mpci.c src/objectmp.c src/threadmp.c
90endif
91
92libscore_a_SOURCES += src/smp.c src/smplock.c
93
94## CORE_APIMUTEX_C_FILES
95libscore_a_SOURCES += src/apimutex.c src/apimutexallocate.c \
96    src/apimutexlock.c src/apimutexunlock.c
97
98## CORE_BARRIER_C_FILES
99libscore_a_SOURCES += src/corebarrier.c src/corebarrierrelease.c \
100    src/corebarrierwait.c
101
102## CORE_MESSAGE_QUEUE_C_FILES
103libscore_a_SOURCES += src/coremsg.c src/coremsgbroadcast.c \
104    src/coremsgclose.c src/coremsgflush.c src/coremsgflushwait.c \
105    src/coremsginsert.c src/coremsgflushsupp.c src/coremsgseize.c \
106    src/coremsgsubmit.c
107
108## CORE_MUTEX_C_FILES
109libscore_a_SOURCES += src/coremutex.c src/coremutexflush.c \
110    src/coremutexseize.c src/coremutexsurrender.c \
111    src/coremutexseizeintr.c
112
113## CORE_PERCPU_C_FILES
114libscore_a_SOURCES += src/percpu.c
115
116## CORE_RWLOCK_C_FILES
117if HAS_PTHREADS
118libscore_a_SOURCES += src/corerwlock.c src/corerwlockobtainread.c \
119    src/corerwlockobtainwrite.c src/corerwlockrelease.c src/corerwlocktimeout.c
120endif
121
122## CORE_SEMAPHORE_C_FILES
123libscore_a_SOURCES += src/coresem.c src/coresemflush.c src/coresemseize.c \
124    src/coresemsurrender.c
125
126## CORE_SPINLOCK_C_FILES
127if HAS_PTHREADS
128libscore_a_SOURCES += src/corespinlock.c src/corespinlockrelease.c \
129    src/corespinlockwait.c
130endif
131
132## HEAP_C_FILES
133libscore_a_SOURCES += src/heap.c src/heapallocate.c src/heapextend.c \
134    src/heapfree.c src/heapsizeofuserarea.c src/heapwalk.c src/heapgetinfo.c \
135    src/heapgetfreeinfo.c src/heapresizeblock.c
136
137## OBJECT_C_FILES
138libscore_a_SOURCES += src/objectallocate.c src/objectclose.c \
139    src/objectextendinformation.c src/objectfree.c src/objectget.c \
140    src/objectgetisr.c src/objectgetnext.c src/objectinitializeinformation.c \
141    src/objectnametoid.c src/objectnametoidstring.c \
142    src/objectshrinkinformation.c src/objectgetnoprotection.c \
143    src/objectidtoname.c src/objectgetnameasstring.c src/objectsetname.c \
144    src/objectgetinfo.c src/objectgetinfoid.c src/objectapimaximumclass.c \
145    src/objectnamespaceremove.c
146
147## SCHEDULER_C_FILES
148libscore_a_SOURCES += src/scheduler.c
149
150## SCHEDULERPRIORITY_C_FILES
151libscore_a_SOURCES += src/schedulerpriority.c \
152    src/schedulerpriorityallocate.c \
153    src/schedulerpriorityblock.c \
154    src/schedulerpriorityenqueue.c \
155    src/schedulerpriorityenqueuefirst.c \
156    src/schedulerpriorityextract.c \
157    src/schedulerpriorityfree.c \
158    src/schedulerpriorityschedule.c \
159    src/schedulerpriorityunblock.c \
160    src/schedulerpriorityupdate.c \
161    src/schedulerpriorityyield.c
162
163## SCHEDULERSIMPLE_C_FILES
164libscore_a_SOURCES += src/schedulersimple.c \
165    src/schedulersimpleblock.c \
166    src/schedulersimpleenqueue.c \
167    src/schedulersimpleenqueuefirst.c \
168    src/schedulersimpleextract.c \
169    src/schedulersimplereadyqueueenqueue.c \
170    src/schedulersimplereadyqueueenqueuefirst.c \
171    src/schedulersimpleschedule.c \
172    src/schedulersimpleunblock.c \
173    src/schedulersimpleyield.c
174
175## PROTECTED_HEAP_C_FILES
176libscore_a_SOURCES += src/pheapallocate.c \
177    src/pheapextend.c src/pheapfree.c src/pheapgetsize.c \
178    src/pheapgetblocksize.c src/pheapgetfreeinfo.c src/pheapgetinfo.c \
179    src/pheapinit.c src/pheapresizeblock.c src/pheapwalk.c
180
181## THREAD_C_FILES
182libscore_a_SOURCES += src/thread.c src/threadchangepriority.c \
183    src/threadclearstate.c src/threadclose.c src/threadcreateidle.c \
184    src/threaddelayended.c src/threaddispatch.c \
185    src/threadget.c src/threadhandler.c src/threadinitialize.c \
186    src/threadloadenv.c src/threadready.c src/threadreset.c \
187    src/threadrestart.c src/threadsetpriority.c \
188    src/threadsetstate.c src/threadsettransient.c \
189    src/threadstackallocate.c src/threadstackfree.c src/threadstart.c \
190    src/threadstartmultitasking.c src/threadtickletimeslice.c \
191    src/iterateoverthreads.c src/threadblockingoperationcancel.c
192
193## THREADQ_C_FILES
194libscore_a_SOURCES += src/threadq.c src/threadqdequeue.c \
195    src/threadqdequeuefifo.c src/threadqdequeuepriority.c \
196    src/threadqenqueue.c src/threadqenqueuefifo.c \
197    src/threadqenqueuepriority.c src/threadqextract.c \
198    src/threadqextractfifo.c src/threadqextractpriority.c \
199    src/threadqextractwithproxy.c src/threadqfirst.c src/threadqfirstfifo.c \
200    src/threadqfirstpriority.c src/threadqflush.c src/threadqrequeue.c \
201    src/threadqprocesstimeout.c src/threadqtimeout.c
202
203## TIMESPEC_C_FILES
204libscore_a_SOURCES += src/timespecaddto.c src/timespecfromticks.c \
205    src/timespecisvalid.c src/timespeclessthan.c src/timespecgreaterthan.c \
206    src/timespecsubtract.c src/timespectoticks.c src/timespecdivide.c \
207    src/timespecdividebyinteger.c
208
209## TIMESTAMP_INT64_C_FILES
210libscore_a_SOURCES += src/ts64addto.c src/ts64dividebyinteger.c \
211    src/ts64divide.c src/ts64equalto.c \
212    src/ts64getnanoseconds.c src/ts64getseconds.c \
213    src/ts64greaterthan.c src/ts64lessthan.c \
214    src/ts64set.c src/ts64settozero.c src/ts64subtract.c \
215    src/ts64toticks.c src/ts64totimespec.c
216
217## TOD_C_FILES
218libscore_a_SOURCES += src/coretod.c src/coretodset.c src/coretodget.c \
219    src/coretodgetuptime.c src/coretodgetuptimetimespec.c src/coretodtickle.c \
220    src/coretodmsecstoticks.c src/coretodtickspersec.c src/coretodusectoticks.c
221
222## WATCHDOG_C_FILES
223libscore_a_SOURCES += src/watchdog.c src/watchdogadjust.c \
224    src/watchdogadjusttochain.c src/watchdoginsert.c src/watchdogremove.c \
225    src/watchdogtickle.c src/watchdogreport.c src/watchdogreportchain.c \
226    src/watchdognanoseconds.c
227
228## USEREXT_C_FILES
229libscore_a_SOURCES += src/userextaddset.c \
230    src/userext.c src/userextremoveset.c src/userextthreadbegin.c \
231    src/userextthreadcreate.c src/userextthreaddelete.c \
232    src/userextthreadrestart.c src/userextthreadstart.c \
233    src/userextthreadswitch.c
234
235## STD_C_FILES
236libscore_a_SOURCES += src/apiext.c src/chain.c src/chainappend.c \
237    src/chainextract.c src/chainget.c src/chaininsert.c \
238    src/chainappendempty.c src/chainprependempty.c src/chaingetempty.c \
239    src/interr.c src/isr.c src/wkspace.c
240
241EXTRA_DIST = src/Unlimited.txt
242
243DISTCLEANFILES = include/rtems/score/cpuopts.h
244
245include $(srcdir)/preinstall.am
246include $(top_srcdir)/automake/subdirs.am
247include $(top_srcdir)/automake/local.am
Note: See TracBrowser for help on using the repository browser.