source: rtems/cpukit/score/Makefile.am @ 2d915cf

4.115
Last change on this file since 2d915cf was 2d915cf, checked in by Sebastian Huber <sebastian.huber@…>, on 07/31/13 at 10:59:35

score: Add and use ISR locks

ISR locks are low-level locks to protect critical sections accessed by
threads and interrupt service routines.

On single processor configurations the ISR locks degrade to simple ISR
disable/enable sequences. No additional storage or objects are
required.

This synchronization primitive is supported on SMP configurations. Here
SMP locks are used.

  • Property mode set to 100644
File size: 13.1 KB
RevLine 
[0c819966]1include $(top_srcdir)/automake/multilib.am
[53fa63e]2include $(top_srcdir)/automake/compile.am
[e1d8abb]3
[4df3f89]4SUBDIRS = cpu
[0c819966]5
6## include
7
8include_rtemsdir = $(includedir)/rtems
9
[a2680da0]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
[0c819966]14
15include_rtems_scoredir = $(includedir)/rtems/score
16
[a2680da0]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
[95519eed]20include_rtems_score_HEADERS += include/rtems/score/assert.h
[a2680da0]21include_rtems_score_HEADERS += include/rtems/score/chain.h
[6e93dc4a]22include_rtems_score_HEADERS += include/rtems/score/chainimpl.h
[a2680da0]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
[bb2d9f9]26include_rtems_score_HEADERS += include/rtems/score/corebarrierimpl.h
[a2680da0]27include_rtems_score_HEADERS += include/rtems/score/coremsg.h
[b5d514f]28include_rtems_score_HEADERS += include/rtems/score/coremsgimpl.h
[a2680da0]29include_rtems_score_HEADERS += include/rtems/score/coremutex.h
[20e239c2]30include_rtems_score_HEADERS += include/rtems/score/coremuteximpl.h
[a2680da0]31include_rtems_score_HEADERS += include/rtems/score/coresem.h
[c4f58558]32include_rtems_score_HEADERS += include/rtems/score/coresemimpl.h
[a2680da0]33include_rtems_score_HEADERS += include/rtems/score/heap.h
[e6f7f81]34include_rtems_score_HEADERS += include/rtems/score/heapimpl.h
[a2680da0]35include_rtems_score_HEADERS += include/rtems/score/protectedheap.h
36include_rtems_score_HEADERS += include/rtems/score/interr.h
37include_rtems_score_HEADERS += include/rtems/score/isr.h
[df00777]38include_rtems_score_HEADERS += include/rtems/score/isrlevel.h
[2d915cf]39include_rtems_score_HEADERS += include/rtems/score/isrlock.h
[8fb2bea]40include_rtems_score_HEADERS += include/rtems/score/freechain.h
[a2680da0]41include_rtems_score_HEADERS += include/rtems/score/object.h
[a2e3f33]42include_rtems_score_HEADERS += include/rtems/score/objectimpl.h
[a2680da0]43include_rtems_score_HEADERS += include/rtems/score/percpu.h
44include_rtems_score_HEADERS += include/rtems/score/priority.h
45include_rtems_score_HEADERS += include/rtems/score/prioritybitmap.h
[f0bfd7d8]46include_rtems_score_HEADERS += include/rtems/score/prioritybitmapimpl.h
[a2680da0]47include_rtems_score_HEADERS += include/rtems/score/rbtree.h
[93fb3cb0]48include_rtems_score_HEADERS += include/rtems/score/rbtreeimpl.h
[a2680da0]49include_rtems_score_HEADERS += include/rtems/score/scheduler.h
[c6e21ee1]50include_rtems_score_HEADERS += include/rtems/score/schedulerimpl.h
[82db8e56]51include_rtems_score_HEADERS += include/rtems/score/schedulercbs.h
[5472ad41]52include_rtems_score_HEADERS += include/rtems/score/scheduleredf.h
[a2680da0]53include_rtems_score_HEADERS += include/rtems/score/schedulerpriority.h
[f068384e]54include_rtems_score_HEADERS += include/rtems/score/schedulerpriorityimpl.h
[a2680da0]55include_rtems_score_HEADERS += include/rtems/score/schedulersimple.h
[bd5606ab]56include_rtems_score_HEADERS += include/rtems/score/schedulersimpleimpl.h
[edde99b]57include_rtems_score_HEADERS += include/rtems/score/smp.h
[3ccce23]58include_rtems_score_HEADERS += include/rtems/score/smplock.h
[a2680da0]59include_rtems_score_HEADERS += include/rtems/score/stack.h
[218286bc]60include_rtems_score_HEADERS += include/rtems/score/stackimpl.h
[a2680da0]61include_rtems_score_HEADERS += include/rtems/score/states.h
[fe6c170c]62include_rtems_score_HEADERS += include/rtems/score/statesimpl.h
[a2680da0]63include_rtems_score_HEADERS += include/rtems/score/sysstate.h
64include_rtems_score_HEADERS += include/rtems/score/thread.h
[5618c37a]65include_rtems_score_HEADERS += include/rtems/score/threadimpl.h
[4fc370e]66include_rtems_score_HEADERS += include/rtems/score/threaddispatch.h
[a2680da0]67include_rtems_score_HEADERS += include/rtems/score/threadq.h
[a112364]68include_rtems_score_HEADERS += include/rtems/score/threadqimpl.h
[a2680da0]69include_rtems_score_HEADERS += include/rtems/score/threadsync.h
70include_rtems_score_HEADERS += include/rtems/score/timespec.h
71include_rtems_score_HEADERS += include/rtems/score/timestamp.h
72include_rtems_score_HEADERS += include/rtems/score/timestamp64.h
73include_rtems_score_HEADERS += include/rtems/score/tod.h
74include_rtems_score_HEADERS += include/rtems/score/userext.h
[3be0c9a]75include_rtems_score_HEADERS += include/rtems/score/userextimpl.h
[a2680da0]76include_rtems_score_HEADERS += include/rtems/score/watchdog.h
[4b48ece0]77include_rtems_score_HEADERS += include/rtems/score/watchdogimpl.h
[a2680da0]78include_rtems_score_HEADERS += include/rtems/score/wkspace.h
79include_rtems_score_HEADERS += include/rtems/score/cpuopts.h
80include_rtems_score_HEADERS += include/rtems/score/basedefs.h
[2e7f5798]81if ATOMIC
[9d23df2]82include_rtems_score_HEADERS += include/rtems/score/atomic.h
[34229d5]83include_rtems_score_HEADERS += include/rtems/score/cpustdatomic.h
[2e7f5798]84endif
[42bb344e]85
[88157a7]86if HAS_PTHREADS
[a2680da0]87include_rtems_score_HEADERS += include/rtems/score/corespinlock.h
[c71b596]88include_rtems_score_HEADERS += include/rtems/score/corespinlockimpl.h
[a2680da0]89include_rtems_score_HEADERS += include/rtems/score/corerwlock.h
[cbdabc8]90include_rtems_score_HEADERS += include/rtems/score/corerwlockimpl.h
[0df035b]91endif
92
[0c819966]93if HAS_MP
[8f83131]94# We only build multiprocessing related files if HAS_MP was defined
[a2680da0]95include_rtems_score_HEADERS += include/rtems/score/mpci.h
[7f04cb18]96include_rtems_score_HEADERS += include/rtems/score/mpciimpl.h
[a2680da0]97include_rtems_score_HEADERS += include/rtems/score/mppkt.h
98include_rtems_score_HEADERS += include/rtems/score/objectmp.h
99include_rtems_score_HEADERS += include/rtems/score/threadmp.h
[0c819966]100endif
101
[ba7bc099]102if HAS_SMP
103include_rtems_score_HEADERS += include/rtems/score/schedulersimplesmp.h
104endif
105
[0c819966]106## src
107
[4df3f89]108AM_CPPFLAGS += -D__RTEMS_INSIDE__
109
110noinst_LIBRARIES = libscore.a
111libscore_a_SOURCES =
112libscore_a_CPPFLAGS = $(AM_CPPFLAGS)
113
[0c819966]114# We only build multiprocessing related files if HAS_MP was defined
[4df3f89]115if HAS_MP
116libscore_a_SOURCES += src/mpci.c src/objectmp.c src/threadmp.c
117endif
[0c819966]118
[42bb344e]119if HAS_SMP
[a936aa49]120libscore_a_SOURCES += src/isrsmp.c
121libscore_a_SOURCES += src/schedulersimplesmp.c
122libscore_a_SOURCES += src/smp.c
[42bb344e]123endif
[06dcaf0]124
[8fd28d83]125## CORE_APIMUTEX_C_FILES
[a2e3f33]126libscore_a_SOURCES += src/apimutex.c \
[8fd28d83]127    src/apimutexlock.c src/apimutexunlock.c
128
[9c191ee]129## CORE_BARRIER_C_FILES
130libscore_a_SOURCES += src/corebarrier.c src/corebarrierrelease.c \
131    src/corebarrierwait.c
132
[4df3f89]133## CORE_MESSAGE_QUEUE_C_FILES
134libscore_a_SOURCES += src/coremsg.c src/coremsgbroadcast.c \
[8f83131]135    src/coremsgclose.c src/coremsgflush.c src/coremsgflushwait.c \
136    src/coremsginsert.c src/coremsgflushsupp.c src/coremsgseize.c \
137    src/coremsgsubmit.c
[0c819966]138
[4df3f89]139## CORE_MUTEX_C_FILES
140libscore_a_SOURCES += src/coremutex.c src/coremutexflush.c \
[bc2b8df6]141    src/coremutexseize.c src/coremutexsurrender.c \
142    src/coremutexseizeintr.c
[0c819966]143
[11e8bc5]144## CORE_PERCPU_C_FILES
145libscore_a_SOURCES += src/percpu.c
[f1738ed]146libscore_a_SOURCES += src/percpuasm.c
[11e8bc5]147
[9c191ee]148## CORE_RWLOCK_C_FILES
[88157a7]149if HAS_PTHREADS
[9c191ee]150libscore_a_SOURCES += src/corerwlock.c src/corerwlockobtainread.c \
[047d67a]151    src/corerwlockobtainwrite.c src/corerwlockrelease.c src/corerwlocktimeout.c
[88157a7]152endif
[9c191ee]153
[4df3f89]154## CORE_SEMAPHORE_C_FILES
155libscore_a_SOURCES += src/coresem.c src/coresemflush.c src/coresemseize.c \
[0c819966]156    src/coresemsurrender.c
157
[9c191ee]158## CORE_SPINLOCK_C_FILES
[88157a7]159if HAS_PTHREADS
[9c191ee]160libscore_a_SOURCES += src/corespinlock.c src/corespinlockrelease.c \
161    src/corespinlockwait.c
[0df035b]162endif
[9c191ee]163
[4df3f89]164## HEAP_C_FILES
[e746a88]165libscore_a_SOURCES += src/heap.c src/heapallocate.c src/heapextend.c \
166    src/heapfree.c src/heapsizeofuserarea.c src/heapwalk.c src/heapgetinfo.c \
[28a0887]167    src/heapgetfreeinfo.c src/heapresizeblock.c src/heapiterate.c \
[6ccfe72]168    src/heapgreedy.c src/heapnoextend.c
[0c819966]169
[4df3f89]170## OBJECT_C_FILES
[584ab9e]171libscore_a_SOURCES += src/objectallocate.c src/objectclose.c \
[ce19f1fa]172    src/objectextendinformation.c src/objectfree.c src/objectget.c \
173    src/objectgetisr.c src/objectgetnext.c src/objectinitializeinformation.c \
174    src/objectnametoid.c src/objectnametoidstring.c \
[ff08b808]175    src/objectshrinkinformation.c src/objectgetnoprotection.c \
[6c06288]176    src/objectidtoname.c src/objectgetnameasstring.c src/objectsetname.c \
[9184270]177    src/objectgetinfo.c src/objectgetinfoid.c src/objectapimaximumclass.c \
[fe1dc22]178    src/objectnamespaceremove.c \
179    src/objectactivecount.c
[0c819966]180
[0faa9dad]181## SCHEDULER_C_FILES
182libscore_a_SOURCES += src/scheduler.c
[a344308]183libscore_a_SOURCES += src/schedulerdefaulttick.c
[1ccb64e1]184libscore_a_SOURCES += src/schedulerdefaultstartidle.c
[0faa9dad]185
186## SCHEDULERPRIORITY_C_FILES
187libscore_a_SOURCES += src/schedulerpriority.c \
[108c4b0]188    src/schedulerpriorityallocate.c \
189    src/schedulerpriorityblock.c \
190    src/schedulerpriorityenqueue.c \
191    src/schedulerpriorityenqueuefirst.c \
192    src/schedulerpriorityextract.c \
193    src/schedulerpriorityfree.c \
[ac9d2ecc]194    src/schedulerpriorityprioritycompare.c \
195    src/schedulerpriorityreleasejob.c \
[108c4b0]196    src/schedulerpriorityschedule.c \
197    src/schedulerpriorityunblock.c \
198    src/schedulerpriorityupdate.c \
199    src/schedulerpriorityyield.c
[0faa9dad]200
[0118ed6]201## SCHEDULERSIMPLE_C_FILES
202libscore_a_SOURCES += src/schedulersimple.c \
203    src/schedulersimpleblock.c \
204    src/schedulersimpleenqueue.c \
205    src/schedulersimpleenqueuefirst.c \
206    src/schedulersimpleextract.c \
207    src/schedulersimplereadyqueueenqueue.c \
208    src/schedulersimplereadyqueueenqueuefirst.c \
209    src/schedulersimpleschedule.c \
210    src/schedulersimpleunblock.c \
211    src/schedulersimpleyield.c
212
[5472ad41]213## SCHEDULEREDF_C_FILES
214libscore_a_SOURCES += src/scheduleredf.c \
215    src/scheduleredfallocate.c \
216    src/scheduleredfblock.c \
217    src/scheduleredfenqueue.c \
218    src/scheduleredfenqueuefirst.c \
219    src/scheduleredfextract.c \
220    src/scheduleredffree.c \
221    src/scheduleredfprioritycompare.c \
222    src/scheduleredfreleasejob.c \
223    src/scheduleredfschedule.c \
224    src/scheduleredfunblock.c \
225    src/scheduleredfupdate.c \
226    src/scheduleredfyield.c
227
[82db8e56]228## SCHEDULERCBS_C_FILES
229libscore_a_SOURCES += src/schedulercbs.c \
[7a9288fe]230    src/schedulercbsallocate.c \
[82db8e56]231    src/schedulercbsattachthread.c \
232    src/schedulercbscleanup.c \
233    src/schedulercbscreateserver.c \
234    src/schedulercbsdestroyserver.c \
235    src/schedulercbsdetachthread.c \
236    src/schedulercbsgetapprovedbudget.c \
237    src/schedulercbsgetexecutiontime.c \
238    src/schedulercbsgetparameters.c \
239    src/schedulercbsgetremainingbudget.c \
240    src/schedulercbsgetserverid.c \
241    src/schedulercbssetparameters.c \
242    src/schedulercbsreleasejob.c \
243    src/schedulercbsunblock.c
244
[e746a88]245## PROTECTED_HEAP_C_FILES
[9224a751]246libscore_a_SOURCES += src/pheapallocate.c \
[7246c8e9]247    src/pheapextend.c src/pheapfree.c src/pheapgetsize.c \
248    src/pheapgetblocksize.c src/pheapgetfreeinfo.c src/pheapgetinfo.c \
[a89ae540]249    src/pheapinit.c src/pheapresizeblock.c src/pheapwalk.c src/pheapiterate.c
[e746a88]250
[8fb2bea]251## FREECHAIN_C_FILES
252libscore_a_SOURCES += src/freechain.c
253
[bd9baa81]254## RBTREE_C_FILES
255libscore_a_SOURCES += src/rbtree.c \
256    src/rbtreeextract.c src/rbtreefind.c src/rbtreefindheader.c \
[0f31ec5d]257    src/rbtreeget.c src/rbtreeinsert.c src/rbtreeiterate.c src/rbtreenext.c
[bd9baa81]258
[4df3f89]259## THREAD_C_FILES
260libscore_a_SOURCES += src/thread.c src/threadchangepriority.c \
[8f83131]261    src/threadclearstate.c src/threadclose.c src/threadcreateidle.c \
[569b3f4]262    src/threaddelayended.c src/threaddispatch.c \
[d7c3883]263    src/threadenabledispatch.c src/threaddisabledispatch.c \
[93f7ea15]264    src/threadget.c src/threadhandler.c src/threadinitialize.c \
[8bef4cc]265    src/threadloadenv.c src/threadready.c src/threadreset.c \
[59eb125]266    src/threadrestart.c src/threadsetpriority.c \
[8bef4cc]267    src/threadsetstate.c src/threadsettransient.c \
[93f7ea15]268    src/threadstackallocate.c src/threadstackfree.c src/threadstart.c \
[3203e09]269    src/threadstartmultitasking.c src/iterateoverthreads.c \
270    src/threadblockingoperationcancel.c
[3a8a999]271   
272if HAS_SMP
273libscore_a_SOURCES += src/threaddispatchdisablelevel.c
274endif
[0c819966]275
[4df3f89]276## THREADQ_C_FILES
277libscore_a_SOURCES += src/threadq.c src/threadqdequeue.c \
[8f83131]278    src/threadqdequeuefifo.c src/threadqdequeuepriority.c \
279    src/threadqenqueue.c src/threadqenqueuefifo.c \
280    src/threadqenqueuepriority.c src/threadqextract.c \
281    src/threadqextractfifo.c src/threadqextractpriority.c \
282    src/threadqextractwithproxy.c src/threadqfirst.c src/threadqfirstfifo.c \
[96d0b64]283    src/threadqfirstpriority.c src/threadqflush.c src/threadqrequeue.c \
[c57f26bd]284    src/threadqprocesstimeout.c src/threadqtimeout.c
[0c819966]285
[fc054ca]286## TIMESPEC_C_FILES
[412dbff6]287libscore_a_SOURCES += src/timespecaddto.c src/timespecfromticks.c \
[3a42e6fd]288    src/timespecisvalid.c src/timespeclessthan.c \
[c3330a8]289    src/timespecsubtract.c src/timespectoticks.c src/timespecdivide.c \
290    src/timespecdividebyinteger.c
[fc054ca]291
[e57cb3c]292## TIMESTAMP_INT64_C_FILES
293libscore_a_SOURCES += src/ts64addto.c src/ts64dividebyinteger.c \
294    src/ts64divide.c src/ts64equalto.c \
295    src/ts64getnanoseconds.c src/ts64getseconds.c \
[3a42e6fd]296    src/ts64lessthan.c \
[e57cb3c]297    src/ts64set.c src/ts64settozero.c src/ts64subtract.c \
[154721c4]298    src/ts64toticks.c src/ts64totimespec.c src/ts64totimeval.c
[e57cb3c]299
[4df3f89]300## TOD_C_FILES
[812da54]301libscore_a_SOURCES += src/coretod.c src/coretodset.c src/coretodget.c \
[62181b21]302    src/coretodgetuptimetimespec.c src/coretodtickle.c \
[88c74ab]303    src/coretodtickspersec.c
[0c819966]304
[4df3f89]305## WATCHDOG_C_FILES
[812da54]306libscore_a_SOURCES += src/watchdog.c src/watchdogadjust.c \
[109ace3a]307    src/watchdogadjusttochain.c src/watchdoginsert.c src/watchdogremove.c \
[18657d1]308    src/watchdogtickle.c src/watchdogreport.c src/watchdogreportchain.c \
309    src/watchdognanoseconds.c
[0c819966]310
[c3db01d0]311## USEREXT_C_FILES
[b7de5de]312libscore_a_SOURCES += src/userextaddset.c \
[32b2c83]313    src/userext.c src/userextremoveset.c src/userextiterate.c
[c3db01d0]314
[4df3f89]315## STD_C_FILES
[c3db01d0]316libscore_a_SOURCES += src/apiext.c src/chain.c src/chainappend.c \
317    src/chainextract.c src/chainget.c src/chaininsert.c \
[a19ae9ec]318    src/chainappendempty.c src/chainprependempty.c src/chaingetempty.c \
[cbd07e4]319    src/chainnodecount.c \
[40883773]320    src/assertthreaddispatchingrepressed.c \
[141b311]321    src/interr.c src/isr.c src/wkspace.c src/wkstringduplicate.c
[0c819966]322
[4768a274]323EXTRA_DIST = src/Unlimited.txt
[0c819966]324
[dbe8e519]325DISTCLEANFILES = include/rtems/score/cpuopts.h
[8f83131]326
[6265b83]327include $(srcdir)/preinstall.am
[fed6210d]328include $(top_srcdir)/automake/subdirs.am
329include $(top_srcdir)/automake/local.am
Note: See TracBrowser for help on using the repository browser.