2010-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>

Jennifer Averett <jennifer.averett@oarcorp.com>

	Add RTEMS Scheduler Simulator.  This is the RTEMS "port" to and
	adapter code to run on GNU/Linux with a fake context switch.
	* ChangeLog, Makefile.am, interr.c, rtems_init.c, rtems_sched.h,
	wkspace.c, sched_cpu/cpu.c, sched_cpu/cpu_asm.c,
	sched_cpu/rtems/asm.h, sched_cpu/rtems/stringto.h,
	sched_cpu/rtems/score/cpu.h, sched_cpu/rtems/score/cpu_asm.h,
	sched_cpu/rtems/score/cpuopts.h, sched_cpu/rtems/score/no_cpu.h,
	sched_cpu/rtems/score/types.h: New files.
This commit is contained in:
Joel Sherrill
2010-12-17 14:51:56 +00:00
parent abff6d226a
commit 4bc2c9886b
15 changed files with 2708 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
2010-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
Jennifer Averett <jennifer.averett@oarcorp.com>
Add RTEMS Scheduler Simulator. This is the RTEMS "port" to and
adapter code to run on GNU/Linux with a fake context switch.
* ChangeLog, Makefile.am, interr.c, rtems_init.c, rtems_sched.h,
wkspace.c, sched_cpu/cpu.c, sched_cpu/cpu_asm.c,
sched_cpu/rtems/asm.h, sched_cpu/rtems/stringto.h,
sched_cpu/rtems/score/cpu.h, sched_cpu/rtems/score/cpu_asm.h,
sched_cpu/rtems/score/cpuopts.h, sched_cpu/rtems/score/no_cpu.h,
sched_cpu/rtems/score/types.h: New files.

View File

@@ -0,0 +1,382 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../aclocal
lib_LIBRARIES = librtems.a
cpukitdir=$(srcdir)/../../../cpukit
librtems_a_CPPFLAGS = -D__RTEMS_VIOLATE_KERNEL_VISIBILITY__
librtems_a_CPPFLAGS += -I$(srcdir)/sched_cpu
librtems_a_CPPFLAGS += -I$(cpukitdir)/include
librtems_a_CPPFLAGS += -I$(cpukitdir)/score/include
librtems_a_CPPFLAGS += -I$(cpukitdir)/score/inline
librtems_a_CPPFLAGS += -I$(cpukitdir)/rtems/include
librtems_a_CPPFLAGS += -I$(cpukitdir)/rtems/inline
librtems_a_CPPFLAGS += -I$(cpukitdir)/sapi/include
librtems_a_CPPFLAGS += -I$(cpukitdir)/sapi/inline
librtems_a_CPPFLAGS += -I$(cpukitdir)/libcsupport/include
librtems_a_CPPFLAGS += -I$(cpukitdir)/libmisc/stringto
## Have own version of these
librtems_a_SOURCES = rtems_init.c wkspace.c
librtems_a_SOURCES += sched_cpu/cpu_asm.c
librtems_a_SOURCES += sched_cpu/cpu.c
## CPUKIT/SCORE/SRC
librtems_a_SOURCES += $(cpukitdir)/score/src/interr.c
librtems_a_SOURCES += $(cpukitdir)/score/src/percpu.c
librtems_a_SOURCES += $(cpukitdir)/score/src/apiext.c
librtems_a_SOURCES += $(cpukitdir)/score/src/apimutexallocate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/apimutex.c
librtems_a_SOURCES += $(cpukitdir)/score/src/apimutexlock.c
librtems_a_SOURCES += $(cpukitdir)/score/src/apimutexunlock.c
librtems_a_SOURCES += $(cpukitdir)/score/src/chainappend.c
librtems_a_SOURCES += $(cpukitdir)/score/src/chain.c
librtems_a_SOURCES += $(cpukitdir)/score/src/chainextract.c
librtems_a_SOURCES += $(cpukitdir)/score/src/chainget.c
librtems_a_SOURCES += $(cpukitdir)/score/src/chaininsert.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coremutex.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coremutexflush.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coremutexseize.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coremutexseizeintr.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coremutexsurrender.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coresem.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coresemflush.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coresemseize.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coresemsurrender.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretod.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodget.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodgetuptime.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodgetuptimetimespec.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodmsecstoticks.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodset.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodtickle.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodtickspersec.c
librtems_a_SOURCES += $(cpukitdir)/score/src/coretodusectoticks.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectallocate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectapimaximumclass.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectclose.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectextendinformation.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectfree.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectget.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectgetinfo.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectgetinfoid.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectgetisr.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectgetnameasstring.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectgetnext.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectgetnoprotection.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectidtoname.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectinitializeinformation.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectnamespaceremove.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectnametoid.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectnametoidstring.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectsetname.c
librtems_a_SOURCES += $(cpukitdir)/score/src/objectshrinkinformation.c
librtems_a_SOURCES += $(cpukitdir)/score/src/scheduler.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerpriority.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerpriorityblock.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerprioritythreadschedulerallocate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerprioritythreadschedulerfree.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerprioritythreadschedulerupdate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerpriorityschedule.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerpriorityunblock.c
librtems_a_SOURCES += $(cpukitdir)/score/src/schedulerpriorityyield.c
librtems_a_SOURCES += $(cpukitdir)/score/src/thread.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadchangepriority.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadclearstate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadclose.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadcreateidle.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threaddelayended.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threaddispatch.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadget.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadhandler.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadinitialize.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadloadenv.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadready.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadreset.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadrestart.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadresume.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadsetpriority.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadsetstate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadsettransient.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadstackallocate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadstackfree.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadstart.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadstartmultitasking.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadsuspend.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadtickletimeslice.c
librtems_a_SOURCES += $(cpukitdir)/score/src/iterateoverthreads.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadq.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadblockingoperationcancel.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqdequeue.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqdequeuefifo.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqdequeuepriority.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqenqueue.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqenqueuefifo.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqenqueuepriority.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqextract.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqextractfifo.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqextractpriority.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqextractwithproxy.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqfirst.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqfirstfifo.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqfirstpriority.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqflush.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqprocesstimeout.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqrequeue.c
librtems_a_SOURCES += $(cpukitdir)/score/src/threadqtimeout.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespecaddto.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespecdividebyinteger.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespecdivide.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespecfromticks.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespecgreaterthan.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespecisvalid.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespeclessthan.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespecsubtract.c
librtems_a_SOURCES += $(cpukitdir)/score/src/timespectoticks.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextaddset.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userext.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextremoveset.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextthreadbegin.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextthreadcreate.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextthreaddelete.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextthreadrestart.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextthreadstart.c
librtems_a_SOURCES += $(cpukitdir)/score/src/userextthreadswitch.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdogadjust.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdogadjusttochain.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdog.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdoginsert.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdognanoseconds.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdogremove.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdogreport.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdogreportchain.c
librtems_a_SOURCES += $(cpukitdir)/score/src/watchdogtickle.c
librtems_a_SOURCES += $(cpukitdir)/sapi/src/debug.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clockgetsecondssinceepoch.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clockgettickspersecond.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clockgettickssinceboot.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clockgettod.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clockgettodtimeval.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clockgetuptime.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clockset.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clocksetnsecshandler.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clocktick.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clocktodtoseconds.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/clocktodvalidate.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/sem.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semcreate.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semdata.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semdelete.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semflush.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semident.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semobtain.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semrelease.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/semtranslatereturncode.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/tasks.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskdata.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskmode.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskvariable_invoke_dtor.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskcreate.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskstart.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskident.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskdelete.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskresume.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/tasksuspend.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/tasksetpriority.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskmode.c
librtems_a_SOURCES += $(cpukitdir)/rtems/src/taskwakeafter.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assoclocalbyname.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assoclocalbyremotebitfield.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assoclocalbyremote.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocnamebad.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocnamebylocalbitfield.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocnamebylocal.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocnamebyremotebitfield.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocnamebyremote.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocptrbylocal.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocptrbyname.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocptrbyremote.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocremotebylocalbitfield.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocremotebylocal.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/assocremotebyname.c
librtems_a_SOURCES += $(cpukitdir)/libcsupport/src/error.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtodouble.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtofloat.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtoint.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtolong.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtopointer.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtounsignedchar.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtounsignedint.c
librtems_a_SOURCES += $(cpukitdir)/libmisc/stringto/stringtounsignedlong.c
schedsim_includedir = $(includedir)/schedsim
schedsim_rtems_includedir = $(includedir)/schedsim/rtems
schedsim_rtems_score_includedir = $(includedir)/schedsim/rtems/score
schedsim_rtems_rtems_includedir = $(includedir)/schedsim/rtems/rtems
schedsim_include_HEADERS = \
${cpukitdir}/rtems/include/rtems.h
schedsim_rtems_include_HEADERS = \
${cpukitdir}/score/include//rtems/seterr.h \
${cpukitdir}/score/include/rtems/system.h \
${cpukitdir}/score/include/rtems/debug.h \
${cpukitdir}/include/rtems/bspIo.h \
$(cpukitdir)/sapi/include/rtems/fatal.h \
$(cpukitdir)/sapi/include/rtems/init.h \
$(cpukitdir)/sapi/include/rtems/config.h \
$(cpukitdir)/sapi/include/rtems/sptables.h \
$(cpukitdir)/sapi/include/rtems/io.h \
$(cpukitdir)/sapi/include/rtems/mptables.h \
$(cpukitdir)/sapi/include/rtems/extension.h \
$(cpukitdir)/sapi/include/rtems/chain.h \
$(cpukitdir)/sapi/include/confdefs.h \
$(cpukitdir)/libcsupport/include/rtems/libio_.h \
$(cpukitdir)/libcsupport/include/rtems/watchdogdrv.h \
$(cpukitdir)/libcsupport/include/rtems/error.h \
$(cpukitdir)/libcsupport/include/rtems/framebuffer.h \
$(cpukitdir)/libcsupport/include/rtems/assoc.h \
$(cpukitdir)/libcsupport/include/rtems/libio.h \
$(cpukitdir)/libcsupport/include/rtems/gxx_wrappers.h \
$(cpukitdir)/libcsupport/include/rtems/libcsupport.h \
$(cpukitdir)/libcsupport/include/rtems/termiostypes.h \
$(cpukitdir)/libcsupport/include/rtems/malloc.h \
sched_cpu/rtems/stringto.h \
sched_cpu/rtems/asm.h
schedsim_rtems_score_include_HEADERS = \
${cpukitdir}/score/include/rtems/score/address.h \
${cpukitdir}/score/include/rtems/score/coremutex.h \
${cpukitdir}/score/include/rtems/score/corerwlock.h \
${cpukitdir}/score/include/rtems/score/threadsync.h \
${cpukitdir}/score/include/rtems/score/priority.h \
${cpukitdir}/score/include/rtems/score/sysstate.h \
${cpukitdir}/score/include/rtems/score/threadmp.h \
${cpukitdir}/score/include/rtems/score/mppkt.h \
${cpukitdir}/score/include/rtems/score/stack.h \
${cpukitdir}/score/include/rtems/score/context.h \
${cpukitdir}/score/include/rtems/score/heap.h \
${cpukitdir}/score/include/rtems/score/coresem.h \
${cpukitdir}/score/include/rtems/score/corebarrier.h \
${cpukitdir}/score/include/rtems/score/corespinlock.h \
${cpukitdir}/score/include/rtems/score/prioritybitmap.h \
${cpukitdir}/score/include/rtems/score/timestamp.h \
${cpukitdir}/score/include/rtems/score/basedefs.h \
${cpukitdir}/score/include/rtems/score/wkspace.h \
${cpukitdir}/score/include/rtems/score/percpu.h \
${cpukitdir}/score/include/rtems/score/watchdog.h \
${cpukitdir}/score/include/rtems/score/tod.h \
${cpukitdir}/score/include/rtems/score/protectedheap.h \
${cpukitdir}/score/include/rtems/score/timestamp64.h \
${cpukitdir}/score/include/rtems/score/chain.h \
${cpukitdir}/score/include/rtems/score/apiext.h \
${cpukitdir}/score/include/rtems/score/userext.h \
${cpukitdir}/score/include/rtems/score/threadq.h \
${cpukitdir}/score/include/rtems/score/apimutex.h \
${cpukitdir}/score/include/rtems/score/scheduler.h \
${cpukitdir}/score/include/rtems/score/isr.h \
${cpukitdir}/score/include/rtems/score/mpci.h \
${cpukitdir}/score/include/rtems/score/object.h \
${cpukitdir}/score/include/rtems/score/copyrt.h \
${cpukitdir}/score/include/rtems/score/states.h \
${cpukitdir}/score/include/rtems/score/objectmp.h \
${cpukitdir}/score/include/rtems/score/thread.h \
${cpukitdir}/score/include/rtems/score/coremsg.h \
${cpukitdir}/score/include/rtems/score/schedulerpriority.h \
${cpukitdir}/score/include/rtems/score/timespec.h \
${cpukitdir}/score/include/rtems/score/tqdata.h \
${cpukitdir}/score/include/rtems/score/bitfield.h \
${cpukitdir}/score/include/rtems/score/interr.h \
$(cpukitdir)/score/inline/rtems/score/address.inl \
$(cpukitdir)/score/inline/rtems/score/corespinlock.inl \
$(cpukitdir)/score/inline/rtems/score/priority.inl \
$(cpukitdir)/score/inline/rtems/score/threadmp.inl \
$(cpukitdir)/score/inline/rtems/score/chain.inl \
$(cpukitdir)/score/inline/rtems/score/heap.inl \
$(cpukitdir)/score/inline/rtems/score/scheduler.inl \
$(cpukitdir)/score/inline/rtems/score/threadq.inl \
$(cpukitdir)/score/inline/rtems/score/corebarrier.inl \
$(cpukitdir)/score/inline/rtems/score/isr.inl \
$(cpukitdir)/score/inline/rtems/score/schedulerpriority.inl \
$(cpukitdir)/score/inline/rtems/score/tod.inl \
$(cpukitdir)/score/inline/rtems/score/coremsg.inl \
$(cpukitdir)/score/inline/rtems/score/mppkt.inl \
$(cpukitdir)/score/inline/rtems/score/stack.inl \
$(cpukitdir)/score/inline/rtems/score/tqdata.inl \
$(cpukitdir)/score/inline/rtems/score/coremutex.inl \
$(cpukitdir)/score/inline/rtems/score/object.inl \
$(cpukitdir)/score/inline/rtems/score/states.inl \
$(cpukitdir)/score/inline/rtems/score/watchdog.inl \
$(cpukitdir)/score/inline/rtems/score/corerwlock.inl \
$(cpukitdir)/score/inline/rtems/score/objectmp.inl \
$(cpukitdir)/score/inline/rtems/score/sysstate.inl \
$(cpukitdir)/score/inline/rtems/score/wkspace.inl \
$(cpukitdir)/score/inline/rtems/score/coresem.inl \
$(cpukitdir)/score/inline/rtems/score/prioritybitmap.inl \
$(cpukitdir)/score/inline/rtems/score/thread.inl \
sched_cpu/rtems/score/cpu_asm.h \
sched_cpu/rtems/score/cpuopts.h \
sched_cpu/rtems/score/cpu.h \
sched_cpu/rtems/score/types.h \
sched_cpu/rtems/score/no_cpu.h
schedsim_rtems_rtems_include_HEADERS = \
${cpukitdir}/rtems/include/rtems/rtems/event.h \
${cpukitdir}/rtems/include/rtems/rtems/cache.h \
${cpukitdir}/rtems/include/rtems/rtems/timer.h \
${cpukitdir}/rtems/include/rtems/rtems/regionmp.h \
${cpukitdir}/rtems/include/rtems/rtems/config.h \
${cpukitdir}/rtems/include/rtems/rtems/ratemon.h \
${cpukitdir}/rtems/include/rtems/rtems/rtemsapi.h \
${cpukitdir}/rtems/include/rtems/rtems/eventset.h \
${cpukitdir}/rtems/include/rtems/rtems/mp.h \
${cpukitdir}/rtems/include/rtems/rtems/dpmem.h \
${cpukitdir}/rtems/include/rtems/rtems/status.h \
${cpukitdir}/rtems/include/rtems/rtems/sem.h \
${cpukitdir}/rtems/include/rtems/rtems/barriermp.h \
${cpukitdir}/rtems/include/rtems/rtems/types.h \
${cpukitdir}/rtems/include/rtems/rtems/intr.h \
${cpukitdir}/rtems/include/rtems/rtems/signalmp.h \
${cpukitdir}/rtems/include/rtems/rtems/eventmp.h \
${cpukitdir}/rtems/include/rtems/rtems/part.h \
${cpukitdir}/rtems/include/rtems/rtems/message.h \
${cpukitdir}/rtems/include/rtems/rtems/region.h \
${cpukitdir}/rtems/include/rtems/rtems/object.h \
${cpukitdir}/rtems/include/rtems/rtems/partmp.h \
${cpukitdir}/rtems/include/rtems/rtems/msgmp.h \
${cpukitdir}/rtems/include/rtems/rtems/clock.h \
${cpukitdir}/rtems/include/rtems/rtems/modes.h \
${cpukitdir}/rtems/include/rtems/rtems/taskmp.h \
${cpukitdir}/rtems/include/rtems/rtems/asr.h \
${cpukitdir}/rtems/include/rtems/rtems/semmp.h \
${cpukitdir}/rtems/include/rtems/rtems/options.h \
${cpukitdir}/rtems/include/rtems/rtems/attr.h \
${cpukitdir}/rtems/include/rtems/rtems/support.h \
${cpukitdir}/rtems/include/rtems/rtems/signal.h \
${cpukitdir}/rtems/include/rtems/rtems/barrier.h \
${cpukitdir}/rtems/include/rtems/rtems/tasks.h \
$(cpukitdir)/rtems/inline/rtems/rtems/asr.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/eventset.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/ratemon.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/tasks.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/attr.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/message.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/region.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/timer.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/barrier.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/modes.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/sem.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/dpmem.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/options.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/status.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/event.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/part.inl \
$(cpukitdir)/rtems/inline/rtems/rtems/support.inl
schedsim_include_HEADERS += rtems_sched.h
include $(top_srcdir)/../../automake/host.am

View File

@@ -0,0 +1,71 @@
/*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* Internal Error Handler
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/system.h>
#include <rtems/score/interr.h>
#include <rtems/score/sysstate.h>
#include <rtems/score/userext.h>
#include <stdlib.h>
#include <stdio.h>
/*PAGE
*
* _Internal_error_Occurred
*
* This routine will invoke the fatal error handler supplied by the user
* followed by the the default one provided by the executive. The default
* error handler assumes no hardware is present to help inform the user
* of the problem. Halt stores the error code in a known register,
* disables interrupts, and halts the CPU. If the CPU does not have a
* halt instruction, it will loop to itself.
*
* Input parameters:
* the_source - what subsystem the error originated in
* is_internal - if the error was internally generated
* the_error - fatal error status code
*
* Output parameters:
* As much information as possible is stored in a CPU dependent fashion.
* See the CPU dependent code for more information.
*
* NOTE: The the_error is not necessarily a directive status code.
*/
void _Internal_error_Occurred(
Internal_errors_Source the_source,
bool is_internal,
Internal_errors_t the_error
)
{
_Internal_errors_What_happened.the_source = the_source;
_Internal_errors_What_happened.is_internal = is_internal;
_Internal_errors_What_happened.the_error = the_error;
// _User_extensions_Fatal( the_source, is_internal, the_error );
_System_state_Set( SYSTEM_STATE_FAILED );
fprintf( stderr, "FATAL ERROR!!\n" );
exit( -1 );
/* will not return from this routine */
while (true);
}

View File

@@ -0,0 +1,110 @@
/*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#define SAPI_INIT
#define SCORE_INIT
#define RTEMS_API_INIT
#include <rtems.h>
#include <rtems/score/apiext.h>
#include <rtems/score/bitfield.h>
#include <rtems/score/apimutex.h>
#include <rtems/score/wkspace.h>
Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ];
Objects_Information *_RTEMS_Objects[ OBJECTS_RTEMS_CLASSES_LAST + 1 ];
extern void check_heir_and_executing(void);
void rtems_initialize_data_structures(void)
{
_System_state_Handler_initialization( FALSE );
/*
* Do this as early as possible to ensure no debugging output
* is even attempted to be printed.
*/
_Debug_Manager_initialization();
_API_extensions_Initialization();
_Thread_Dispatch_initialization();
/*
* Before this is called, we are not allowed to allocate memory
* from the Workspace because it is not initialized.
*/
_Workspace_Handler_initialization();
_User_extensions_Handler_initialization();
// _ISR_Handler_initialization();
/*
* Initialize the internal support API and allocator Mutex
*/
_Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects;
_API_Mutex_Initialization( 1 );
_API_Mutex_Allocate( &_RTEMS_Allocator_Mutex );
_Priority_bit_map_Handler_initialization();
_Watchdog_Handler_initialization();
_TOD_Handler_initialization();
_Thread_Handler_initialization();
_Scheduler_Handler_initialization();
/* MANAGERS */
/*
* Install our API Object Management Table and initialize the
* various managers.
*/
_Objects_Information_table[OBJECTS_CLASSIC_API] = _RTEMS_Objects;
_RTEMS_tasks_Manager_initialization();
_Semaphore_Manager_initialization();
_System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
/*
* No threads should be created before this point!!!
* _Thread_Executing and _Thread_Heir are not set.
*
* At this point all API extensions are in place. After the call to
* _Thread_Create_idle() _Thread_Executing and _Thread_Heir will be set.
*/
_Thread_Create_idle();
/*
* Scheduling can properly occur now as long as we avoid dispatching.
*/
_System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING );
_Thread_Start_multitasking();
/*
* Now we are back in a non-dispatching critical section
*/
_Thread_Dispatch_disable_level = 0;
/*
* Print an initial message
*/
check_heir_and_executing();
}

View File

@@ -0,0 +1,27 @@
/*
* RTEMS Scheduler Simulator Interface
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef __RTEMS_SCHEDULER_SIMULATOR_h
#define __RTEMS_SCHEDULER_SIMULATOR_h
#ifdef __cplusplus
extern "C" {
#endif
void rtems_initialize_data_structures(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,169 @@
/*
* XXX CPU Dependent Source
*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/system.h>
#include <rtems/score/isr.h>
#include <rtems/score/wkspace.h>
/* _CPU_Initialize
*
* This routine performs processor dependent initialization.
*
* INPUT PARAMETERS: NONE
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_Initialize(void)
{
/*
* If there is not an easy way to initialize the FP context
* during Context_Initialize, then it is usually easier to
* save an "uninitialized" FP context here and copy it to
* the task's during Context_Initialize.
*/
/* FP context initialization support goes here */
}
/*PAGE
*
* _CPU_ISR_Get_level
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
uint32_t _CPU_ISR_Get_level( void )
{
/*
* This routine returns the current interrupt level.
*/
return 0;
}
/*PAGE
*
* _CPU_ISR_install_raw_handler
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
proc_ptr new_handler,
proc_ptr *old_handler
)
{
/*
* This is where we install the interrupt handler into the "raw" interrupt
* table used by the CPU to dispatch interrupt handlers.
*/
}
/*PAGE
*
* _CPU_ISR_install_vector
*
* This kernel routine installs the RTEMS handler for the
* specified vector.
*
* Input parameters:
* vector - interrupt vector number
* old_handler - former ISR for this vector number
* new_handler - replacement ISR for this vector number
*
* Output parameters: NONE
*
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_vector(
uint32_t vector,
proc_ptr new_handler,
proc_ptr *old_handler
)
{
*old_handler = _ISR_Vector_table[ vector ];
/*
* If the interrupt vector table is a table of pointer to isr entry
* points, then we need to install the appropriate RTEMS interrupt
* handler for this vector number.
*/
_CPU_ISR_install_raw_handler( vector, new_handler, old_handler );
/*
* We put the actual user ISR address in '_ISR_vector_table'. This will
* be used by the _ISR_Handler so the user gets control.
*/
_ISR_Vector_table[ vector ] = new_handler;
}
/*PAGE
*
* _CPU_Install_interrupt_stack
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_Install_interrupt_stack( void )
{
}
/*PAGE
*
* _CPU_Thread_Idle_body
*
* NOTES:
*
* 1. This is the same as the regular CPU independent algorithm.
*
* 2. If you implement this using a "halt", "idle", or "shutdown"
* instruction, then don't forget to put it in an infinite loop.
*
* 3. Be warned. Some processors with onboard DMA have been known
* to stop the DMA if the CPU were put in IDLE mode. This might
* also be a problem with other on-chip peripherals. So use this
* hook with caution.
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void *_CPU_Thread_Idle_body( uintptr_t ignored )
{
for( ; ; )
/* insert your "halt" instruction here */ ;
}

View File

@@ -0,0 +1,188 @@
/* cpu_asm.c ===> cpu_asm.S or cpu_asm.s
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
*
* This file contains the basic algorithms for all assembly code used
* in an specific CPU port of RTEMS. These algorithms must be implemented
* in assembly language
*
* NOTE: This is supposed to be a .S or .s file NOT a C file.
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
/*
* This is supposed to be an assembly file. This means that system.h
* and cpu.h should not be included in a "real" cpu_asm file. An
* implementation in assembly should include "cpu_asm.h>
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/system.h>
#include <rtems/score/cpu.h>
/* #include "cpu_asm.h> */
/*
* _CPU_Context_save_fp_context
*
* This routine is responsible for saving the FP context
* at *fp_context_ptr. If the point to load the FP context
* from is changed then the pointer is modified by this routine.
*
* Sometimes a macro implementation of this is in cpu.h which dereferences
* the ** and a similarly named routine in this file is passed something
* like a (Context_Control_fp *). The general rule on making this decision
* is to avoid writing assembly language.
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_Context_save_fp(
Context_Control_fp **fp_context_ptr
)
{
}
/*
* _CPU_Context_restore_fp_context
*
* This routine is responsible for restoring the FP context
* at *fp_context_ptr. If the point to load the FP context
* from is changed then the pointer is modified by this routine.
*
* Sometimes a macro implementation of this is in cpu.h which dereferences
* the ** and a similarly named routine in this file is passed something
* like a (Context_Control_fp *). The general rule on making this decision
* is to avoid writing assembly language.
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_Context_restore_fp(
Context_Control_fp **fp_context_ptr
)
{
}
/* _CPU_Context_switch
*
* This routine performs a normal non-FP context switch.
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_Context_switch(
Context_Control *run,
Context_Control *heir
)
{
}
/*
* _CPU_Context_restore
*
* This routine is generally used only to restart self in an
* efficient manner. It may simply be a label in _CPU_Context_switch.
*
* NOTE: May be unnecessary to reload some registers.
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _CPU_Context_restore(
Context_Control *new_context
)
{
}
/* void __ISR_Handler()
*
* This routine provides the RTEMS interrupt management.
*
* NO_CPU Specific Information:
*
* XXX document implementation including references if appropriate
*/
void _ISR_Handler(void)
{
/*
* This discussion ignores a lot of the ugly details in a real
* implementation such as saving enough registers/state to be
* able to do something real. Keep in mind that the goal is
* to invoke a user's ISR handler which is written in C and
* uses a certain set of registers.
*
* Also note that the exact order is to a large extent flexible.
* Hardware will dictate a sequence for a certain subset of
* _ISR_Handler while requirements for setting
*/
/*
* At entry to "common" _ISR_Handler, the vector number must be
* available. On some CPUs the hardware puts either the vector
* number or the offset into the vector table for this ISR in a
* known place. If the hardware does not give us this information,
* then the assembly portion of RTEMS for this port will contain
* a set of distinct interrupt entry points which somehow place
* the vector number in a known place (which is safe if another
* interrupt nests this one) and branches to _ISR_Handler.
*
* save some or all context on stack
* may need to save some special interrupt information for exit
*
* #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
* if ( _ISR_Nest_level == 0 )
* switch to software interrupt stack
* #endif
*
* _ISR_Nest_level++;
*
* _Thread_Dispatch_disable_level++;
*
* (*_ISR_Vector_table[ vector ])( vector );
*
* _Thread_Dispatch_disable_level--;
*
* --_ISR_Nest_level;
*
* if ( _ISR_Nest_level )
* goto the label "exit interrupt (simple case)"
*
* if ( _Thread_Dispatch_disable_level )
* _ISR_Signals_to_thread_executing = FALSE;
* goto the label "exit interrupt (simple case)"
*
* if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) {
* _ISR_Signals_to_thread_executing = FALSE;
* call _Thread_Dispatch() or prepare to return to _ISR_Dispatch
* prepare to get out of interrupt
* return from interrupt (maybe to _ISR_Dispatch)
*
* LABEL "exit interrupt (simple case):
* #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
* if outermost interrupt
* restore stack
* #endif
* prepare to get out of interrupt
* return from interrupt
*/
}

View File

@@ -0,0 +1,127 @@
/**
* @file rtems/asm.h
*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* This include file attempts to address the problems
* caused by incompatible flavors of assemblers and
* toolsets. It primarily addresses variations in the
* use of leading underscores on symbols and the requirement
* that register names be preceded by a %.
*/
/*
* NOTE: The spacing in the use of these macros
* is critical to them working as advertised.
*
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
* from ftp.cygnus.com. The file which was used had no copyright
* notice. This file is freely distributable as long as the source
* of the file is noted. This file is:
*
* COPYRIGHT (c) 1994-2010.
* On-Line Applications Research Corporation (OAR).
*
* $Id$
*/
#ifndef _RTEMS_ASM_H
#define _RTEMS_ASM_H
/*
* Indicate we are in an assembly file and get the basic CPU definitions.
*/
#ifndef ASM
#define ASM
#endif
#include <rtems/score/cpuopts.h>
#include <rtems/score/no_cpu.h>
#ifndef __USER_LABEL_PREFIX__
/**
* Recent versions of GNU cpp define variables which indicate the
* need for underscores and percents. If not using GNU cpp or
* the version does not support this, then you will obviously
* have to define these as appropriate.
*
* This symbol is prefixed to all C program symbols.
*/
#define __USER_LABEL_PREFIX__ _
#endif
#ifndef __REGISTER_PREFIX__
/**
* Recent versions of GNU cpp define variables which indicate the
* need for underscores and percents. If not using GNU cpp or
* the version does not support this, then you will obviously
* have to define these as appropriate.
*
* This symbol is prefixed to all register names.
*/
#define __REGISTER_PREFIX__
#endif
#include <rtems/concat.h>
/** Use the right prefix for global labels. */
#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
/** Use the right prefix for registers. */
#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
/*
* define macros for all of the registers on this CPU
*
* EXAMPLE: #define d0 REG (d0)
*/
/*
* Define macros to handle section beginning and ends.
*/
/** This macro is used to denote the beginning of a code declaration. */
#define BEGIN_CODE_DCL .text
/** This macro is used to denote the end of a code declaration. */
#define END_CODE_DCL
/** This macro is used to denote the beginning of a data declaration section. */
#define BEGIN_DATA_DCL .data
/** This macro is used to denote the end of a data declaration section. */
#define END_DATA_DCL
/** This macro is used to denote the beginning of a code section. */
#define BEGIN_CODE .text
/** This macro is used to denote the end of a code section. */
#define END_CODE
/** This macro is used to denote the beginning of a data section. */
#define BEGIN_DATA
/** This macro is used to denote the end of a data section. */
#define END_DATA
/** This macro is used to denote the beginning of the
* unitialized data section.
*/
#define BEGIN_BSS
/** This macro is used to denote the end of the unitialized data section. */
#define END_BSS
/** This macro is used to denote the end of the assembly file. */
#define END
/**
* This macro is used to declare a public global symbol.
*
* @note This must be tailored for a particular flavor of the C compiler.
* They may need to put underscores in front of the symbols.
*/
#define PUBLIC(sym) .globl SYM (sym)
/**
* This macro is used to prototype a public global symbol.
*
* @note This must be tailored for a particular flavor of the C compiler.
* They may need to put underscores in front of the symbols.
*/
#define EXTERN(sym) .globl SYM (sym)
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
/**
* @file rtems/score/cpu_asm.h
*/
/*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* Very loose template for an include file for the cpu_asm.? file
* if it is implemented as a ".S" file (preprocessed by cpp) instead
* of a ".s" file (preprocessed by gm4 or gasp).
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*
*/
#ifndef _RTEMS_SCORE_CPU_ASM_H
#define _RTEMS_SCORE_CPU_ASM_H
/* pull in the generated offsets */
#include <rtems/score/offsets.h>
/*
* Hardware General Registers
*/
/* put something here */
/*
* Hardware Floating Point Registers
*/
/* put something here */
/*
* Hardware Control Registers
*/
/* put something here */
/*
* Calling Convention
*/
/* put something here */
/*
* Temporary registers
*/
/* put something here */
/*
* Floating Point Registers - SW Conventions
*/
/* put something here */
/*
* Temporary floating point registers
*/
/* put something here */
#endif
/* end of file */

View File

@@ -0,0 +1,72 @@
/**
* @file rtems/score/cpuopts.h
*/
/* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR */
/* target cpu dependent options file */
/* automatically generated -- DO NOT EDIT!! */
#ifndef _RTEMS_SCORE_CPUOPTS_H
#define _RTEMS_SCORE_CPUOPTS_H
/* This is added by hand to indicate we are on the RTEMS Scheduler Simulator */
#define RTEMS_SCHEDSIM
/* if RTEMS_DEBUG is enabled */
/* #undef RTEMS_DEBUG */
/* if itron api is supported */
/* #undef RTEMS_ITRON_API */
/* if multiprocessing is enabled */
/* #undef RTEMS_MULTIPROCESSING */
/* if using newlib */
#define RTEMS_NEWLIB 1
/* if posix api is supported */
/* #undef RTEMS_POSIX_API */
/* if networking is enabled */
#define RTEMS_NETWORKING 1
/* if RTEMS uses tar.h */
#define RTEMS_USES_TAR_H 1
/* RTEMS version string */
#define RTEMS_VERSION "4.9.99.0"
/* disable nanosecond granularity for statistics */
/* #undef __RTEMS_USE_TICKS_FOR_STATISTICS__ */
/* disable nanosecond granularity for cpu usage statistics */
/* #undef __RTEMS_USE_TICKS_CPU_USAGE_STATISTICS__ */
/* disable nanosecond granularity for period statistics */
/* #undef __RTEMS_USE_TICKS_RATE_MONOTONIC_STATISTICS__ */
/* disable inlining _Thread_Enable_dispatch */
/* #undef __RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__ */
/* disable inlining _Thread_Enable_dispatch */
/* #undef __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__ */
/* disable inlining _Thread_queue_Enqueue_priority */
/* #undef __RTEMS_DO_NOT_UNROLL_THREADQ_ENQUEUE_PRIORITY__ */
/* disable strict order mutex */
/* #undef __RTEMS_STRICT_ORDER_MUTEX__ */
/* Define to 1 if ada/gnat bindings are built-in */
#define __RTEMS_ADA__ 1
/* major version portion of an RTEMS release */
#define __RTEMS_MAJOR__ 4
/* minor version portion of an RTEMS release */
#define __RTEMS_MINOR__ 9
/* revision version portion of an RTEMS release */
#define __RTEMS_REVISION__ 99
#endif /* _RTEMS_SCORE_CPUOPTS_H */

View File

@@ -0,0 +1,59 @@
/* no_cpu.h
*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* This file sets up basic CPU dependency settings based on
* compiler settings. For example, it can determine if
* floating point is available. This particular implementation
* is specified to the NO CPU port.
*
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*
*/
#ifndef _RTEMS_SCORE_NO_CPU_H
#define _RTEMS_SCORE_NO_CPU_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* This file contains the information required to build
* RTEMS for a particular member of the NO CPU family.
* It does this by setting variables to indicate which
* implementation dependent features are present in a particular
* member of the family.
*
* This is a good place to list all the known CPU models
* that this port supports and which RTEMS CPU model they correspond
* to.
*/
/*
* Figure out all CPU Model Feature Flags based upon compiler
* predefines.
*/
#define CPU_MODEL_NAME ""
#define NOCPU_HAS_FPU 1
/*
* Define the name of the CPU family.
*/
#define CPU_NAME "RTEMS Sheduler Simulator"
#ifdef __cplusplus
}
#endif
#endif /* _RTEMS_SCORE_NO_CPU_H */

View File

@@ -0,0 +1,51 @@
/**
* @file rtems/score/types.h
*/
/*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* This include file contains type definitions pertaining to the Intel
* no_cpu processor family.
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _RTEMS_SCORE_TYPES_H
#define _RTEMS_SCORE_TYPES_H
#include <rtems/score/basedefs.h>
#ifndef ASM
#ifdef __cplusplus
extern "C" {
#endif
/*
* This section defines the basic types for this processor.
*/
/** This defines the type for a priority bit map entry. */
typedef uint16_t Priority_bit_map_Control;
/** This defines the return type for an ISR entry point. */
typedef void no_cpu_isr;
/** This defines the prototype for an ISR entry point. */
typedef no_cpu_isr ( *no_cpu_isr_entry )( void );
#ifdef __cplusplus
}
#endif
#endif /* !ASM */
#endif

View File

@@ -0,0 +1 @@
#include <stringto.h>

View File

@@ -0,0 +1,101 @@
/*
* BASED UPON SOURCE IN RTEMS, MODIFIED FOR SIMULATOR
*
* Workspace Handler
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/system.h>
#include <rtems/score/wkspace.h>
#include <rtems/score/interr.h>
#include <stdlib.h>
#if defined(DEBUG_WORKSPACE)
#include <stdio.h>
#endif
/*
* _Workspace_Handler_initialization
*/
void _Workspace_Handler_initialization(void)
{
}
/*
* _Workspace_Allocate
*/
void *_Workspace_Allocate(
size_t size
)
{
void *memory;
memory = calloc( 1, size );
#if defined(DEBUG_WORKSPACE)
fprintf(
stderr,
"Workspace_Allocate(%d) from %p/%p -> %p\n",
size,
__builtin_return_address( 0 ),
__builtin_return_address( 1 ),
memory
);
#endif
return memory;
}
/*
* _Workspace_Free
*/
bool _Workspace_Free(
void *block
)
{
#if defined(DEBUG_WORKSPACE)
fprintf(
stderr,
block,
__builtin_return_address( 0 ),
__builtin_return_address( 1 )
);
#endif
free( block );
return true;
}
/*
* _Workspace_Allocate_or_fatal_error
*/
void *_Workspace_Allocate_or_fatal_error(
size_t size
)
{
void *memory;
memory = calloc( 1, size );
#if defined(DEBUG_WORKSPACE)
fprintf(
stderr,
"Workspace_Allocate_or_fatal_error(%d) from %p/%p -> %p\n",
size,
__builtin_return_address( 0 ),
__builtin_return_address( 1 ),
memory
);
#endif
return memory;
}